全部产品
Search
文档中心

DataWorks:Sumber data HBase

更新时间:Dec 12, 2025

Sumber data HBase menyediakan saluran dua arah untuk membaca dari dan menulis ke HBase. Topik ini menjelaskan kemampuan sinkronisasi datanya dalam DataWorks.

Versi yang didukung

Plugin HBase dikategorikan menjadi HBase dan HBase{xx}xsql. Plugin HBase{xx}xsql harus digunakan bersama HBase dan Phoenix.

  1. Plugin HBase

    Plugin HBase mendukung HBase 0.94.x, HBase 1.1.x, dan HBase 2.x. Anda dapat mengonfigurasi plugin melalui antarmuka tanpa kode atau editor kode, serta menggunakan parameter hbaseVersion untuk menentukan versi HBase.

    • Jika menggunakan HBase 0.94.x, atur parameter `hbaseVersion` ke 094x untuk plugin reader dan writer.

      "reader": {
              "hbaseVersion": "094x"
          }
      "writer": {
              "hbaseVersion": "094x"
          }
    • Jika menggunakan HBase 1.1.x atau HBase 2.x, atur parameter `hbaseVersion` ke 11x untuk plugin reader dan writer.

      "reader": {
              "hbaseVersion": "11x"
          }
      "writer": {
              "hbaseVersion": "11x"
          }
      Plugin HBase 1.1.x kompatibel dengan HBase 2.0.
  2. Plugin HBase{xx}xsql

    1. Plugin HBase20xsql: Mendukung HBase 2.x dan Phoenix 5.x. Hanya editor kode yang didukung.

      Plugin HBase11xsql: Mendukung HBase 1.1.x dan Phoenix 5.x. Hanya editor kode yang didukung.

    2. Plugin writer HBase{xx}xsql memungkinkan Anda mengimpor data secara batch ke tabel SQL (Phoenix) di HBase. Phoenix melakukan encoding terhadap rowkey. Jika Anda menulis data langsung menggunakan API HBase, Anda harus mengonversi data tersebut secara manual—proses yang kompleks dan rentan kesalahan. Plugin writer HBase{xx}xsql menyediakan cara sederhana untuk mengimpor data ke tabel SQL.

      Catatan

      Plugin ini menggunakan driver Java Database Connectivity (JDBC) Phoenix untuk mengeksekusi pernyataan UPSERT dan menulis data ke tabel secara batch. Karena menggunakan antarmuka tingkat tinggi, plugin ini juga dapat memperbarui tabel indeks.

Batasan

HBase Reader

HBase20xsql Reader

HBase11xsql Writer

  • Anda hanya dapat melakukan sharding tabel berdasarkan satu kolom saja. Kolom tersebut harus merupakan primary key tabel.

  • Saat melakukan sharding tabel berdasarkan konkurensi tugas, hanya kolom bertipe integer dan string yang dapat digunakan sebagai kolom sharding.

  • Nama tabel, nama skema, dan nama kolom bersifat case-sensitive. Pastikan penulisannya sesuai dengan tabel Phoenix yang sebenarnya.

  • Anda hanya dapat membaca data melalui Phoenix QueryServer. Oleh karena itu, Anda harus menjalankan layanan QueryServer di Phoenix sebelum menggunakan plugin HBase20xsql Reader.

  • Hanya mendukung kelompok sumber daya Serverless (disarankan) dan kelompok sumber daya eksklusif untuk Data Integration.

  • Tidak mendukung impor data dengan timestamp.

  • Hanya mendukung tabel yang dibuat oleh Phoenix. Tabel HBase native tidak didukung.

  • Urutan kolom yang didefinisikan di writer harus sesuai dengan urutan kolom di reader. Urutan kolom di reader menentukan susunan kolom pada setiap baris output. Urutan kolom di writer menentukan urutan kolom yang diharapkan pada data yang diterima. Contohnya:

    • Urutan kolom reader adalah c1, c2, c3, c4.

    • Urutan kolom writer adalah x1, x2, x3, x4.

    Nilai kolom c1 reader akan ditetapkan ke kolom x1 writer. Jika urutan kolom writer adalah x1, x2, x4, x3, maka nilai c3 akan ditetapkan ke x4, dan nilai c4 akan ditetapkan ke x3.

  • Mendukung impor data untuk tabel yang memiliki indeks. Semua tabel indeks dapat diperbarui.

