Topik ini menjelaskan penggunaan Konektor Datagen.
Informasi latar belakang
Konektor Datagen digunakan untuk debugging. Konektor ini secara berkala menghasilkan data acak yang sesuai dengan tipe pada tabel sumber Datagen. Untuk memeriksa logika bisnis secara efisien selama pengembangan atau pengujian menggunakan data uji, Anda dapat memanfaatkan konektor Datagen guna menghasilkan data acak.
Konektor Datagen mendukung sintaks kolom terhitung untuk fleksibilitas dalam menghasilkan data.
Tabel berikut menjabarkan kemampuan yang didukung oleh Konektor Datagen.
Item | Deskripsi |
Jenis tabel | Tabel sumber |
Mode operasi | Mode batch dan mode streaming |
Format data | Tidak tersedia |
Metrik | Tidak tersedia |
Jenis API | SQL API |
Pembaruan atau penghapusan data dalam tabel sink | Tidak tersedia |
Batasan
Hanya Realtime Compute for Apache Flink yang menggunakan Ververica Runtime (VVR) versi 2.0.0 atau lebih baru yang mendukung Konektor Datagen.
Sintaks
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);Parameter dalam klausa WITH
Parameter | Deskripsi | Tipe data | Diperlukan | Nilai default | Catatan |
connector | Tipe tabel sumber. | STRING | Ya | Tidak ada nilai default | Atur nilainya menjadi |
rows-per-second | Laju penghasilan data acak. | LONG | Tidak | 10000 (baris data per detik) | Tidak tersedia. |
number-of-rows | Jumlah total baris data yang dapat dihasilkan. | LONG | Tidak | Tidak ada nilai default | Secara default, tabel sumber data tak terbatas dihasilkan. Jika generator bidang adalah generator urutan, pembuatan data untuk sumber selesai dan tabel terbatas dihasilkan setelah urutan bidang dibuat. |
fields.<field>.kind | Tipe generator yang menghasilkan data untuk <field>. | STRING | Tidak | random | Nilai valid:
Untuk informasi lebih lanjut tentang generator, lihat Generator. |
fields.<field>.min | Nilai acak minimum yang dapat dihasilkan. | Sama dengan tipe data <field> | Tidak | Nilai minimum untuk tipe data <field> | Parameter ini berlaku ketika parameter fields.<field>.kind disetel ke random. Hanya tipe data numerik yang didukung. |
fields.<field>.max | Nilai acak maksimum yang dapat dihasilkan. | Sama dengan tipe data <field> | Tidak | Nilai maksimum untuk tipe data <field> | Parameter ini berlaku ketika parameter fields.<field>.kind disetel ke random. Hanya tipe data numerik yang didukung. |
fields.<field>.max-past | Masa lalu maksimum relatif terhadap cap waktu mesin lokal saat ini ketika cap waktu acak dihasilkan. | DURATION | Tidak | 0 | Hanya tipe timestamp yang didukung. |
fields.<field>.length | Panjang string acak yang dihasilkan atau kapasitas satu set data yang dihasilkan. | INTEGER | Tidak | 100 | Tipe data berikut didukung:
|
fields.<field>.start | Nilai awal generator urutan. | Sama dengan tipe data <field> | Tidak | Tidak ada nilai default | Parameter ini berlaku ketika parameter fields.<field>.kind disetel ke sequence. |
fields.<field>.end | Nilai akhir generator urutan. | Sama dengan tipe data <field> | Tidak | Tidak ada nilai default | Parameter ini berlaku ketika parameter fields.<field>.kind disetel ke sequence. |
Ganti <field> dalam parameter dengan nama bidang yang didefinisikan dalam pernyataan DDL.
Generator
Konektor Datagen dapat menggunakan salah satu jenis generator berikut untuk menghasilkan data acak:
Generator acak: menghasilkan nilai acak. Anda dapat menentukan nilai maksimum dan minimum untuk data yang dihasilkan secara acak.
Generator urutan: menghasilkan nilai berurutan dalam rentang tertentu. Ketika urutan mencapai nilai akhir, proses pembuatan data berakhir. Oleh karena itu, jika generator urutan digunakan, tabel terbatas akan dihasilkan. Anda dapat menentukan nilai awal dan akhir urutan.
Tabel berikut menjabarkan jenis generator yang didukung untuk setiap tipe data.
Tipe data | Generator yang didukung | Catatan |
BOOLEAN | Random | Tidak tersedia. |
CHAR | Random dan sequence | Tidak tersedia. |
VARCHAR | Random dan sequence | Tidak tersedia. |
BINARY | Random dan sequence | Tidak tersedia. |
VARBINARY | Random dan sequence | Tidak tersedia. |
STRING | Random dan sequence | Tidak tersedia. |
DECIMAL | Random dan sequence | Tidak tersedia. |
TINYINT | Random dan sequence | Tidak tersedia. |
SMALLINT | Random dan sequence | Tidak tersedia. |
INT | Random dan sequence | Tidak tersedia. |
BIGINT | Random dan sequence | Tidak tersedia. |
FLOAT | Random dan sequence | Tidak tersedia. |
DOUBLE | Random dan sequence | Tidak tersedia. |
DATE | Random | Menggunakan tanggal saat ini mesin lokal. |
TIME | Random | Menggunakan waktu saat ini mesin lokal. |
TIMESTAMP | Random | Menghasilkan nilai dalam rentang waktu masa lalu maksimum relatif terhadap cap waktu saat ini mesin lokal. |
TIMESTAMP_LTZ | Random | Menghasilkan nilai dalam rentang waktu masa lalu maksimum relatif terhadap cap waktu saat ini mesin lokal. |
ROW | Random | Menghasilkan subbidang acak. |
ARRAY | Random | Menghasilkan elemen acak. |
MAP | Random | Menghasilkan pasangan acak (key,value). |
MULTISET | Random | Menghasilkan elemen acak. |
Contoh
Dalam banyak kasus, Konektor Datagen digunakan bersama dengan klausa LIKE untuk mensimulasikan tabel. Contoh kode:
CREATE TABLE datagen_source (
id INT,
score INT
) WITH (
'connector' = 'datagen',
'fields.id.kind'='sequence',
'fields.id.start'='1',
'fields.id.end'='50',
'fields.score.kind'='random',
'fields.score.min'='70',
'fields.score.max'='100'
);