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.
CatatanKarena 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.

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.
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.

Database: Setelah Anda terhubung ke instans menggunakan EMR StarRocks Manager, Anda dapat mengakses database dari SQL Editor atau Data Management.
CatatanUntuk 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
Untuk prosedurnya, lihat Konfigurasi di Antarmuka tanpa kode dan Konfigurasi di editor kode.
Untuk semua parameter dan contoh skrip konfigurasi tugas di editor kode, lihat Lampiran: Contoh skrip dan deskripsi parameter.
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
| 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:
Jika data Anda berisi \t atau \n, Anda harus menggunakan karakter lain sebagai pemisah. Contoh berikut menunjukkan cara menggunakan karakter khusus: StreamLoad juga mendukung impor data dalam format JSON. Anda dapat mengonfigurasinya sebagai berikut: Parameter yang dapat dikonfigurasi untuk format JSON adalah:
| 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 | 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:
Nilai default: | Tidak | exit |