全部产品
Search
文档中心

DataWorks:Sumber data TiDB

更新时间:Jul 02, 2025

DataWorks menyediakan TiDB Reader untuk membaca data dari sumber data TiDB dalam mode offline. Topik ini menjelaskan kemampuan sinkronisasi data dari sumber data TiDB.

Versi TiDB yang Didukung

  • Baca data batch: Basis data TiDB 7.x dan TiDB 8.x didukung.

  • Tulis data batch: Tidak ada versi basis data TiDB yang didukung.

  • Baca dan tulis data real-time: Tidak ada versi basis data TiDB yang didukung.

Catatan

TiDB sangat kompatibel dengan protokol MySQL serta fitur dan sintaks umum yang digunakan oleh MySQL 5.7 dan MySQL 8.0. Sinkronisasi data dari sumber data TiDB dalam mode offline diimplementasikan berdasarkan protokol MySQL. Untuk informasi lebih lanjut tentang perbandingan kompatibilitas antara TiDB dan MySQL, lihat Kompatibilitas MySQL.

Tipe data yang didukung

Untuk informasi tentang semua tipe data di setiap versi TiDB, lihat Tipe Data. Tabel berikut memberikan status dukungan untuk tipe data utama di TiDB.

Tipe data

TiDB Reader untuk baca data batch

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 sinkronisasi data

Sebelum menggunakan DataWorks untuk menyinkronkan data dari sumber data TiDB, Anda harus menyiapkan lingkungan TiDB. Ini memastikan bahwa tugas sinkronisasi data dapat dikonfigurasi dan berjalan sesuai harapan. Informasi berikut menjelaskan cara menyiapkan lingkungan TiDB untuk sinkronisasi data.

Persiapan 1: Periksa versi basis data TiDB Anda

Data Integration mengharuskan versi basis data TiDB adalah 7.x atau 8.x. Pastikan versi basis data TiDB tempat Anda ingin menyinkronkan data memenuhi persyaratan. Anda dapat menjalankan pernyataan berikut untuk memeriksa versi basis data TiDB:

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)

Persiapan 2: Siapkan akun yang memiliki izin yang diperlukan

Kami merekomendasikan agar Anda merencanakan dan membuat akun untuk DataWorks mengakses basis data TiDB Anda. Untuk menyiapkan akun tersebut, ikuti langkah-langkah berikut:

  1. Opsional. Buat akun. Untuk informasi lebih lanjut, lihat Manajemen Akun Pengguna TiDB.

  2. Berikan izin yang diperlukan ke akun.

    Baca data batch: Akun harus memiliki izin SELECT.

    Anda dapat menjalankan pernyataan berikut untuk memberikan izin ke akun. Atau, Anda dapat memberikan izin SUPER ke akun. Ganti Akun untuk sinkronisasi data dalam pernyataan dengan akun yang dibuat.

    -- CREATE USER 'Akun untuk sinkronisasi data'@'%' IDENTIFIED BY 'Password'; //Buat akun yang dapat digunakan untuk sinkronisasi data dan tentukan kata sandi. Dengan cara ini, Anda dapat menggunakan akun dan kata sandi untuk mengakses basis data dari host mana pun. % menunjukkan host.
    GRANT SELECT ON *.* TO 'Akun untuk sinkronisasi data'@'%'; // Berikan izin SELECT ke akun.

    *.* menunjukkan bahwa akun diberikan izin pada semua tabel di semua basis data. Anda juga dapat memberikan izin pada tabel tertentu di basis data ke akun. Misalnya, untuk memberikan akun izin pada tabel pengguna di basis data uji, jalankan pernyataan berikut: GRANT SELECT ON test.user TO 'Akun untuk sinkronisasi data'@'%';.

    Catatan

    Izin REPLICATION SLAVE bersifat global. Anda tidak dapat memberikan izin ini pada tabel tertentu di basis data ke akun.

Tambahkan sumber data

Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Tambahkan dan kelola sumber data. Anda dapat melihat tip info parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.

Lampiran: Kode dan parameter

Konfigurasikan tugas sinkronisasi batch menggunakan editor kode

Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan format skrip seragam. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi batch menggunakan editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Kode untuk TiDB Reader

