All Products
Search
Document Center

DataWorks:Sumber data StarRocks

Last Updated:Jun 21, 2026

Sumber data StarRocks memungkinkan Anda membaca dari dan menulis ke StarRocks. Topik ini menjelaskan cara menyinkronkan data dengan StarRocks menggunakan DataWorks.

Versi yang didukung

  • Mendukung semua versi EMR Serverless StarRocks.

  • Mendukung EMR on ECS: StarRocks versi 2.1.

  • Mendukung StarRocks Community Edition.

    Catatan
    • DataWorks hanya terhubung ke StarRocks melalui VPC. Oleh karena itu, Anda harus menerapkan StarRocks Community Edition pada kluster EMR on ECS.

    • StarRocks Community Edition merupakan platform terbuka. Jika Anda mengalami masalah kompatibilitas saat menggunakan sumber data ini, kirimkan tiket untuk mendapatkan dukungan.

Batasan

  • Untuk sinkronisasi real-time seluruh database dari MySQL ke StarRocks, tabel StarRocks tujuan harus menggunakan model primary key.

  • Sinkronisasi real-time seluruh database dari MySQL ke StarRocks tidak mendukung operasi Data Definition Language (DDL) selain TRUNCATE. Untuk operasi DDL lainnya, Anda dapat memilih untuk mengabaikannya atau mengonfigurasi tugas agar melaporkan error.

Tipe data yang didukung

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

Konektivitas jaringan

EMR Serverless StarRocks

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

  • Untuk mendapatkan alamat IP kelompok sumber daya DataWorks, lihat Konfigurasi umum: Tambahkan daftar putih.

  • Untuk mengonfigurasi daftar putih instans EMR Serverless StarRocks Anda, ikuti langkah-langkah berikut:

    Pada halaman detail instans, di bagian Basic Information, klik tautan internal IP address whitelist di samping security group ID untuk mengonfigurasi daftar putih alamat IP internal. Di bagian FE Details, klik tautan public whitelist di samping Public Endpoint untuk mengonfigurasi daftar putih publik.

StarRocks yang dikelola sendiri

Pastikan kelompok sumber daya DataWorks dapat mengakses query port, FE port, dan BE port instans StarRocks Anda. Port-port tersebut biasanya adalah 9030, 8030, dan 8040.

Tambahkan 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 deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Pilih mode koneksi untuk StarRocks berdasarkan lingkungan jaringan Anda:

Skenario 1: Koneksi VPC

Koneksi VPC memiliki latensi rendah dan aman, serta tidak memerlukan akses jaringan publik.

  • Kasus penggunaan: Instans StarRocks Anda dan kelompok sumber daya serverless berada dalam VPC yang sama.

  • Mode yang didukung: Mode instans Alibaba Cloud dan mode connection string:

    • Pilih ApsaraDB for RDS: Pilih langsung instans StarRocks dalam VPC yang sama. Sistem secara otomatis mengambil informasi koneksi, sehingga tidak diperlukan konfigurasi manual.

    • Pilih User-created Data Store with Public IP Addresses: Masukkan secara manual endpoint intranet, alamat IP, port, dan Load URL instans.

Skenario 2: Koneksi Internet

Transmisi data melalui internet menimbulkan risiko keamanan. Gunakan kontrol keamanan seperti daftar putih dan kontrol akses berbasis IP.

  • Kasus penggunaan: Anda perlu mengakses instans StarRocks melalui internet, misalnya lintas wilayah atau dari lingkungan lokal.

  • Mode yang didukung: mode connection string (pastikan akses jaringan publik diaktifkan untuk instans StarRocks):

    • Pilih User-created Data Store with Public IP Addresses: Masukkan secara manual endpoint publik, alamat IP, port, dan Load URL instans.

Catatan

Secara default, kelompok sumber daya serverless tidak dapat mengakses internet. Untuk terhubung ke instans StarRocks menggunakan endpoint publik, Anda harus mengonfigurasi NAT gateway dan EIP untuk VPC terkait agar mengaktifkan akses internet. Anda juga harus memastikan bahwa kelompok sumber daya dapat mengakses query port, FE port, dan BE port instans StarRocks, yang biasanya adalah port 9030, 8030, dan 8040.

Jika Anda menggunakan EMR Serverless StarRocks, atur Host Address/IP Address ke Internal Endpoint atau Public network address, dan gunakan query port sebagai port.

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

    Di bagian FE Details, temukan public endpoint dan query port (default adalah 9030).

  • Database: Setelah terhubung ke instans menggunakan EMR StarRocks Manager, Anda dapat menemukan database di tampilan SQL Editor atau Metadata Management.

    Catatan

    Untuk membuat database, Anda dapat menjalankan pernyataan SQL langsung di editor SQL.

Tugas sinkronisasi data

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

Sinkronisasi batch tabel tunggal

Sinkronisasi real-time tabel tunggal

Sinkronisasi batch seluruh database

Sinkronisasi real-time seluruh database

Contoh skrip dan parameter

Konfigurasi tugas sinkronisasi batch menggunakan code editor

Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan code editor, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan code editor.

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

Default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang dikonfigurasi untuk sumber data StarRocks.

column

Kolom tabel sumber yang akan disinkronkan. Untuk menambahkan hint SET_VAR saat membaca data dari StarRocks, tambahkan hint tersebut sebelum nama kolom pertama dalam array column. Misalnya, jika Anda ingin menyinkronkan kolom id dan menambahkan hint SET_VAR(enable_spill = true), atur parameter column menjadi [ "/*+ SET_VAR(enable_spill = true)*/ id"].

