Gunakan pernyataan BUAT ETL untuk membuat tugas ekstrak, transformasi, dan muat (ETL) di mesin aliran.
Mesin dan versi
BUAT ETL hanya berlaku untuk mesin aliran. Versi 3.1.8 atau yang lebih baru diperlukan.
Anda dapat melihat versi mesin dan memperbarui versi minor di Konsol.
Sintaksis
create_etl_statement ::= CREATE ETL [IF NOT EXISTS] etl_name
[WITH etl_properties]
AS INSERT INTO [[catalog_name.]db_name.]table_name column_list
select_statement
etl_properties ::= '(' property_definition (',' property_definition)* ')'
property_definition ::= property_name '=' property_value
column_list ::= '(' column_name (',' column_name)* ')'Catatan penggunaan
Nama ETL (etl_name)
Wajib. Nama ETL harus memenuhi aturan berikut:
Nama dapat berisi angka, huruf besar, huruf kecil, titik (.), tanda hubung (-), dan garis bawah (_).
Nama tidak boleh dimulai dengan titik (.) atau tanda hubung (-).
Panjangnya harus antara 1 hingga 255 karakter.
Properti ETL (etl_properties)
Gunakan kata kunci WITH untuk menambahkan properti ETL berikut:
Kurung nama properti dengan backtick (`) dan nilai properti dengan tanda kutip tunggal ('). Contohnya, `parallelism` = '2'.
Properti | Tipe data | Deskripsi | Nilai default |
parallelism | INTEGER | Tingkat paralelisme untuk tugas. | 1 |
sink.ignore-update-before | BOOLEAN | Menentukan apakah akan mengabaikan -U selama operasi sink. | false |
sink.ignore-delete | BOOLEAN | Menentukan apakah akan mengabaikan -D selama operasi sink. | false |
sink.null-mode | STRING | Menentukan apakah akan menulis nilai null selama operasi sink. Nilai valid:
| NO_OP |
udf.xxxx | STRING | Mengonfigurasi fungsi yang ditentukan pengguna (UDF). Anda harus mengunggah file JAR UDF sebelum menggunakan properti ini. Parameter menggunakan format | Tidak ada |
stream.xxx | ANY | Parameter untuk pekerjaan mesin aliran. Contohnya, | Tidak ada |
Tentukan tabel sink
Parameter | Wajib | Deskripsi |
catalog_name | Tidak | Katalog tabel sink. |
db_name | Tidak | Database tempat tabel sink berada. |
table_name | Ya | Nama tabel sink. |
column_name | Ya | Nama kolom dalam tabel sink. |
Pernyataan kueri SQL (select_statement)
Pernyataan kueri SQL digunakan untuk memfilter data. Contohnya, SELECT p1, c1 FROM `lindorm_table`.`default`.`source` WHERE c1 > 10;.
Contoh
Asumsikan bahwa tabel sumber source dan tabel sink sink di LindormTable memiliki struktur berikut:
-- Tabel sumber: source
CREATE TABLE source(p1 INT, c1 DOUBLE, PRIMARY KEY(p1));
-- Tabel sink: sink
CREATE TABLE sink(p1 INT, c1 DOUBLE, PRIMARY KEY(p1));Contoh 1: Buat tugas ETL bernama `filter1`. Tugas ini menyisipkan data yang memenuhi kondisi tertentu dari tabel sumber
sourceke tabel sinksink.CREATE ETL IF NOT EXISTS filter1 AS INSERT INTO `lindorm_table`.`default`.`sink` (p1, c1) SELECT p1, c1 FROM `lindorm_table`.`default`.`source` WHERE c1 > 10;Contoh 2: Buat tugas ETL bernama `filter2`. Tugas ini menyisipkan data yang memenuhi kondisi tertentu dari tabel sumber
sourceke tabel sinksinkdan menambahkan properti.CREATE ETL IF NOT EXISTS filter2 WITH ( `parallelism` = '2', `stream.execution.checkpointing.interval` = '30000' ) AS INSERT INTO `lindorm_table`.`default`.`sink` (p1, c1) SELECT p1, c1 FROM `lindorm_table`.`default`.`source` WHERE c1 > 10;