Kode berikut memberikan contoh konfigurasi tugas sinkronisasi untuk membaca data dari sumber data TiDB.

Catatan

Komentar dalam contoh JSON hanya digunakan untuk menjelaskan definisi beberapa parameter utama. Hapus komentar saat mengonfigurasi parameter.

{
  "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 dalam kode untuk TiDB Reader

Parameter

Deskripsi

Diperlukan

Nilai default

datasource

Nama sumber data. Harus sama dengan nama sumber data yang ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode.

Ya

Tidak ada nilai default

table

Nama tabel tempat Anda ingin membaca data.

Anda dapat melakukan konfigurasi lanjutan untuk parameter tabel untuk menentukan rentang tabel. Contoh:

  • Atur parameter tabel ke 'table_[0-99]'. Nilai ini menunjukkan bahwa TiDB Reader membaca data dari tabel 'table_0' hingga 'table_99' di basis data sharding.

  • Atur parameter tabel ke '"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]'. Nilai ini menunjukkan bahwa TiDB Reader membaca data dari tabel 'table_000' hingga 'table_999'. Anda hanya dapat menggunakan metode ini jika sufiks numerik dari nama tabel Anda memiliki panjang yang sama.

Ya

Tidak ada nilai default

column

Nama kolom tempat Anda ingin membaca data. Tentukan nama dalam larik JSON. Nilai default adalah [ * ], yang menunjukkan semua kolom di tabel sumber.

  • Anda dapat memilih kolom tertentu untuk dibaca.

  • Urutan kolom dapat diubah. Ini menunjukkan bahwa Anda dapat menentukan kolom dalam urutan yang berbeda dari urutan yang ditentukan oleh skema tabel sumber.

  • Konstanta didukung. Nama kolom harus disusun sesuai dengan sintaks SQL yang didukung oleh MySQL, seperti ["id","table","1","'test_constant'","'null'","to_char(a+1)","2.3","true"].

    • id: nama kolom.

    • table: nama kolom yang berisi kata kunci cadangan.

    • 1: konstanta integer.

    • 'test_constant': konstanta string, yang diapit oleh tanda kutip tunggal (').

    • null:

      • " " menunjukkan string kosong.

      • null menunjukkan nilai null.

      • 'null' menunjukkan string null.

    • to_char(a+1): ekspresi fungsi yang digunakan untuk menghitung panjang string.

    • 2.3: konstanta floating-point.

    • true: nilai Boolean.

  • Parameter column harus secara eksplisit menentukan semua kolom tempat Anda ingin membaca data. Parameter ini tidak boleh dibiarkan kosong.

Ya

Tidak ada nilai default

splitPk

Bidang yang digunakan untuk sharding data saat TiDB Reader membaca data. Jika Anda mengonfigurasi parameter ini, sharding data dilakukan berdasarkan nilai parameter ini, dan thread paralel dapat digunakan untuk membaca data. Ini meningkatkan efisiensi sinkronisasi data.

  • Kami merekomendasikan agar Anda menentukan nama kolom kunci utama tabel sumber sebagai kunci shard. Dengan cara ini, data dapat didistribusikan secara merata ke shard yang berbeda berdasarkan kolom kunci utama, bukan hanya didistribusikan secara intensif ke shard tertentu.

  • Kunci shard dapat digunakan untuk sharding data hanya dari tipe data integer. Jika Anda menggunakan kunci shard untuk sharding data dari tipe data yang tidak didukung, tugas sinkronisasi batch mengabaikan kunci shard yang Anda tentukan dan menggunakan thread tunggal untuk membaca data.

  • Jika tidak ada kunci shard yang ditentukan, tugas sinkronisasi data menggunakan thread tunggal untuk membaca data.

Tidak

Tidak ada nilai default

where

Klausa WHERE. Misalnya, Anda dapat mengatur parameter ini ke gmt_create>$bizdate untuk membaca data yang dihasilkan pada hari saat ini.

  • Anda dapat menggunakan klausa WHERE untuk membaca data inkremental. Jika parameter where tidak disediakan atau dibiarkan kosong, TiDB Reader membaca semua data.

  • Klausa WHERE tidak mendukung kata kunci LIMIT.

Tidak

Tidak ada nilai default