Ya

Tidak ada

where

Kondisi filter. Dalam skenario bisnis umum di mana Anda menyinkronkan data yang dihasilkan pada hari ini, Anda dapat mengatur kondisi where menjadi gmt_create>${bizdate}.

  • Kondisi where memungkinkan sinkronisasi data inkremental yang efisien.

  • Jika Anda tidak memberikan klausa where, atau tidak memberikan kunci atau nilai untuk parameter where, operasi tersebut dianggap sebagai sinkronisasi data penuh.

Tidak

Tidak ada

table

Tabel sumber tempat Anda ingin menyinkronkan data.

Ya

Tidak ada

splitPk

Menentukan parameter splitPk memungkinkan sinkronisasi data paralel dengan melakukan sharding data berdasarkan kolom yang ditentukan. Hal ini meningkatkan kinerja. Untuk hasil terbaik, gunakan primary key tabel sebagai parameter splitPk, karena kunci yang terdistribusi merata membantu mencegah hot spot data.

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

Default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang dikonfigurasi untuk sumber data StarRocks.

loadProps

Catatan

Saat menulis ke StarRocks dengan Stream Load, kebijakan penulisan (Upsert atau Append) ditentukan oleh model tabel tujuan dan tidak memerlukan konfigurasi. Tabel dengan model primary key menggunakan kebijakan Upsert, sedangkan model lainnya menggunakan kebijakan Append secara default.

Parameter permintaan untuk StarRocks Stream Load. Saat Anda menggunakan Stream Load untuk mengimpor data CSV, Anda dapat mengonfigurasi parameter impor secara opsional. Jika tidak diperlukan konfigurasi khusus, gunakan {}. Parameter yang dapat dikonfigurasi meliputi:

  • column_separator: pemisah kolom untuk impor CSV. Default: \t.

  • row_delimiter: pemisah baris untuk impor CSV. Default: \n.

Jika data Anda mengandung \t atau \n, Anda harus menentukan karakter lain sebagai pemisah. Contoh:

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

Stream Load juga mendukung impor data JSON. Untuk melakukannya, konfigurasikan parameter berikut:

{
  "format": "json"
}

Parameter berikut tersedia untuk format JSON:

  • strip_outer_array: menentukan apakah struktur array paling luar dipangkas. Nilai yang valid: true dan false. Nilai default: false.

    Dalam skenario bisnis nyata, data JSON yang akan diimpor mungkin diapit oleh sepasang tanda kurung paling luar ([]) yang merepresentasikan array. Dalam kasus ini, kami menyarankan Anda mengatur parameter ini ke true. StarRocks kemudian memangkas tanda kurung luar ([]) dan mengimpor setiap array dalam sebagai baris terpisah. Jika Anda mengatur parameter ini ke false, StarRocks mengurai seluruh file data JSON sebagai satu array dan mengimpornya sebagai satu baris.

    [{"category":1,"author":2},{"category":3,"author":4}]
    
    • Jika Anda mengatur parameter ini ke true, StarRocks 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 mengurai seluruh array JSON sebagai satu baris dan mengimpornya ke tabel StarRocks tujuan.

  • ignore_json_size: menentukan apakah ukuran body JSON dalam permintaan HTTP diperiksa.

    Catatan

    Secara default, ukuran body JSON dalam permintaan HTTP tidak boleh melebihi 100 MB. Jika ukuran body JSON melebihi 100 MB, pesan error berikut 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 huge memory consuming. Untuk mencegah error ini, Anda dapat menambahkan ignore_json_size: true ke header permintaan HTTP untuk melewati pemeriksaan ukuran body JSON.

  • compression: menentukan algoritma kompresi yang digunakan selama transmisi data Stream Load. 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 yang tidak valid, hanya mengimpor baris yang valid, dan mengembalikan detail tentang data yang tidak valid.

    • false: Menonaktifkan mode ketat. StarRocks mengonversi bidang yang gagal dikonversi menjadi nilai NULL dan mengimpor baris yang berisi nilai NULL tersebut bersama dengan baris data yang valid.

    Nilai default: false.

Ya

Tidak ada

column

Kolom tujuan tempat Anda ingin menyinkronkan data.

Ya

Tidak ada

loadUrl

Alamat IP dan port HTTP node frontend (FE) StarRocks. Port biasanya default ke 8030. Jika Anda memiliki beberapa node FE, Anda dapat menentukan semuanya, dipisahkan dengan koma (,).

Ya

Tidak ada

table

Tabel tujuan tempat Anda ingin menyinkronkan data.

Ya

Tidak ada

preSql

Pernyataan SQL yang dijalankan sebelum tugas sinkronisasi data dimulai. Misalnya, Anda dapat menjalankan TRUNCATE TABLE tablename untuk menghapus data yang ada dari tabel tujuan.

Tidak

Tidak ada

postSql

Pernyataan SQL yang dijalankan setelah tugas sinkronisasi data selesai.

Tidak

Tidak ada

maxBatchRows

Jumlah maksimum baris yang ditulis per batch.

Tidak

500000

maxBatchSize

Ukuran maksimum data yang ditulis per batch, dalam byte.

Tidak

5242880

strategyOnError

Kebijakan untuk menangani error yang terjadi selama penulisan batch.

Nilai yang valid:

  • exit: Jika terjadi error penulisan, tugas gagal dan keluar.

  • batchDirtyData: Jika terjadi error penulisan, tugas mencatat batch data saat ini sebagai dirty data.

Nilai default: exit.

Tidak

exit