Fitur yang didukung

HBase Reader

HBase Reader mendukung mode normal dan multiVersionFixedColumn.

  • Mode normal: Membaca tabel HBase sebagai tabel dua dimensi standar dan mengambil versi terbaru dari data.

    hbase(main):017:0> scan 'users'
    ROW                                   COLUMN+CELL
    lisi                                 column=address:city, timestamp=1457101972764, value=beijing
    lisi                                 column=address:contry, timestamp=1457102773908, value=china
    lisi                                 column=address:province, timestamp=1457101972736, value=beijing
    lisi                                 column=info:age, timestamp=1457101972548, value=27
    lisi                                 column=info:birthday, timestamp=1457101972604, value=1987-06-17
    lisi                                 column=info:company, timestamp=1457101972653, value=baidu
    xiaoming                             column=address:city, timestamp=1457082196082, value=hangzhou
    xiaoming                             column=address:contry, timestamp=1457082195729, value=china
    xiaoming                             column=address:province, timestamp=1457082195773, value=zhejiang
    xiaoming                             column=info:age, timestamp=1457082218735, value=29
    xiaoming                             column=info:birthday, timestamp=1457082186830, value=1987-06-17
    xiaoming                             column=info:company, timestamp=1457082189826, value=alibaba
    2 row(s) in 0.0580 seconds }

    Tabel berikut menunjukkan data setelah dibaca.

    rowKey

    address:city

    address:contry

    address:province

    info:age

    info:birthday

    info:company

    lisi

    beijing

    china

    beijing

    27

    1987-06-17

    baidu

    xiaoming

    hangzhou

    china

    zhejiang

    29

    1987-06-17

    alibaba

  • Mode multiVersionFixedColumn: Membaca tabel HBase sebagai tabel vertikal. Setiap catatan yang dibaca memiliki format empat kolom: rowKey, family:qualifier, timestamp, dan value. Anda harus menentukan kolom yang akan dibaca. Nilai di setiap sel diperlakukan sebagai satu catatan; jika terdapat beberapa versi, beberapa catatan akan dihasilkan.

    hbase(main):018:0> scan 'users',{VERSIONS=>5}
    ROW                                   COLUMN+CELL
    lisi                                 column=address:city, timestamp=1457101972764, value=beijing
    lisi                                 column=address:contry, timestamp=1457102773908, value=china
    lisi                                 column=address:province, timestamp=1457101972736, value=beijing
    lisi                                 column=info:age, timestamp=1457101972548, value=27
    lisi                                 column=info:birthday, timestamp=1457101972604, value=1987-06-17
    lisi                                 column=info:company, timestamp=1457101972653, value=baidu
    xiaoming                             column=address:city, timestamp=1457082196082, value=hangzhou
    xiaoming                             column=address:contry, timestamp=1457082195729, value=china
    xiaoming                             column=address:province, timestamp=1457082195773, value=zhejiang
    xiaoming                             column=info:age, timestamp=1457082218735, value=29
    xiaoming                             column=info:age, timestamp=1457082178630, value=24
    xiaoming                             column=info:birthday, timestamp=1457082186830, value=1987-06-17
    xiaoming                             column=info:company, timestamp=1457082189826, value=alibaba
    2 row(s) in 0.0260 seconds }

    Tabel berikut menunjukkan data (empat kolom) setelah dibaca.

    rowKey

    column:qualifier

    timestamp

    value

    lisi

    address:city

    1457101972764

    beijing

    lisi

    address:contry

    1457102773908

    china

    lisi

    address:province

    1457101972736

    beijing

    lisi

    info:age

    1457101972548

    27

    lisi

    info:birthday

    1457101972604

    1987-06-17

    lisi

    info:company

    1457101972653

    beijing

    xiaoming

    address:city

    1457082196082

    hangzhou

    xiaoming

    address:contry

    1457082195729

    china

    xiaoming

    address:province

    1457082195773

    zhejiang

    xiaoming

    info:age

    1457082218735

    29

    xiaoming

    info:age

    1457082178630

    24

    xiaoming

    info:birthday

    1457082186830

    1987-06-17

    xiaoming

    info:company

    1457082189826

    alibaba

