HBase データソースは、HBase からの読み取りおよび HBase への書き込みの両方をサポートします。本トピックでは、DataWorks における HBase データソースのデータ同期機能について説明します。
サポートされるバージョン
HBase プラグインは、「HBase プラグイン」と「HBase{xx}xsql プラグイン」の 2 種類に分類されます。「HBase{xx}xsql プラグイン」は、HBase と Phoenix の両方が必要です。
HBase プラグイン:
HBase プラグインは、
HBase 0.94.x、HBase 1.1.x、およびHBase 2.xをサポートし、コードレス UI およびコードエディタの両方で動作します。hbaseVersionパラメーターを使用してバージョンを指定できます。HBase 0.94.xを使用する場合、リーダーとライターの hbaseVersion パラメーターを 094x に設定します。"reader": { "hbaseVersion": "094x" }"writer": { "hbaseVersion": "094x" }HBase 1.1.x または HBase 2.x を使用する場合、リーダーおよびライターの hbaseVersion パラメーターを 11x に設定します。
"reader": { "hbaseVersion": "11x" }"writer": { "hbaseVersion": "11x" }HBase 1.1.x プラグインは HBase 2.0 と互換があります。
HBase{xx}xsql プラグイン
HBase20xsql プラグインは、
HBase 2.xおよびPhoenix 5.xをサポートします。コードエディタのみがサポートされます。HBase11xsql プラグインは、
HBase 1.1.xおよびPhoenix 5.xをサポートします。コードエディタのみがサポートされます。HBase{xx}xsql ライター プラグインを使用すると、HBase 内の SQL テーブル(Phoenix)にデータをバッチ単位でインポートできます。Phoenix は行キー(rowkey)をエンコードします。HBase API を直接使用してデータを書き込むには、手動によるデータ変換が必要となり、これは複雑かつエラーが発生しやすいプロセスです。
説明このプラグインは、Phoenix Java Database Connectivity(JDBC)ドライバーを使用して UPSERT 文を実行し、テーブルにデータをバッチ単位で書き込みます。プラグインは高レベル API を使用するため、関連するインデックステーブルも同期的に更新されます。
制限事項
HBase リーダー | HBase20xsql リーダー | HBase11xsql ライター |
|
|
|
機能
HBase リーダー
normal モードおよび multiVersionFixedColumn モードがサポートされています。設定方法については、「HBase フィールドマッピング設定ガイド」をご参照ください。
normalモード:HBase テーブルを通常の二次元テーブル(ワイドテーブル)として読み取り、最新バージョンのデータを取得します。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 seconds以下の表は、読み取られたデータの例を示しています。
Rowkey
basic:age
basic:name
score:english
score:math
s001
20
Tom
90
85
multiVersionFixedColumnモードでは、HBase テーブルを狭いテーブル(ナローテーブル)として読み取ります。各返却レコードは、rowKey、family:qualifier、timestamp、およびvalueの 4 つのカラムで構成されます。読み取るカラムを明示的に指定する必要があります。各セルの値は個別のレコードとして返却されます。セルに複数のバージョンがある場合、複数のレコードが返却されます。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 }以下の表は、結果として得られる 4 カラム形式のデータの例を示しています。
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 ライター
rowkeyの生成ルール:現在、HBase ライターは、ソースから複数のフィールドを連結して HBase テーブルのrowkeyを生成することをサポートしています。HBase へのデータ書き込み時に使用可能なタイムスタンプ(
version)のオプションは以下のとおりです:現在時刻をバージョンとして使用します。
ソースカラムの値をバージョンとして使用します。
固定時刻をバージョンとして指定します。
サポートされるデータ型
バッチ読み取り
以下の表は、HBase リーダーのデータ型マッピングを示しています。
カテゴリ
データ統合カラム型
データベース型
整数
long
short、int、および long
浮動小数点
double
float および double
文字列
string
binary_string および string
日付および時刻
date
date
バイト
bytes
bytes
ブール値
boolean
boolean
HBase20xsql リーダーは、ほとんどの Phoenix データ型をサポートしていますが、すべてのデータ型をサポートしているわけではありません。ご使用のデータ型がサポートされているか確認してください。
以下の表は、HBase20xsql リーダーのデータ型マッピングを示しています。
DataX 内部型
Phoenix データ型
long
INTEGER、TINYINT、SMALLINT、BIGINT
double
FLOAT、DECIMAL、DOUBLE
string
CHAR、VARCHAR
date
DATE、TIME、TIMESTAMP
bytes
BINARY、VARBINARY
boolean
BOOLEAN
バッチ書き込み
以下の表は、HBase ライターのデータ型マッピングを示しています。
カラム構成は、HBase テーブルのカラム型と一致している必要があります。
以下の表に記載されているデータ型のみがサポートされます。
カテゴリ | データベース型 |
整数 | INT、LONG、および SHORT |
浮動小数点 | FLOAT および DOUBLE |
ブール値 | BOOLEAN |
文字列 | STRING |
注意事項
接続性テスト時に "tried to access method com.google.common.base.Stopwatch" エラーメッセージが表示された場合は、データソース構成に hbaseVersion パラメーターを追加してください。
データソースの追加
DataWorks で同期タスクを開発する前に、データソース管理 の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際には、DataWorks コンソールで パラメーターの説明を表示することで、各パラメーターの意味を確認できます。
データ同期タスク
同期タスクの設定手順およびエントリポイントについては、以下の設定ガイドをご参照ください。
単一テーブルのバッチ同期
設定方法については、「コードレス UI の使用」および「コードエディタの使用」をご参照ください。
コードレス UI を使用する場合、HBase は柔軟なスキーマを持つため、フィールドマッピングはデフォルトで表示されません。マッピングは手動で設定する必要があります。
HBase をソースとして使用する場合、まず 出力モード を選択する必要があります:ワイドテーブル(normal モード)またはナローテーブル(multiVersionFixedColumn モード)。
2 つのモード間でフィールドマッピングの設定方法は異なります:
ワイドテーブル(normal モード):これはデフォルトモードです。HBase テーブルを標準的な二次元テーブルとして読み取り、最新バージョンのデータを取得します。HBase をソースとして使用する場合、ソースフィールド と ターゲットフィールド の間のマッピングを設定する必要があります。図に示すように、ソースとターゲットのフィールド間には 1 対 1 のマッピングが存在します。ソーステーブルには固定フィールドがないため、デフォルトでは行単位でフィールドがマッピングされます。このマッピングを変更するには、フィールド順序を手動で編集する必要があります。
新しいデータ開発

