All Products
Search
Document Center

DataWorks:Sumber data StarRocks

Last Updated:Mar 07, 2026

Sumber data StarRocks memungkinkan Anda membaca dan menulis data ke StarRocks. Topik ini menjelaskan kemampuan yang didukung oleh DataWorks untuk sinkronisasi data StarRocks.

Versi yang didukung

  • Semua versi EMR Serverless StarRocks didukung.

  • E-MapReduce pada ECS: StarRocks 2.1.

  • StarRocks Community Edition didukung.

    Catatan
    • DataWorks hanya terhubung ke StarRocks melalui jaringan internal. Oleh karena itu, Community Edition StarRocks harus dideploy pada E-MapReduce di ECS.

    • Jika Anda mengalami masalah kompatibilitas dengan sumber data ini, kirimkan tiket.

Batasan

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

  • Saat melakukan sinkronisasi real-time seluruh database dari MySQL ke StarRocks, operasi DDL selain TRUNCATE tidak didukung. Anda dapat mengabaikan operasi DDL tersebut atau mengonfigurasi tugas agar melaporkan error.

Tipe data yang didukung

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

Konektivitas jaringan

EMR Serverless StarRocks

Untuk memastikan konektivitas jaringan, Anda harus menambahkan alamat IP kelompok sumber daya DataWorks ke daftar izin (allowlist) alamat IP instans EMR Serverless StarRocks.

StarRocks yang dikelola sendiri

Pastikan kelompok sumber daya DataWorks dapat mengakses query port, FE port, dan BE port instans StarRocks Anda. Port defaultnya 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 makna parameter saat menambahkan sumber data.

Pilih mode koneksi untuk StarRocks berdasarkan lingkungan jaringan Anda:

Kasus penggunaan 1: Koneksi jaringan internal (disarankan)

Koneksi jaringan internal menyediakan latensi rendah dan keamanan tinggi tanpa memerlukan akses jaringan publik.

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

  • Mode instans Alibaba Cloud dan mode Connection string didukung:

    • Pilih ApsaraDB for RDS: Pilih langsung instans StarRocks dalam VPC yang sama. Sistem secara otomatis mendapatkan informasi koneksi.

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

Kasus penggunaan 2: Koneksi jaringan publik

Transfer data melalui jaringan publik memiliki risiko keamanan. Gunakan kontrol keamanan seperti allowlist IP dan autentikasi berbasis IP.

  • Kasus penggunaan: Anda perlu mengakses instans StarRocks melalui jaringan publik, misalnya untuk akses lintas wilayah atau dari lingkungan on-premises.

  • Hanya mode Connection string yang didukung. Pastikan akses jaringan publik diaktifkan untuk instans StarRocks Anda:

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

Catatan

Secara default, kelompok sumber daya Serverless tidak dapat mengakses jaringan publik. Untuk terhubung ke instans StarRocks menggunakan titik akhir publik, Anda harus mengonfigurasi NAT Gateway dan alamat IP elastis (EIP) untuk VPC yang terikat guna mengaktifkan akses jaringan publik. Anda juga harus memastikan bahwa kelompok sumber daya Serverless dapat mengakses query port, FE port, dan BE port instans StarRocks Anda. Port defaultnya adalah 9030, 8030, dan 8040.

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

  • FE: Anda dapat memperoleh informasi FE di halaman detail instans.

    image.png

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

    image.png

    Catatan

    Untuk membuat database, jalankan perintah SQL langsung di editor SQL.

Pengembangan tugas sinkronisasi data

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

Sinkronisasi batch untuk satu tabel

Sinkronisasi real-time untuk satu tabel

Sinkronisasi batch untuk seluruh database

Sinkronisasi real-time untuk seluruh database

Lampiran: Kode dan parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

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

Contoh kode Reader

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

Parameter Reader

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang Anda tentukan saat mengonfigurasi sumber data StarRocks.

column

Kumpulan nama kolom dalam tabel yang dikonfigurasi untuk disinkronkan. Jika Anda ingin menambahkan hint SET_VAR saat membaca data dari StarRocks, Anda dapat menambahkan hint tersebut sebelum nama kolom pertama dalam column. Misalnya, jika kolom yang akan disinkronkan adalah id dan Anda ingin menambahkan SET_VAR(enable_spill = true), konfigurasikan column sebagai [ "/*+ SET_VAR(enable_spill = true)*/ id"].

