All Products
Search
Document Center

ApsaraDB for SelectDB:Impor\ data\ menggunakan\ BitSail

Last Updated:Mar 28, 2026

BitSail adalah mesin integrasi data terdistribusi yang mendukung sinkronisasi offline, real-time, penuh, dan inkremental dari berbagai sumber data heterogen—termasuk MySQL, Hive, dan Kafka. ApsaraDB for SelectDB terintegrasi dengan BitSail melalui konektor SelectDB Sink, yang menulis data langsung ke instans SelectDB Anda melalui API Stream Load HTTP.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • BitSail versi 0.1.0 atau lebih baru yang telah diinstal

  • Instans ApsaraDB for SelectDB dengan setidaknya satu kluster

  • Port HTTP dan port MySQL dari instans SelectDB Anda (lihat Dapatkan detail koneksi)

Cara kerja

Konektor SelectDB Sink membaca bagian job.writer pada konfigurasi pekerjaan BitSail Anda dan mengalirkan data ke SelectDB. Setiap tugas penulisan:

  1. Melakukan autentikasi ke instans SelectDB menggunakan kredensial yang Anda berikan.

  2. Menyimpan catatan masuk dalam buffer hingga mencapai ukuran buffer yang dikonfigurasi atau hingga interval flush berakhir.

  3. Mengirimkan data yang dibuffer ke tabel target melalui pernyataan COPY INTO (format JSON secara default) atau Stream Load.

  4. Mencoba ulang penulisan yang gagal hingga batas percobaan ulang yang dikonfigurasi sebelum pekerjaan gagal.

Dapatkan detail koneksi

Untuk mendapatkan nilai titik akhir dan port yang diperlukan oleh konektor:

  1. Masuk ke Konsol ApsaraDB for SelectDB.

  2. Buka halaman Instance Details dari instans Anda.

  3. Pada halaman Basic Information, temukan bagian Network Information.

  4. Salin nilai VPC Endpoint atau Public Endpoint, beserta nilai HTTP Port dan MySQL Port.

Konfigurasikan konektor SelectDB Sink

Tambahkan blok job.writer ke file konfigurasi pekerjaan BitSail Anda dan atur parameter berikut.

Parameter wajib

ParameterDeskripsiContoh
classKelas konektor penulisan. Selalu atur nilai ini menjadi com.bytedance.bitsail.connector.selectdb.sink.SelectdbSink.com.bytedance.bitsail.connector.selectdb.sink.SelectdbSink
load_urlTitik akhir dan port HTTP dari instans SelectDB Anda.selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080
jdbc_urlTitik akhir dan port MySQL dari instans SelectDB Anda.selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030
cluster_nameNama kluster dalam instans SelectDB Anda.new_cluster
userUsername untuk menghubungkan ke instans SelectDB.admin
passwordPassword untuk menghubungkan ke instans SelectDB.
table_identifierTabel target dalam format <database>.<table>.test_db.test_table
columnsDefinisi kolom untuk tabel target, termasuk indeks, nama, dan tipe.Lihat contoh di bawah.

Parameter opsional

Perilaku penulisan

ParameterDefaultDeskripsi
sink_write_modeMode penulisan. Atur ke BATCH_UPSERT untuk mengaktifkan mode upsert batch.
sink_flush_interval_ms5000Frekuensi (dalam milidetik) data yang dibuffer dikirim ke SelectDB dalam mode upsert.
sink_buffer_size1048576 (1 MB)Ukuran maksimum buffer per penulisan, dalam byte.
sink_buffer_count3Jumlah buffer penulisan yang diinisialisasi.
sink_max_retries3Jumlah maksimum percobaan ulang untuk penulisan yang gagal.
sink_enable_deleteAtur ke true untuk meneruskan event DELETE ke SelectDB.
writer_parallelism_numJumlah tugas penulisan paralel.

Format data

ParameterDefaultDeskripsi
load_contend_typeJSONFormat yang digunakan oleh pernyataan COPY INTO. Nilai yang valid: CSV, JSON.
csv_field_delimiter,Pemisah bidang saat load_contend_type bernilai CSV.
csv_line_delimiter\nPemisah baris saat load_contend_type bernilai CSV.
stream_load_propertiesProperti tambahan yang ditambahkan ke URL Stream Load, dalam format Map<String,String>.

