全部产品
Search
文档中心

DataWorks:Sumber data StarRocks

更新时间:Nov 10, 2025

Sumber data StarRocks menyediakan saluran dua arah untuk membaca dan menulis data ke StarRocks. Topik ini menjelaskan cara menggunakan DataWorks untuk melakukan sinkronisasi data StarRocks.

Versi yang didukung

  • Semua versi EMR Serverless StarRocks.

  • EMR pada ECS: StarRocks 2.1.

  • Edisi komunitas StarRocks didukung.

    Catatan
    • Karena DataWorks hanya mendukung koneksi ke StarRocks melalui jaringan internal, Anda harus menerapkan edisi komunitas StarRocks pada EMR di ECS.

    • Edisi komunitas StarRocks bersifat terbuka. Jika Anda mengalami masalah kompatibilitas saat menggunakan sumber data ini, Anda dapat mengirimkan Tiket untuk memberikan masukan.

Tipe bidang yang didukung

Hanya tipe bidang numerik, string, dan tanggal yang didukung.

Prasyarat untuk sinkronisasi data (konektivitas jaringan)

EMR Serverless StarRocks

Untuk memastikan konektivitas jaringan, tambahkan alamat IP kelompok sumber daya DataWorks Anda ke daftar putih jaringan internal instans EMR Serverless StarRocks.

  • Untuk alamat IP kelompok sumber daya DataWorks yang perlu Anda tambahkan ke daftar putih, lihat Konfigurasi umum: Menambahkan daftar putih.

  • Gambar berikut menunjukkan tempat menambahkan alamat IP ke daftar putih untuk instans EMR Serverless StarRocks.

    image.png

    StarRocks yang dikelola sendiri

    Pastikan kelompok sumber daya DataWorks dapat mengakses port kueri, port FE, dan port BE StarRocks. Port default masing-masing adalah 9030, 8030, dan 8040.

Menambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Manajemen sumber data. Anda dapat melihat infotips parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Pilih mode koneksi StarRocks berdasarkan lingkungan jaringan Anda:

Skenario 1: Koneksi jaringan internal (Direkomendasikan)

Koneksi melalui jaringan internal memiliki latensi rendah dan menyediakan transmisi data yang lebih aman. Tidak diperlukan izin jaringan publik tambahan.

  • Skenario: Instans StarRocks Anda dan kelompok sumber daya arsitektur tanpa server berada dalam VPC yang sama.

  • Mode koneksi yang didukung:

    • Pilih Alibaba Cloud Instance Mode. Saat Anda memilih instans StarRocks dalam VPC yang sama, sistem secara otomatis mengambil informasi koneksi.

    • Pilih Connection String Mode untuk memasukkan secara manual alamat internal atau alamat IP, port, dan Load URL instans.

Skenario 2: Koneksi Internet

Transmisi data melalui Internet menimbulkan risiko keamanan. Gunakan kebijakan keamanan seperti daftar putih dan autentikasi alamat IP untuk mengurangi risiko tersebut.

  • Skenario: Anda perlu mengakses instans StarRocks melalui Internet, misalnya untuk akses lintas wilayah atau on-premises.

  • Mode koneksi yang didukung: Connection String Mode. Pastikan akses jaringan publik diaktifkan untuk instans StarRocks.

    • Pilih Connection String Mode dan masukkan secara manual alamat publik atau alamat IP, port, serta Load URL instans.

Catatan

Secara default, kelompok sumber daya arsitektur tanpa server tidak dapat mengakses Internet. Untuk menghubungkan ke instans StarRocks menggunakan alamat IP publik, Anda harus mengonfigurasi Gateway NAT Internet dan elastic IP addresses (EIPs) untuk VPC yang terhubung. Hal ini memungkinkan kelompok sumber daya mengakses sumber data melalui Internet. Selain itu, pastikan kelompok sumber daya arsitektur tanpa server dapat mengakses port kueri, port FE, dan port BE StarRocks. Port default masing-masing adalah 9030, 8030, dan 8040.