従来のデータ開発

ターゲットテーブルの結果:

ナローテーブル(multiVersionFixedColumn モード):各出力レコードは 4 つのカラム(rowKey、family:qualifier、timestamp、value)で構成され、複数のデータバージョンを読み取ることができます。ソースフィールドの ソースフィールド を
ColumnFamily:Qualifier形式(例:basic:age)で設定します。ターゲットは、4 カラム(row_key、cf、timestamp_col、value)で構成される固定テーブルです。このモードではフィールドマッピングは不要です。新しいデータ開発

従来のデータ開発

ターゲットテーブルの結果:

HBase をデータ送信先として使用する場合(normal モードのみ対応)、ターゲットフィールド および rowkey を別々に設定する必要があります。rowkey フィールドは、複数のソースフィールドを連結したものにすることができます。
コードエディタのパラメーター一覧およびサンプルスクリプトについては、「付録:スクリプトのデモおよびパラメーター説明」をご参照ください。
よくある質問
Q:推奨される同時実行数(Concurrency)の設定値は? 同時実行数を増やすことで、インポート速度の遅さを解消できますか?
A:Java 仮想マシン(JVM)におけるデータインポートプロセスのデフォルトヒープサイズは 2 GB です。同時実行はマルチスレッドによって実装されます。過剰なスレッド数を使用すると、GC(ガーベジコレクション)が頻繁に発生し、パフォーマンスが低下する可能性があるため、インポート速度が向上しないことがあります。同時実行数は 5~10 を推奨します。
Q:
batchSize— 適切な値はどれですか?A:デフォルト値は 256 ですが、最適な
batchSizeは各行のサイズに基づいて算出する必要があります。1 回の操作で通常処理されるデータ量は 2 MB~4 MB です。batchSize は、このデータ量を行サイズで割ることで算出できます。Q:
multiVersionFixedColumnモードを使用して HBase からデータを読み取ると、java.lang.StringIndexOutOfBoundsException: String index out of range: -1エラーが発生します。この問題を解決するにはどうすればよいですか?A: このエラーは通常、列の構成における
nameフィールドがColumn Family:Column Qualifier(columnFamily:qualifier) 形式を使用していないために発生します。たとえば、ageの代わりにbasic:ageを指定しなかった場合などです。nameには、rowkeyを除くすべての列で、columnFamily:qualifier形式によるカラムファミリーのプレフィックスを含める必要があります。
付録:スクリプトの例およびパラメーター
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプトフォーマット要件に基づき、関連するパラメーターをスクリプト内に設定する必要があります。詳細については、「コードエディタの使用」をご参照ください。以下に、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要のあるパラメーターについて説明します。
HBase リーダースクリプトの例
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"hbase",// プラグイン名。
"parameter":{
"mode":"normal",// HBase からデータを読み取るモード。有効な値:normal および multiVersionFixedColumn。
"scanCacheSize":"256",// HBase クライアントがリモートプロシージャコール(RPC)ごとにサーバーから読み取る行数。
"scanBatchSize":"100",// HBase クライアントが RPC ごとにサーバーから読み取るカラム数。
"hbaseVersion":"094x/11x",// HBase のバージョン。
"column":[// 読み取るカラム。
{
"name":"rowkey",// カラム名。
"type":"string"// データ型。
},
{
"name":"basic:age",
"type":"string"
},
{
"name":"basic:name",
"type":"string"
},
{
"name":"score:english",
"type":"string"
},
{
"name":"score:math",
"type":"string"
}
],
"range":{// HBase リーダーの rowkey 範囲。
"endRowkey":"",// 終了 rowkey。
"isBinaryRowkey":true,// 構成済みの startRowkey および endRowkey を byte 配列に変換する方法を指定します。デフォルト値:false。
"startRowkey":""// 開始 rowkey。
},
"maxVersion":"",// multiVersionFixedColumn モードで読み取るバージョン数。
"encoding":"UTF-8",// エンコード形式。
"table":"student",// テーブル名。
"hbaseConfig":{// HBase クラスターへの接続構成(JSON 形式)。
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// 送信先プラグイン名。この例では MaxCompute を使用していますが、他のライタープラグインに置き換え可能です。
"parameter":{
"partition":"",// 送信先テーブルのパーティション情報。非パーティション化テーブルの場合は、このパラメーターを設定する必要はありません。
"truncate":true,// 書き込み操作の前に、送信先テーブルまたはパーティション内の既存データをクリアするかどうかを指定します。true を指定すると、データがクリアされます。
"datasource":"odps_datasource",// MaxCompute データソースの名前。
"column":[// 送信先カラムのリスト。
"rowkey",
"basic_age",
"basic_name",
"score_english",
"score_math"
],
"table":"student_target"// 送信先 MaxCompute テーブルの名前。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容される最大エラーレコード数。
},
"speed":{
"throttle":true,// 速度制限を有効にするかどうかを指定します。true を設定すると、`mbps` で指定されたレートでデータが転送されます。false を設定すると、`mbps` パラメーターは無視され、レート制限は適用されません。
"concurrent":1,// 最大並行スレッド数。
"mbps":"12"// 最大転送レート。単位:MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}HBase リーダースクリプトの例(multiVersionFixedColumn モード)
以下の例は、multiVersionFixedColumn モードを使用して HBase からデータを読み取り、MaxCompute に書き込む完全なスクリプト構成を示しています。このモードでは、HBase の各セルの値が個別のレコードに変換されます。各レコードは、rowkey、family:qualifier、timestamp、および value の 4 つのカラムで構成されます。
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"hbase",// プラグイン名。
"parameter":{
"mode":"multiVersionFixedColumn",// HBase からデータを読み取るモード。この例では multiVersionFixedColumn モードを使用しています。
"scanCacheSize":"256",// HBase クライアントが RPC ごとにサーバーから読み取る行数。
"scanBatchSize":"100",// HBase クライアントが RPC ごとにサーバーから読み取るカラム数。
"hbaseVersion":"20x",// HBase のバージョン。
"datasource":"hbase_datasource",// HBase データソースの名前。
"column":[// 読み取るカラム。最初のカラムは rowkey でなければなりません。その他のすべてのカラムの名前は "ColumnFamily:Qualifier" 形式である必要があります。
{
"name":"rowkey",// rowkey カラム。
"type":"string"
},
{
"name":"basic:age",// basic カラムファミリーの age カラム。
"type":"string"
},
{
"name":"basic:name",// basic カラムファミリーの name カラム。
"type":"string"
},
{
"name":"score:english",// score カラムファミリーの english カラム。
"type":"string"
},
{
"name":"score:math",// score カラムファミリーの math カラム。
"type":"string"
}
],
"range":{
"isBinaryRowkey":false
},
"maxVersion":"-1",// すべてのバージョンのデータを読み取ります。multiVersionFixedColumn モードでは必須パラメーターです。-1 を指定すると、すべてのバージョンが読み取られます。
"encoding":"UTF-8",// エンコード形式。
"table":"student"// HBase テーブルの名前。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// 送信先プラグイン名。この例では MaxCompute を使用しています。
"parameter":{
"partition":"",// 送信先テーブルのパーティション情報。非パーティション化テーブルの場合は、このパラメーターを設定する必要はありません。
"truncate":true,// 書き込み操作の前に、送信先テーブルまたはパーティション内の既存データをクリアするかどうかを指定します。true を指定すると、データがクリアされます。
"datasource":"odps_datasource",// MaxCompute データソースの名前。
"column":[// 4 つの送信先カラムは、rowkey、family:qualifier、timestamp、value に対応します。
"rowkey",
"cf",
"timestamp_col",
"value"
],
"table":"hbase_multiversion_target"// 送信先 MaxCompute テーブルの名前。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容される最大エラーレコード数。
},
"speed":{
"throttle":false,// 速度制限を無効化します。
"concurrent":2// 最大並行スレッド数。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}送信先の MaxCompute テーブルは事前に作成しておく必要があります。以下の例は、テーブル作成文です:CREATE TABLE IF NOT EXISTS hbase_multiversion_target (row_key STRING, cf STRING, timestamp_col STRING, value STRING);
HBase リーダーパラメーター
パラメーター | 説明 | 必須 | デフォルト |
haveKerberos | haveKerberos を true に設定すると、HBase クラスターで Kerberos 認証が要求されます。 説明
| いいえ | false |
hbaseConfig | HBase クラスターへの接続に必要な構成情報。この情報は JSON 形式である必要があります。必須構成項目は hbase.zookeeper.quorum であり、HBase の ZooKeeper 接続アドレスを指定します。また、スキャンキャッシュやバッチサイズなどのその他の HBase クライアント構成を追加して、サーバーとのインタラクションを最適化することもできます。 説明 ApsaraDB for HBase データベースを使用する場合、内部ネットワークエンドポイントを使用して接続する必要があります。 | はい | なし |
mode | HBase の読み取りモードは、normal モードおよび multiVersionFixedColumn モードをサポートしています。 | はい | なし |
table | データを読み取る HBase テーブルの名前。この名前は大文字と小文字を区別します。 | はい | なし |
encoding | バイナリの HBase byte[] データを文字列に変換するための文字コード(例:UTF-8 や GBK)。 | いいえ | utf-8 |
column | 読み取る HBase フィールド。これは normal モードおよび multiVersionFixedColumn モードで必須です。
| はい | なし |
maxVersion |
|
| なし |
range | HBase リーダーがデータを読み取る rowkey の範囲。
| いいえ | なし |
scanCacheSize | HBase クライアントがリモートプロシージャコール(RPC)ごとにサーバーからフェッチする行数。 | いいえ | 256 |
scanBatchSize | HBase クライアントが RPC ごとにサーバーからフェッチするカラム数。このパラメーターを -1 に設定すると、すべてのカラムが返却されます。 説明 scanBatchSize の値は、実際のカラム数より大きく設定することを推奨します。これにより、データ品質リスクを防止できます。 | いいえ | 100 |
HBase ライタースクリプトの例
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"hbase",// プラグイン名。
"parameter":{
"mode":"normal",// HBase へのデータ書き込みモード。
"walFlag":"false",// false に設定すると、Write-Ahead Log(WAL)機能が無効になります。
"hbaseVersion":"094x",// HBase のバージョン。
"rowkeyColumn":[// HBase 行キーの構成に使用するソースカラムを定義します。
{
"index":"0",// ソースカラムのインデックス。
"type":"string"// データ型。
},
{
"index":"-1",// 定数値の場合は -1 を使用します。
"type":"string",
"value":"_"
}
],
"nullMode":"skip",// null 値の処理方法を指定します。
"column":[// HBase に書き込むカラム。
{
"name":"columnFamilyName1:columnName1",// カラム名。
"index":"0",// ソースカラムのインデックス。
"type":"string"// データ型。
},
{
"name":"columnFamilyName2:columnName2",
"index":"1",
"type":"string"
},
{
"name":"columnFamilyName3:columnName3",
"index":"2",
"type":"string"
}
],
"encoding":"UTF-8",// エンコード形式。
"table":"YOUR_TABLE_NAME",// テーブル名。
"hbaseConfig":{// HBase クラスターへの接続構成(JSON 形式)。
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容される最大エラーレコード数。
},
"speed":{
"throttle":true,// 速度制限を有効にするかどうかを指定します。true を設定すると、`mbps` で指定されたレートでデータが転送されます。false を設定すると、`mbps` パラメーターは無視され、レート制限は適用されません。
"concurrent":1, // 最大並行スレッド数。
"mbps":"12"// 最大転送レート。単位:MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}HBase ライターパラメーター
パラメーター | 説明 | 必須 | デフォルト |
haveKerberos | haveKerberos の値が true の場合、HBase クラスターで Kerberos 認証が要求されます。 説明
| いいえ | false |
hbaseConfig | HBase クラスターへの接続に必要な構成情報。この情報は JSON 形式である必要があります。必須パラメーターは hbase.zookeeper.quorum であり、HBase の ZK 接続アドレスを指定します。また、スキャンキャッシュやバッチ設定などのその他の HBase クライアント構成を追加して、サーバーとのインタラクションを最適化することもできます。 説明 ApsaraDB for HBase データベースを使用する場合、内部ネットワークエンドポイントを使用して接続する必要があります。 | はい | なし |
mode | HBase の書き込みモードは、現時点では normal モードのみに限定されています。動的カラムモードのサポートは今後の予定です。 | はい | なし |
table | 送信先 HBase テーブルの名前。この名前は大文字と小文字を区別します。 | はい | なし |
encoding | STRING を HBase byte[] に変換するためのエンコーディング方式(UTF-8 や GBK)。 | いいえ | utf-8 |
column | HBase に書き込むカラム:
| はい | なし |
rowkeyColumn | HBase 行キーの構成に使用するソースカラムを定義します。
以下のコードはフォーマットを示しています。 | はい | なし |
versionColumn | HBase へのデータ書き込み時のタイムスタンプ。現在時刻、指定されたタイムスタンプカラム、または指定された時刻を使用できます。このパラメーターを構成しない場合、現在時刻が使用されます。
以下のコードはフォーマットを示しています。
| いいえ | なし |
nullMode | HBase への書き込み時に、ソースからの null 値をどのように処理するかを指定します:
| いいえ | skip |
walFlag | Write-Ahead Log(WAL)は、データの耐久性を保証します。MemStore への書き込みの前に、HBase クライアントは Put や Delete などの操作を WAL に書き込みます。WAL エントリが完了した後にのみ、クライアントに書き込み成功が通知されます。 WAL の書き込みが失敗した場合、操作は失敗します。書き込みパフォーマンスを向上させるために耐久性保証を低下させたい場合、このパラメーターを | いいえ | false |
writeBufferSize | HBase クライアントの書き込みバッファサイズ(バイト単位)。このパラメーターは
| いいえ | 8M |
fileSystemUsername | 同期タスク中に Ranger 権限の問題が発生した場合、ウィザードモードからスクリプトモードにタスクを変換し、必要な権限を持つユーザーで fileSystemUsername パラメーターを構成できます。DataWorks は、指定されたユーザーとして HBase にアクセスします。 | いいえ | なし |
HBase20xsql リーダースクリプトの例
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"hbase20xsql",// プラグイン名。
"parameter":{
"queryServerAddress": "http://127.0.0.1:8765", // Phoenix QueryServer のエンドポイント。
"serialization": "PROTOBUF", // QueryServer のシリアル化形式。
"table": "TEST", // 読み取るテーブルの名前。
"column": ["ID", "NAME"], // 読み取るカラムの名前。
"splitKey": "ID" // スプリットキー。これはテーブルのプライマリキーである必要があります。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容される最大エラーレコード数。
},
"speed":{
"throttle":true,// 速度制限を有効にするかどうかを指定します。true を設定すると、`mbps` で指定されたレートでデータが転送されます。false を設定すると、`mbps` パラメーターは無視され、レート制限は適用されません。
"concurrent":1,// 最大並行スレッド数。
"mbps":"12"// 最大転送レート。単位:MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}HBase20xsql リーダーパラメーター
パラメーター | 説明 | 必須 | デフォルト |
queryServerAddress | HBase20xsql リーダープラグインは、Phoenix シンクライアントを使用して Phoenix QueryServer に接続します。そのため、QueryServer のアドレスを入力する必要があります。HBase エンハンスドエディション(Lindorm)を使用していて、 | はい | なし |
serialization | QueryServer で使用されるシリアル化プロトコル。 | いいえ | PROTOBUF |
table | 読み取るテーブルの名前。この名前は大文字と小文字を区別します。 | はい | なし |
schema | テーブルが存在するスキーマ。 | いいえ | なし |
column | 構成済みテーブルから同期するカラム名のセット。カラム情報を指定するには JSON 配列を使用します。空の値は、すべてのカラムを読み取ることを意味します。 | いいえ | すべてのカラム |
splitKey | テーブルを読み取る際にシャーディングが実行されます。splitKey パラメーターを指定すると、システムは splitKey に対応するフィールドを使用してデータのシャーディングを行います。これにより、データ同期が並行タスクを開始でき、同期パフォーマンスが向上します。2 種類の異なるシャーディング方法から選択できます。splitPoint パラメーターが空の場合、システムは Method 1 に基づく自動シャーディングをデフォルトで使用します。
| はい | なし |
splitPoints | シャーディング列の最大値および最小値に基づくシャーディングでは、データホットスポットを防止できないため、startkey および endkey を基にした Region のシャードポイントを設定することを推奨します。これにより、各クエリが単一の Region にマップされるようになります。 | いいえ | なし |
where | テーブルクエリのフィルター条件。HBase20xsql リーダーは、指定された column、table、および where 条件に基づいて SQL クエリを構築し、データを抽出します。 | いいえ | なし |
querySql | 一部のビジネスシナリオでは、where パラメーターではフィルター条件を十分に記述できません。このような場合、このパラメーターを使用してカスタム SQL クエリを定義できます。このパラメーターを構成すると、HBase20xsql リーダーは指定されたクエリを使用してデータをフィルターし、column、table、where、および splitKey パラメーターを無視します。queryserverAddress パラメーターは例外であり、必ず設定する必要があります。 | いいえ | なし |
HBase11xsql ライタースクリプトの例
{
"type": "job",
"version": "1.0",
"configuration": {
"setting": {
"errorLimit": {
"record": "0" // 許容される最大エラーレコード数。
},
"speed": {
"throttle":true, // 速度制限を有効にするかどうかを指定します。
"concurrent":1, // 最大並行スレッド数。
"mbps":"1" // 最大転送レート。単位: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", // 送信先 Phoenix テーブルの名前。
"hbaseConfig": {
"hbase.zookeeper.quorum": "zookeeper-ip1,zookeeper-ip2", // 送信先 HBase クラスターの ZooKeeper エンドポイント。
"zookeeper.znode.parent": "/hbase" // 送信先 HBase クラスターの znode。
},
"column": [
"ID",
"NAME" // 送信先カラム名のリスト。
],
"batchSize": 256, // バッチ書き込みの最大行数。
"nullMode": "skip" // null 値の処理方法を指定します。
}
}
}
}HBase11xsql ライターパラメーター
パラメーター | 説明 | 必須 | デフォルト |
plugin | プラグイン名。値は | はい | なし |
table | データをインポートするテーブルの名前。この名前は大文字と小文字を区別します。Phoenix のテーブル名は通常大文字です。 | はい | なし |
column | カラム名。これらの名前は大文字と小文字を区別します。Phoenix のカラム名は通常大文字です。 説明
| はい | なし |
hbaseConfig | 送信先 HBase クラスターの構成。 説明
| はい | なし |
batchSize | バッチ書き込みの最大行数。 | いいえ | 256 |
nullMode | ソースからの null カラム値をどのように処理するかを指定します:
| いいえ | skip |