Sumber data HBase memungkinkan Anda membaca dari dan menulis ke HBase. Topik ini menjelaskan kemampuan sinkronisasi datanya di DataWorks.
Versi yang didukung
Terdapat dua jenis plugin HBase: plugin HBase dan plugin HBase{xx}xsql. Plugin HBase{xx}xsql memerlukan HBase dan Phoenix.
-
Plugin HBase:
Mendukung
HBase0.94.x,HBase1.1.x, danHBase2.x. Antarmuka tanpa kode (codeless UI) dan editor kode (code editor) keduanya didukung. Gunakan parameterhbaseVersionuntuk menentukan versinya.-
Jika versi HBase Anda adalah
HBase0.94.x, atur hbaseVersion ke 094x baik untuk reader maupun writer."reader": { "hbaseVersion": "094x" }"writer": { "hbaseVersion": "094x" } -
Jika versi HBase Anda adalah HBase1.1.x atau HBase2.x, atur hbaseVersion ke 11x baik untuk reader maupun writer.
"reader": { "hbaseVersion": "11x" }"writer": { "hbaseVersion": "11x" }Plugin HBase1.1.x kompatibel dengan HBase 2.0.
-
-
Plugin HBase{xx}xsql
-
Plugin HBase20xsql: Mendukung
HBase2.xdanPhoenix5.x. Hanya editor kode yang didukung.Plugin HBase11xsql: Mendukung
HBase1.1.xdanPhoenix5.x. Hanya editor kode yang didukung. -
Plugin writer HBase{xx}xsql menyediakan cara sederhana untuk mengimpor data secara batch ke tabel SQL (Phoenix) di HBase. Phoenix melakukan encoding terhadap rowkey. Menulis data menggunakan API HBase memerlukan konversi data manual, proses yang kompleks dan rentan kesalahan.
CatatanPlugin ini menggunakan driver JDBC Phoenix untuk mengeksekusi pernyataan UPSERT, menulis data ke tabel secara batch. Antarmuka tingkat tingginya juga memungkinkan pembaruan sinkron ke tabel indeks.
-
Batasan
|
HBase Reader |
HBase20xsql Reader |
HBase11xsql Writer |
|
|
|
Fitur
HBase Reader
HBase Reader mendukung mode normal dan multiVersionFixedColumn. Lihat Panduan pemetaan bidang HBase untuk instruksi konfigurasinya.
-
Pada mode
normal, HBase Reader memperlakukan tabel HBase sebagai tabel dua dimensi standar (tabel lebar) dan membaca versi terbaru dari 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 data keluaran.
Row key
basic:age
basic:name
score:english
score:math
s001
20
Tom
90
85
-
Mode
multiVersionFixedColumn: Membaca 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 diperlakukan sebagai satu catatan. Jika terdapat 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 }Row key
family: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 data untuk digunakan sebagairowkeytabel HBase. -
Anda dapat menentukan versi (timestamp) untuk menulis data ke HBase. Opsi yang tersedia adalah:
-
Gunakan waktu saat ini sebagai versi.
-
Tentukan kolom sumber sebagai versi.
-
Tentukan waktu tertentu sebagai versi.
-
Tipe data yang didukung
Baca batch
-
Tabel ini menunjukkan tipe data HBase yang didukung dan cara HBase Reader mengonversinya.
Kategori
Tipe kolom Data Integration
Tipe data database
Integer
long
short, int, dan long
Floating-point
double
float dan double
String
string
binary_string dan string
Tanggal dan waktu
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 ini menunjukkan cara HBase20xsql Reader memetakan tipe data Phoenix ke tipe internal DataX.
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
Tulis batch
Tabel ini mencantumkan tipe data yang didukung oleh HBase Writer.
-
Tipe data yang dikonfigurasi untuk setiap kolom harus sesuai dengan tipe data yang sesuai di tabel HBase.
-
Hanya tipe data yang tercantum dalam tabel ini yang didukung.
|
Kategori |
Tipe data database |
|
Integer |
INT, LONG, dan SHORT |
|
Floating-point |
FLOAT dan DOUBLE |
|
Boolean |
BOOLEAN |
|
String |
STRING |
Perhatian
Jika Anda mengalami error "tried to access method com.google.common.base.Stopwatch" saat menguji konektivitas, tambahkan properti hbaseVersion ke konfigurasi sumber data untuk menentukan versi HBase.
Tambahkan sumber data
Sebelum mengembangkan tugas 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.
Kembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasi sinkronisasi batch tabel tunggal
-
Untuk detailnya, lihat Konfigurasi antarmuka tanpa kode dan konfigurasi mode skrip.
Karena HBase merupakan sumber data tanpa skema (schemaless), antarmuka tanpa kode tidak menampilkan pemetaan bidang secara default. Anda harus mengonfigurasinya secara manual.
Saat menggunakan HBase sebagai sumber data, Anda harus terlebih dahulu memilih Output Mode: mode normal atau mode multiVersionFixedColumn.
Konfigurasi pemetaan bidang berbeda untuk setiap mode:
-
mode normal: Ini adalah mode default. Mode ini membaca tabel HBase sebagai tabel dua dimensi standar dan mengambil versi terbaru dari data. Saat menggunakan HBase sebagai sumber data, Anda harus mengonfigurasi pemetaan antara Source Field dan Target Field. Bidang sumber dan tujuan memiliki pemetaan satu-ke-satu. Karena tabel sumber tidak memiliki bidang tetap, bidang dipetakan berdasarkan urutannya secara default. Untuk mengubah pemetaan, Anda harus mengedit urutan bidang secara manual.
Versi baru
Dalam konfigurasi pemetaan bidang, pemetaannya adalah:
rowkey→rowkey,basic:age→age,basic:name→name,score:english→english, danscore:math→math. Bidang sumber ditampilkan dalam format JSON dan mencakup propertinamedantype(keduanyastring).Versi lama
Dalam konfigurasi pemetaan bidang, bidang sumber ditampilkan dalam format
Type|ColumnFamily:ColumnName, termasukstring|rowkey,string|basic:age,string|basic:name,string|score:english, danstring|score:math. Ini dipetakan ke bidang targetrowkey,age,name,english, danmath, masing-masing.Tabel target berisi bidang seperti rowkey, age, name, english, math, dan pt. Contohnya: rowkey=s001, age=20, name=Tom, english=90, math=85, pt=222222.
-
mode multiVersionFixedColumn: Setiap catatan output terdiri dari empat kolom (rowKey, family:qualifier, timestamp, dan value), dan mode ini memungkinkan Anda membaca beberapa versi data. Source Field dikonfigurasi dalam format
ColumnFamily:Qualifier, sepertibasic:age. Tabel tujuan memiliki empat kolom tetap: row_key, cf, timestamp_col, dan value. Tidak diperlukan konfigurasi pemetaan.Versi baru
Di area pemetaan bidang, petakan bidang sumber ke bidang target. Bidang sumber dalam format JSON. Contoh pemetaan:
{"name":"rowkey","type":"string"}dipetakan ke bidang target rowkey,{"name":"basic:age","type":"string"}dipetakan ke family,{"name":"basic:name","type":"string"}dipetakan ke timestamp, dan{"name":"score:english","type":"string"}dipetakan ke value. Sistem tidak menyinkronkan bidang sumber yang tidak dipetakan{"name":"score:math","type":"string"}. Anda dapat mengklik tombol Edit di kedua sisi untuk mengedit bidang sumber dan target masing-masing.Versi lama
Di area pemetaan bidang, bidang sumber mencakup
string|rowkey,string|basic:age,string|basic:name,string|score:english, danstring|score:math. bidang target mencakuprowkey,family,timestamp, danvalue. Bidang sumber dan target dipetakan baris per baris.Tabel target berisi empat kolom tetap: row_key, cf, timestamp_col, dan value. Contohnya: row_key=s001, cf=basic:age, timestamp_col=1234567890, value=20.
-
Saat menggunakan HBase sebagai tujuan data (hanya mode normal yang didukung), Anda harus mengonfigurasi Target Field dan rowkey. Anda dapat membentuk bidang rowkey dengan menggabungkan beberapa bidang sumber.
-
-
Untuk parameter dan contoh skrip mode skrip, lihat Lampiran: Contoh skrip dan deskripsi parameter.
FAQ
-
Q: Berapa pengaturan konkurensi yang tepat? Apakah meningkatkan konkurensi membantu ketika kecepatan impor lambat?
A: Ukuran heap default untuk Java Virtual Machine (JVM) dalam proses impor data adalah 2 GB. Konkurensi diimplementasikan melalui multithreading dan dikonfigurasi berdasarkan jumlah saluran (channel). Thread yang berlebihan dapat menurunkan performa tanpa meningkatkan kecepatan impor karena sering terjadi pengumpulan sampah (garbage collection). Kami merekomendasikan penggunaan 5–10 thread konkuren (saluran).
-
Q: Berapa nilai optimal untuk
batchSize?A: Nilai defaultnya adalah 256. Hitung
batchSizeoptimal berdasarkan ukuran baris. Satu batch biasanya harus berisi data sebesar 2–4 MB. Bagilah volume data ini dengan ukuran baris untuk menentukanbatchSizeyang direkomendasikan. -
Q: Saat membaca data dari HBase dalam mode
multiVersionFixedColumn, saya menerima errorjava.lang.StringIndexOutOfBoundsException: String index out of range: -1. Bagaimana cara mengatasinya?A: Error ini biasanya terjadi karena bidang
namedalam konfigurasi kolom tidak mengikuti formatcolumnFamily:qualifier(columnFamily:qualifier). Misalnya, Anda mungkin hanya menentukan qualifier-nya saja, sepertiage, bukanbasic:age. Untuk mengatasi hal ini, pastikannameuntuk setiap kolom kecualirowkeydiformat sebagaicolumnFamily:qualifier.
Lampiran: Contoh skrip dan parameter
Konfigurasi 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 lebih lanjut, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh HBase Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"hbase",// Nama plugin.
"parameter":{
"mode":"normal",// Menentukan mode untuk membaca data dari HBase. Nilai yang valid: `normal` dan `multiVersionFixedColumn`.
"scanCacheSize":"256",// Menentukan jumlah baris yang diambil dari server per RPC.
"scanBatchSize":"100",// Menentukan jumlah kolom yang diambil dari server per RPC.
"hbaseVersion":"094x/11x",// Versi HBase.
"column":[// Bidang yang akan dibaca.
{
"name":"rowkey",// Nama bidang.
"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":{// Menentukan rentang rowkey yang akan dibaca.
"endRowkey":"",// Rowkey akhir.
"isBinaryRowkey":true,// Menentukan apakah akan menggunakan konversi biner untuk startRowkey dan endRowkey. Nilai default adalah false.
"startRowkey":""// Rowkey awal.
},
"maxVersion":"",// Menentukan jumlah versi yang akan dibaca dalam mode multi-versi.
"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 untuk tujuan. Contoh ini menggunakan MaxCompute. Anda dapat menggantinya dengan plugin Writer lain.
"parameter":{
"partition":"",// Informasi partisi untuk tabel tujuan. Tidak diperlukan untuk tabel non-partisi.
"truncate":true,// Menentukan apakah akan mengosongkan tabel atau partisi tujuan sebelum menulis data.
"datasource":"odps_datasource",// Nama sumber data MaxCompute.
"column":[// Bidang 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 sebelum tugas gagal.
},
"speed":{
"throttle":true,// Menentukan apakah akan mengaktifkan pembatasan laju. Jika diatur ke false, parameter mbps diabaikan.
"concurrent":1,// Jumlah tugas konkuren.
"mbps":"12"// Batas laju dalam megabyte per detik (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Skrip HBase Reader (mode multiVersionFixedColumn)
Contoh berikut menunjukkan skrip lengkap untuk membaca data dari HBase dalam mode multiVersionFixedColumn dan menulisnya ke MaxCompute. Dalam mode ini, nilai setiap sel di HBase dikonversi 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 panggilan prosedur jarak jauh (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 kolom lain harus dalam format "keluarga kolom:qualifier".
{
"name":"rowkey",// Kolom rowkey.
"type":"string"
},
{
"name":"basic:age",// Kolom age dalam keluarga kolom basic.
"type":"string"
},
{
"name":"basic:name",// Kolom name dalam keluarga kolom basic.
"type":"string"
},
{
"name":"score:english",// Kolom english dalam keluarga kolom score.
"type":"string"
},
{
"name":"score:math",// Kolom math dalam keluarga kolom score.
"type":"string"
}
],
"range":{
"isBinaryRowkey":false
},
"maxVersion":"-1",// Jumlah maksimum versi yang akan dibaca. 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":"",// Partisi tabel tujuan. Parameter ini tidak diperlukan untuk tabel non-partisi.
"truncate":true,// Jika diatur ke true, ini akan mengosongkan tabel atau partisi tujuan sebelum menulis data.
"datasource":"odps_datasource",// Nama sumber data MaxCompute.
"column":[// Tujuan memiliki empat kolom tetap yang masing-masing sesuai dengan rowkey, family:qualifier, timestamp, dan value dari sumber.
"row_key",
"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,// Tidak ada pembatasan laju.
"concurrent":2// Konkurensi tugas.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Tabel tujuan di MaxCompute harus dibuat terlebih dahulu. Contohnya: CREATE TABLE IF NOT EXISTS hbase_multiversion_target (row_key STRING, cf STRING, timestamp_col STRING, value STRING);
Parameter skrip HBase Reader
|
Parameter |
Deskripsi |
Wajib |
Default |
|
haveKerberos |
Jika haveKerberos bernilai true, kluster HBase memerlukan autentikasi Kerberos. Catatan
|
Tidak |
false |
|
hbaseConfig |
Konfigurasi yang diperlukan untuk terhubung ke kluster HBase, dalam format JSON. Parameter hbase.zookeeper.quorum, yang menentukan endpoint ZooKeeper untuk HBase, wajib diisi. Anda juga dapat menambahkan konfigurasi klien HBase lainnya, seperti cache dan pengaturan batch pemindaian, untuk mengoptimalkan interaksi dengan server. Catatan
Jika Anda terhubung ke instans ApsaraDB for HBase, Anda harus menggunakan endpoint jaringan internalnya. |
Ya |
Tidak ada |
|
mode |
Mode baca yang didukung untuk HBase adalah normal dan multiVersionFixedColumn. |
Ya |
Tidak ada |
|
table |
Nama tabel HBase yang akan dibaca. Nama tabel bersifat case-sensitive. |
Ya |
Tidak ada |
|
encoding |
Format encoding, seperti UTF-8 atau GBK, digunakan untuk mengonversi nilai biner HBase byte[] menjadi String. |
Tidak |
utf-8 |
|
column |
Bidang HBase yang akan dibaca. Parameter ini wajib diisi dalam mode normal dan mode multiVersionFixedColumn.
|
Ya |
Tidak ada |
|
maxVersion |
Jumlah maksimum versi sel yang akan dibaca dalam mode multi-versi. Nilai yang valid adalah |
Wajib dalam mode |
Tidak ada |
|
range |
Menentukan rentang rowkey yang akan dibaca.
|
Tidak |
Tidak ada |
|
scanCacheSize |
Jumlah baris yang diambil dari HBase dalam satu panggilan prosedur jarak jauh (RPC). |
Tidak |
256 |
|
scanBatchSize |
Jumlah kolom yang diambil dari HBase dalam satu RPC. Atur ke -1 untuk mengambil semua kolom. Catatan
Nilai scanBatchSize harus lebih besar dari jumlah kolom aktual untuk menghindari risiko kualitas data. |
Tidak |
100 |
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 penulisan untuk HBase.
"walFlag":"false",// Atur ke `false` untuk menonaktifkan write-ahead logging (WAL).
"hbaseVersion":"094x",// Versi HBase.
"rowkeyColumn":[// Kolom yang membentuk rowkey HBase.
{
"index":"0",// Indeks kolom data sumber.
"type":"string"// Tipe data untuk bagian rowkey ini.
},
{
"index":"-1",
"type":"string",
"value":"_"
}
],
"nullMode":"skip",// Menentukan cara menangani nilai null dari sumber.
"column":[// Kolom tujuan di tabel HBase.
{
"name":"columnFamilyName1:columnName1",// Nama kolom, dalam format `family:qualifier`.
"index":"0",// Indeks kolom data sumber.
"type":"string"// Tipe data nilai kolom.
},
{
"name":"columnFamilyName2:columnName2",
"index":"1",
"type":"string"
},
{
"name":"columnFamilyName3:columnName3",
"index":"2",
"type":"string"
}
],
"encoding":"utf-8",// Pengkodean karakter.
"table":"",// Nama tabel HBase tujuan.
"hbaseConfig":{// Konfigurasi koneksi 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,// Mengaktifkan (`true`) atau menonaktifkan (`false`) pembatasan laju. Jika `true`, laju ditentukan oleh parameter `mbps`.
"concurrent":1, // Jumlah tugas penulisan konkuren.
"mbps":"12"// Laju transfer maksimum dalam megabyte per detik (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parameter skrip HBase writer
|
Parameter |
Deskripsi |
Wajib |
Default |
|
haveKerberos |
Menentukan apakah kluster HBase memerlukan autentikasi Kerberos. Atur parameter ini ke Catatan
|
Tidak |
|
|
hbaseConfig |
Konfigurasi JSON untuk menghubungkan ke kluster HBase. Parameter Catatan
Untuk terhubung ke database ApsaraDB for HBase, Anda harus menggunakan endpoint jaringan internalnya. |
Ya |
Tidak ada |
|
mode |
Mode untuk menulis data ke HBase. Hanya mode |
Ya |
Tidak ada |
|
table |
Nama tabel HBase yang akan ditulis. Parameter ini case-sensitive. |
Ya |
Tidak ada |
|
encoding |
Format encoding untuk mengonversi data STRING menjadi |
Tidak |
|
|
column |
Konfigurasi untuk kolom yang akan ditulis data:
|
Ya |
Tidak ada |
|
rowkeyColumn |
Kolom rowkey di tabel HBase yang akan ditulis:
Formatnya adalah sebagai berikut.
|
Ya |
Tidak ada |
|
versionColumn |
Menentukan timestamp untuk operasi penulisan. Nilainya dapat berasal dari kolom sumber atau konstanta. Jika parameter ini tidak dikonfigurasi, sistem akan menggunakan waktu saat ini.
Contoh formatnya adalah sebagai berikut.
|
Tidak |
Tidak ada |
|
nullMode |
Menentukan cara menangani nilai null dalam data sumber:
|
Tidak |
|
|
walFlag |
Saat klien HBase mengirimkan data, operasi tersebut pertama-tama ditulis ke log write-ahead (WAL) sebelum ditulis ke MemStore. Proses ini memastikan ketahanan data. Untuk meningkatkan performa penulisan, Anda dapat menonaktifkan WAL dengan mengatur parameter ini ke |
Tidak |
|
|
writeBufferSize |
Ukuran buffer penulisan untuk klien HBase, dalam byte. Parameter ini digunakan bersama
|
Tidak |
8 MB |
|
fileSystemUsername |
Untuk mengatasi masalah izin Ranger selama tugas sinkronisasi, ubah tugas berbasis wizard ke mode skrip. Kemudian, atur parameter |
Tidak |
Tidak ada |
Demo HBase20xsql Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"hbase20xsql",// Nama plugin.
"parameter":{
"queryServerAddress": "http://127.0.0.1:8765", // Endpoint Phoenix QueryServer.
"serialization": "PROTOBUF", // Format serialisasi QueryServer.
"table": "TEST", // Tabel yang akan dibaca.
"column": ["ID", "NAME"], // Kolom yang akan dibaca.
"splitKey": "ID" // Kunci sharding, yang harus merupakan primary key 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,// Mengaktifkan/menonaktifkan pembatasan laju. Jika true, laju dibatasi oleh parameter mbps.
"concurrent":1,// Jumlah tugas konkuren.
"mbps":"12"// Batas laju dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parameter HBase20xsql Reader
|
Parameter |
Deskripsi |
Wajib |
Default |
|
queryServerAddress |
Endpoint Phoenix QueryServer. Plugin HBase20xsql Reader menggunakan klien ringan untuk terhubung ke endpoint ini. Untuk meneruskan kredensial pengguna untuk ApsaraDB for HBase Performance-enhanced Edition (Lindorm), tambahkan properti |
Ya |
Tidak ada |
|
serialization |
Protokol serialisasi yang digunakan oleh Phoenix QueryServer. |
Tidak |
PROTOBUF |
|
table |
Nama tabel yang akan dibaca. Nama ini case-sensitive. |
Ya |
Tidak ada |
|
schema |
Skema yang berisi tabel tersebut. |
Tidak |
Tidak ada |
|
column |
Kolom yang akan disinkronkan. Gunakan array JSON untuk menentukan nama kolom. Jika Anda tidak menentukan parameter ini atau membiarkannya kosong, reader akan membaca semua kolom. |
Tidak |
Semua kolom |
|
splitKey |
Saat sebuah tabel dibaca, tabel tersebut di-shard. Jika Anda menentukan parameter splitKey, bidang yang diwakili oleh splitKey digunakan untuk sharding data. Hal ini memungkinkan sinkronisasi data untuk memulai tugas konkuren dan meningkatkan performa. Anda dapat memilih antara dua metode sharding berbeda. Jika parameter splitPoint kosong, tabel akan secara otomatis di-shard berdasarkan metode satu secara default:
|
Ya |
Tidak ada |
|
splitPoints |
Sharding otomatis berdasarkan nilai minimum dan maksimum kunci sharding mungkin tidak mencegah hot spot data. Untuk performa optimal, kami merekomendasikan menentukan titik sharding kustom berdasarkan startkey dan endkey Regions HBase Anda. Hal ini memastikan bahwa setiap tugas konkuren mengkueri satu Region saja. |
Tidak |
Tidak ada |
|
where |
Kondisi filter yang ditambahkan ke kueri tabel. HBase20xsql Reader membuat kueri SQL berdasarkan parameter column, table, dan where untuk mengekstrak data. |
Tidak |
Tidak ada |
|
querySql |
Untuk skenario penyaringan kompleks di mana parameter where tidak mencukupi, Anda dapat memberikan kueri SQL kustom. Jika Anda mengonfigurasi parameter ini, reader akan mengabaikan parameter column, table, where, dan splitKey. Parameter queryServerAddress tetap diperlukan. |
Tidak |
Tidak ada |
Contoh HBase11xsql Writer
{
"type": "job",
"version": "1.0",
"configuration": {
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,// Mengaktifkan pembatasan laju. Jika diatur ke false, parameter mbps diabaikan.
"concurrent":1, // Jumlah tugas konkuren.
"mbps":"1"// Batas laju dalam MB/s.
}
},
"reader": {
"plugin": "odps",
"parameter": {
"datasource": "",
"table": "",
"column": [],
"partition": ""
}
},
"plugin": "hbase11xsql",
"parameter": {
"table": "Nama tabel HBase tujuan. Nama ini case-sensitive.",
"hbaseConfig": {
"hbase.zookeeper.quorum": "Endpoint ZooKeeper kluster HBase tujuan.",
"zookeeper.znode.parent": "znode kluster HBase tujuan."
},
"column": [
"columnName"
],
"batchSize": 256,
"nullMode": "skip"
}
}
}
Parameter HBase11xsql Writer
|
Parameter |
Deskripsi |
Wajib |
Default |
|
plugin |
Menentukan nama plugin. Nilainya harus hbase11xsql. |
Ya |
Tidak ada |
|
table |
Menentukan nama tabel tujuan. Parameter ini case-sensitive. Nama tabel Phoenix biasanya huruf kapital. |
Ya |
Tidak ada |
|
column |
Menentukan nama kolom. Nama ini case-sensitive. Nama kolom Phoenix biasanya huruf kapital. Catatan
|
Ya |
Tidak ada |
|
hbaseConfig |
Menentukan endpoint kluster HBase. Anda harus menentukan endpoint ZooKeeper (ZK) dalam format ip1,ip2,ip3. Catatan
|
Ya |
Tidak ada |
|
batchSize |
Menentukan jumlah maksimum baris untuk penulisan batch. |
Tidak |
256 |
|
nullMode |
Menentukan cara menangani nilai null dari data sumber.
|
Tidak |
skip |