Skip to content

Data Tank 1.0 から 2.0 への置き換え

この記事では、Data Tank を Data Tank 2.0 に置き換える際の Integration に関する変更点について説明します。Treasure Data はセキュリティと機密データの保護への取り組みの一環として、手順を開始する前にドキュメント全体をご確認いただくことを推奨します。

Data Tank と Data Tank 2.0 の機能の違い

このセクションでは、Data Tank と Data Tank 2.0 の機能の差異について説明します。

機能ステータスData Tank 1.0Data Tank 2.0
エンドポイント差異あり静的 IP アドレスライタエンドポイント URI。関連する IP アドレスは固定できません
データベース名差異ありdatatankaciddb
アクセス制御(ロールとスキーマ)差異ありTreasure Data が tank_user および tank_integration_user アカウントを提供ユーザーとスキーマは Management UI で作成(アカウントは Access Keys と呼ばれます)。アクセス制御は UI 内で管理
DDL ステートメント差異あり追加コマンド不要DDL 実行前に SET ROLE _owner_aciddb_<schema_name> を実行する必要があります
SSL 暗号化差異あり強制されないすべての接続で SSL が必要
メンテナンスウィンドウ差異あり定期的なウィンドウなし。必要に応じてサポートが調整お客様が週次メンテナンスウィンドウを定義。その時間帯にパッチが適用されます(Data Tank 2.0 のメンテナンスについてを参照)
IP Allowlist のサイズ差異あり制限なし最大 200 件の IP アドレス
エンジン動作の差異差異ありPostgreSQL 12 ベースAurora PostgreSQL 12.13 ベース。一部エンジンの差異があります
カスタムポート番号非対応デフォルト 5432。サポート経由でカスタマイズ可能ポート 5432 に固定
ポートフォワーディング非対応サポートがポート 80、443、または 5439 を追加可能非対応
IPv6 Allowlist非対応IPv6 をサポートIPv6 は非対応
拡張機能非対応plpgsqlpgcryptocstore_fdwmysql_fdwtds_fdwforeign_table_exposer がデフォルトでインストール済みplpgsqlpgcrypto のみ利用可能。SERVERFOREIGN DATA WRAPPERFOREIGN TABLEUSER MAPPING オブジェクトは移行できません
Management UI新機能利用不可設定、ロール、スキーマの管理およびモニタリングのための Web インターフェース
ログ収集新機能利用不可PostgreSQL ログを Management UI で確認可能
モニタリング新機能DataDog リンク経由でダッシュボードを提供Management UI でダッシュボードを直接利用可能

Data Tank 2.0(Aurora PostgreSQL 12.13)でサポートされている拡張機能の完全なリストについては、AWS Aurora PostgreSQL 拡張機能ドキュメントを参照してください。

Data Tank 1.0 から 2.0 への移行概要

Management UI では、データベース設定の構成、スキーマおよびアクセスキーの作成・管理、ログやダッシュボードの確認を単一のインターフェースから行うことができます。

レガシーモニタリングManagement UI モニタリング
レガシー DataDog モニタリングダッシュボードManagement UI モニタリングダッシュボード

Data Tank の Integration を Data Tank 2.0 の Integration に変更する

以下の 2 つの機能を使用して、Data Tank からレコードをインポートしたり、Hive/Trino クエリの結果を Data Tank にエクスポートしたりすることができます。

これらの Integration を使用するには、ほとんどの場合、事前に Authentication を作成する必要があります。

Data Tank の Authentications

以下の Authentications がデフォルトで用意されています。以下の両方の Authentications において、データベースユーザーとして tank_integration_user が使用されます。

  • datatank
  • datatank_cstore
Data Tank のデフォルト Authentications

ユーザー定義の Authentications を作成することもできます。

Data Tank 2.0 の Authentications

Authentications はデフォルトでは用意されていません。新しい Authentications を作成する必要があります。

Data Tank からのインポート

Data Tank からインポートするには、Bulk Load ジョブを実行する必要があります。このタイプのジョブを実行するには、以下のいずれかを使用します。Data Tank を Data Tank 2.0 に置き換える場合は、インポート元を Data Tank から Data Tank 2.0 に変更する必要があります。

  • Sources(Treasure コンソール)
  • CLI(Toolbelt、Workflow の td_load> オペレーター)

Sources

Data Tank 用の既存の Sources がある場合、Treasure コンソールで Authentication に接続されている Sources を以下のように確認できます。画像の赤い矢印は、databank という名前の Authentication に関連付けられている Sources の数を指しています。

Treasure コンソールで Authentication に接続されている Sources

