All Products
Search
Document Center

DataWorks:Sumber data TiDB

Last Updated:Aug 25, 2026

Anda dapat menggunakan sumber data TiDB di DataWorks untuk membaca data secara batch. Topik ini menjelaskan kemampuan sinkronisasi data yang didukung untuk TiDB.

Versi TiDB yang didukung

  • Pembacaan data batch: TiDB 7.x dan 8.x didukung.

  • Penulisan data batch: Tidak didukung.

  • Pembacaan dan penulisan data real-time: Tidak didukung.

Catatan

TiDB sangat kompatibel dengan protokol MySQL serta fitur-fitur umum dan sintaksis MySQL 5.7 dan MySQL 8.0. DataWorks menggunakan protokol MySQL untuk sinkronisasi data batch dari TiDB. Untuk informasi lebih lanjut mengenai kompatibilitas antara TiDB dan MySQL, lihat MySQL Compatibility.

Tipe data yang didukung

Untuk daftar lengkap tipe data TiDB, lihat Data Types. Tabel berikut mencantumkan dukungan untuk tipe data utama.

Type

Pembacaan data batch (TiDB Reader)

TINYINT

Didukung

SMALLINT

Didukung

MEDIUMINT

Didukung

INTEGER

Didukung

BIGINT

Didukung

FLOAT

Didukung

DOUBLE

Didukung

DECIMAL

Didukung

CHAR

Didukung

VARCHAR

Didukung

JSON

Didukung

TEXT

Didukung

TINYTEXT

Didukung

MEDIUMTEXT

Didukung

LONGTEXT

Didukung

VARBINARY

Didukung

BINARY

Didukung

BLOB

Didukung

TINYBLOB

Didukung

MEDIUMBLOB

Didukung

LONGBLOB

Didukung

ENUM

Didukung

SET

Didukung

BOOLEAN

Didukung

BIT

Didukung

DATE

Didukung

DATETIME

Didukung

TIMESTAMP

Didukung

TIME

Didukung

YEAR

Didukung

Siapkan lingkungan TiDB

Sebelum melakukan sinkronisasi data di DataWorks, siapkan lingkungan TiDB Anda seperti yang dijelaskan dalam bagian ini untuk memastikan tugas sinkronisasi data berjalan lancar.

Konfirmasi versi TiDB

Data Integration memerlukan TiDB 7.x atau 8.x. Pastikan versi TiDB Anda memenuhi persyaratan ini. Anda dapat menjalankan pernyataan berikut di database TiDB Anda untuk memeriksa versi saat ini.

SELECT TIDB_VERSION()\G

*************************** 1. row ***************************
TIDB_VERSION(): Release Version: v8.1.1
Edition: Community
Git Commit Hash: 821e491a20fbab36604b36b647b5bae26a2c1418
Git Branch: HEAD
UTC Build Time: 2024-08-27 19:16:25
GoVersion: go1.21.10
Race Enabled: false
Check Table Before Drop: false
Store: tikv
1 row in set (0.00 sec)

Konfigurasikan izin akun

Buat akun TiDB khusus untuk DataWorks mengakses sumber data dengan mengikuti langkah-langkah berikut:

  1. (Opsional) Buat akun. Untuk informasi selengkapnya, lihat TiDB User Account Management.

  2. Konfigurasikan izin.

    Untuk pembacaan data batch dari TiDB, akun tersebut harus memiliki izin baca (SELECT) pada tabel sumber.

    Anda dapat menjalankan perintah berikut untuk memberikan izin kepada akun, atau langsung memberikan izin SUPER. Saat menjalankan pernyataan tersebut, ganti 'sync_account' dengan nama akun Anda.

    -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; // Membuat akun sinkronisasi dan menetapkan password. Akun ini dapat login dari host mana pun. '%' menunjukkan host apa pun.
    GRANT SELECT ON *.* TO 'sync_account'@'%'; // Memberikan izin SELECT pada semua database ke akun sinkronisasi.

    Sintaksis *.* memberikan izin yang ditentukan pada semua tabel di semua database. Anda juga dapat memberikan izin hanya pada tabel tertentu di database target. Misalnya, untuk memberikan izin SELECT pada tabel user di database test, jalankan pernyataan berikut: GRANT SELECT ON test.user TO 'sync_account'@'%';.

    Catatan

    Pernyataan REPLICATION SLAVE memberikan izin global dan tidak dapat diberikan pada tabel tertentu di suatu database.

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Data source configuration. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Lampiran: Contoh skrip 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 selengkapnya, lihat Script mode configuration. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Contoh skrip Reader

