Setelah mempertimbangkan dengan cermat, kami memutuskan untuk menghentikan Amazon Kinesis Data Analytics SQL untuk aplikasi dalam dua langkah:
1. Mulai 15 Oktober 2025, Anda tidak akan dapat membuat Kinesis Data Analytics SQL baru untuk aplikasi.
2. Kami akan menghapus aplikasi Anda mulai 27 Januari 2026. Anda tidak akan dapat memulai atau mengoperasikan Amazon Kinesis Data Analytics Anda SQL untuk aplikasi. Support tidak akan lagi tersedia untuk Amazon Kinesis Data Analytics SQL sejak saat itu. Untuk informasi selengkapnya, lihat Amazon Kinesis Data Analytics SQL untuk penghentian Aplikasi.
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
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.
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 data JSON streaming, Anda menggunakan ekspresi JSONPath untuk memetakan elemen JSON dari sumber streaming ke kolom SQL di aliran input. Untuk informasi selengkapnya tentang menggunakan JSONPath dengan Amazon Kinesis Data Analytics, lihat Bekerja dengan JSONPath. Kolom dalam tabel SQL memiliki tipe data yang dipetakan dari tipe JSON. Untuk tipe data yang didukung, lihat Tipe Data. Untuk detail tentang mengonversi data JSON ke data SQL, lihat Memetakan Tipe Data JSON ke Tipe Data SQL.
Untuk informasi selengkapnya tentang cara mengonfigurasi aliran input, lihat Mengonfigurasi Input Aplikasi.
Memetakan Data JSON ke Kolom SQL
Anda dapat memetakan elemen JSON ke kolom input menggunakan AWS Management Console atau Kinesis Data Analytics API.
-
Untuk memetakan elemen ke kolom menggunakan konsol, lihat Menggunakan Editor Skema.
-
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: Ekspresi JSONPath 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
Untuk memetakan elemen dari sumber streaming ke kolom input, Anda dapat menggunakan tindakan CreateApplication API Kinesis Data Analytics. Untuk membuat aliran dalam aplikasi, tentukan skema untuk mengubah data Anda menjadi versi skematis yang digunakan di SQL. Tindakan CreateApplication mengonfigurasi aplikasi Anda untuk menerima input dari satu sumber streaming. Untuk memetakan elemen JSON atau kolom CSV ke kolom SQL, Anda membuat objek RecordColumn di array SourceSchema RecordColumns
. Objek RecordColumn memiliki skema-skema berikut:
{ "Mapping": "String", "Name": "String", "SqlType": "String" }
Bidang dalam objek RecordColumn memiliki nilai berikut:
-
Mapping
: Ekspresi JSONPath 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
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
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
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. Amazon Kinesis Data Analytics mengonversi tipe data JSON menjadi tipe data SQL sesuai dengan aturan berikut.
Null Literal
Literal null dalam aliran input JSON (yaitu, "City":null
) mengonversi ke null SQL terlepas dari tipe data tujuan.
Boolean Literal
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
ataufalse
). Nilai dipotong agar sesuai dengan panjang bidang. -
Datetime (DATE, TIME, atau TIMESTAMP): Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.
Angka
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 kefalse
. -
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
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 ketrue
. Perbandingan ini peka terhadap huruf besar-kecil. Jika tidak, mengonversi kefalse
. -
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
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.
-
Semua tipe data lainnya: Konversi gagal dan kesalahan paksaan ditulis ke aliran kesalahan.
Untuk contoh array JSON, lihat Bekerja dengan JSONPath.