Jika Anda menggunakan Alibaba Cloud EMR StarRocks Serverless, atur Host Address/IP ke Internal Address atau Public Address, dan atur port ke Query Port.

  • FE: Anda dapat menemukan nilai ini di halaman detail instans.

    image.png

  • Database: Setelah Anda terhubung ke instans menggunakan EMR StarRocks Manager, Anda dapat mengakses database dari SQL Editor atau Data Management.

    image.png

    Catatan

    Untuk membuat database, Anda dapat langsung mengeksekusi perintah SQL di SQL Editor.

Mengembangkan tugas sinkronisasi data

Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Panduan konfigurasi tugas sinkronisasi offline tabel tunggal

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasi tugas sinkronisasi batch menggunakan editor kode

Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi selengkapnya, lihat Konfigurasi tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "datasource": "starrocks_datasource",
        "column": [
            "id",
            "name"
        ],
        "where": "id>100",
        "table": "table1",
        "splitPk": "id"
    },
    "name": "Reader",
    "category": "reader"
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Nilai default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang dikonfigurasi di sumber data StarRocks.

column

Kolom yang akan dibaca dari tabel sumber.

Ya

Tidak ada

where

Kondisi filter. Dalam banyak skenario, Anda mungkin hanya perlu menyinkronkan data hari ini. Untuk melakukan ini, atur kondisi where menjadi gmt_create>$bizdate.

  • Kondisi where memungkinkan sinkronisasi inkremental yang efektif.

  • Jika Anda tidak memberikan pernyataan where, atau tidak memberikan kunci atau nilai untuk where, maka akan dilakukan sinkronisasi data penuh.

Tidak

Tidak ada

table

Nama tabel sumber.

Ya

Tidak ada

splitPk

Saat StarRocks Reader mengekstraksi data, menentukan splitPk memberi tahu sistem untuk menggunakan bidang ini untuk sharding data. Hal ini memulai tugas concurrent dan meningkatkan efisiensi sinkronisasi data. Kami merekomendasikan Anda menggunakan kunci utama tabel sebagai splitPk. Kunci utama biasanya terdistribusi merata, yang membantu mencegah hot spot data pada shard.

Tidak

Tidak ada

Contoh skrip Writer

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "loadProps": {
            "row_delimiter": "\\x02",
            "column_separator": "\\x01"
        },
        "datasource": "starrocks_public",
        "column": [
            "id",
            "name"
        ],
        "loadUrl": [
            "1.1.X.X:8030"
        ],
        "table": "table1",
        "preSql": [
            "truncate table table1"
        ],
        "postSql": [
        ],
        "maxBatchRows": 500000,
        "maxBatchSize": 5242880,
        "strategyOnError": "exit"
    },
    "name": "Writer",
    "category": "writer"
}

Parameter skrip Writer

Parameter

Deskripsi

Wajib

Nilai default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang dikonfigurasi di sumber data StarRocks.

loadProps

Parameter permintaan untuk StarRocks StreamLoad. Saat Anda mengimpor data menggunakan StreamLoad CSV, Anda dapat mengonfigurasi parameter impor di sini. Jika Anda tidak memiliki konfigurasi khusus, gunakan {}. Parameter yang dapat dikonfigurasi meliputi:

  • column_separator: Pemisah kolom untuk impor CSV. Nilai default adalah \t.

  • row_delimiter: Pemisah baris untuk impor CSV. Nilai default adalah \n.

Jika data Anda berisi \t atau \n, Anda harus menggunakan karakter lain sebagai pemisah. Contoh berikut menunjukkan cara menggunakan karakter khusus:

{"column_separator":"\\x01","row_delimiter":"\\x02"}

StreamLoad juga mendukung impor data dalam format JSON. Anda dapat mengonfigurasinya sebagai berikut:

{
  "format": "json"
}