Kode berikut menyediakan contoh konfigurasi untuk reader:

Catatan

Komentar dalam contoh JSON berikut hanya untuk tujuan penjelasan. Hapus komentar tersebut sebelum menjalankan tugas.

{
  "type": "job",
  "version": "2.0",
  "steps":
  [
    {
      "stepType": "tidb",
      "parameter":
      {
        "column":
        [
          "id",
          "name"
        ],
        "where": "",
        "splitPk": "id",
        "connection":
        [
          {
            "selectedDatabase": "test_database",
            "datasource": "test_datasource",
            "table":
            [
              "test_table"
            ]
          }
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "odps",
      "parameter":
      {
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting":
  {
    "errorLimit":
    {
      "record": "0"
    },
    "speed":
    {
      "throttle": false,
      "concurrent": 3
    }
  },
  "order":
  {
    "hops":
    [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Parameter skrip Reader

Parameter

Deskripsi

Wajib

Default

datasource

Harus sesuai dengan nama sumber data yang Anda konfigurasikan di DataWorks.

Ya

Tidak ada

table

Nama tabel sumber.

Contoh berikut menunjukkan penggunaan advanced untuk mengonfigurasi rentang parameter ini:

  • Anda dapat mengonfigurasi rentang untuk membaca data dari database dan tabel yang telah dilakukan sharding. Misalnya, 'table_[0-99]' menentukan tabel dari 'table_0' hingga 'table_99'.

  • Jika nama tabel Anda memiliki akhiran numerik dengan panjang tetap, misalnya dari 'table_000' hingga 'table_999', Anda dapat mengatur parameter menjadi "table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"].

Ya

Tidak ada

column

Kolom tabel sumber yang akan disinkronkan, ditentukan sebagai array JSON. Untuk membaca semua kolom, gunakan ["*"].

  • Pemangkasan kolom: Anda dapat memilih subset kolom untuk dibaca.

  • Pengubahan urutan kolom: Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.

  • Konstanta: Anda harus mengikuti sintaksis SQL MySQL. Contoh: ["id","`table`","1","'test_constant'","null","'null'","expr(a+1)","2.3","true"] .

    • id adalah nama kolom biasa.

    • `table` adalah nama kolom yang juga merupakan kata kunci yang dicadangkan.

    • 1 adalah konstanta integer.

    • 'test_constant' adalah konstanta string. Harus diapit tanda kutip tunggal.

    • Penanganan nilai null:

      • "" menunjukkan string kosong.

      • null menunjukkan nilai NULL.

      • 'null' menunjukkan string "null".

    • expr(a+1) adalah contoh ekspresi.

    • 2.3 adalah bilangan titik mengambang.

    • true adalah nilai boolean.

  • Anda harus secara eksplisit menentukan kolom yang akan disinkronkan dalam parameter column. Parameter ini tidak boleh kosong.

Ya

Tidak ada

splitPk

Menentukan kolom yang digunakan untuk sharding data. Ini memungkinkan tugas paralel berjalan selama ekstraksi data, sehingga meningkatkan efisiensi sinkronisasi.

  • Gunakan primary key tabel untuk parameter splitPk. Nilai primary key biasanya tersebar merata, yang membantu mencegah hot spot data.

  • Saat ini, splitPk hanya mendukung sharding data untuk tipe integer. Fitur ini tidak mendukung tipe string, titik mengambang, tanggal, atau tipe data lainnya. Jika Anda menentukan tipe data yang tidak didukung, fitur ini akan diabaikan dan sinkronisasi berjalan dalam satu thread.

  • Jika parameter ini tidak dikonfigurasi, data disinkronkan dalam satu thread.

Tidak

Tidak ada

where

Kondisi filter untuk data sumber. Ini sering digunakan untuk sinkronisasi inkremental. Misalnya, untuk menyinkronkan hanya data hari ini, atur kondisi menjadi gmt_create>$bizdate.

  • Klausa WHERE memungkinkan sinkronisasi data inkremental yang efektif. Jika Anda tidak menentukan klausa WHERE, atau memberikan klausa tanpa kunci atau nilai, operasi tersebut dianggap sebagai sinkronisasi data penuh.

  • Klausa WHERE tidak mendukung sintaksis LIMIT.

Tidak

Tidak ada