Topik ini menjelaskan cara menggunakan katalog untuk memigrasikan data offline dari StarRocks ke ApsaraDB for SelectDB.
Prasyarat
Pastikan instans StarRocks dan instans SelectDB dapat saling berkomunikasi.
Semua node kluster sumber data dan instans SelectDB berada dalam VPC yang sama. Jika tidak, Anda harus terlebih dahulu menyelesaikan masalah konektivitas jaringan. Untuk informasi lebih lanjut, lihat Bagaimana cara menyelesaikan masalah konektivitas jaringan antara instans ApsaraDB for SelectDB dan sumber data?
Tambahkan alamat IP instans StarRocks ke daftar putih instans SelectDB. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih.
Jika instans StarRocks memiliki daftar putih, tambahkan blok CIDR alamat IP instans SelectDB ke daftar putih instans StarRocks.
Untuk mendapatkan alamat IP instans SelectDB di VPC tempat instans tersebut berada, lakukan operasi yang dijelaskan dalam Bagaimana cara melihat alamat IP di VPC tempat instans ApsaraDB SelectDB saya berada?
Untuk mendapatkan Alamat IP publik instans SelectDB, jalankan perintah ping ke Titik akhir publik instans SelectDB untuk mendapatkan alamat IP-nya.
Anda memahami konsep katalog dan operasi dasarnya. Untuk informasi lebih lanjut, lihat Data lakehouse.
Lingkungan Contoh
Contoh ini menunjukkan cara memigrasikan data dari tabel `SR_t` di database StarRocks `starRocks_db` ke tabel `test_SR2SelectDB` di database SelectDB `test_db`. Anda dapat menyesuaikan parameter sesuai kebutuhan. Lingkungan contoh adalah sebagai berikut:
Database tujuan: test_db
Tabel tujuan: test_SR2SelectDB
Database sumber: starRocks_db
Tabel sumber: SR_t
Contoh: Persiapkan Data Sumber
Login ke instans StarRocks sumber Anda dan lakukan langkah-langkah berikut.
Buat database.
CREATE DATABASE starRocks_db;Buat tabel.
CREATE TABLE SR_t ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1");Masukkan data.
INSERT INTO SR_t VALUES (1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 35), (4, 'David', 40), (5, 'Eve', 45);
Prosedur
Sambungkan ke instans SelectDB. Untuk informasi lebih lanjut, lihat Sambungkan ke instans.
CatatanInstruksi
SWITCHtidak berfungsi saat Anda login menggunakan DMS. Anda harus terhubung menggunakan klien MySQL.Buat katalog Java Database Connectivity (JDBC) StarRocks. Untuk informasi lebih lanjut, lihat Sumber data JDBC.
CREATE CATALOG starrocks_catalog PROPERTIES ( "type"="jdbc", "user"="root", "password"="123456", "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo", "driver_url" = "mysql-connector-java-8.0.25.jar", "driver_class" = "com.mysql.cj.jdbc.Driver", "checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a" )Parameter
Parameter
Wajib
Nilai default
Deskripsi
user
Ya
Tidak ada
Nama pengguna untuk database StarRocks.
password
Ya
Tidak ada
Kata sandi untuk database StarRocks.
jdbc_url
Ya
Tidak ada
String koneksi JDBC. Harus berisi titik akhir database StarRocks.
driver_url
Ya
Tidak ada
Nama paket JAR driver JDBC.
CatatanGunakan
mysql-connector-java-8.0.25.jar.Untuk menggunakan paket JAR yang berbeda, ajukan tiket.
driver_class
Ya
Tidak ada
Nama kelas driver JDBC.
Atur parameter ini ke
com.mysql.cj.jdbc.Driver.lower_case_table_names
(Diganti nama menjadi `lower_case_meta_names` di versi 4.0)
Tidak
"false"
Menentukan apakah akan menyinkronkan nama database dan tabel dari sumber data JDBC eksternal dalam huruf kecil.
true: Anda dapat mengkueri database dan tabel dengan nama yang bukan huruf kecil dengan mempertahankan pemetaan dari nama huruf kecil ke nama sebenarnya di sistem jarak jauh. Dalam hal ini, nama database, tabel, dan kolom dikonversi menjadi huruf kecil.
false: Anda tidak dapat mengkueri database dan tabel dengan nama yang bukan huruf kecil.
PentingUntuk SelectDB 3.0:
Jika parameter
lower_case_table_namesfrontend (FE) diatur ke1atau2, Anda harus mengatur parameterlower_case_table_namesKatalog ketrue.Jika parameter
lower_case_table_namesFE diatur ke0, parameter Katalog dapat diatur ketrueataufalse.
Untuk SelectDB 4.0:
Jika parameter
lower_case_table_namesFE adalah0atau2, nama database, tabel, dan kolom tidak dikonversi.Jika parameter
lower_case_table_namesFE adalah1, nama tabel dikonversi menjadi huruf kecil, tetapi nama database dan kolom tidak.
only_specified_database
Tidak
"false"
Menentukan apakah hanya akan menyinkronkan database yang ditentukan.
true: Hanya menyinkronkan database yang ditentukan dalam URL JDBC.
false: Menyinkronkan semua database dalam URL JDBC.
include_database_list
Tidak
""
Ketika
only_specified_database=true, parameter ini menentukan beberapa database yang akan disinkronkan. Pisahkan nama database dengan koma (,). Nama database bersifat case-sensitive.exclude_database_list
Tidak
""
Ketika
only_specified_database=true, parameter ini menentukan beberapa database yang akan dikecualikan dari sinkronisasi. Pisahkan nama database dengan koma (,). Nama database bersifat case-sensitive.meta_names_mapping
Tidak
""
Jika sumber data eksternal memiliki nama yang hanya berbeda dalam kapitalisasi, seperti `DORIS` dan `doris`, mengkueri Katalog dapat menyebabkan kesalahan karena ambiguitas. Dalam kasus ini, konfigurasikan parameter
meta_names_mappinguntuk menyelesaikan konflik.Untuk informasi lebih lanjut, lihat Pengaturan sensitivitas kapitalisasi.
PentingParameter ini hanya berlaku untuk SelectDB 4.0.
Lihat katalog.
SHOW CATALOGS; -- Periksa apakah Katalog berhasil dibuat.Hasilnya adalah sebagai berikut.
+--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+ | CatalogId | CatalogName | Type | IsCurrent | CreateTime | LastUpdateTime | Comment | +--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+ | 436009309195 | starrocks_catalog | jdbc | | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 | | | 0 | internal | internal | yes | UNRECORDED | NULL | Doris internal catalog | +--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+(Opsi) Beralih ke katalog eksternal `SR_catalog`.
Anda dapat melihat dan mengakses data di katalog eksternal starrocks_catalog dengan cara yang sama seperti saat mengakses data di katalog internal.
CatatanSaat ini, ApsaraDB for SelectDB hanya mendukung operasi baca pada data di katalog eksternal.
SWITCH SR_catalog;(Opsi) Beralih ke katalog internal `internal`.
Jika Anda melewatkan langkah sebelumnya, lewati langkah ini.
SWITCH internal;(Opsi) Buat database.
Jika database tujuan telah dibuat, lewati langkah ini.
CREATE database test_db;Beralih ke database tujuan.
USE test_db;Buat tabel.
Jika tabel tujuan sudah ada, pastikan tipe data kolom target sesuai dengan tipe data kolom sumber di StarRocks.
Jika tabel tujuan belum ada, pastikan tipe data kolom target sesuai dengan tipe data kolom sumber di StarRocks saat membuat tabel.
Untuk informasi lebih lanjut tentang pemetaan kolom, lihat Pemetaan tipe.
CREATE TABLE test_SR2SelectDB ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1");Migrasikan data.
INSERT INTO test_SR2SelectDB SELECT * FROM doris_catalog.SR_db.SR_t;Verifikasi data yang diimpor.
SELECT * FROM test_SR2SelectDB;
Migrasi Data Inkremental
Dalam lingkungan produksi, data StarRocks mencakup data offline dan data inkremental. Skenario umum untuk memigrasikan data dari StarRocks ke SelectDB adalah menyalin data ke gudang data untuk akselerasi kueri. Untuk migrasi data inkremental, Anda dapat menggunakan salah satu dari dua metode berikut:
Saat menghasilkan data untuk SelectDB, tulis salinan data tersebut secara bersamaan ke SelectDB.
Gunakan pekerjaan periodik untuk membaca data terpartisi dari StarRocks dan menulisnya ke SelectDB.