HBase Writer

  • Aturan pembuatan rowkey: HBase Writer mendukung penggabungan beberapa field sumber untuk menghasilkan rowkey untuk tabel HBase.

  • Dukungan versi (timestamp) untuk menulis data ke HBase:

    • Gunakan waktu saat ini sebagai versi.

    • Gunakan kolom sumber sebagai versi.

    • Gunakan waktu tertentu sebagai versi.

Tipe field yang didukung

Baca offline

  • Tabel berikut mencantumkan tipe data HBase yang dapat dibaca dan pemetaannya ke tipe HBase Reader.

    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 tipe Phoenix. Namun, beberapa tipe tidak didukung. Pastikan Anda memeriksa tipe data Anda.

  • Tabel berikut mencantumkan pemetaan antara tipe Phoenix dan tipe 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

Tulis offline

Tabel berikut mencantumkan tipe data HBase yang dapat ditulis dan pemetaannya ke tipe HBase Writer.

Catatan
  • Konfigurasi kolom harus konsisten dengan tipe kolom di tabel HBase.

  • Hanya tipe field yang tercantum dalam tabel berikut yang didukung.

Kategori

Tipe data database

Integer

INT, LONG, dan SHORT

Floating-point

FLOAT dan DOUBLE

Boolean

BOOLEAN

String

STRING

Catatan

Jika Anda menerima pesan error "tried to access method com.google.common.base.Stopwatch" saat menguji koneksi, 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 sesuai 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.

Panduan konfigurasi untuk tugas sinkronisasi offline tabel tunggal

  • Untuk informasi lebih lanjut, lihat Konfigurasi tugas sinkronisasi di antarmuka tanpa kode dan Konfigurasi tugas sinkronisasi di editor kode.

    Saat menggunakan antarmuka tanpa kode, pemetaan field tidak ditampilkan secara default karena HBase merupakan sumber data tanpa skema tetap. Anda harus mengonfigurasi pemetaan field secara manual:

    • Jika HBase adalah sumber, konfigurasikan Source Field. Formatnya: Tipe Field|Family Kolom:Nama Kolom.

    • Jika HBase adalah tujuan, konfigurasikan Destination Field dan rowkey. Format untuk Destination Field adalah Indeks Field Sumber|Tipe Field|Family Kolom:Nama Kolom. Format untuk rowkey adalah Indeks Primary Key Sumber|Tipe Field.

    Catatan

    Masukkan setiap field pada baris baru.

  • Untuk daftar lengkap parameter dan demo skrip untuk editor kode, lihat Lampiran: Demo skrip dan deskripsi parameter.

FAQ

  • Q: Berapa konkurensi yang sesuai? Apakah meningkatkan konkurensi mempercepat kecepatan yang lambat?

    A: Ukuran heap Java Virtual Machine (JVM) default untuk proses impor data adalah 2 GB. Konkurensi, yaitu jumlah channel, diimplementasikan menggunakan beberapa thread. Meningkatkan jumlah thread tidak selalu meningkatkan kecepatan impor; bahkan dapat menurunkan performa akibat garbage collection (GC) yang sering terjadi. Kami menyarankan Anda mengatur konkurensi (channel) pada kisaran 5 hingga 10.

  • Q: Berapa batchSize yang sesuai?

    A: Nilai defaultnya adalah 256. Namun, Anda harus menghitung batchSize optimal berdasarkan ukuran setiap baris. Volume data untuk satu operasi biasanya berkisar antara 2 MB hingga 4 MB. Untuk menentukan batchSize, bagi nilai tersebut dengan ukuran baris.