Impor data sintetis ke SelectDB

Contoh ini menggunakan konektor FakeSource bawaan BitSail untuk menghasilkan catatan sintetis dan menuliskannya ke tabel SelectDB. Gunakan contoh ini untuk memverifikasi konfigurasi konektor Anda sebelum menghubungkan ke sumber data sesungguhnya.

Langkah 1: Siapkan lingkungan Anda

  1. Unduh dan ekstrak paket instalasi BitSail:

    wget feilun-justtmp.oss-cn-hongkong.aliyuncs.com/bitsail.tar.gz
    tar -zxvf bitsail.tar.gz
  2. Di Konsol ApsaraDB for SelectDB, lakukan langkah-langkah berikut:

    1. Buat instans SelectDB jika Anda belum memilikinya.

    2. Hubungkan ke instans melalui protokol MySQL.

    3. Buat database dan tabel uji coba:

      CREATE DATABASE test_db;
      
      CREATE TABLE `test_table` (
        `id` BIGINT(20) NULL,
        `bigint_type` BIGINT(20) NULL,
        `string_type` VARCHAR(100) NULL,
        `double_type` DOUBLE NULL,
        `decimal_type` DECIMALV3(27, 9) NULL,
        `date_type` DATEV2 NULL,
        `partition_date` DATEV2 NULL
      ) ENGINE=OLAP
      DUPLICATE KEY(`id`)
      COMMENT 'OLAP'
      DISTRIBUTED BY HASH(`id`) BUCKETS 10
      PROPERTIES (
        "light_schema_change" = "true"
      );
    4. Ajukan permohonan titik akhir publik untuk instans tersebut.

    5. Tambahkan alamat IP host BitSail ke daftar putih alamat IP instans.

Langkah 2: Buat konfigurasi pekerjaan

Buat file bernama test.json dengan konten berikut. Ganti nilai load_url, jdbc_url, cluster_name, user, dan password dengan nilai milik Anda sendiri.

{
  "job": {
    "common": {
      "job_id": -2413,
      "job_name": "bitsail_fake_to_selectdb_test",
      "instance_id": -20413,
      "user_name": "user"
    },
    "reader": {
      "class": "com.bytedance.bitsail.connector.legacy.fake.source.FakeSource",
      "total_count": 300,
      "rate": 10000,
      "random_null_rate": 0,
      "unique_fields": "id",
      "columns_with_fixed_value": [
        {
          "name": "partition_date",
          "fixed_value": "2022-10-10"
        }
      ],
      "columns": [
        { "index": 0, "name": "id",             "type": "long" },
        { "index": 1, "name": "bigint_type",    "type": "long" },
        { "index": 2, "name": "string_type",    "type": "string" },
        { "index": 3, "name": "double_type",    "type": "double" },
        { "index": 4, "name": "decimal_type",   "type": "double" },
        { "index": 5, "name": "date_type",      "type": "date.date" },
        { "index": 6, "name": "partition_date", "type": "string" }
      ]
    },
    "writer": {
      "class": "com.bytedance.bitsail.connector.selectdb.sink.SelectdbSink",
      "load_url": "selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080",
      "jdbc_url": "selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030",
      "cluster_name": "new_cluster",
      "user": "admin",
      "password": "****",
      "table_identifier": "test_db.test_table",
      "columns": [
        { "index": 0, "name": "id",             "type": "bigint" },
        { "index": 1, "name": "bigint_type",    "type": "bigint" },
        { "index": 2, "name": "string_type",    "type": "varchar" },
        { "index": 3, "name": "double_type",    "type": "double" },
        { "index": 4, "name": "decimal_type",   "type": "double" },
        { "index": 5, "name": "date_type",      "type": "date" },
        { "index": 6, "name": "partition_date", "type": "date" }
      ]
    }
  }
}

Langkah 3: Kirim pekerjaan

bash bin/bitsail run --engine flink --execution-mode run --deployment-mode local --conf test.json

Jika pekerjaan berhasil, lakukan kueri pada tabel target untuk memastikan baris-baris telah ditulis:

SELECT COUNT(*) FROM test_db.test_table;

Hasilnya harus menunjukkan 300 baris.

Langkah selanjutnya