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.
-
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.
CatatanUntuk 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
-
Sumber yang didukung: Semua sumber data yang didukung oleh Data Integration.
-
Untuk informasi lebih lanjut, lihat Codeless UI dan Code Editor.
-
Untuk daftar lengkap parameter dan contoh skrip Code Editor, lihat Lampiran: Contoh skrip dan deskripsi parameter.
Sinkronisasi real-time tabel tunggal
-
Sumber yang didukung: Kafka
-
Panduan konfigurasi: Konfigurasi tugas sinkronisasi data real-time
Sinkronisasi batch seluruh database
-
Sumber yang didukung: MySQL
-
Panduan konfigurasi: Konfigurasi tugas sinkronisasi data batch
Sinkronisasi real-time seluruh database
-
Sumber yang didukung: MySQL, Oracle, dan PolarDB
-
Panduan konfigurasi: Konfigurasi tugas sinkronisasi data real-time
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 |
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
|
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:
Jika data Anda mengandung \t atau \n, Anda harus menentukan karakter lain sebagai pemisah. Contoh:
Stream Load juga mendukung impor data JSON. Untuk melakukannya, konfigurasikan parameter berikut:
Parameter berikut tersedia untuk format JSON:
|
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 |
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 |
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:
Nilai default: |
Tidak |
exit |