Lampiran: Demo skrip dan deskripsi 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 sesuai format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Demo 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":[// Field.
                    {
                        "name":"rowkey",// Nama field.
                        "type":"string"// Tipe data.
                    },
                    {
                        "name":"columnFamilyName1:columnName1",
                        "type":"string"
                    },
                    {
                        "name":"columnFamilyName2:columnName2",
                        "format":"yyyy-MM-dd",
                        "type":"date"
                    },
                    {
                        "name":"columnFamilyName3:columnName3",
                        "type":"long"
                    }
                ],
                "range":{// Menentukan rentang rowkey untuk dibaca oleh HBase Reader.
                    "endRowkey":"",// Rowkey akhir.
                    "isBinaryRowkey":true,// Menentukan cara mengonversi startRowkey dan endRowkey yang dikonfigurasi ke array byte. Nilai default adalah false.
                    "startRowkey":""// Rowkey awal.
                },
                "maxVersion":"",// Jumlah versi yang dibaca HBase Reader dalam mode multi-versi.
                "encoding":"UTF-8",// Format encoding.
                "table":"",// Nama tabel.
                "hbaseConfig":{// Informasi konfigurasi yang diperlukan untuk menghubungkan ke kluster HBase, dalam format JSON.
                    "hbase.zookeeper.quorum":"hostname",
                    "hbase.rootdir":"hdfs://ip:port/database",
                    "hbase.cluster.distributed":"true"
                }
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah catatan error.
        },
        "speed":{
            "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan laju. Jika throttle diatur ke true, pembatasan laju diterapkan.
            "concurrent":1,// Jumlah tugas konkuren.
            "mbps":"12"// Batas laju. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip HBase Reader

Parameter

Deskripsi

Wajib

Nilai default

haveKerberos

Jika haveKerberos diatur ke true, autentikasi Kerberos diperlukan untuk kluster HBase.

Catatan
  • Jika Anda mengatur parameter ini ke true, Anda harus mengonfigurasi parameter autentikasi Kerberos berikut:

    • kerberosKeytabFilePath

    • kerberosPrincipal

    • hbaseMasterKerberosPrincipal

    • hbaseRegionserverKerberosPrincipal

    • hbaseRpcProtection

  • Jika autentikasi Kerberos tidak diaktifkan untuk kluster HBase, Anda tidak perlu mengonfigurasi parameter ini.

Tidak

false

hbaseConfig

Informasi konfigurasi yang diperlukan untuk menghubungkan ke kluster HBase, dalam format JSON. Parameter hbase.zookeeper.quorum wajib diisi. Parameter ini menentukan endpoint ZooKeeper kluster HBase. Anda juga dapat menambahkan konfigurasi klien HBase lainnya, seperti cache dan batch pemindaian, untuk mengoptimalkan interaksi dengan server.

Catatan

Jika Anda menggunakan database ApsaraDB untuk HBase, hubungkan menggunakan titik akhir jaringan pribadi.

Ya

Tidak ada

mode

Mode untuk membaca data dari HBase. Nilai yang valid: normal dan multiVersionFixedColumn.

Ya

Tidak ada

table

Nama tabel HBase yang akan dibaca. Parameter ini case-sensitive.

Ya

Tidak ada

encoding

Format encoding, seperti UTF-8 atau GBK. Ini digunakan untuk mengonversi HBase byte[] yang disimpan dalam bentuk biner menjadi string.

Tidak

utf-8

column

Field HBase yang akan dibaca. Parameter ini wajib diisi dalam mode normal dan mode multiVersionFixedColumn.

  • Dalam mode normal

    Parameter `name` menentukan kolom HBase yang akan dibaca. Kecuali untuk rowkey, formatnya harus Family Kolom:Nama Kolom. Parameter `type` menentukan tipe data sumber. Parameter `format` menentukan format untuk tipe tanggal. Parameter `value` menunjukkan bahwa tipe saat ini adalah konstanta. Data tidak dibaca dari HBase. Sebaliknya, kolom yang sesuai dihasilkan secara otomatis berdasarkan `value`. Kode berikut menunjukkan format konfigurasi:

    "column": 
    [
    {
      "name": "rowkey",
      "type": "string"
    },
    {
      "value": "test",
      "type": "string"
    }
    ]

    Dalam mode normal, untuk informasi kolom yang Anda tentukan, type wajib diisi, dan Anda harus menentukan salah satu dari name atau value.

  • Dalam mode multiVersionFixedColumn

    Parameter `name` menentukan kolom HBase yang akan dibaca. Kecuali untuk rowkey, formatnya harus Family Kolom:Nama Kolom. Parameter `type` menentukan tipe data sumber. Parameter `format` menentukan format untuk tipe tanggal. Kolom konstan tidak didukung dalam mode multiVersionFixedColumn. Kode berikut menunjukkan format konfigurasi:

    "column": 
    [
    {
      "name": "rowkey",
      "type": "string"
    },
    {
      "name": "info:age",
      "type": "string"
    }
    ]

Ya

Tidak ada

maxVersion

Jumlah versi yang dibaca HBase Reader dalam mode multi-versi. Nilainya hanya bisa -1 atau angka lebih besar dari 1. Nilai -1 berarti semua versi dibaca.

Wajib dalam mode multiVersionFixedColumn.

Tidak ada

range

Menentukan rentang rowkey untuk dibaca oleh HBase Reader.

  • startRowkey: Rowkey awal.

  • endRowkey: Rowkey akhir.

  • isBinaryRowkey: Menentukan cara mengonversi startRowkey dan endRowkey yang dikonfigurasi ke array byte. Nilai default adalah false. Jika diatur ke true, metode Bytes.toBytesBinary(rowkey) dipanggil untuk konversi. Jika diatur ke false, metode Bytes.toBytes(rowkey) dipanggil. Kode berikut menunjukkan format konfigurasi:

    "range": {
    "startRowkey": "aaa",
    "endRowkey": "ccc",
    "isBinaryRowkey":false
    }

Tidak

Tidak ada

scanCacheSize

Jumlah baris yang dibaca HBase Reader dari HBase sekaligus.

Tidak

256

scanBatchSize

Jumlah kolom yang dibaca HBase Reader dari HBase sekaligus. Jika Anda mengatur parameter ini ke -1, semua kolom akan dikembalikan.

Catatan

Nilai scanBatchSize harus lebih besar dari jumlah kolom aktual untuk menghindari masalah kualitas data.

Tidak

100

Demo 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",// Menonaktifkan (false) pencatatan log WAL.
                "hbaseVersion":"094x",// Versi HBase.
                "rowkeyColumn":[// Kolom rowkey yang akan ditulis ke HBase.
                    {
                        "index":"0",// Nomor seri.
                        "type":"string"// Tipe data.
                    },
                    {
                        "index":"-1",
                        "type":"string",
                        "value":"_"
                    }
                ],
                "nullMode":"skip",// Cara menangani nilai null.
                "column":[// Field HBase yang akan ditulis.
                    {
                        "name":"columnFamilyName1:columnName1",// Nama field.
                        "index":"0",// Nomor indeks.
                        "type":"string"// Tipe data.
                    },
                    {
                        "name":"columnFamilyName2:columnName2",
                        "index":"1",
                        "type":"string"
                    },
                    {
                        "name":"columnFamilyName3:columnName3",
                        "index":"2",
                        "type":"string"
                    }
                ],
                "encoding":"utf-8",// Format encoding.
                "table":"",// Nama tabel.
                "hbaseConfig":{// Informasi konfigurasi yang diperlukan untuk menghubungkan ke 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 catatan error.
        },
        "speed":{
            "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan laju. Jika throttle diatur ke true, pembatasan laju diterapkan.
            "concurrent":1, // Jumlah tugas konkuren.
            "mbps":"12"// Batas laju.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip HBase Writer

Parameter

Deskripsi

Wajib

Nilai default

haveKerberos

Jika haveKerberos diatur ke true, autentikasi Kerberos diperlukan untuk kluster HBase.

Catatan
  • Jika Anda mengatur parameter ini ke true, Anda harus mengonfigurasi parameter autentikasi Kerberos berikut:

    • kerberosKeytabFilePath

    • kerberosPrincipal

    • hbaseMasterKerberosPrincipal

    • hbaseRegionserverKerberosPrincipal

    • hbaseRpcProtection

  • Jika autentikasi Kerberos tidak diaktifkan untuk kluster HBase, Anda tidak perlu mengonfigurasi parameter ini.

Tidak

false

hbaseConfig

Informasi konfigurasi yang diperlukan untuk menghubungkan ke kluster HBase, dalam format JSON. Parameter hbase.zookeeper.quorum wajib diisi. Parameter ini menentukan endpoint ZooKeeper kluster HBase. Anda juga dapat menambahkan konfigurasi klien HBase lainnya, seperti cache dan batch pemindaian, untuk mengoptimalkan interaksi dengan server.

Catatan

Jika Anda menggunakan database ApsaraDB untuk HBase, hubungkan menggunakan titik akhir jaringan pribadi.

Ya

Tidak ada

mode

Mode untuk menulis data ke HBase. Saat ini, hanya mode normal yang didukung. Mode kolom dinamis mungkin didukung di masa depan.

Ya

Tidak ada

table

Nama tabel HBase yang akan ditulis. Parameter ini case-sensitive.

Ya

Tidak ada

encoding

Format encoding, seperti UTF-8 atau GBK. Ini digunakan untuk mengonversi STRING menjadi HBase byte[].

Tidak

utf-8

column

Field HBase yang akan ditulis:

  • index: Menentukan indeks kolom yang sesuai di reader, dimulai dari 0.

  • name: Menentukan kolom di tabel HBase. Formatnya harus Family Kolom:Nama Kolom.

  • type: Menentukan tipe data yang akan ditulis, yang digunakan untuk mengonversi ke HBase byte[].

Ya

Tidak ada

rowkeyColumn

Kolom rowkey yang akan ditulis ke HBase:

  • index: Menentukan indeks kolom yang sesuai di reader, dimulai dari 0. Untuk konstanta, indeksnya adalah -1.

  • type: Menentukan tipe data yang akan ditulis, yang digunakan untuk mengonversi ke HBase byte[].

  • value: Menentukan konstanta, sering digunakan sebagai pemisah untuk menggabungkan beberapa field. HBase Writer menggabungkan semua kolom di rowkeyColumn sesuai urutan yang dikonfigurasi untuk membentuk rowkey yang akan ditulis ke HBase. Tidak semua kolom bisa berupa konstanta.

Kode berikut menunjukkan format konfigurasi.

"rowkeyColumn": [
          {
            "index":0,
            "type":"string"
          },
          {
            "index":-1,
            "type":"string",
            "value":"_"
          }
      ]

Ya

Tidak ada

versionColumn

Menentukan timestamp yang akan ditulis ke HBase. Anda dapat menggunakan waktu saat ini, kolom waktu tertentu, atau waktu tertentu. Jika Anda tidak mengonfigurasi parameter ini, waktu saat ini akan digunakan.

  • index: Menentukan indeks kolom yang sesuai di reader, dimulai dari 0. Nilainya harus dapat dikonversi ke LONG.

  • type: Jika tipenya Date, sistem akan mencoba menguraikannya menggunakan yyyy-MM-dd HH:mm:ss dan yyyy-MM-dd HH:mm:ss SSS. Jika ini adalah waktu tertentu, indeksnya adalah -1.

  • value: Nilai waktu tertentu, bertipe LONG.

Kode berikut menunjukkan format konfigurasi.

  • "versionColumn":{
    "index":1
    }
  • "versionColumn":{
    "index":-1,
    "value":123456789
    }

Tidak

Tidak ada

nullMode

Saat data yang dibaca bernilai null, Anda dapat menanganinya dengan salah satu dari dua cara berikut:

  • skip: Tidak menulis kolom ke HBase.

  • empty: Menulis HConstants.EMPTY_BYTE_ARRAY, yaitu new byte [0].

Tidak

skip

walFlag

Saat klien HBase mengirimkan data (operasi Put/Delete) ke RegionServer di kluster, data tersebut pertama-tama ditulis ke Write-Ahead Log (WAL). WAL juga dikenal sebagai HLog. Semua region di RegionServer berbagi satu HLog. Data ditulis ke MemStore hanya setelah berhasil ditulis ke WAL. Kemudian, klien diberi tahu bahwa data telah dikirim.

Jika penulisan ke WAL gagal, klien diberi tahu bahwa pengiriman gagal. Anda dapat mengatur parameter ini ke false untuk menonaktifkan penulisan ke WAL. Ini meningkatkan performa penulisan data.

Tidak

false

writeBufferSize

Mengatur ukuran buffer penulisan klien HBase dalam byte. Ini digunakan bersama autoflush.

autoflush (dinonaktifkan secara default):

  • Diaktifkan (true): Klien HBase melakukan pembaruan untuk setiap operasi put.

  • Dinonaktifkan (false): Klien HBase mengirim permintaan tulis ke server HBase hanya ketika cache penulisan klien penuh.

Tidak

8 MB

Demo skrip 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"    // Kolom sharding, yang harus merupakan primary key tabel.
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// Jumlah catatan error.
        },
        "speed":{
            "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan laju. Jika throttle diatur ke true, pembatasan laju diterapkan.
            "concurrent":1,// Jumlah tugas konkuren.
            "mbps":"12"// Batas laju. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter skrip HBase20xsql Reader

Parameter

Deskripsi

Wajib

Nilai default

queryServerAddress

Plugin HBase20xsql Reader perlu terhubung ke Phoenix QueryServer melalui klien Phoenix ringan. Oleh karena itu, Anda harus menentukan endpoint QueryServer di sini. Jika Anda adalah pengguna ApsaraDB untuk HBase Edisi Performa-tinggi (Lindorm) dan perlu melewatkan parameter user dan password, Anda dapat menambahkan properti opsional setelah queryServerAddress. Format: http://127.0.0.1:8765;user=root;password=root.

Ya

Tidak ada

serialization

Protokol serialisasi yang digunakan oleh QueryServer.

Tidak

PROTOBUF

table

Nama tabel yang akan dibaca. Parameter ini case-sensitive.

Ya

Tidak ada

schema

Skema tempat tabel berada.

Tidak

Tidak ada

column

Kumpulan nama kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan informasi field. Nilai kosong berarti semua kolom dibaca. Nilai defaultnya kosong.

Tidak

Semua kolom

splitKey

Memecah tabel saat membaca data. Jika Anda menentukan splitKey, sistem menggunakan field yang diwakili oleh splitKey untuk melakukan sharding data. Tugas sinkronisasi data kemudian memulai subtask konkuren untuk menyinkronkan data, yang meningkatkan efisiensi. Anda dapat memilih salah satu dari dua metode sharding. Jika splitPoint kosong, sistem secara otomatis melakukan sharding data menggunakan Metode 1 secara default:

  • Metode 1: Menemukan nilai maksimum dan minimum dari splitKey lalu melakukan sharding data secara merata berdasarkan nilai concurrent yang ditentukan.

    Catatan

    Hanya kolom bertipe integer dan string yang dapat digunakan sebagai kolom sharding.

  • Metode 2: Melakukan sharding data berdasarkan splitPoint yang dikonfigurasi. Kemudian, menyinkronkan data berdasarkan nilai concurrent yang ditentukan.

Ya

Tidak ada

splitPoints

Sharding berdasarkan nilai maksimum dan minimum kolom sharding tidak dapat menjamin penghindaran hot spot data. Oleh karena itu, kami menyarankan Anda menetapkan titik sharding berdasarkan startkey dan endkey dari Region. Ini memastikan bahwa setiap kueri sesuai dengan satu Region.

Tidak

Tidak ada

where

Kondisi filter. Anda dapat menambahkan kondisi filter ke kueri tabel. HBase20xsql Reader menggabungkan pernyataan SQL berdasarkan column, table, dan kondisi where yang ditentukan, lalu mengekstrak data berdasarkan pernyataan SQL tersebut.

Tidak

Tidak ada

querySql

Dalam beberapa skenario bisnis, parameter where tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk menyesuaikan filter SQL. Jika Anda mengonfigurasi parameter ini, parameter queryserverAddress tetap diperlukan, tetapi HBase20xsql Reader mengabaikan kondisi column, table, where, dan splitKey. Plugin ini menggunakan konten parameter ini untuk memfilter data.

Tidak

Tidak ada

Demo skrip HBase11xsql Writer

{
  "type": "job",
  "version": "1.0",
  "configuration": {
    "setting": {
      "errorLimit": {
        "record": "0"
      },
      "speed": {
            "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku dan tidak ada pembatasan laju. Jika throttle diatur ke true, pembatasan laju diterapkan.
            "concurrent":1, // Jumlah tugas konkuren.
            "mbps":"1"// Batas laju. 1 mbps = 1 MB/s.
      }
    },
    "reader": {
      "plugin": "odps",
      "parameter": {
        "datasource": "",
        "table": "",
        "column": [],
        "partition": ""
      }
    },
    "plugin": "hbase11xsql",
    "parameter": {
      "table": "Nama tabel HBase tujuan, case-sensitive",
      "hbaseConfig": {
        "hbase.zookeeper.quorum": "Endpoint server ZooKeeper kluster HBase tujuan",
        "zookeeper.znode.parent": "znode kluster HBase tujuan"
      },
      "column": [
        "columnName"
      ],
      "batchSize": 256,
      "nullMode": "skip"
    }
  }
}

Parameter skrip HBase11xsql Writer

Parameter

Deskripsi

Wajib

Nilai default

plugin

Nama plugin. Harus hbase11xsql.

Ya

Tidak ada

table

Nama tabel tempat mengimpor data. Parameter ini case-sensitive. Nama tabel Phoenix biasanya dalam huruf kapital.

Ya

Tidak ada

column

Nama kolom. Parameter ini case-sensitive. Nama kolom Phoenix biasanya dalam huruf kapital.

Catatan
  • Urutan kolom harus sesuai dengan urutan kolom yang dioutput oleh reader.

  • Anda tidak perlu menentukan tipe data. Metadata kolom secara otomatis diambil dari Phoenix.

Ya

Tidak ada

hbaseConfig

Endpoint kluster HBase. Endpoint ZooKeeper wajib diisi. Formatnya ip1,ip2,ip3.

Catatan
  • Gunakan koma (,) untuk memisahkan beberapa alamat IP.

  • znode bersifat opsional. Nilai defaultnya adalah /hbase.

Ya

Tidak ada

batchSize

Jumlah maksimum baris untuk penulisan batch.

Tidak

256

nullMode

Saat nilai kolom yang dibaca adalah null, Anda dapat menanganinya dengan salah satu dari dua cara berikut:

  • skip: Melewati kolom. Kolom tidak dimasukkan. Jika sudah ada, akan dihapus.

  • empty: Memasukkan nilai null. Nilai null untuk tipe nilai adalah 0, dan nilai null untuk varchar adalah string kosong.

Tidak

skip