Sumber data TiDB memungkinkan Anda membaca data secara offline. Topik ini menjelaskan dukungan DataWorks terhadap sinkronisasi data untuk TiDB.
Versi TiDB yang didukung
Baca offline: Mendukung versi database TiDB 7.x dan 8.x.
Tulis offline: Tidak didukung.
Baca dan tulis real-time: Tidak didukung.
TiDB sangat kompatibel dengan protokol MySQL serta mendukung fitur-fitur umum dan sintaks MySQL 5.7 dan MySQL 8.0. DataWorks menggunakan protokol MySQL untuk membaca data dari TiDB dalam sinkronisasi data offline. Untuk informasi lebih lanjut mengenai kompatibilitas antara TiDB dan MySQL, lihat Compatibility with MySQL.
Tipe field yang didukung
Untuk informasi selengkapnya mengenai semua tipe field TiDB yang didukung, lihat Data Type Overview. Tabel berikut mencantumkan dukungan untuk tipe field utama.
Tipe Field | Baca Offline (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 |
Prasyarat: Persiapkan lingkungan TiDB
Sebelum melakukan sinkronisasi data di DataWorks, Anda harus menyiapkan lingkungan TiDB terlebih dahulu agar dapat mengonfigurasi dan menjalankan tugas sinkronisasi data TiDB dengan benar. Bagian berikut menjelaskan langkah-langkah persiapan tersebut.
Konfirmasi versi TiDB
Data Integration memerlukan versi TiDB 7.x atau 8.x. Pastikan database TiDB Anda memenuhi persyaratan versi ini. Untuk memeriksa versi saat ini, jalankan pernyataan berikut di database TiDB Anda.
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 agar dapat mengakses sumber data tersebut.
(Opsional) Buat akun. Untuk informasi selengkapnya, lihat User Account Management.
Konfigurasikan izin.
Untuk pembacaan data offline dari TiDB, akun ini harus memiliki izin baca (
SELECT) pada tabel-tabel yang ingin Anda sinkronkan.Anda dapat menjalankan perintah berikut untuk memberikan izin kepada akun tersebut atau langsung memberikan izin
SUPER. Pada pernyataan berikut, ganti'sync_account'dengan akun yang telah Anda buat.-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; // Buat akun sinkronisasi dan tetapkan password. Ini memungkinkan akun login ke database dari host mana pun. Tanda persen (%) menunjukkan host apa pun. GRANT SELECT ON *.* TO 'sync_account'@'%'; // Berikan izin SELECT pada database kepada akun sinkronisasi.*.*memberikan izin tertentu kepada akun tersebut pada semua tabel di seluruh database. Anda juga dapat memberikan izin hanya pada tabel tertentu di database target. Misalnya, untuk memberikan izin pada tabel user di database test, jalankan pernyataan berikut:GRANT SELECT ON test.user TO 'sync_account'@'%';.CatatanPernyataan
REPLICATION SLAVEmemberikan izin global. Anda tidak dapat menggunakan pernyataan ini untuk memberikan izin pada tabel tertentu di database target kepada akun sinkronisasi.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, tambahkan sumber data yang diperlukan ke DataWorks sesuai petunjuk dalam Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Lampiran: Contoh skrip TiDB dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, konfigurasikan parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi selengkapnya, lihat Configure a task in the code editor. 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 skrip untuk membaca data:
Komentar dalam contoh JSON berikut hanya untuk tujuan demonstrasi. Hapus komentar tersebut saat mengonfigurasi skrip.
{
"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
Script parameter name | Description | Required | Default value |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah ditambahkan. | Yes | None |
table | Nama tabel tempat data akan disinkronkan. Contoh berikut menunjukkan penggunaan lanjutan parameter table untuk mengonfigurasi rentang:
| Yes | None |
column | Kolom-kolom yang akan disinkronkan dari tabel yang ditentukan. Gunakan array JSON untuk menggambarkan bidang-bidang tersebut. Untuk menyinkronkan semua kolom, atur parameter ini menjadi
| Yes | None |
splitPk | Saat TiDB Reader mengekstraksi data, jika Anda menentukan splitPk, sistem akan menggunakan field yang ditentukan untuk mempartisi data. Hal ini memungkinkan tugas sinkronisasi berjalan secara konkuren dan meningkatkan efisiensi.
| No | None |
where | Kondisi filter. Dalam banyak skenario bisnis, Anda mungkin hanya ingin menyinkronkan data hari ini. Untuk melakukannya, atur kondisi where menjadi
| No | None |