既存の Source が Data Tank 2.0 からインポートする場合、各 Source の Authentication は置き換えられないため、Data Tank 2.0 用の Authentication に関連付けられた新しい Source が必要です。Data Tank 2.0 からインポートする新しい Source を作成する際は、既存の Source のスケジュール実行を停止することを推奨します。

CLI(TD Toolbelt)

Authentication を使用して Plazma DB にインポートするために CLI を使用する場合、以下のように YAML ファイルで td_authentication_id オプションを使用します。インポート元を変更するには、このオプションに設定されている Authentication ID を変更する必要があります。また、database オプションなど他のオプションも変更する必要があります。

in:
  type: postgresql
  td_authentication_id: <your_authentication_id>
  ...

YAML ファイルで td_authentication_id オプションを使用していない場合、以下の例のように Authentication の代わりに Data Tank の認証情報が指定されています。その場合は、Data Tank 2.0 の認証情報に置き換えてください。

in:
  type: postgresql
  host: xx.xxx.xxx.xxx
  user: tank_integration_user
  password: xxxxx
  ...

Hive/Trino の結果を Data Tank にエクスポートする

以下の機能のいずれかを使用して、Hive/Trino ジョブの結果を Data Tank にエクスポートできます。これらの機能を使用して Data Tank にエクスポートしている場合は、エクスポート先を Data Tank 2.0 に変更する必要があります。

  • Treasure コンソールのクエリエディター
  • Workflow の td_run> オペレーター
  • Workflow の td> オペレーター
  • CLI(Toolbelt)
  • REST API

Treasure コンソールのクエリエディター

以下のように Export Results を選択してエクスポート設定を構成できます。次に、既存の設定を置き換えるために新しい Authentication で再設定する必要があります。既存のエクスポート設定を削除したら、Data Tank 2.0 用の Authentication を使用して新しいエクスポート設定を行ってください。

クエリエディターでの Export Results 設定

DDL が必要な場合は、以下のように Set Role オプションに _owner_<database_name>_<schema_name> を設定する必要があります。

DDL 用の Set Role オプション設定

Workflow の td_run> オペレーター

このワークフローオペレーターは既存の保存済みクエリを呼び出します。そのため、クエリエディターの場合と同じ操作を行う必要があります。

Workflow の td> オペレーター

このワークフローオペレーターでは、以下のように result_connection パラメーターに Authentication 名を指定します。このパラメーターを Data Tank 2.0 用の Authentication に置き換えるとともに、他のパラメーターも変更してください。

+export_task:
  td>: queries/sample.sql
  result_connection: data_tank # Authentication 名
  result_settings:
    database: datatank
    table: ...
    ...

また、DDL が必要な場合は、以下のように set_role オプションを指定する必要があります。

+export_task:
  td>: queries/sample.sql
  result_connection: <your_authentication_name>
  result_settings:
    database: aciddb
    table: ...
    schema: <schema_name>
    set_role: _owner_aciddb_<schema_name>
    ...

result_connection に Authentication を指定しない場合は、以下のように result_connectionresult_settings の代わりに result_url パラメーターを使用してください。

+export_task:
  td>: queries/sample.sql
  result_url: postgresql://tank_integration_user:xxx@......

この場合、result_url パラメーターの値を変更してください。

また、DDL ステートメントが必要な場合は、クエリパラメーターとして set_role=_owner_aciddb_<schema_name> を追加してください。

エクスポート用 CLI(Toolbelt)

CLI では、エクスポート情報を URL 形式で指定します。

たとえば、以下のように td query コマンドを使用してクエリの結果を Data Tank にエクスポートできます。エクスポート情報を -r オプションに直接指定するため、Data Tank 2.0 の設定を指定してください。

td query -d kazzy_test -w -r "postgresql://tank_integration_user:<password>@<ip_address>/datatank/<table_name>?mode=replace" "SELECT 1 AS col1;"

Workflow の pg> オペレーターを使用して Data Tank に接続する

以下の例のように、pg> オペレーターを使用して Workflow から Data Tank で任意のクエリステートメントを実行できます。

_export:
  pg:
    host: ....
    port: 5432
    database: datatank
    user: tank_integration_user
    schema: public

+access_data_tank:
  pg>: queries/sample.sql
  ...

Data Tank 2.0 でクエリステートメントを実行するには、pg> オペレーターのオプションに設定されている値を変更する必要があります。DDL を使用する場合は、DDL ステートメントの前に SET ROLE ステートメントを追加する必要があります。

サードパーティツールを使用して Data Tank に接続する

サードパーティツールを使用して Data Tank に接続するには、ツールに接続情報を指定します。接続情報を Data Tank 2.0 のものに置き換えてください。

参考資料