Sumber data HBase mendukung pembacaan dan penulisan ke HBase. Topik ini menjelaskan kemampuan Sinkronisasi Data untuk sumber data HBase di DataWorks.
Versi yang didukung
Plugin HBase terbagi menjadi dua jenis: HBase dan HBase{xx}xsql. Plugin HBase{xx}xsql memerlukan HBase dan Phoenix.
Plugin HBase:
Plugin HBase mendukung
HBase 0.94.x,HBase 1.1.x, danHBase 2.x, serta kompatibel dengan antarmuka tanpa kode (codeless UI) maupun editor kode. Anda dapat menggunakan parameterhbaseVersionuntuk menentukan versi.Jika Anda menggunakan
HBase 0.94.x, atur parameter hbaseVersion ke 094x untuk reader dan writer."reader": { "hbaseVersion": "094x" }"writer": { "hbaseVersion": "094x" }Jika Anda menggunakan HBase 1.1.x atau HBase 2.x, atur parameter hbaseVersion ke 11x untuk reader dan writer.
"reader": { "hbaseVersion": "11x" }"writer": { "hbaseVersion": "11x" }Plugin HBase 1.1.x kompatibel dengan HBase 2.0.
Plugin HBase{xx}xsql
Plugin HBase20xsql mendukung
HBase 2.xdanPhoenix 5.x. Hanya editor kode yang didukung.Plugin HBase11xsql mendukung
HBase 1.1.xdanPhoenix 5.x. Hanya editor kode yang didukung.Plugin Writer HBase{xx}xsql memungkinkan Anda mengimpor data secara batch ke tabel SQL (Phoenix) di HBase. Phoenix melakukan encoding terhadap rowkey. Menulis data secara langsung menggunakan API HBase memerlukan konversi data manual, yang merupakan proses kompleks dan rentan kesalahan.
CatatanPlugin ini menggunakan driver Java Database Connectivity (JDBC) Phoenix untuk mengeksekusi pernyataan UPSERT dan menulis data ke tabel secara batch. Karena plugin ini menggunakan API tingkat tinggi, plugin ini juga memperbarui secara sinkron semua tabel indeks terkait.
Batasan
HBase Reader | HBase20xsql Reader | HBase11xsql Writer |
|
|
|
Fitur
HBase Reader
Mode normal dan multiVersionFixedColumn didukung. Untuk petunjuk konfigurasi, lihat Panduan Konfigurasi Pemetaan Bidang HBase.
Mode
normal: Membaca tabel HBase sebagai tabel dua dimensi biasa (tabel lebar) untuk mengambil versi terbaru data.hbase:007:0> scan 'student' ROW COLUMN+CELL s001 column=basic:age, timestamp=2026-03-09T14:41:40.240, value=20 s001 column=basic:name, timestamp=2026-03-09T14:41:40.214, value=Tom s001 column=score:english, timestamp=2026-03-09T14:41:40.333, value=90 s001 column=score:math, timestamp=2026-03-09T14:41:40.277, value=85 1 row(s) in 0.0580 secondsTabel berikut menunjukkan contoh data yang dibaca.
Rowkey
basic:age
basic:name
score:english
score:math
s001
20
Tom
90
85
Mode
multiVersionFixedColumnmembaca tabel HBase sebagai tabel sempit. Setiap catatan yang dikembalikan terdiri dari empat kolom:rowKey,family:qualifier,timestamp, danvalue. Anda harus secara eksplisit menentukan kolom yang akan dibaca. Nilai setiap sel dikembalikan sebagai catatan terpisah. Jika sebuah sel memiliki beberapa versi, beberapa catatan akan dikembalikan.hbase:007:0> scan 'student',{VERSIONS=>5} ROW COLUMN+CELL s001 column=basic:age, timestamp=2026-03-09T14:41:40.240, value=20 s001 column=basic:age, timestamp=2026-03-09T14:30:00.100, value=19 s001 column=basic:name, timestamp=2026-03-09T14:41:40.214, value=Tom s001 column=score:english, timestamp=2026-03-09T14:41:40.333, value=90 s001 column=score:math, timestamp=2026-03-09T14:41:40.277, value=85 1 row(s) in 0.0260 seconds }Tabel berikut menunjukkan contoh data empat kolom yang dihasilkan.
Rowkey
column:qualifier
Timestamp
Value
s001
basic:age
2026-03-09T14:41:40.240
20
s001
basic:age
2026-03-09T14:30:00.100
19
s001
basic:name
2026-03-09T14:41:40.214
Tom
s001
score:english
2026-03-09T14:41:40.333
90
s001
score:math
2026-03-09T14:41:40.277
85
HBase Writer
Aturan pembuatan
rowkey: Saat ini, HBase Writer mendukung penggabungan beberapa bidang dari sumber untuk menghasilkanrowkeytabel HBase.Opsi timestamp (
version) berikut tersedia untuk menulis data ke HBase:Gunakan waktu saat ini sebagai versi.
Gunakan nilai dari kolom sumber sebagai versi.
Tentukan waktu tetap sebagai versi.
Tipe data yang didukung
Pembacaan batch
Tabel berikut mencantumkan pemetaan tipe data untuk HBase Reader.
Kategori
Tipe kolom integrasi data
Tipe database
Integer
long
short, int, dan long
Floating-point
double
float dan double
String
string
binary_string dan string
Date and Time
date
date
Byte
bytes
bytes
Boolean
boolean
boolean
HBase20xsql Reader mendukung sebagian besar, namun tidak semua, tipe data Phoenix. Pastikan tipe data Anda didukung.
Tabel berikut mencantumkan pemetaan tipe data untuk HBase20xsql Reader.
Tipe internal DataX
Tipe data Phoenix
long
INTEGER, TINYINT, SMALLINT, BIGINT
double
FLOAT, DECIMAL, DOUBLE
string
CHAR, VARCHAR
date
DATE, TIME, TIMESTAMP
bytes
BINARY, VARBINARY
boolean
BOOLEAN
Penulisan batch
Tabel berikut mencantumkan pemetaan tipe data untuk HBase Writer.
Konfigurasi kolom harus sesuai dengan tipe kolom di tabel HBase.
Hanya tipe data yang tercantum dalam tabel berikut yang didukung.
Kategori | Tipe database |
Integer | INT, LONG, dan SHORT |
Floating-point | FLOAT dan DOUBLE |
Boolean | BOOLEAN |
String | STRING |
Peringatan
Jika Anda menemui pesan error "tried to access method com.google.common.base.Stopwatch" saat menguji konektivitas, tambahkan parameter hbaseVersion ke konfigurasi sumber data.
Tambahkan sumber data
Sebelum mengembangkan task sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Task sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.
Sinkronisasi batch tabel tunggal
Untuk petunjuknya, lihat Gunakan antarmuka tanpa kode dan Gunakan editor kode.
Saat menggunakan Antarmuka Tanpa Kode, Pemetaan Bidang tidak ditampilkan secara default karena HBase memiliki skema fleksibel. Anda harus mengonfigurasi pemetaan secara manual.
Saat menggunakan HBase sebagai sumber, Anda harus terlebih dahulu memilih Output Mode: Tabel lebar (mode normal) atau Tabel sempit (mode multiVersionFixedColumn).
Konfigurasi pemetaan bidang berbeda antara kedua mode tersebut:
Tabel lebar (mode normal): Ini adalah mode default. Mode ini membaca tabel HBase sebagai tabel dua dimensi standar dan mengambil versi terbaru data. Saat HBase digunakan sebagai sumber, Anda harus mengonfigurasi pemetaan antara Source Fields dan Target Fields. Seperti yang ditunjukkan pada gambar, terdapat pemetaan satu-ke-satu antara bidang sumber dan target. Karena tabel sumber tidak memiliki bidang tetap, bidang dipetakan per baris secara default. Untuk mengubah pemetaan ini, Anda harus mengedit urutan bidang secara manual.
Pengembangan data baru

