すべてのプロダクト
Search
ドキュメントセンター

DataWorks:Verticaデータソース

最終更新日:Jan 11, 2025

Verticaは、超並列処理(MPP)アーキテクチャを使用する列指向データベースです。DataWorksは、Verticaデータソースとのデータの読み取りおよび書き込みを行うためのVertica ReaderとVertica Writerを提供します。このトピックでは、Verticaデータソースとのデータ同期機能について説明します。

サポートされているVerticaバージョン

Vertica Readerは、Vertica Java Database Connectivity(JDBC)ドライバーを使用してVerticaデータベースに接続します。ドライバーのバージョンがVerticaデータベースと互換性があることを確認する必要があります。次のバージョンのVertica JDBCドライバーが使用されます。

<dependency>
<groupId>com.vertica</groupId>
<artifactId>vertica-jdbc</artifactId>
<version>7.1.2</version>
</dependency>

制限事項

  • Verticaデータソースは、Data Integrationの排他リソースグループのみをサポートします。

  • Vertica Writerは、writeModeパラメーターをサポートしていません。

  • 同期タスクの設定には、コードエディターのみを使用できます。

データ型マッピング

整数、浮動小数点、文字列、および時間カテゴリのデータ型を含む、一般的なVerticaデータ型がサポートされています。ただし、一部の高度なデータ型のサポートは制限されています。

データ同期タスクの開発

データ同期タスクの設定のエントリポイントと手順については、以下のセクションを参照してください。パラメーター設定については、タスクの設定タブにある各パラメーターのヒントをご覧ください。

データソースの追加

特定のデータソースとのデータ同期を行うデータ同期タスクを設定する前に、DataWorksにデータソースを追加する必要があります。詳細については、「データソースの追加と管理」をご参照ください。

単一テーブルのデータを同期するバッチ同期タスクの設定

付録:コードとパラメーター

付録:コードエディターを使用したバッチ同期タスクの設定

コードエディターを使用してバッチ同期タスクを設定する場合は、コードエディターの形式要件に基づいて、関連データソースのリーダーとライターのパラメーターを設定する必要があります。形式要件の詳細については、「コードエディターを使用したバッチ同期タスクの設定」をご参照ください。以下の情報は、コードエディターのリーダーとライターのパラメーターの設定の詳細について説明しています。

Vertica Readerのコード