Ya

Tidak ada

where

Dalam skenario bisnis nyata, filter umum untuk menyinkronkan data hari ini adalah menentukan klausa where sebagai gmt_create>${bizdate}.

  • Anda dapat menggunakan klausa where untuk menyinkronkan data bisnis inkremental secara efektif.

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

Tidak

Tidak ada

table

Tabel sumber.

Ya

Tidak ada

splitPk

Saat StarRocks Reader mengekstraksi data, Anda dapat menentukan parameter splitPk untuk membagi data berdasarkan bidang yang diberikan untuk splitPk. Hal ini memulai tugas sinkronisasi data konkuren dan meningkatkan efisiensi. Kami menyarankan menggunakan primary key tabel sebagai kunci pemisah karena primary key biasanya terdistribusi merata, yang membantu mencegah hot spot data pada shard yang dihasilkan.

Tidak

Tidak ada

Contoh kode Writer

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "loadProps": {
            "row_delimiter": "",
            "column_separator": ""
        },
        "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 Writer

Parameter

Deskripsi

Wajib

Default

datasource

Nama sumber data StarRocks.

Ya

Tidak ada

selectedDatabase

Nama database StarRocks.

Tidak

Nama database yang Anda tentukan saat mengonfigurasi sumber data StarRocks.

loadProps

Parameter permintaan untuk pekerjaan StarRocks StreamLoad. Anda dapat mengonfigurasi parameter impor untuk mengimpor data dalam format CSV. Jika tidak diperlukan konfigurasi khusus, atur parameter ini ke {}. Parameter berikut tersedia:

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

  • row_delimiter: Pemisah baris untuk impor CSV. Default: .

Jika data Anda berisi koma atau baris baru, Anda harus menentukan karakter lain sebagai pembatas. Contoh berikut menunjukkan cara menggunakan karakter khusus:

{"column_separator":"","row_delimiter":""}

StreamLoad juga mendukung impor data dalam format JSON. Anda dapat mengatur parameter format ke json:

{
  "format": "json"
}

Parameter berikut dapat dikonfigurasi untuk format JSON:

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

    Dalam skenario nyata, data JSON yang akan diimpor mungkin dibungkus dalam struktur array luar []. Dalam situasi ini, kami menyarankan Anda mengatur parameter ini ke true. StarRocks kemudian akan menghapus tanda kurung siku luar [] dan mengimpor setiap elemen di dalam tanda kurung sebagai baris data terpisah. Jika Anda mengatur parameter ini ke false, StarRocks mengurai seluruh data JSON sebagai satu array tunggal dan mengimpornya sebagai satu baris data.

    Misalnya, 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 terpisah dan mengimpornya ke tabel StarRocks tujuan.

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

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

    Catatan

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

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

  • strict_mode: Menentukan apakah akan mengaktifkan mode ketat.

    Nilai yang valid:

    • true: Mengaktifkan mode ketat. StarRocks menyaring baris data yang salah, hanya mengimpor baris data yang benar, dan mengembalikan detail tentang data yang salah.

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

    Nilai default: false.

Ya

Tidak ada

column

Kolom tujuan untuk menulis data.

Ya

Tidak ada

loadUrl

Masukkan IP FrontEnd StarRocks dan port HTTP (default adalah 8030). Jika Anda memiliki beberapa node FrontEnd, Anda dapat memasukkan semuanya dan memisahkan entri dengan koma (,).

Ya

Tidak ada

table

Tabel tujuan.

Ya

Tidak ada

preSql

Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi dimulai. Misalnya, Anda dapat menggunakan TRUNCATE TABLE tablename untuk menghapus data yang ada di tabel.

Tidak

Tidak ada

postSql

Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi selesai.

Tidak

Tidak ada

maxBatchRows

Jumlah maksimum baris per batch tulis.

Tidak

500000

maxBatchSize

Ukuran data maksimum per batch tulis, dalam byte.

Tidak

5242880

strategyOnError

Kebijakan untuk menangani exception selama penulisan batch.

Nilai yang valid:

  • exit: Jika terjadi exception saat menulis data ke StarRocks, tugas sinkronisasi gagal dan keluar.

  • batchDirtyData. Jika terjadi exception saat menulis data ke StarRocks, batch data saat ini dicatat sebagai dirty data.

Nilai default: exit.

Tidak

exit