HBase veri kaynağı, HBase'den veri okumanıza ve HBase'e veri yazmanıza olanak tanır. Bu konuda, DataWorks içindeki veri senkronizasyon yetenekleri açıklanmaktadır.
Desteklenen sürümler
İki tür HBase eklentisi bulunur: HBase eklentisi ve HBase{xx}xsql eklentisi. HBase{xx}xsql eklentisi hem HBase hem de Phoenix gerektirir.
-
HBase eklentisi:
HBase0.94.x,HBase1.1.xveHBase2.xsürümlerini destekler. Hem kod içermeyen kullanıcı arayüzü hem de kod düzenleyici desteklenir. Sürümü belirtmek içinhbaseVersionparametresini kullanın.-
HBase sürümünüz
HBase0.94.xise, hem okuyucu hem de yazıcı için hbaseVersion değerini 094x olarak ayarlayın."reader": { "hbaseVersion": "094x" }"writer": { "hbaseVersion": "094x" } -
HBase sürümünüz HBase1.1.x veya HBase2.x ise, hem okuyucu hem de yazıcı için hbaseVersion değerini 11x olarak ayarlayın.
"reader": { "hbaseVersion": "11x" }"writer": { "hbaseVersion": "11x" }HBase1.1.x eklentisi HBase 2.0 ile uyumludur.
-
-
HBase{xx}xsql eklentisi
-
HBase20xsql eklentisi:
HBase2.xvePhoenix5.xsürümlerini destekler. Yalnızca kod düzenleyici desteklenir.HBase11xsql eklentisi:
HBase1.1.xvePhoenix5.xsürümlerini destekler. Yalnızca kod düzenleyici desteklenir. -
HBase{xx}xsql yazıcı eklentisi, HBase içindeki SQL tablolarına (Phoenix) verileri toplu olarak aktarmak için basit bir yol sunar. Phoenix rowkey'i kodlar. HBase API'sini kullanarak veri yazmak, manuel veri dönüşümü gerektiren karmaşık ve hata yapmaya açık bir işlemdir.
NotEklenti, UPSERT deyimlerini yürütmek için Phoenix JDBC sürücüsünü kullanır ve verileri tabloya toplu halde yazar. Yüksek seviye arabirimi ayrıca dizin tablolarının eşzamanlı güncellenmesini sağlar.
-
Sınırlamalar
|
HBase Okuyucu |
HBase20xsql Okuyucu |
HBase11xsql Yazıcı |
|
|
|
Özellikler
HBase Okuyucu
HBase Okuyucu normal ve multiVersionFixedColumn modlarını destekler. Yapılandırma talimatları için HBase alan eşleme kılavuzu bölümüne bakın.
-
normalmodunda, HBase Okuyucu bir HBase tablosunu standart iki boyutlu bir tablo (geniş tablo) olarak ele alır ve verilerin en son sürümünü okur.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 secondsAşağıdaki tabloda çıktı verileri gösterilmektedir.
Satır anahtarı
basic:age
basic:name
score:english
score:math
s001
20
Tom
90
85 -
multiVersionFixedColumnmodu: Bir HBase tablosunu dar tablo olarak okur. Döndürülen her kayıt dört sütundan oluşur:rowKey,family:qualifier,timestampvevalue. Okunacak sütunları açıkça belirtmeniz gerekir. Her hücrenin değeri bir kayıt olarak ele alınır. Birden fazla sürüm varsa birden fazla kayıt döndürülür.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 }
Satır anahtarı
family:qualifier
Zaman damgası
Değer
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 Yazıcı
rowkeyoluşturma kuralı: HBase Yazıcı şu anda, bir HBase tablosu içinrowkeyolarak kullanılmak üzere kaynaktan gelen birden fazla alanın birleştirilmesini destekler.-
Verileri HBase'e yazmak için bir sürüm (zaman damgası) belirtebilirsiniz. Kullanılabilir seçenekler şunlardır:
Geçerli zamanı sürüm olarak kullanın.
Bir kaynak sütunu sürüm olarak belirtin.
Bir zamanı sürüm olarak belirtin.
Desteklenen veri türleri
Toplu okuma
-
Bu tabloda desteklenen HBase veri türleri ve HBase Okuyucunun bunları nasıl dönüştürdüğü gösterilmektedir.
Kategori
Veri Entegrasyonu sütun türü
Veritabanı veri türü
Tamsayı
long
short, int ve long
Kayan nokta
double
float ve double
Dize
string
binary_string ve string
Tarih ve saat
date
date
Bayt
bytes
bytes
Boolean
boolean
boolean HBase20xsql Okuyucu çoğu Phoenix veri türünü destekler ancak hepsini desteklemez. Veri türlerinizin desteklendiğinden emin olun.
-
Bu tabloda HBase20xsql Okuyucunun Phoenix veri türlerini DataX dahili türlerine nasıl eşlediği gösterilmektedir.
DataX dahili türü
Phoenix veri türü
long
INTEGER, TINYINT, SMALLINT, BIGINT
double
FLOAT, DECIMAL, DOUBLE
string
CHAR, VARCHAR
date
DATE, TIME, TIMESTAMP
bytes
BINARY, VARBINARY
boolean
BOOLEAN
Toplu yazma
Bu tabloda HBase Yazıcının desteklediği veri türleri listelenmektedir.
Her sütun için yapılandırılan veri türü, HBase tablosundaki karşılık gelen veri türüyle eşleşmelidir.
Yalnızca tabloda listelenen veri türleri desteklenir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Önlemler
Bağlantıyı test ederken "tried to access method com.google.common.base.Stopwatch" hatasıyla karşılaşırsanız, HBase sürümünü belirtmek için veri kaynağı yapılandırmasına hbaseVersion özelliğini ekleyin.
Veri kaynağı ekleme
DataWorks'te bir senkronizasyon görevi geliştirmeden önce, Veri kaynağı yapılandırması konusundaki talimatları izleyerek gerekli veri kaynağını DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.
Veri senkronizasyon görevi geliştirme
Bir senkronizasyon görevini yapılandırmaya giriş noktası ve prosedürü hakkında bilgi için aşağıdaki yapılandırma kılavuzlarına bakın.
Tek tablo toplu senkronizasyonunu yapılandırma
-
Ayrıntılar için Kod içermeyen kullanıcı arayüzü yapılandırması ve betik modu yapılandırması bölümlerine bakın.
HBase şemasız bir veri kaynağı olduğundan, Kod İçermeyen Kullanıcı Arayüzü varsayılan olarak alan eşlemelerini görüntülemez. Bunları manuel olarak yapılandırmanız gerekir.
HBase'i veri kaynağı olarak kullanırken öncelikle bir Output Mode seçmeniz gerekir: normal mod veya multiVersionFixedColumn modu.
Alan eşleme yapılandırması her mod için farklılık gösterir:
-
normal mod: Bu varsayılan moddur. Bu mod, bir HBase tablosunu standart iki boyutlu bir tablo olarak okur ve verilerin en son sürümünü alır. HBase'i veri kaynağı olarak kullanırken Source Field ile Target Field arasındaki eşlemeyi yapılandırmanız gerekir. Kaynak ve hedef alanlar arasında birebir eşleme bulunur. Kaynak tablonun sabit alanları olmadığından, alanlar varsayılan olarak sıralarına göre eşlenir. Eşlemeyi değiştirmek için alan sırasını manuel olarak düzenlemeniz gerekir.
Yeni sürüm
Alan eşleme yapılandırmasında eşlemeler şöyledir:
rowkey→rowkey,basic:age→age,basic:name→name,score:english→englishvescore:math→math. Kaynak alanlar JSON formatında görüntülenir venameiletype(her ikisi destring) özelliklerini içerir.Eski sürüm
Alan eşleme yapılandırmasında kaynak alanlar
Type|ColumnFamily:ColumnNameformatında görüntülenir; bunastring|rowkey,string|basic:age,string|basic:name,string|score:englishvestring|score:mathdahildir. Bunlar sırasıylarowkey,age,name,englishvemathhedef alanlarıyla eşleşir.Hedef tabloda rowkey, age, name, english, math ve pt gibi alanlar bulunur. Örneğin: rowkey=s001, age=20, name=Tom, english=90, math=85, pt=222222.
-
multiVersionFixedColumn modu: Her çıktı kaydı dört sütundan (rowKey, family:qualifier, timestamp ve value) oluşur ve bu mod birden fazla veri sürümü okumanıza olanak tanır. Source Field,
ColumnFamily:Qualifierformatında (örneğinbasic:age) yapılandırılır. Hedef tabloda dört sabit sütun bulunur: row_key, cf, timestamp_col ve value. Eşleme yapılandırması gerekmez.Yeni sürüm
Alan eşleme alanında kaynak alanları hedef alanlarla eşleyin. Kaynak alanlar JSON formatındadır. Örnek eşlemeler:
{"name":"rowkey","type":"string"}rowkey hedef alanıyla,{"name":"basic:age","type":"string"}family ile,{"name":"basic:name","type":"string"}timestamp ile ve{"name":"score:english","type":"string"}value ile eşleşir. Sistem, eşlenmemiş kaynak alanı{"name":"score:math","type":"string"}ile senkronize etmez. Kaynak ve hedef alanları sırasıyla düzenlemek için her iki taraftaki Düzenle düğmesine tıklayabilirsiniz.Eski sürüm
Alan eşleme alanında kaynak alan
string|rowkey,string|basic:age,string|basic:name,string|score:englishvestring|score:mathöğelerini içerir. Hedef alanrowkey,family,timestampvevalueöğelerini içerir. Kaynak ve hedef alanlar satır satır eşlenir.Hedef tabloda row_key, cf, timestamp_col ve value olmak üzere dört sabit sütun bulunur. Örneğin: row_key=s001, cf=basic:age, timestamp_col=1234567890, value=20.
HBase'i veri hedefi olarak kullanırken (yalnızca normal mod desteklenir), Target Field ve rowkey öğelerini yapılandırmanız gerekir. Birden fazla kaynak alanı birleştirerek rowkey alanını oluşturabilirsiniz.
-
Betik modu için parametreler ve betik örnekleri için Ek: Betik örnekleri ve parametre açıklamaları bölümüne bakın.
SSS
-
S: Uygun bir eşzamanlılık ayarı nedir? İçe aktarma hızı yavaş olduğunda eşzamanlılığı artırmak yardımcı olur mu?
C: Veri içe aktarma işlemindeki Java Sanal Makinesinin (JVM) varsayılan yığın boyutu 2 GB'dır. Eşzamanlılık, çoklu iş parçacığı aracılığıyla uygulanır ve kanal sayısı ile yapılandırılır. Aşırı sayıda iş parçacığı, sık çöp toplama nedeniyle içe aktarma hızını artırmadan performansı düşürebilir. 5–10 eşzamanlı iş parçacığı (kanal) kullanmanızı öneririz.
-
S:
batchSizeiçin optimum değer nedir?C: Varsayılan değer 256'dır. Optimum
batchSizedeğerini satır boyutuna göre hesaplayın. Tek bir parti genellikle 2–4 MB veri içermelidir. ÖnerilenbatchSizedeğerini belirlemek için bu veri hacmini satır boyutuna bölün. -
S:
multiVersionFixedColumnmodunda HBase'den veri okurkenjava.lang.StringIndexOutOfBoundsException: String index out of range: -1hatası alıyorum. Bu sorunu nasıl çözebilirim?C: Bu hata genellikle sütun yapılandırmasındaki
namealanınıncolumnFamily:qualifier(columnFamily:qualifier) formatını takip etmemesinden kaynaklanır. Örneğin,basic:ageyerine yalnızca niteleyiciyi (age) belirtmiş olabilirsiniz. Bu sorunu çözmek içinrowkeydışındaki her sütununnamedeğerinincolumnFamily:qualifierformatında olduğundan emin olun.
Ek: Örnek betik ve parametreler
Kod düzenleyici kullanarak toplu senkronizasyon görevini yapılandırma
Toplu senkronizasyon görevini kod düzenleyici kullanarak yapılandırmak istiyorsanız, birleşik betik formatı gereksinimlerine göre betikteki ilgili parametreleri yapılandırmanız gerekir. Daha fazla bilgi için Betik modu yapılandırması konusuna bakın. Aşağıdaki bilgiler, kod düzenleyici kullanarak toplu senkronizasyon görevini yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklamaktadır.
HBase Okuyucu örneği
{
"type":"job",
"version":"2.0",// The version number.
"steps":[
{
"stepType":"hbase",// The plugin name.
"parameter":{
"mode":"normal",// Specifies the mode for reading data from HBase. Valid values: `normal` and `multiVersionFixedColumn`.
"scanCacheSize":"256",// Specifies the number of rows to fetch from the server per RPC.
"scanBatchSize":"100",// Specifies the number of columns to fetch from the server per RPC.
"hbaseVersion":"094x/11x",// The HBase version.
"column":[// The fields to read.
{
"name":"rowkey",// The field name.
"type":"string"// The data type.
},
{
"name":"basic:age",
"type":"string"
},
{
"name":"basic:name",
"type":"string"
},
{
"name":"score:english",
"type":"string"
},
{
"name":"score:math",
"type":"string"
}
],
"range":{// Specifies the rowkey range to read.
"endRowkey":"",// The end rowkey.
"isBinaryRowkey":true,// Specifies whether to use binary conversion for startRowkey and endRowkey. The default value is false.
"startRowkey":""// The start rowkey.
},
"maxVersion":"",// Specifies the number of versions to read in multi-version mode.
"encoding":"UTF-8",// The encoding format.
"table":"student",// The table name.
"hbaseConfig":{// The connection configuration for the HBase cluster, in JSON format.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// The plugin name for the destination. This example uses MaxCompute. You can replace it with another Writer plugin.
"parameter":{
"partition":"",// Partition information for the destination table. Not required for non-partitioned tables.
"truncate":true,// Specifies whether to clear the destination table or partition before writing data.
"datasource":"odps_datasource",// The MaxCompute data source name.
"column":[// The destination fields.
"rowkey",
"basic_age",
"basic_name",
"score_english",
"score_math"
],
"table":"student_target"// The name of the destination MaxCompute table.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of error records to allow before the job fails.
},
"speed":{
"throttle":true,// Specifies whether to enable rate limiting. If set to false, the mbps parameter is ignored.
"concurrent":1,// The number of concurrent jobs.
"mbps":"12"// The rate limit in megabytes per second (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
HBase Okuyucu betiği (multiVersionFixedColumn modu)
Aşağıdaki örnek, multiVersionFixedColumn modunda HBase'den veri okuyup MaxCompute'a yazmak için eksiksiz bir betik göstermektedir. Bu modda, HBase'deki her hücrenin değeri ayrı bir kayda dönüştürülür. Her kayıt dört sütundan oluşur: rowkey, family:qualifier, timestamp ve value.
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"hbase",// Plugin name.
"parameter":{
"mode":"multiVersionFixedColumn",// The mode for reading data from HBase. This example uses multiVersionFixedColumn mode.
"scanCacheSize":"256",// The number of rows that the HBase client reads from the server in each remote procedure call (RPC).
"scanBatchSize":"100",// The number of columns that the HBase client reads from the server in each RPC.
"hbaseVersion":"20x",// HBase version.
"datasource":"hbase_datasource",// HBase data source name.
"column":[// The columns to read. The first column must be rowkey. The names of other columns must be in the "column family:qualifier" format.
{
"name":"rowkey",// The rowkey column.
"type":"string"
},
{
"name":"basic:age",// The age column in the basic column family.
"type":"string"
},
{
"name":"basic:name",// The name column in the basic column family.
"type":"string"
},
{
"name":"score:english",// The english column in the score column family.
"type":"string"
},
{
"name":"score:math",// The math column in the score column family.
"type":"string"
}
],
"range":{
"isBinaryRowkey":false
},
"maxVersion":"-1",// The maximum number of versions to read. This parameter is required in multiVersionFixedColumn mode. A value of -1 specifies that all versions are read.
"encoding":"UTF-8",// Encoding format.
"table":"student"// HBase table name.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// The name of the destination plugin. This example uses MaxCompute.
"parameter":{
"partition":"",// The partition of the destination table. This parameter is not required for non-partitioned tables.
"truncate":true,// If set to true, this clears the destination table or partition before writing data.
"datasource":"odps_datasource",// MaxCompute data source name.
"column":[// The destination has four fixed columns that correspond to the rowkey, family:qualifier, timestamp, and value from the source, respectively.
"row_key",
"cf",
"timestamp_col",
"value"
],
"table":"hbase_multiversion_target"// The name of the destination MaxCompute table.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of error records allowed.
},
"speed":{
"throttle":false,// No rate limiting.
"concurrent":2// Job concurrency.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
MaxCompute'daki hedef tablo önceden oluşturulmalıdır. Örneğin: CREATE TABLE IF NOT EXISTS hbase_multiversion_target (row_key STRING, cf STRING, timestamp_col STRING, value STRING);
HBase Okuyucu betik parametreleri
|
Parametre |
Açıklama |
Gerekli |
Varsayılan |
|
haveKerberos |
haveKerberos true ise, HBase kümesi Kerberos kimlik doğrulaması gerektirir. Not
|
Hayır |
false |
|
hbaseConfig |
HBase kümesine bağlanmak için gereken yapılandırma, JSON formatında. HBase için ZooKeeper uç noktasını belirten hbase.zookeeper.quorum parametresi gereklidir. Sunucu ile etkileşimi optimize etmek için tarama önbelleği ve toplu iş ayarları gibi diğer HBase istemci yapılandırmalarını da ekleyebilirsiniz. Not
ApsaraDB for HBase örneğine bağlanıyorsanız iç ağ uç noktasını kullanmanız gerekir. |
Evet |
Yok |
|
mode |
HBase için desteklenen okuma modları normal ve multiVersionFixedColumn'dir. |
Evet |
Yok |
|
table |
Okunacak HBase tablosunun adı. Tablo adları büyük/küçük harfe duyarlıdır. |
Evet |
Yok |
|
encoding |
İkili bir HBase byte[] değerini Dize'ye dönüştürmek için kullanılan kodlama formatı (örneğin UTF-8 veya GBK). |
Hayır |
utf-8 |
|
column |
Okunacak HBase alanı. Bu parametre normal modunda ve multiVersionFixedColumn modunda gereklidir.
|
Evet |
Yok |
|
maxVersion |
Çok sürümlü modda okunacak hücre sürümlerinin maksimum sayısı. Geçerli değerler |
|
Yok |
|
range |
Okunacak rowkey aralığını belirtir.
|
Hayır |
Yok |
|
scanCacheSize |
Tek bir uzak yordam çağrısında (RPC) HBase'den getirilecek satır sayısı. |
Hayır |
256 |
|
scanBatchSize |
Tek bir RPC'de HBase'den getirilecek sütun sayısı. Tüm sütunları getirmek için bunu -1 olarak ayarlayın. Not
scanBatchSize değeri, veri kalitesi risklerini önlemek için gerçek sütun sayısından büyük olmalıdır. |
Hayır |
100 |
HBase Yazıcı betiği
{
"type":"job",
"version":"2.0",// The version number.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"hbase",// The plugin name.
"parameter":{
"mode":"normal",// The write mode for HBase.
"walFlag":"false",// Set to `false` to disable write-ahead logging (WAL).
"hbaseVersion":"094x",// The HBase version.
"rowkeyColumn":[// The columns that form the HBase rowkey.
{
"index":"0",// The index of the source data column.
"type":"string"// The data type for this part of the rowkey.
},
{
"index":"-1",
"type":"string",
"value":"_"
}
],
"nullMode":"skip",// Specifies how to handle null values from the source.
"column":[// The destination columns in the HBase table.
{
"name":"columnFamilyName1:columnName1",// The column name, in `family:qualifier` format.
"index":"0",// The index of the source data column.
"type":"string"// The data type of the column value.
},
{
"name":"columnFamilyName2:columnName2",
"index":"1",
"type":"string"
},
{
"name":"columnFamilyName3:columnName3",
"index":"2",
"type":"string"
}
],
"encoding":"utf-8",// The character encoding.
"table":"",// The name of the destination HBase table.
"hbaseConfig":{// Configuration for the HBase cluster connection, in JSON format.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs: //ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of allowed error records.
},
"speed":{
"throttle":true,// Enables (`true`) or disables (`false`) rate limiting. If `true`, the rate is defined by the `mbps` parameter.
"concurrent":1, // The number of concurrent write tasks.
"mbps":"12"// The maximum transfer rate in megabytes per second (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
HBase yazıcı betik parametreleri
|
Parametre |
Açıklama |
Gerekli |
Varsayılan |
|
haveKerberos |
HBase kümesinin Kerberos kimlik doğrulaması gerektirip gerektirmediğini belirtir. Kerberos kimlik doğrulamasını etkinleştirmek için bu parametreyi Not
|
Hayır |
|
|
hbaseConfig |
HBase kümesine bağlanmak için JSON yapılandırması. Not
ApsaraDB for HBase veritabanına bağlanmak için iç ağ uç noktasını kullanmanız gerekir. |
Evet |
Yok |
|
mode |
HBase'e veri yazma modu. Şu anda yalnızca |
Evet |
Yok |
|
table |
Veri yazılacak HBase tablosunun adı. Bu parametre büyük/küçük harfe duyarlıdır. |
Evet |
Yok |
|
encoding |
STRING verilerini |
Hayır |
|
|
column |
Veri yazdığınız sütunlar için yapılandırma:
|
Evet |
Yok |
|
rowkeyColumn |
Veri yazılacak HBase tablosundaki rowkey sütunu:
Format aşağıdaki gibidir.
|
Evet |
Yok |
|
versionColumn |
Yazma işlemi için zaman damgasını belirtir. Değer bir kaynak sütundan veya bir sabitten gelebilir. Bu parametre yapılandırılmazsa sistemin geçerli saati kullanılır.
Aşağıdaki örnekler formatı göstermektedir.
|
Hayır |
Yok |
|
nullMode |
Kaynak verilerdeki null değerlerin nasıl işleneceğini belirtir:
|
Hayır |
|
|
walFlag |
Bir HBase istemcisi veri gönderdiğinde, işlemleri önce write-ahead log (WAL) dosyasına yazar, ardından MemStore'a yazar. Bu süreç veri dayanıklılığını sağlar. Yazma performansını artırmak için bu parametreyi |
Hayır |
|
|
writeBufferSize |
HBase istemcisi için yazma arabelleğinin boyutu (bayt cinsinden). Bu parametre
|
Hayır |
8 MB |
|
fileSystemUsername |
Bir senkronizasyon görevi sırasında Ranger izin sorunlarını çözmek için sihirbaz tabanlı görevi betik moduna dönüştürün. Ardından, |
Hayır |
Yok |
HBase20xsql Okuyucu demosu
{
"type":"job",
"version":"2.0",// Version number.
"steps":[
{
"stepType":"hbase20xsql",// Plugin name.
"parameter":{
"queryServerAddress": "http://127.0.0.1:8765", // Phoenix QueryServer endpoint.
"serialization": "PROTOBUF", // QueryServer serialization format.
"table": "TEST", // Table to read.
"column": ["ID", "NAME"], // Columns to read.
"splitKey": "ID" // Sharding key, which must be the primary key of the table.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Maximum allowed error records.
},
"speed":{
"throttle":true,// Toggles rate limiting. If true, the rate is limited by the mbps parameter.
"concurrent":1,// Number of concurrent jobs.
"mbps":"12"// Rate limit in MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
HBase20xsql Okuyucu parametreleri
|
Parametre |
Açıklama |
Gerekli |
Varsayılan |
|
queryServerAddress |
Phoenix QueryServer uç noktası. HBase20xsql Okuyucu eklentisi bu uç noktaya bağlanmak için hafif bir istemci kullanır. ApsaraDB for HBase Performans Geliştirilmiş Sürüm (Lindorm) için kullanıcı kimlik bilgilerini geçirmek amacıyla |
Evet |
Yok |
|
serialization |
Phoenix QueryServer tarafından kullanılan serileştirme protokolü. |
Hayır |
PROTOBUF |
|
table |
Okunacak tablonun adı. Ad büyük/küçük harfe duyarlıdır. |
Evet |
Yok |
|
schema |
Tabloyu içeren şema. |
Hayır |
Yok |
|
column |
Senkronize edilecek sütunlar. Sütun adlarını tanımlamak için bir JSON dizisi kullanın. Bu parametreyi belirtmezseniz veya boş bırakırsanız okuyucu tüm sütunları okur. |
Hayır |
Tüm sütunlar |
|
splitKey |
Bir tablo okunduğunda parçalanır. splitKey parametresini belirtirseniz, splitKey tarafından temsil edilen alan veri parçalama için kullanılır. Bu, veri senkronizasyonunun eşzamanlı görevler başlatmasına olanak tanır ve performansı artırır. İki farklı parçalama yöntemi arasında seçim yapabilirsiniz. splitPoint parametresi boşsa, tablo varsayılan olarak birinci yönteme göre otomatik olarak parçalanır:
|
Evet |
Yok |
|
splitPoints |
Parçalama anahtarının minimum ve maksimum değerlerine dayalı otomatik parçalama, veri sıcak noktalarını önlemeyebilir. Optimum performans için, her eşzamanlı görevin tek bir Bölgeyi sorgulamasını sağlamak üzere HBase Bölgelerinizin startkey ve endkey değerlerine dayalı özel parçalama noktaları tanımlamanızı öneririz. |
Hayır |
Yok |
|
where |
Tablo sorgusuna eklenecek bir filtre koşulu. HBase20xsql Okuyucu, veri çıkarmak için column, table ve where parametrelerine dayalı bir SQL sorgusu oluşturur. |
Hayır |
Yok |
|
querySql |
where parametresinin yetersiz kaldığı karmaşık filtreleme senaryoları için özel bir SQL sorgusu sağlayabilirsiniz. Bu parametreyi yapılandırırsanız okuyucu column, table, where ve splitKey parametrelerini yoksayar. queryServerAddress parametresi yine de gereklidir. |
Hayır |
Yok |
HBase11xsql Yazıcı örneği
{
"type": "job",
"version": "1.0",
"configuration": {
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,// Enables rate limiting. If set to false, the mbps parameter is ignored.
"concurrent":1, // The number of concurrent jobs.
"mbps":"1"// Rate limit in MB/s.
}
},
"reader": {
"plugin": "odps",
"parameter": {
"datasource": "",
"table": "",
"column": [],
"partition": ""
}
},
"plugin": "hbase11xsql",
"parameter": {
"table": "The name of the destination HBase table. The name is case-sensitive.",
"hbaseConfig": {
"hbase.zookeeper.quorum": "The ZooKeeper endpoint of the destination HBase cluster.",
"zookeeper.znode.parent": "The znode of the destination HBase cluster."
},
"column": [
"columnName"
],
"batchSize": 256,
"nullMode": "skip"
}
}
}
HBase11xsql Yazıcı parametreleri
|
Parametre |
Açıklama |
Gerekli |
Varsayılan |
|
plugin |
Eklentinin adını belirtir. Değer hbase11xsql olmalıdır. |
Evet |
Yok |
|
table |
Hedef tablonun adını belirtir. Bu parametre büyük/küçük harfe duyarlıdır. Phoenix tablo adları genellikle büyük harfle yazılır. |
Evet |
Yok |
|
column |
Sütun adlarını belirtir. Adlar büyük/küçük harfe duyarlıdır. Phoenix sütun adları genellikle büyük harfle yazılır. Not
|
Evet |
Yok |
|
hbaseConfig |
HBase kümesi uç noktasını belirtir. ZooKeeper (ZK) uç noktasını ip1,ip2,ip3 formatında belirtmeniz gerekir. Not
|
Evet |
Yok |
|
batchSize |
Toplu yazma için maksimum satır sayısını belirtir. |
Hayır |
256 |
|
nullMode |
Kaynak verilerden gelen null değerlerin nasıl işleneceğini belirtir.
|
Hayır |
skip |