{
"type": "job",
"steps": [
{
"stepType": "vertica", // プラグイン名
"parameter": {
"datasource": "", // データソースの名前
"where": "",
"column": [ // 列の名前
"id",
"name"
],
"splitPk": "id",
"connection": [
{
"table": [ // テーブルの名前
"table"
]
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // 許容されるダーティデータレコードの最大数
},
"speed": {
"throttle": true, // スロットリングを有効にするかどうかを指定します。値がfalseの場合はスロットリングが無効になり、値がtrueの場合はスロットリングが有効になります。mbpsパラメーターは、throttleパラメーターがtrueに設定されている場合にのみ有効になります。
"concurrent": 1, // 並列スレッドの最大数
                        "mbps":"12"// 最大転送速度。単位:MB/s。
}
}
}

Vertica Readerのコードのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。追加されたデータソースの名前と同じである必要があります。コードエディターを使用してデータソースを追加できます。

はい

デフォルト値なし

table

データを読み取るテーブルの名前。Vertica Readerは複数のテーブルからデータを読み取ることができます。JSON配列でテーブル名を指定します。

複数のテーブルを指定する場合は、テーブルのスキーマが同じであることを確認する必要があります。Vertica Readerは、テーブルのスキーマが同じかどうかを確認しません。

説明

tableパラメーターは、connectionパラメーターに含める必要があります。

はい

デフォルト値なし

column

データを読み取る列の名前。JSON配列で名前を指定します。デフォルト値は[ * ]で、ソーステーブルのすべての列を示します。

  • 読み取る特定の列を選択できます。

  • 列の順序を変更できます。これは、ソーステーブルのスキーマで指定された順序とは異なる順序で列を指定できることを示します。

  • 定数がサポートされています。

  • columnパラメーターは、データを読み取るすべての列を明示的に指定する必要があります。このパラメーターを空にすることはできません。

はい

デフォルト値なし

splitPk

Vertica Readerがデータを読み取るときにデータシャーディングに使用されるフィールド。このパラメーターを指定すると、ソーステーブルはこのパラメーターの値に基づいてシャーディングされます。その後、Data Integrationは並列スレッドを実行してデータを読み取ります。これにより、データ同期の効率が向上します。

  • splitPkパラメーターをテーブルのプライマリキー列の名前に設定することをお勧めします。プライマリキー列に基づいてデータを異なるシャードに均等に分散させることができ、特定のシャードにのみ集中的に分散されることを防ぎます。

  • splitPkパラメーターは、整数データ型のデータのシャーディングのみをサポートします。このパラメーターを文字列、浮動小数点、または日付データ型などのサポートされていないデータ型のフィールドに設定すると、Vertica Readerはエラーを返します。

  • splitPkパラメーターを空のままにすると、Vertica Readerは単一スレッドを使用してソーステーブルからデータを読み取ります。

いいえ

デフォルト値なし

where

WHERE句。Vertica Readerは、tablecolumn、およびwhereパラメーターの設定に基づいてSQLステートメントを生成し、生成されたステートメントを使用してデータを読み取ります。

たとえば、テストを実行するときに、whereパラメーターを設定してデータをフィルタリングできます。実際のビジネスシナリオでは、whereパラメーターをgmt_create > $bizdateに設定して、現在の日付に生成されたデータを読み取ることができます。

  • WHERE句を使用して、増分データを読み取ることができます。

  • whereパラメーターが指定されていないか空の場合、Vertica Readerはすべてのデータを読み取ります。

いいえ

デフォルト値なし

querySql

絞り込んだデータフィルタリングに使用されるSQLステートメント。このパラメーターを設定すると、このパラメーターの値のみに基づいてデータがフィルタリングされます。

querySqlパラメーターを設定すると、Vertica Readerはtablecolumn、およびwhereパラメーターの設定を無視します。

いいえ

デフォルト値なし

fetchSize

一度に読み取るデータレコードの数。このパラメーターは、Data Integrationとデータベース間のインタラクションの数を決定し、読み取り効率に影響します。

説明

このパラメーターを 2048 より大きい値に設定すると、データ同期の際にメモリ不足(OOM)エラーが発生する可能性があります。

いいえ

1,024

Vertica Writerのコード

{
"type":"job",
"version":"2.0",// バージョン番号
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"vertica", // プラグイン名
"parameter":{
"datasource": "データソースの名前",
"column": [// 列の名前
"id",
"name"
],
"connection": [
{
"table": [// テーブルの名前
"vertica_table"
]
}
],
"preSql": [ // 同期タスクの実行前に実行するSQLステートメント
"delete from @table where db_id = -1"
],
"postSql": [// 同期タスクの実行後に実行するSQLステートメント
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容されるダーティデータレコードの最大数
},
"speed":{
                    "throttle":true,// スロットリングを有効にするかどうかを指定します。値がfalseの場合はスロットリングが無効になり、値がtrueの場合はスロットリングが有効になります。mbpsパラメーターは、throttleパラメーターがtrueに設定されている場合にのみ有効になります。
                    "concurrent":1, // 並列スレッドの最大数
                    "mbps":"12"// 最大転送速度。単位:MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}

Vertica Writerのコードのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。追加されたデータソースの名前と同じである必要があります。コードエディターを使用してデータソースを追加できます。

はい

デフォルト値なし

jdbcUrl

VerticaデータベースのJDBC URL。jdbcUrlパラメーターは、connectionパラメーターに含める必要があります。

  • データベースには1つのJDBC URLのみを設定できます。Vertica Writerは、複数のプライマリデータベースを持つデータベースにデータを書き込むことができません。

  • jdbcUrlパラメーターの値の形式は、Verticaの公式仕様に従う必要があります。URLに追加のJDBC接続プロパティを指定することもできます。例:jdbc:vertica://127.0.0.1:3306/database

はい

デフォルト値なし

username

データベースへの接続に使用するユーザー名。

はい

デフォルト値なし

password

データベースへの接続に使用するパスワード。

はい

デフォルト値なし

table

データを書き込むテーブルの名前。JSON配列で名前を指定します。

説明

tableパラメーターは、connectionパラメーターに含める必要があります。

はい

デフォルト値なし

column

データを書き込む列の名前。カンマ(,)で区切って名前を指定します(例:"column": ["id", "name", "age"])。

はい

デフォルト値なし

preSql

同期タスクの実行前に実行するSQLステートメント。@tableを使用して、SQLステートメントでデスティネーションテーブルの名前を示します。このSQLステートメントを実行すると、@tableはデスティネーションテーブルの名前に置き換えられます。

いいえ

デフォルト値なし

postSql

同期タスクの実行後に実行するSQLステートメント。

いいえ

デフォルト値なし

batchSize

一度に書き込むデータレコードの数。ビジネス要件に基づいてこのパラメーターを適切な値に設定します。これにより、Data IntegrationとVertica間のインタラクションが大幅に削減され、スループットが向上します。このパラメーターを過度に大きい値に設定すると、データ同期の際にOOMエラーが発生する可能性があります。

いいえ

1,024