

Setelah mempertimbangkan dengan cermat, kami memutuskan untuk menghentikan Amazon Kinesis Data Analytics untuk aplikasi SQL:

1. Mulai **1 September 2025,** kami tidak akan memberikan perbaikan bug untuk Amazon Kinesis Data Analytics untuk aplikasi SQL karena kami akan memiliki dukungan terbatas untuk itu, mengingat penghentian yang akan datang.

2. Mulai **15 Oktober 2025,** Anda tidak akan dapat membuat Kinesis Data Analytics baru untuk aplikasi SQL.

3. Kami akan menghapus aplikasi Anda mulai **27 Januari 2026**. Anda tidak akan dapat memulai atau mengoperasikan Amazon Kinesis Data Analytics untuk aplikasi SQL. Support tidak akan lagi tersedia untuk Amazon Kinesis Data Analytics untuk SQL sejak saat itu. Untuk informasi selengkapnya, lihat [Amazon Kinesis Data Analytics untuk penghentian Aplikasi SQL](discontinuation.md).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memetakan Elemen Sumber Streaming ke Kolom Input SQL
<a name="sch-mapping"></a>

**catatan**  
Setelah 12 September 2023, Anda tidak akan dapat membuat aplikasi baru menggunakan Kinesis Data Firehose sebagai sumber jika Anda belum menggunakan Kinesis Data Analytics untuk SQL. Untuk informasi selengkapnya, lihat [Batasan-batasan](https://docs.aws.amazon.com//kinesisanalytics/latest/dev/limits.html).

Dengan Amazon Kinesis Data Analytics, Anda dapat memproses dan menganalisis data streaming baik dalam format JSON maupun CSV menggunakan SQL standar. 
+ Untuk memproses dan menganalisis data CSV streaming, Anda menetapkan nama kolom dan tipe data untuk kolom aliran input. Aplikasi Anda mengimpor satu kolom dari aliran input per definisi kolom, secara berurutan. 

  Anda tidak harus menyertakan semua kolom dalam aliran input aplikasi, tetapi Anda tidak dapat melewatkan kolom dari aliran sumber. Misalnya, Anda dapat mengimpor tiga kolom pertama dari aliran input yang berisi lima elemen, tetapi Anda tidak dapat mengimpor kolom 1, 2, dan 4 saja.
+ Untuk memproses dan menganalisis streaming data JSON, Anda menggunakan JSONPath ekspresi untuk memetakan elemen JSON dari sumber streaming ke kolom SQL dalam aliran input. Untuk informasi selengkapnya tentang penggunaan JSONPath dengan Amazon Kinesis Data Analytics, [Bekerja dengan JSONPath](about-json-path.md) lihat. Kolom dalam tabel SQL memiliki tipe data yang dipetakan dari tipe JSON. Untuk tipe data yang didukung, lihat [Tipe Data](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-data-types.html). Untuk detail tentang mengonversi data JSON ke data SQL, lihat [Memetakan Tipe Data JSON ke Tipe Data SQL](#sch-mapping-datatypes).

Untuk informasi selengkapnya tentang cara mengonfigurasi aliran input, lihat [Mengonfigurasi Input Aplikasi](how-it-works-input.md).

## Memetakan Data JSON ke Kolom SQL
<a name="sch-mapping-json"></a>

 Anda dapat memetakan elemen JSON ke kolom input menggunakan Konsol Manajemen AWS atau Kinesis Data Analytics API. 
+ Untuk memetakan elemen ke kolom menggunakan konsol, lihat [Menggunakan Editor Skema](console-summary-edit-schema.md).
+ Untuk memetakan elemen ke kolom menggunakan API Kinesis Data Analytics, lihat bagian berikut.

Untuk memetakan elemen JSON ke kolom dalam aliran input dalam aplikasi, Anda memerlukan skema dengan informasi berikut untuk setiap kolom:
+ **Ekspresi Sumber:** JSONPath Ekspresi yang mengidentifikasi lokasi data untuk kolom.
+ **Nama Kolom:** Nama yang kueri SQL Anda gunakan untuk mereferensi data.
+ **Tipe Data:** Tipe data SQL untuk kolom.

## Menggunakan API
<a name="sf-map-api"></a>

Untuk memetakan elemen dari sumber streaming ke kolom input, Anda dapat menggunakan tindakan [CreateApplication](API_CreateApplication.md) API Kinesis Data Analytics. Untuk membuat aliran dalam aplikasi, tentukan skema untuk mengubah data Anda menjadi versi skematis yang digunakan di SQL. Tindakan [CreateApplication](API_CreateApplication.md) mengonfigurasi aplikasi Anda untuk menerima input dari satu sumber streaming. Untuk memetakan elemen JSON atau kolom CSV ke kolom SQL, Anda membuat objek [RecordColumn](API_RecordColumn.md) di array [SourceSchema](API_SourceSchema.md) `RecordColumns`. Objek [RecordColumn](API_RecordColumn.md) memiliki skema-skema berikut:

```
{ 
    "Mapping": "String",
    "Name": "String",
    "SqlType": "String"
}
```

Bidang dalam objek [RecordColumn](API_RecordColumn.md) memiliki nilai berikut:
+ `Mapping`: JSONPath Ekspresi yang mengidentifikasi lokasi data dalam catatan aliran input. Nilai ini tidak tersedia untuk skema input untuk aliran sumber dalam format CSV.
+ `Name`: Nama kolom dalam aliran data SQL dalam aplikasi.
+ `SqlType`: Tipe data dari data dalam aliran data SQL dalam aplikasi.

### Contoh Skema Input JSON
<a name="sf-map-api-json-example"></a>

Contoh berikut menunjukkan format nilai `InputSchema` untuk skema JSON.

```
"InputSchema": {
    "RecordColumns": [
        {
            "SqlType": "VARCHAR(4)",
            "Name": "TICKER_SYMBOL",
            "Mapping": "$.TICKER_SYMBOL"
        },
        {
            "SqlType": "VARCHAR(16)",
            "Name": "SECTOR",
            "Mapping": "$.SECTOR"
        },
        {
            "SqlType": "TINYINT",
            "Name": "CHANGE",
            "Mapping": "$.CHANGE"
        },
        {
            "SqlType": "DECIMAL(5,2)",
            "Name": "PRICE",
            "Mapping": "$.PRICE"
        }
    ],
    "RecordFormat": {
        "MappingParameters": {
            "JSONMappingParameters": {
                "RecordRowPath": "$"
            }
        },
        "RecordFormatType": "JSON"
    },
    "RecordEncoding": "UTF-8"
}
```

### Contoh Skema Input CSV
<a name="sf-map-api-csv-example"></a>

Contoh berikut menunjukkan format nilai `InputSchema` untuk skema dalam format nilai yang dipisahkan koma (CSV).

```
"InputSchema": {
    "RecordColumns": [
        {
            "SqlType": "VARCHAR(16)",
            "Name": "LastName"
        },
        {
            "SqlType": "VARCHAR(16)",
            "Name": "FirstName"
        },
        {
            "SqlType": "INTEGER",
             "Name": "CustomerId"
        }
    ],
    "RecordFormat": {
        "MappingParameters": {
            "CSVMappingParameters": {
                "RecordColumnDelimiter": ",",
                "RecordRowDelimiter": "\n"
            }
        },
        "RecordFormatType": "CSV"
    },
    "RecordEncoding": "UTF-8"
}
```

## Memetakan Tipe Data JSON ke Tipe Data SQL
<a name="sch-mapping-datatypes"></a>

Tipe data JSON dikonversi menjadi tipe data SQL yang sesuai menurut skema input aplikasi. Untuk informasi tentang tipe data SQL yang didukung, lihat [Tipe Data](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-data-types.html). Amazon Kinesis Data Analytics mengonversi tipe data JSON menjadi tipe data SQL sesuai dengan aturan berikut.

### Null Literal
<a name="sch-mapping-datatypes-null"></a>

Literal null dalam aliran input JSON (yaitu, `"City":null`) mengonversi ke null SQL terlepas dari tipe data tujuan.

### Boolean Literal
<a name="sch-mapping-datatypes-boolean"></a>

Boolean literal dalam aliran input JSON (yaitu,`"Contacted":true`) mengonversi ke data SQL sebagai berikut:
+ Numerik (DECIMAL, INT, dan sebagainya): `true` mengonversi menjadi 1; `false` mengonversi menjadi 0.
+ Biner (BINARY atau VARBINARY): 
  + `true`: Hasil memiliki set bit terendah dan sisa bit yang dihapus.
  + `false`: Hasil memiliki semua bit yang dihapus.

  Konversi ke VARBINARY menghasilkan nilai dengan panjang 1 byte.
+ BOOLEAN: Mengonversi menjadi nilai SQL BOOLEAN yang sesuai.
+ Karakter (CHAR atau VARCHAR): Mengonversi ke nilai string yang sesuai (`true` atau `false`). Nilai dipotong agar sesuai dengan panjang bidang.
+ Datetime (DATE, TIME, atau TIMESTAMP): Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.

### Bilangan
<a name="sch-mapping-datatypes-number"></a>

Angka literal dalam aliran input JSON (yaitu,`"CustomerId":67321`) mengonversi ke data SQL sebagai berikut:
+ Numerik (DECIMAL, INT, dan sebagainya): Mengonversi langsung. Jika nilai yang dikonversi melebihi ukuran atau presisi dari tipe data target (yaitu, mengonversi `123.4` ke INT), konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan. 
+ Biner (BINARY atau VARBINARY): Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.
+ BOOLEAN: 
  + `0`: Mengonversi ke `false`.
  + Semua angka lainnya: Mengkonversi ke`true`.
+ Karakter (CHAR atau VARCHAR): Mengonversi ke representasi string dari nomor tersebut.
+ Datetime (DATE, TIME, atau TIMESTAMP): Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.

### String
<a name="sch-mapping-datatypes-string"></a>

Nilai string dalam aliran input JSON (yaitu, `"CustomerName":"John Doe"`) mengonversi ke data SQL sebagai berikut:
+ Numerik (DECIMAL, INT, dan sebagainya): Amazon Kinesis Data Analytics mencoba mengonversi nilai ke tipe data target. Jika nilai tidak dapat dikonversi, konversi gagal dan kesalahan paksaan ditulis ke pengalliran kesalahan.
+ Biner (BINARY atau VARBINARY): Jika string sumber adalah biner literal yang valid (yaitu `X'3F67A23A'`, dengan bilangan genap f), nilai dikonversi ke tipe data target. Jika tidak, konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.
+ BOOLEAN: Jika string sumber adalah `"true"`, mengonversi ke `true`. Perbandingan ini peka terhadap huruf besar-kecil. Jika tidak, mengonversi ke `false`.
+ Karakter (CHAR atau VARCHAR): Mengonversi ke nilai string dalam input. Jika nilai lebih panjang dari tipe data target, nilai dipotong dan tidak ada kesalahan yang ditulis ke aliran kesalahan.
+ Datetime (DATE, WAKTU, atau TIMESTAMP): Jika string sumber dalam format yang dapat dikonversi ke nilai target, nilai akan dikonversi. Jika tidak, konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.

  Format datetime yang valid meliputi:
  + "1992-02-14"
  + "1992-02-14 18:35:44.0"

### Array atau Objek
<a name="sch-mapping-datatypes-array"></a>

Array atau objek dalam aliran input JSON mengonversi ke data SQL sebagai berikut:
+ Karakter (CHAR atau VARCHAR): Mengonversi ke teks sumber dari array atau objek. Lihat [Mengakses Array](about-json-path.md#about-json-path-arrays).
+ Semua tipe data lainnya: Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.

Untuk contoh array JSON, lihat [Bekerja dengan JSONPath](about-json-path.md).

## Topik Terkait
<a name="sch-mapping.Related"></a>
+ [Mengonfigurasi Input Aplikasi](how-it-works-input.md)
+ [Tipe Data](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-data-types.html)
+ [Menggunakan Editor Skema](console-summary-edit-schema.md)
+ [CreateApplication](API_CreateApplication.md)
+ [RecordColumn](API_RecordColumn.md)
+ [SourceSchema](API_SourceSchema.md)