Pengembangan data lama

Hasil di tabel target:

Tabel sempit (mode multiVersionFixedColumn): Setiap catatan output terdiri dari empat kolom (rowKey, family:qualifier, timestamp, dan value), yang memungkinkan Anda membaca beberapa versi data. Konfigurasikan Source Field dengan format
ColumnFamily:Qualifier(misalnya,basic:age). Targetnya adalah tabel tetap dengan empat kolom (row_key, cf, timestamp_col, dan value). Tidak diperlukan pemetaan bidang untuk mode ini.Pengembangan data baru

Pengembangan data lama

Hasil di tabel target:

Saat HBase digunakan sebagai tujuan data (hanya mode normal yang didukung), Anda perlu mengonfigurasi Target Fields dan rowkey secara terpisah. Kolom rowkey dapat berupa gabungan beberapa bidang sumber.
Untuk daftar lengkap parameter dan contoh skrip untuk Editor Kode, lihat Lampiran: Demo Skrip dan Deskripsi Parameter.
FAQ
Q: Berapa pengaturan konkurensi yang disarankan? Apakah meningkatkan konkurensi membantu mempercepat impor yang lambat?
A: Ukuran heap default untuk proses impor data di Java Virtual Machine (JVM) adalah 2 GB. Konkurensi diimplementasikan menggunakan multi-threading. Menggunakan terlalu banyak thread mungkin tidak meningkatkan kecepatan impor dan justru dapat menurunkan performa akibat Pengumpulan sampah (GC) yang sering terjadi. Kami merekomendasikan pengaturan konkurensi antara 5 hingga 10.
Q:
batchSize—berapa nilai yang sesuai?A: Nilai defaultnya adalah 256, tetapi nilai optimal
batchSizeharus dihitung berdasarkan ukuran setiap baris. Satu operasi biasanya memproses data sebesar 2 MB hingga 4 MB. Anda dapat menghitung batchSize dengan membagi jumlah tersebut dengan ukuran baris.Q: Saat saya menggunakan mode
multiVersionFixedColumnuntuk membaca data dari HBase, saya mengalami errorjava.lang.StringIndexOutOfBoundsException: String index out of range: -1. Bagaimana cara mengatasi masalah ini?A: Error ini biasanya terjadi karena bidang
namedalam konfigurasi kolom tidak menggunakan formatColumn Family:Column Qualifier(columnFamily:qualifier). Misalnya, Anda hanya menentukan qualifier kolomagetanpa awalanbasic:age. Pastikan bahwanamesetiap kolom kecualirowkeymenyertakan awalan family kolom dalam formatcolumnFamily:qualifier.
Lampiran: Contoh skrip dan parameter
Konfigurasikan task sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Gunakan editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi task sinkronisasi batch menggunakan editor kode.
Contoh skrip HBase Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"hbase",// Nama plugin.
"parameter":{
"mode":"normal",// Mode untuk membaca data dari HBase. Nilai yang valid: normal dan multiVersionFixedColumn.
"scanCacheSize":"256",// Jumlah baris yang dibaca klien HBase dari server dalam setiap panggilan prosedur remote (RPC).
"scanBatchSize":"100",// Jumlah kolom yang dibaca klien HBase dari server dalam setiap RPC.
"hbaseVersion":"094x/11x",// Versi HBase.
"column":[// Kolom yang akan dibaca.
{
"name":"rowkey",// Nama kolom.
"type":"string"// Tipe data.
},
{
"name":"basic:age",
"type":"string"
},
{
"name":"basic:name",
"type":"string"
},
{
"name":"score:english",
"type":"string"
},
{
"name":"score:math",
"type":"string"
}
],
"range":{// Rentang rowkey untuk HBase Reader.
"endRowkey":"",// Rowkey akhir.
"isBinaryRowkey":true,// Menentukan cara mengonversi startRowkey dan endRowkey yang dikonfigurasi ke array byte. Nilai default: false.
"startRowkey":""// Rowkey awal.
},
"maxVersion":"",// Jumlah versi yang dibaca dalam mode multiVersionFixedColumn.
"encoding":"UTF-8",// Format encoding.
"table":"student",// Nama tabel.
"hbaseConfig":{// Konfigurasi koneksi untuk kluster HBase, dalam format JSON.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// Nama plugin tujuan. Contoh ini menggunakan MaxCompute, tetapi Anda dapat menggantinya dengan plugin writer lain.
"parameter":{
"partition":"",// Informasi partisi tabel tujuan. Anda tidak perlu mengonfigurasi parameter ini untuk tabel non-partisi.
"truncate":true,// Menentukan apakah data yang ada di tabel atau partisi tujuan akan dihapus sebelum operasi penulisan. Nilai true berarti data dihapus.
"datasource":"odps_datasource",// Nama sumber data MaxCompute.
"column":[// Daftar kolom tujuan.
"rowkey",
"basic_age",
"basic_name",
"score_english",
"score_math"
],
"table":"student_target"// Nama tabel MaxCompute tujuan.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika diatur ke true, data ditransfer pada laju yang ditentukan oleh `mbps`. Jika diatur ke false, parameter `mbps` diabaikan dan tidak ada batas laju.
"concurrent":1,// Jumlah maksimum thread konkuren.
"mbps":"12"// Laju transfer maksimum. Satuan: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Contoh skrip HBase Reader (mode multiVersionFixedColumn)
Contoh berikut menunjukkan konfigurasi skrip lengkap yang membaca data dari HBase menggunakan mode multiVersionFixedColumn dan menulis data ke MaxCompute. Dalam mode ini, nilai setiap sel di HBase diubah menjadi catatan terpisah. Setiap catatan terdiri dari empat kolom: rowkey, family:qualifier, timestamp, dan value.
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"hbase",// Nama plugin.
"parameter":{
"mode":"multiVersionFixedColumn",// Mode untuk membaca data dari HBase. Contoh ini menggunakan mode multiVersionFixedColumn.
"scanCacheSize":"256",// Jumlah baris yang dibaca klien HBase dari server dalam setiap RPC.
"scanBatchSize":"100",// Jumlah kolom yang dibaca klien HBase dari server dalam setiap RPC.
"hbaseVersion":"20x",// Versi HBase.
"datasource":"hbase_datasource",// Nama sumber data HBase.
"column":[// Kolom yang akan dibaca. Kolom pertama harus rowkey. Nama semua kolom lain harus dalam format "ColumnFamily:Qualifier".
{
"name":"rowkey",// Kolom rowkey.
"type":"string"
},
{
"name":"basic:age",// Kolom age dalam family kolom basic.
"type":"string"
},
{
"name":"basic:name",// Kolom name dalam family kolom basic.
"type":"string"
},
{
"name":"score:english",// Kolom english dalam family kolom score.
"type":"string"
},
{
"name":"score:math",// Kolom math dalam family kolom score.
"type":"string"
}
],
"range":{
"isBinaryRowkey":false
},
"maxVersion":"-1",// Membaca semua versi data. Parameter ini wajib dalam mode multiVersionFixedColumn. Nilai -1 berarti semua versi dibaca.
"encoding":"UTF-8",// Format encoding.
"table":"student"// Nama tabel HBase.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// Nama plugin tujuan. Contoh ini menggunakan MaxCompute.
"parameter":{
"partition":"",// Informasi partisi tabel tujuan. Anda tidak perlu mengonfigurasi parameter ini untuk tabel non-partisi.
"truncate":true,// Menentukan apakah data yang ada di tabel atau partisi tujuan akan dihapus sebelum operasi penulisan. Nilai true berarti data dihapus.
"datasource":"odps_datasource",// Nama sumber data MaxCompute.
"column":[// Empat kolom tujuan sesuai dengan rowkey, family:qualifier, timestamp, dan value.
"rowkey",
"cf",
"timestamp_col",
"value"
],
"table":"hbase_multiversion_target"// Nama tabel MaxCompute tujuan.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":false,// Menonaktifkan Pembatasan kecepatan.
"concurrent":2// Jumlah maksimum thread konkuren.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Tabel MaxCompute tujuan harus dibuat terlebih dahulu. Berikut adalah contoh pernyataan pembuatan tabel:CREATE TABLE IF NOT EXISTS hbase_multiversion_target (row_key STRING, cf STRING, timestamp_col STRING, value STRING);
Parameter HBase Reader
Parameter | Deskripsi | Wajib | Default |
haveKerberos | Jika haveKerberos diatur ke true, kluster HBase memerlukan Autentikasi Kerberos. Catatan
| Tidak | false |
hbaseConfig | Informasi konfigurasi yang diperlukan untuk menghubungkan ke kluster HBase. Informasi ini harus dalam format JSON. Konfigurasi yang wajib adalah hbase.zookeeper.quorum, yang menentukan alamat koneksi ZooKeeper untuk HBase. Anda juga dapat menambahkan konfigurasi klien HBase lainnya, seperti cache scan dan ukuran batch, untuk mengoptimalkan interaksi dengan server. Catatan Jika Anda menggunakan database ApsaraDB for HBase, Anda harus terhubung menggunakan Titik Akhir Jaringan Internal. | Ya | Tidak ada |
mode | Mode baca untuk HBase mendukung mode normal dan mode multiVersionFixedColumn. | Ya | Tidak ada |
table | Nama tabel HBase tempat data dibaca. Nama ini case-sensitive. | Ya | Tidak ada |
encoding | Pengkodean karakter, seperti UTF-8 atau GBK, untuk mengonversi data biner HBase byte[] menjadi String. | Tidak | utf-8 |
column | Bidang HBase yang akan dibaca. Bidang ini wajib dalam mode normal dan mode multiVersionFixedColumn.
| Ya | Tidak ada |
maxVersion | Menentukan jumlah versi yang dibaca dalam mode | Wajib dalam mode | Tidak ada |
range | Rentang rowkey tempat HBase Reader membaca data.
| Tidak | Tidak ada |
scanCacheSize | Jumlah baris yang diambil klien HBase dari server per panggilan prosedur remote (RPC). | Tidak | 256 |
scanBatchSize | Jumlah kolom yang diambil klien HBase dari server per panggilan prosedur remote (RPC). Jika Anda mengatur parameter ini ke -1, semua kolom dikembalikan. Catatan Nilai scanBatchSize harus lebih besar dari jumlah kolom aktual untuk mencegah risiko kualitas data. | Tidak | 100 |
Contoh skrip HBase Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"hbase",// Nama plugin.
"parameter":{
"mode":"normal",// Mode untuk menulis data ke HBase.
"walFlag":"false",// Jika diatur ke false, fitur Write-Ahead Log (WAL) dinonaktifkan.
"hbaseVersion":"094x",// Versi HBase.
"rowkeyColumn":[// Mendefinisikan kolom sumber untuk rowkey HBase.
{
"index":"0",// Indeks kolom sumber.
"type":"string"// Tipe data.
},
{
"index":"-1",// Gunakan -1 untuk nilai konstan.
"type":"string",
"value":"_"
}
],
"nullMode":"skip",// Menentukan cara menangani nilai null.
"column":[// Kolom HBase tempat data ditulis.
{
"name":"columnFamilyName1:columnName1",// Nama kolom.
"index":"0",// Indeks kolom sumber.
"type":"string"// Tipe data.
},
{
"name":"columnFamilyName2:columnName2",
"index":"1",
"type":"string"
},
{
"name":"columnFamilyName3:columnName3",
"index":"2",
"type":"string"
}
],
"encoding":"UTF-8",// Format encoding.
"table":"YOUR_TABLE_NAME",// Nama tabel.
"hbaseConfig":{// Konfigurasi koneksi untuk kluster HBase, dalam format JSON.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika diatur ke true, data ditransfer pada laju yang ditentukan oleh `mbps`. Jika diatur ke false, parameter `mbps` diabaikan dan tidak ada batas laju.
"concurrent":1, // Jumlah maksimum thread konkuren.
"mbps":"12"// Laju transfer maksimum. Satuan: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter HBase Writer
Parameter | Deskripsi | Wajib | Default |
haveKerberos | Nilai true untuk haveKerberos menunjukkan bahwa kluster HBase memerlukan Autentikasi Kerberos. Catatan
| Tidak | false |
hbaseConfig | Informasi konfigurasi yang diperlukan untuk menghubungkan ke kluster HBase. Informasi ini harus dalam format JSON. Parameter yang wajib adalah hbase.zookeeper.quorum, yang menentukan alamat koneksi ZK untuk HBase. Anda juga dapat menambahkan konfigurasi klien HBase lainnya, seperti pengaturan cache scan dan batch, untuk mengoptimalkan interaksi dengan server. Catatan Jika Anda menggunakan database ApsaraDB for HBase, Anda harus terhubung menggunakan Titik Akhir Jaringan Internal. | Ya | Tidak ada |
mode | Mode tulis untuk HBase saat ini terbatas pada mode normal. Dukungan untuk mode kolom dinamis direncanakan di masa depan. | Ya | Tidak ada |
table | Nama tabel HBase tujuan. Nama ini case-sensitive. | Ya | Tidak ada |
encoding | Metode encoding, UTF-8 atau GBK, yang digunakan untuk mengonversi STRING menjadi HBase byte[]. | Tidak | utf-8 |
column | Kolom HBase tempat data ditulis:
| Ya | Tidak ada |
rowkeyColumn | Mendefinisikan kolom sumber yang digunakan untuk membuat rowkey HBase.
Kode berikut menunjukkan formatnya. | Ya | Tidak ada |
versionColumn | Timestamp untuk menulis data ke HBase. Anda dapat menggunakan waktu saat ini, kolom waktu tertentu, atau waktu yang ditentukan. Jika Anda tidak mengonfigurasi parameter ini, waktu saat ini digunakan.
Kode berikut menunjukkan formatnya.
| Tidak | Tidak ada |
nullMode | Menentukan cara menangani nilai null dari sumber saat menulis ke HBase:
| Tidak | skip |
walFlag | Write-Ahead Log (WAL) menjamin ketahanan data. Sebelum menulis ke MemStore, klien HBase terlebih dahulu menulis operasi seperti Put dan Delete ke WAL. Klien hanya diberi tahu bahwa penulisan berhasil setelah entri WAL selesai. Jika penulisan WAL gagal, operasi tersebut gagal. Untuk meningkatkan performa penulisan dengan mengorbankan jaminan ketahanan yang lebih rendah, Anda dapat menonaktifkan WAL dengan mengatur parameter ini ke | Tidak | false |
writeBufferSize | Ukuran buffer penulisan untuk klien HBase, dalam byte. Parameter ini digunakan bersama pengaturan Pengaturan
| Tidak | 8M |
fileSystemUsername | Jika Anda mengalami masalah izin Ranger selama task sinkronisasi, Anda dapat mengubah task dari mode wizard ke Mode Skrip. Kemudian, konfigurasikan parameter fileSystemUsername dengan pengguna yang memiliki izin yang diperlukan. DataWorks kemudian akan mengakses HBase sebagai pengguna yang ditentukan. | Tidak | Tidak ada |
Contoh skrip HBase20xsql Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"hbase20xsql",// Nama plugin.
"parameter":{
"queryServerAddress": "http://127.0.0.1:8765", // Titik akhir Phoenix QueryServer.
"serialization": "PROTOBUF", // Format serialisasi QueryServer.
"table": "TEST", // Nama tabel yang akan dibaca.
"column": ["ID", "NAME"], // Nama kolom yang akan dibaca.
"splitKey": "ID" // Kunci pemisahan, yang harus merupakan kunci primer tabel.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah Pembatasan kecepatan diaktifkan. Jika diatur ke true, data ditransfer pada laju yang ditentukan oleh `mbps`. Jika diatur ke false, parameter `mbps` diabaikan dan tidak ada batas laju.
"concurrent":1,// Jumlah maksimum thread konkuren.
"mbps":"12"// Laju transfer maksimum. Satuan: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter HBase20xsql Reader
Parameter | Deskripsi | Wajib | Default |
queryServerAddress | Plugin HBase20xsql Reader terhubung ke Phoenix QueryServer menggunakan thin client Phoenix. Oleh karena itu, Anda harus memasukkan alamat QueryServer. Jika Anda menggunakan HBase Enhanced Edition (Lindorm) dan perlu melewatkan parameter | Ya | Tidak ada |
serialization | Protokol serialisasi yang digunakan oleh QueryServer. | Tidak | PROTOBUF |
table | Nama tabel yang akan dibaca. Nama ini case-sensitive. | Ya | Tidak ada |
schema | Skema tempat tabel berada. | Tidak | Tidak ada |
column | Kumpulan nama kolom di tabel yang dikonfigurasi yang ingin Anda sinkronkan. Gunakan array JSON untuk menentukan informasi kolom. Nilai kosong berarti semua kolom dibaca. | Tidak | Semua kolom |
splitKey | Tabel di-shard saat dibaca. Jika Anda menentukan parameter splitKey, sistem akan menggunakan bidang yang sesuai dengan splitKey untuk melakukan sharding data. Hal ini memungkinkan Sinkronisasi Data untuk menjalankan task konkuren dan meningkatkan performa sinkronisasi. Anda dapat memilih dari dua metode sharding berbeda. Jika parameter splitPoint kosong, sistem secara default menggunakan sharding otomatis berdasarkan Metode 1.
| Ya | Tidak ada |
splitPoints | Karena sharding berdasarkan nilai maksimum dan minimum kolom sharding tidak dapat mencegah hot spot data, kami menyarankan Anda menentukan titik shard berdasarkan startkey dan endkey dari Region untuk memastikan setiap kueri dipetakan ke satu Region saja. | Tidak | Tidak ada |
where | Kondisi filter untuk kueri tabel. HBase20xsql Reader membuat kueri SQL berdasarkan column, table, dan kondisi where yang ditentukan untuk mengekstrak data. | Tidak | Tidak ada |
querySql | Dalam beberapa skenario bisnis, parameter where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk mendefinisikan kueri SQL kustom. Jika Anda mengonfigurasi parameter ini, HBase20xsql Reader akan menggunakan kueri yang ditentukan untuk memfilter data dan mengabaikan parameter column, table, where, dan splitKey. Satu-satunya pengecualian adalah parameter queryserverAddress yang tetap harus diatur. | Tidak | Tidak ada |
Contoh skrip HBase11xsql Writer
{
"type": "job",
"version": "1.0",
"configuration": {
"setting": {
"errorLimit": {
"record": "0" // Jumlah maksimum catatan error yang diizinkan.
},
"speed": {
"throttle":true, // Menentukan apakah Pembatasan kecepatan diaktifkan.
"concurrent":1, // Jumlah maksimum thread konkuren.
"mbps":"1" // Laju transfer maksimum. Satuan: MB/s.
}
},
"reader": {
"plugin": "odps",
"parameter": {
"datasource": "your_odps_datasource_name",
"table": "your_source_table_name",
"column": [],
"partition": ""
}
},
"writer": {
"plugin": "hbase11xsql",
"parameter": {
"table": "PHOENIX_TABLE_NAME", // Nama tabel Phoenix tujuan.
"hbaseConfig": {
"hbase.zookeeper.quorum": "zookeeper-ip1,zookeeper-ip2", // Titik akhir ZooKeeper kluster HBase tujuan.
"zookeeper.znode.parent": "/hbase" // znode kluster HBase tujuan.
},
"column": [
"ID",
"NAME" // Daftar nama kolom tujuan.
],
"batchSize": 256, // Jumlah maksimum baris untuk penulisan batch.
"nullMode": "skip" // Menentukan cara menangani nilai null.
}
}
}
}Parameter HBase11xsql Writer
Parameter | Deskripsi | Wajib | Default |
plugin | Nama plugin. Nilainya harus | Ya | Tidak ada |
table | Nama tabel tempat data diimpor. Nama ini case-sensitive. Nama tabel Phoenix biasanya dalam huruf kapital. | Ya | Tidak ada |
column | Nama kolom. Nama ini case-sensitive. Nama kolom Phoenix biasanya dalam huruf kapital. Catatan
| Ya | Tidak ada |
hbaseConfig | Konfigurasi untuk kluster HBase tujuan. Parameter Catatan
| Ya | Tidak ada |
batchSize | Jumlah maksimum baris untuk penulisan batch. | Tidak | 256 |
nullMode | Menentukan cara menangani nilai kolom null dari sumber:
| Tidak | skip |