全部产品
Search
文档中心

Lindorm:BUAT ETL

更新时间:Oct 29, 2025

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.

Catatan

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:

Penting

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: Menyimpan dan menulis nilai null dari data sumber.

  • SKIP: Melewati dan tidak menulis nilai null.

NO_OP

udf.xxxx

STRING

Mengonfigurasi fungsi yang ditentukan pengguna (UDF). Anda harus mengunggah file JAR UDF sebelum menggunakan properti ini. Parameter menggunakan format udf.<udfFunction> = <jarName>#<className>, di mana `udfFunction` adalah nama fungsi, `jarName` adalah nama paket JAR, dan `className` adalah nama kelas.

Tidak ada

stream.xxx

ANY

Parameter untuk pekerjaan mesin aliran. Contohnya, execution.checkpointing.interval.

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 source ke tabel sink sink.

    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 source ke tabel sink sink dan 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;