Parameter yang dapat dikonfigurasi untuk format JSON adalah:

  • strip_outer_array: Menentukan apakah struktur array terluar akan dihilangkan. Nilai yang valid: true dan false. Nilai default: false.

    Dalam skenario nyata, data JSON yang akan diimpor mungkin diapit oleh sepasang tanda kurung siku []. Dalam kasus ini, atur parameter ini ke true. StarRocks kemudian akan menghapus tanda kurung luar [] dan mengimpor setiap objek dalamnya sebagai baris terpisah. Jika Anda mengatur parameter ini ke false, StarRocks akan mengurai seluruh file JSON sebagai satu array dan mengimpornya sebagai satu baris.

    Sebagai contoh, data JSON yang akan diimpor adalah sebagai berikut:

    [{"category":1,"author":2},{"category":3,"author":4}]
    
    • Jika Anda mengatur parameter ini ke true, StarRocks akan mengurai {"category":1,"author":2} dan {"category":3,"author":4} menjadi dua baris dan mengimpornya ke baris yang sesuai di tabel StarRocks tujuan.

    • Jika Anda mengatur parameter ini ke false, StarRocks akan mengurai seluruh array JSON sebagai satu baris dan mengimpornya ke tabel StarRocks tujuan.

  • ignore_json_size: Menentukan apakah ukuran badan JSON dalam permintaan HTTP akan diperiksa.

    Catatan

    Secara default, ukuran badan JSON dalam permintaan HTTP tidak boleh melebihi 100 MB. Jika ukuran melebihi 100 MB, kesalahan akan dikembalikan: The size of this batch exceed the max size [104857600] of json type data data [8617627793].Set ignore_json_size to skip check,although it may lead enormous memory consuming. Untuk mencegah kesalahan ini, tambahkan ignore_json_size: true ke header permintaan HTTP untuk melewati pemeriksaan ukuran.

  • compression: Menentukan algoritma kompresi yang digunakan selama transmisi data StreamLoad. Algoritma yang didukung: GZIP, BZIP2, LZ4_FRAME, dan ZSTD.

  • strict_mode: Menentukan apakah mode ketat diaktifkan.

    Nilai yang valid:

    • true: Mengaktifkan mode ketat. StarRocks memfilter baris data yang tidak valid, hanya mengimpor baris data yang valid, dan mengembalikan detail mengenai data yang tidak valid.

    • false: Menonaktifkan mode ketat. StarRocks mengonversi bidang yang gagal ditransformasi menjadi nilai NULL dan mengimpor baris data yang rusak ini yang berisi nilai NULL bersama dengan baris data yang benar.

    Nilai default: false.

Ya

Tidak ada

column

Kolom yang akan ditulis ke tabel tujuan.

Ya

Tidak ada

loadUrl

Masukkan alamat IP dan port HTTP frontend (FE) StarRocks. Port default adalah 8030. Jika Anda memiliki beberapa node FE, Anda dapat memasukkan semuanya, dipisahkan dengan koma (,).

Ya

Tidak ada

table

Nama tabel yang akan disinkronkan.

Ya

Tidak ada

preSql

Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dijalankan. Misalnya, gunakan truncate table tablename untuk menghapus data lama dari tabel sebelum tugas dimulai.

Tidak

Tidak ada

postSql

Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data selesai.

Tidak

Tidak ada

maxBatchRows

Jumlah maksimum baris yang ditulis per batch.

Tidak

500000

maxBatchSize

Jumlah maksimum byte yang ditulis per batch.

Tidak

5242880

strategyOnError

Kebijakan penanganan pengecualian selama penulisan batch ke StarRocks.

Nilai yang valid:

  • exit: Tugas sinkronisasi gagal dan keluar saat terjadi pengecualian saat menulis ke StarRocks.

  • batchDirtyData. Saat terjadi pengecualian saat menulis ke StarRocks, batch data saat ini dicatat sebagai data kotor.

Nilai default: exit.

Tidak

exit