このトピックでは、Gbase8a Writer によってサポートされるデータタイプとパラメーター、およびコードエディターを使用した Gbase8a Writer の構成方法について説明します。
Gbase8a は、新しいタイプの列指向分析データベースです。 Gbase8a Writer を使用すると、Gbase8a データベースにデータを書き込むことができます。
注 現在、Gbase8a Writer は、デフォルトのリソースグループをサポートしていません。 データ統合またはカスタムリソースグループに対しては、排他的リソースグループを使用します。
詳細については、 「Use exclusive resource groups for data integration」および「カスタムリソースグループの追加」をご参照ください 。
具体的には、Gbase8a Writer は、Java Database Connectivity (JDBC) を介してリモート Gbase8a データベースに接続され、INSERT INTO
文を実行することによって、Gbase8a データベースにデータを書き込みます。 内部的には、データはバッチでデータベースに書き込まれます。
Gbase8a Writer は、抽出-変換-格納 (ETL) の開発者向けに設計されたもので、データウェアハウスから Gbase8a データベースにデータをインポートします。 Gbase8a Writer は、データベース管理者 (DBA) などのユーザーがデータ移行ツールとして使用することもできます。
Gbase8a Writer は、Data Integration reader からデータを取得し、設定に基づいて INSERT INTO 文を生成します。
制限事項
INSERT INTO
:プライマリキーまたは一意のインデックスの競合が発生した場合、競合している行にデータを書き込むことはできません。- データは、プライマリ Gbase8a データベースに保存されているテーブルにのみ書き込むことができます。
注 Gbase8a Writer を使用する同期ノードは、少なくとも、
INSERT INTO
文を実行する権限を保持している必要があります。 他の権限の必要性は、ノードの設定時にpreSqlパラメーターとpostSqlパラメーターで指定された SQL 文によって異なります。 - Gbase8a Writerは、writeModeパラメーターをサポートしていません。
- Gbase8a Writerは、MySQL データベースドライバーを介して Gbase8a データベースにアクセスします。 ドライバーのバージョンと Gbase8a
データベースの間の互換性を確認します。 Gbase8a Writer は、次のバージョンの MySQL データベースドライバーを使用します。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.22</version> </dependency>
パラメーター
パラメーター | 説明 | 必須事項 | デフォルト値 |
---|---|---|---|
jdbcUrl | Gbase8a データベースに接続するための JDBC URL。 システムは接続パラメーターから自動的に値を取得するため、このパラメーターを設定する必要はありません。
|
必須 | なし |
username | データベースに接続するためのユーザー名。 | 必須 | なし |
password | データベースに接続するためのパスワード。 | 必須 | なし |
table | JSON 配列に記述されている宛先テーブルの名前。
注 システムは接続パラメーターから自動的に値を取得するため、このパラメーターを設定する必要はありません。
|
必須 | なし |
列 | データが書き込まれる宛先テーブルの列。 列はカンマ (,) で区切ります。 たとえば、"column":["id"、 "name"、 "age"] 。
注 この列パラメーターは空白のままにできません。
|
必須 | なし |
preSql | 同期ノードが実行される前に実行する SQL 文。 @テーブル を使用して、SQL 文で変更されるテーブルの名前を指定します。 この SQL 文を実行すると、DataWorks は @table をターゲットテーブルの名前に置き換えます。
|
いいえ | なし |
postSql | 同期ノードの実行後に実行する SQL ステートメント。 | いいえ | なし |
batchSize | 一度に書き込まれるデータレコード数。 このパラメータを設定すると、ネットワーク上の Data Integration と Gbase8a データベース間のやりとりを大幅に減らすことができ、スループットが向上します。 ただし、値が大きすぎると、データ同期プロセス中にメモリ不足 (OOM) が発生する可能性があります。 | いいえ | 1024 |
コードレス UI を使用した Gbase8a Writer の構成
現在、Gbase8a Writer はコードレスユーザーインターフェイス (UI) をサポートしていません。
コードエディターを使用した Gbase8a Writer の構成
次のコードでは、Gbase8a データベースにデータを書き込むようにノードが構成されます。
{
"type":"job",
"version": "2.0", // version number
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType": "gbase8a"、// The writer type.
"parameter":{
"datasource": "The connection name.",
"userName": "",
"password": "",
"column": [// The columns to which data is written.
"id"、
"name"
],
"connection": [
{
"table":[// The name of the destination table.
"Gbase8a_table"
],
"jdbcUrl": "jdbc:mysql://ip:port/database"
}
],
"preSql": [ // The SQL statement to run before the sync node is run.
"delete from @table where db_id = -1"
],
"postSql": [// The SQL statement to run after the sync node is run.
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of dirty data records allowed.
},
"speed": {
"throttle":false,// Specifies whether to enable bandwidth throttling. A value of false indicates that the bandwidth is not throttled. A value of true indicates that the bandwidth is throttled. The maximum transmission rate takes effect only if you set this parameter to true.
"concurrent":1,// The maximum number of concurrent threads.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}