変換と評価のためのメタデータを生成する
このドキュメントでは、dwh-migration-dumper コマンドライン抽出ツールを使用して、メタデータ ファイルとクエリ ログファイルを作成する方法について説明します。メタデータ ファイルは、ソースシステムに SQL オブジェクトを記述します。
BigQuery Migration Service はこの情報を使用して、ソースシステム言語から GoogleSQL への SQL スクリプトの変換を改善します。
BigQuery 移行評価では、メタデータ ファイルとクエリ ログファイルを使用して既存のデータ ウェアハウスを分析し、データ ウェアハウスの BigQuery への移行作業を評価します。
概要
dwh-migration-dumper ツールを使用すると、BigQuery に移行するデータベース プラットフォームからメタデータ情報を抽出できます。変換では抽出ツールの使用は必須ではありませんが、BigQuery の移行評価には必要であるため、すべての移行タスクに使用することを強くおすすめします。
詳細については、メタデータ ファイルを作成するをご覧ください。
dwh-migration-dumper ツールを使用すると、次のデータベース プラットフォームからメタデータを抽出できます。
- Teradata
- Amazon Redshift
- Apache Hive
- Apache Spark
- Azure Synapse
- Greenplum
- Microsoft SQL Server
- IBM Netezza
- Oracle
- PostgreSQL
- Snowflake
- Trino または PrestoSQL
- Vertica
これらのデータベースのほとんどで、クエリログも抽出できます。
dwh-migration-dumper ツールは、システム テーブルにクエリを実行して、ユーザー データベースとシステム データベースに関連するデータ定義言語(DDL)ステートメントを収集します。ユーザー データベースの内容は検索しません。このツールは、システム テーブルのメタデータ情報を CSV ファイルとして保存し、それらのファイルを単一のパッケージに圧縮します。次に、変換や評価を行うソースファイルをアップロードするときに、この zip ファイルを Cloud Storage にアップロードします。
クエリログ オプションを使用する場合、dwh-migration-dumper ツールはシステム テーブルで DDL ステートメントを検索し、ユーザー データベースとシステム データベースに関連するクエリログを検索します。これらは CSV または yaml 形式でサブディレクトリに保存され、zip パッケージに圧縮されます。ユーザー データベース自体のコンテンツに対してクエリが実行されることはありません。この時点で BigQuery の移行評価では、クエリログ用に個別の CSV、YAML、テキスト ファイルが必要です。そのため、クエリログの zip ファイルからこれらのファイルをすべて解凍してから、評価のためにアップロードする必要があります。
dwh-migration-dumper ツールは、Windows、macOS、Linux で実行できます。
dwh-migration-dumper ツールは、Apache 2 ライセンスで使用できます。
変換に dwh-migration-dumper ツールを使用しない場合は、ソースシステム内の SQL オブジェクトのデータ定義言語(DDL)ステートメントを個別のテキスト ファイルに収集することで、メタデータ ファイルを手動で指定できます。
BigQuery 移行評価を使用した移行評価では、ツールによって抽出されたメタデータとクエリログを提供する必要があります。
コンプライアンス要件
使い勝手がいいように、コンパイルされた dwh-migration-dumper ツールのバイナリをご用意しています。ツールがコンプライアンス要件を満たしているかを監査する必要がある場合は、dwh-migration-dumper ツールの GitHub リポジトリからソースコードを確認し、独自バイナリをコンパイルできます。
前提条件
Java をインストールする
dwh-migration-dumper ツールを実行するサーバーには、Java 8 以降をインストールしておく必要があります。これがインストールされていない場合は、Java ダウンロード ページから Java をダウンロードしてインストールしてください。
必要な権限
dwh-migration-dumper ツールをソースシステムに接続するために指定するユーザー アカウントには、そのシステムからメタデータを読み取る権限を付与する必要があります。このアカウントに、プラットフォームで使用できるメタデータ リソースをクエリするための適切なロールのメンバーシップが付与されていることを確認してください。たとえば、INFORMATION_SCHEMA は複数のプラットフォームに共通するメタデータ リソースです。
dwh-migration-dumper ツールをインストールする
dwh-migration-dumper ツールのインストール手順は次のとおりです。
- dwh-migration-dumperツールを実行するマシンで、- dwh-migration-dumperツールの GitHub リポジトリから zip ファイルをダウンロードします。
- dwh-migration-dumperツールの zip ファイルを検証するには、- SHA256SUMS.txtファイルをダウンロードして次のコマンドを実行します。- Bash- sha256sum --check SHA256SUMS.txt - 検証が失敗した場合は、トラブルシューティングをご覧ください。 - Windows PowerShell- (Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0] - RELEASE_ZIP_FILENAMEは、- dwh-migration-dumperコマンドライン抽出ツールのリリースのダウンロード済み zip ファイル名に置き換えます(例:- dwh-migration-tools-v1.0.52.zip)。- Trueという結果は、チェックサムの検証が成功したことを示します。- Falseの結果は、検証エラーを示します。チェックサム ファイルと ZIP ファイルが同じリリース バージョンからダウンロードされ、同じディレクトリに配置されていることを確認します。
- ZIP ファイルを抽出します。抽出ツールバイナリは、zip ファイルを抽出して作成されたフォルダの - /binサブディレクトリにあります。
- PATH環境変数を更新して、抽出ツールのインストール パスを含めます。
dwh-migration-dumper ツールを実行する
dwh-migration-dumper ツールは、次の形式を使用します。
dwh-migration-dumper [FLAGS]
dwh-migration-dumper ツールを実行すると、作業ディレクトリに dwh-migration-<source platform>-metadata.zip という名前の出力ファイル(dwh-migration-teradata-metadata.zip など)が作成されます。
ソース プラットフォーム用の dwh-migration-dumper ツールを実行する手順は次のとおりです。
Teradata
dwh-migration-dumper ツールを Teradata に接続できるようにするには、Teradata のダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して Teradata メタデータとクエリログを抽出するためによく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --assessment | 
        データベース ログを生成するとき、またはメタデータを抽出するときに評価モードを有効にします。 | 評価の実行に使用する場合は必須ですが、変換の場合は必要ありません。 | |
| --connector | 使用するコネクタの名前。この場合は、メタデータでは teradata、クエリログでは teradata-logs です。 | はい | |
| --database | 抽出するデータベースのカンマ区切りのリスト。Teradata サーバーの構成によっては、データベース名で大文字と小文字が区別される場合があります。 このフラグを  このフラグは、 | いいえ | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードをリクエストします。 | |
| --port | 1025 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | |
| --query-log-alternates | 
 クエリログを別の場所から抽出するには、代わりに  
        デフォルトでは、クエリログは  例:  | いいえ | |
| -Dteradata.tmode | 接続のトランザクション モードです。次の値を使用できます。 
 例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.log-date-column | 
 
         例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.query-logs-table | 
 
        デフォルトでは、クエリログは  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.sql-logs-table | 
 
        デフォルトでは、SQL テキストを含むクエリログは  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.utility-logs-table | 
 
        デフォルトでは、ユーティリティ ログは  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.res-usage-scpu-table | 
 
        デフォルトでは、SCPU リソースの使用状況ログは  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.res-usage-spma-table | 
 
        デフォルトでは、SPMA リソースの使用状況ログは  例(Bash): 例(Windows PowerShell): | いいえ | |
| --query-log-start | クエリログ抽出の開始時間(指定した時間を含む)。値は時間単位に切り捨てられます。このフラグは、teradata-logs コネクタでのみ使用できます。 例:  | いいえ | |
| --query-log-end | クエリログ抽出の終了時間(指定した時間は含まない)。値は時間単位に切り捨てられます。このフラグは、teradata-logs コネクタでのみ使用できます。 例:  | いいえ | |
| -Dteradata.metadata.tablesizev.max-rows | 
 ビュー  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata.metadata.diskspacev.max-rows | 
 ビュー  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata.metadata.databasesv.users.max-rows | 
 
        ビュー  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata.metadata.databasesv.dbs.max-rows | 
 ビュー  例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata.metadata.max-text-length | 
 
 例(Bash): 例(Windows PowerShell): | いいえ | |
| -Dteradata-logs.max-sql-length | 
 
 例(Bash): 例(Windows PowerShell): | いいえ | 
例
次の例は、ローカルホスト上の 2 つの Teradata データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector teradata \
  --user user \
  --password password \
  --database database1,database2 \
  --driver path/terajdbc4.jar
次の例は、認証のためにローカルホスト上の評価のクエリログを抽出する方法を示しています。
dwh-migration-dumper \
  --connector teradata-logs \
  --assessment \
  --user user \
  --password password \
  --driver path/terajdbc4.jar
dwh-migration-dumper ツールで抽出されたテーブルとビュー
次のテーブルとビューは、teradata コネクタを使用する場合に抽出されます。
- DBC.ColumnsV
- DBC.DatabasesV
- DBC.DBCInfo
- DBC.FunctionsV
- DBC.IndicesV
- DBC.PartitioningConstraintsV
- DBC.TablesV
- DBC.TableTextV
次のテーブルとビューは、--assessment フラグを指定して teradata コネクタを使用する場合に抽出されます。
- DBC.All_RI_ChildrenV
- DBC.All_RI_ParentsV
- DBC.AllTempTablesVX
- DBC.DiskSpaceV
- DBC.RoleMembersV
- DBC.StatsV
- DBC.TableSizeV
次のテーブルとビューは、teradata-logs コネクタを使用する場合に抽出されます。
- DBC.DBQLogTbl(- --assessmentフラグが使用されている場合は- DBC.QryLogVに変更されます)
- DBC.DBQLSqlTbl
次のテーブルとビューは、--assessment フラグを指定して teradata-logs コネクタを使用する場合に抽出されます。
- DBC.DBQLUtilityTbl
- DBC.ResUsageScpu
- DBC.ResUsageSpma
Redshift
抽出ツールを使って、次の Amazon Redshift 認証メカニズムと承認メカニズムを使用できます。
- ユーザー名とパスワード。
- AWS Identity and Access Management(Identity and Access Management(IAM))のアクセスキー ID と秘密鍵。
- AWS IAM プロファイルの名前。
ユーザー名とパスワードで認証を行うには、Amazon Redshift のデフォルトの PostgreSQL JDBC ドライバを使用します。AWS IAM で認証するには、Amazon Redshift JDBC ドライバを使用します。このドライバはダウンロード ページからダウンロードできます。
次の表に、dwh-migration-dumper ツールを使用して Amazon Redshift メタデータとクエリログを抽出するためによく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --assessment | データベース ログを生成するとき、またはメタデータを抽出するときに評価モードを有効にします。メタデータ抽出に使用された場合、BigQuery 移行評価に必要なメタデータ統計を生成します。クエリログの抽出に使用すると、BigQuery 移行評価のクエリ指標統計が生成されます。 | 評価モードで実行する際に必要ですが、翻訳には必要ありません。 | |
| --connector | 使用するコネクタの名前。この場合は、メタデータでは redshift、クエリログでは redshift-raw-logs です。 | はい | |
| --database | 指定しない場合、Amazon Redshift はデフォルトのデータベース名として --userの値を使用します。 | 接続先のデータベースの名前。 | いいえ | 
| --driver | 指定しない場合、Amazon Redshift ではデフォルトの PostgreSQL JDBC ドライバを使用します。 | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | いいえ | 
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --iam-accesskeyid | 
        認証に使用する AWS IAM アクセスキー ID。アクセスキーは  
         | 明示的ではなくでも、次のいずれかの方法で認証情報を指定する必要があります。 
 | |
| --iam-profile | 
        認証に使用する AWS IAM プロファイル。使用するプロファイル値を取得するには、 
          このフラグは、 | 明示的ではなくでも、次のいずれかの方法で認証情報を指定する必要があります。 
 | |
| --iam-secretaccesskey | 
        認証に使用する AWS IAM シークレット アクセスキー。シークレット アクセスキーは、 
         | 明示的ではなくでも、次のいずれかの方法で認証情報を指定する必要があります。 
 | |
| --password | データベース接続に使用するパスワード。 
          このフラグは、 | 明示的ではなくでも、次のいずれかの方法で認証情報を指定する必要があります。 
 | |
| --port | 5439 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | |
| --query-log-start | クエリログ抽出の開始時間(指定した時間を含む)。値は時間単位に切り捨てられます。このフラグは、redshift-raw-logs コネクタでのみ使用できます。 例:  | いいえ | |
| --query-log-end | クエリログ抽出の終了時間(指定した時間は含まない)。値は時間単位に切り捨てられます。このフラグは、redshift-raw-logs コネクタでのみ使用できます。 例:  | いいえ | 
例
次の例は、認証に AWS IAM キーを使用して、指定されたホスト上の Amazon Redshift データベースからメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-accesskeyid access_key_ID \
  --iam-secretaccesskey secret_access-key \
  --user user
次の例は、認証にユーザー名とパスワードを使用して、デフォルトのホストで Amazon Redshift データベースからメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector redshift \
  --database database \
  --password password \
  --user user
次の例は、認証に AWS IAM プロファイルを使用して、指定されたホスト上の Amazon Redshift データベースからメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-profile profile \
  --user user \
  --assessment
次の例は、認証に AWS IAM プロファイルを使用して、指定されたホスト上の Amazon Redshift データベースから評価のクエリログを抽出する方法を示しています。
dwh-migration-dumper \
  --connector redshift-raw-logs \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host 123.456.789.012 \
  --iam-profile profile \
  --user user \
  --assessment
dwh-migration-dumper ツールで抽出されたテーブルとビュー
次のテーブルとビューは、redshift コネクタを使用する場合に抽出されます。
- SVV_COLUMNS
- SVV_EXTERNAL_COLUMNS
- SVV_EXTERNAL_DATABASES
- SVV_EXTERNAL_PARTITIONS
- SVV_EXTERNAL_SCHEMAS
- SVV_EXTERNAL_TABLES
- SVV_TABLES
- SVV_TABLE_INFO
- INFORMATION_SCHEMA.COLUMNS
- PG_CAST
- PG_DATABASE
- PG_LANGUAGE
- PG_LIBRARY
- PG_NAMESPACE
- PG_OPERATOR
- PG_PROC
- PG_TABLE_DEF
- PG_TABLES
- PG_TYPE
- PG_VIEWS
次のテーブルとビューは、--assessment フラグを指定して redshift コネクタを使用する場合に抽出されます。
- SVV_DISKUSAGE
- STV_MV_INFO
- STV_WLM_SERVICE_CLASS_CONFIG
- STV_WLM_SERVICE_CLASS_STATE
次のテーブルとビューは、redshift-raw-logs コネクタを使用する場合に抽出されます。
- STL_DDLTEXT
- STL_QUERY
- STL_QUERYTEXT
- PG_USER
次のテーブルとビューは、--assessment フラグを指定して redshift-raw-logs コネクタを使用する場合に抽出されます。
- STL_QUERY_METRICS
- SVL_QUERY_QUEUE_INFO
- STL_WLM_QUERY
Redshift のシステムビューとテーブルの詳細については、Redshift システムビューと Redshift システム カタログ テーブルをご覧ください。
Apache Hive/Spark または Trino/PrestoSQL
dwh-migration-dumper ツールは、Kerberos を使用した Apache Hive メタストアの認証のみをサポートしています。そのため、--user フラグと --password フラグは使用せず、代わりに --hive-kerberos-url フラグを使用して Kerberos 認証の詳細を指定します。
次の表に、抽出ツールを使用して Apache Hive、Spark、Presto、Trino メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --assessment | 
        メタデータを抽出するときに評価モードを有効にします。         | 評価には必須。変換には必要ありません。 | |
| --connector | 使用するコネクタの名前。この場合は hiveql です。 | はい | |
| --hive-metastore-dump-partition-metadata | true | 
         
          効果がないので、このフラグは  | いいえ | 
| --hive-metastore-version | 2.3.6 | 
         | いいえ | 
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --port | 9083 | データベース サーバーのポート。 | いいえ | 
| --hive-kerberos-url | 認証に使用する Kerberos プリンシパルとホスト。 | Kerberos 認証が有効になっているクラスタでは必須。 | |
| -Dhiveql.rpc.protection | RPC 保護の構成レベル。これにより、クラスタと  クラスタの  
 例(Bash): 例(Windows PowerShell): | Kerberos 認証が有効になっているクラスタでは必須。 | 
例
次の例は、認証を行わず、接続に代替ポートを使用して、指定されたホスト上の Hive 2.3.7 データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector hiveql \
  --hive-metastore-version 2.3.7 \
  --host host \
  --port port
Kerberos 認証を使用するには、Hive メタストアへの読み取り権限を持つユーザーとしてログインし、Kerberos チケットを生成します。次に、次のコマンドを使用してメタデータの zip ファイルを生成します。
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false" \
  dwh-migration-dumper \
  --connector hiveql \
  --host host \
  --port port \
  --hive-kerberos-url principal/kerberos_host
Azure Synapse または Microsoft SQL Server
dwh-migration-dumper ツールを Azure Synapse または Microsoft SQL Server に接続できるようにするには、Microsoft のダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して Azure Synapse または Microsoft SQL Server のメタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は sqlserver です。 | はい | |
| --database | 接続先のデータベースの名前。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | はい | |
| --port | 1433 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | 
例
次の例は、指定したホストの Azure Synapse データベースからメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector sqlserver \
  --database database \
  --driver path/mssql-jdbc.jar \
  --host server_name.sql.azuresynapse.net \
  --password password \
  --user user
Greenplum
dwh-migration-dumper ツールを Greenplum に接続できるようにするには、VMware Greenplum のダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して Greenplum メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は greenplum です。 | はい | |
| --database | 接続先のデータベースの名前。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードをリクエストします。 | |
| --port | 5432 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | 
例
次の例は、指定したホストの Greenplum データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector greenplum \
  --database database \
  --driver path/greenplum.jar \
  --host host \
  --password password \
  --user user \
Netezza
dwh-migration-dumper ツールが IBM Netezza に接続できるようにするには、JDBC ドライバを取得する必要があります。通常、このドライバは IBM Netezza アプライアンス ホストの /nz/kit/sbin ディレクトリから入手できます。ドライバが見つからない場合は、システム管理者に問い合わせるか、IBM Netezza ドキュメントの JDBC のインストールと構成をご覧ください。
次の表に、抽出ツールを使用して IBM Netezza メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は netezza です。 | はい | |
| --database | 抽出するデータベースのカンマ区切りのリスト。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | はい | |
| --port | 5480 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | 
例
次の例は、指定したホスト上の 2 つの IBM Netezza データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector netezza \
  --database database1,database2 \
  --driver path/nzjdbc.jar \
  --host host \
  --password password \
  --user user
PostgreSQL
dwh-migration-dumper ツールを PostgreSQL に接続できるようにするには、PostgreSQL のダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して PostgreSQL メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は postgresql です。 | はい | |
| --database | 接続先のデータベースの名前。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードをリクエストします。 | |
| --port | 5432 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | 
例
次の例は、指定したホストの PostgreSQL データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector postgresql \
  --database database \
  --driver path/postgresql-version.jar \
  --host host \
  --password password \
  --user user
Oracle
dwh-migration-dumper ツールを Oracle に接続できるようにするには、Oracle のダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して Oracle メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は oracle です。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --oracle-service | 接続に使用する Oracle サービス名。 | 明示的ではなくでも、このフラグまたは --oracle-sidフラグを指定する必要があります。 | |
| --oracle-sid | 接続に使用する Oracle システム ID(SID)。 | 明示的ではなくでも、このフラグまたは --oracle-serviceフラグを指定する必要があります。 | |
| --password | データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードをリクエストします。 | |
| --port | 1521 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 
        メタデータを抽出するには、指定したユーザーにロール  | はい | 
例
次の例は、接続に Oracle サービスを使用して、指定されたホストの Oracle データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector oracle \
  --driver path/ojdbc8.jar \
  --host host \
  --oracle-service service_name \
  --password password \
  --user user
Snowflake
次の表に、dwh-migration-dumper ツールを使用して Snowflake メタデータを抽出するために使用される一般的なフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --assessment | 
        データベース ログを生成するとき、またはメタデータを抽出するときに評価モードを有効にします。 | 評価専用です。 | |
| --connector | 使用するコネクタの名前。この場合は snowflake です。 | はい | |
| --database | 抽出するデータベースの名前。 Snowflake から一度に抽出できるのは 1 つのデータベースのみです。 このフラグは評価モードでは使用できません。 | 翻訳専用です。 | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --private-key-file | 
          認証に使用される RSA 秘密鍵のパス。鍵ペアベースの認証を使用する  | いいえ。指定しない場合、抽出ツールはパスワード ベースの認証を使用します。 | |
| --private-key-password | RSA 秘密鍵の作成時に使用されたパスワード。 | いいえ。秘密鍵が暗号化される場合にのみ必要です。 | |
| --password | データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードをリクエストします。ただし、その代わりに鍵ペアベースの認証を使用することをおすすめします。 | |
| --query-log-start | 
        クエリログ抽出の開始時間(指定した時間を含む)。値は時間単位に切り捨てられます。このフラグは、 
        例:  | いいえ | |
| --query-log-end | 
        クエリログ抽出の終了時間(指定した時間は含まない)。値は時間単位に切り捨てられます。このフラグは、 
        例:  | いいえ | |
| --role | 認可に使用する Snowflake のロール。これを指定する必要があるのは、 INFORMATION_SCHEMAではなくSNOWFLAKE.ACCOUNT_USAGEスキーマからメタデータを取得する必要がある大規模なインストールの場合のみです。詳細については、大規模な Snowflake インスタンスの操作をご覧ください。 | いいえ | |
| --user | データベース接続に使用するユーザー名。 | はい | |
| --warehouse | メタデータ クエリの処理に使用する Snowflake ウェアハウス。 | はい | 
例
次の例は、評価のためにメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector snowflake \
  --assessment \
  --host "account.snowflakecomputing.com" \
  --role role \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse
次の例は、ローカルホストで標準的なサイズの Snowflake データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse
次の例は、指定したホスト上の大規模な Snowflake データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --role role \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse
また、次の例を使用して、パスワード ベースの認証でメタデータを抽出することもできます。
dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --password password \
  --user user \
  --warehouse warehouse
大規模な Snowflake インスタンスの操作
dwh-migration-dumper ツールは、Snowflake INFORMATION_SCHEMA からメタデータを読み取ります。ただし、INFORMATION_SCHEMA から取得できるデータの量には限度があります。抽出ツールを実行したときにエラー SnowflakeSQLException:
Information schema query returned too much data を受け取った場合は、SNOWFLAKE.ACCOUNT_USAGE スキーマからメタデータを読み取ることができるように、次の手順を行う必要があります。
- Snowflake ウェブ インターフェースで [Shares] オプションを開きます。
- SNOWFLAKE.ACCOUNT_USAGE共有からデータベースを作成します。- -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
- ロールを作成します。 - CREATE ROLE role;
- 新しいデータベースに対する - IMPORTED権限をこのロールに付与します。- GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
- dwh-migration-dumperツールの実行に使用するユーザーにロールを付与します。- GRANT ROLE role TO USER user;
Vertica
dwh-migration-dumper ツールを Vertica に接続できるようにするには、ダウンロード ページから JDBC ドライバをダウンロードします。
次の表に、抽出ツールを使用して Vertica メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
| 名前 | デフォルト値 | 説明 | 必須 | 
|---|---|---|---|
| --connector | 使用するコネクタの名前。この場合は vertica です。 | はい | |
| --database | 接続先のデータベースの名前。 | はい | |
| --driver | この接続に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバの JAR ファイルをカンマで区切って指定できます。 | はい | |
| --host | localhost | データベース サーバーのホスト名または IP アドレス。 | いいえ | 
| --password | データベース接続に使用するパスワード。 | はい | |
| --port | 5433 | データベース サーバーのポート。 | いいえ | 
| --user | データベース接続に使用するユーザー名。 | はい | 
例
次の例は、ローカルホスト上の Vertica データベースからメタデータを抽出する方法を示しています。
dwh-migration-dumper \
  --driver path/vertica-jdbc.jar \
  --connector vertica \
  --database database
  --user user
  --password password
グローバル フラグ
次の表に、サポートされているすべてのソース プラットフォームで使用できるフラグを示します。
| 名前 | 説明 | 
|---|---|
| --connector | ソースシステムのコネクタ名。 | 
| --database | 使用状況はソースシステムによって異なります。 | 
| --driver | ソースシステムへの接続時に使用するドライバ JAR ファイルへの絶対パスまたは相対パス。複数のドライバ JAR ファイルをカンマで区切って指定できます。 | 
| --dry-runまたは-n | 抽出ツールを実行せずに実行できるアクションを示します。 | 
| --help | コマンドライン ヘルプを表示します。 | 
| --host | 接続先のデータベース サーバーのホスト名または IP アドレス。 | 
| --jdbcDriverClass | 必要に応じて、ベンダー指定の JDBC ドライバのクラス名をオーバーライドします。カスタムの JDBC クライアントがある場合はこれを使用します。 | 
| --output | 出力 zip ファイルのパス。例: dir1/dir2/teradata-metadata.zipパスを指定しない場合、出力ファイルは作業ディレクトリに作成されます。ディレクトリへのパスを指定すると、指定したディレクトリにデフォルトの zip ファイル名が作成されます。ディレクトリが存在しない場合は作成されます。
      Cloud Storage を使用するには、次の形式を使用します。 Google Cloud の認証情報を使用して認証するには、クライアント ライブラリを使用して認証するをご覧ください。 | 
| --password | データベース接続に使用するパスワード。 | 
| --port | データベース サーバーのポート。 | 
| --save-response-file | 再利用しやすいよう、コマンドライン フラグを JSON ファイルに保存します。このファイルの名前は dumper-response-file.jsonで、ファイルは作業ディレクトリに作成されます。レスポンス ファイルを使用するには、抽出ツールを実行する際に、@で始まるパスを指定します(例:dwh-migration-dumper @path/to/dumper-response-file.json)。 | 
| --schema | 抽出するスキーマのカンマ区切りのリスト。 
        Oracle ではスキーマとスキーマを作成したデータベース ユーザーが区別されません。そのため、 | 
| --thread-pool-size | 
        接続プールのサイズに影響を与えるスレッドプールのサイズを設定します。スレッドプールのデフォルトのサイズは、 抽出ツールが遅い、またはより多くのリソースが必要と思われる場合は、使用するスレッド数を増やすことができます。サーバー上の他のプロセスで帯域幅を増やす必要があることが予想される場合は、使用するスレッド数を減らすことができます。 | 
| --url | JDBC ドライバによって生成された URI ではなく、データベース接続に使用する URL。 ほとんどの場合、生成された URI で十分です。生成された URI は、ソース プラットフォームに固有で、この表にあるいずれかのフラグにより設定されていない JDBC 接続設定を使用する必要がある場合のみ、オーバーライドしてください。 | 
| --user | データベース接続に使用するユーザー名。 | 
| --version | プロダクトのバージョンが表示されます。 | 
| --telemetry | 
          実行のパフォーマンス特性(期間、実行回数、リソース使用量など)に関する分析情報を収集します。これはデフォルトで有効になっています。テレメトリーを無効にするには、このフラグを  | 
トラブルシューティング
このセクションでは、dwh-migration-dumper ツールの一般的な問題とトラブルシューティング方法について説明します。
メモリ不足エラー
dwh-migration-dumper ツールのターミナル出力での java.lang.OutOfMemoryError エラーは、多くの場合、取得したデータを処理するためのメモリ不足に関連しています。この問題に対処するには、使用可能なメモリを増やすか、処理スレッドの数を減らします。
JAVA_OPTS 環境変数をエクスポートすると、最大メモリを増やすことができます。
Linux
export JAVA_OPTS="-Xmx4G"
Windows
set JAVA_OPTS="-Xmx4G"
--thread-pool-size フラグを含めると、処理スレッドの数(デフォルトは 32)を減らすことができます。このオプションは、hiveql コネクタと redshift* コネクタでのみサポートされています。
dwh-migration-dumper --thread-pool-size=1
WARN...Task failed エラーの処理
dwh-migration-dumper ツールのターミナル出力に WARN [main]
o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … エラーが表示されることがあります。抽出ツールは複数のクエリをソースシステムに送信し、各クエリの出力が独自のファイルに書き込まれます。この問題は、これらのクエリのいずれかが失敗したことを示します。ただし、1 つのクエリが失敗しても、他のクエリの実行は妨げられません。複数の WARN エラーが発生した場合は、問題の詳細を確認し、クエリを適切に実行するために修正する必要があるものがないか確認してください。たとえば、抽出ツールを実行したときに指定したデータベース ユーザーにすべてのメタデータを読み取る権限がない場合は、適切な権限を持つユーザーで再試行してください。
破損した ZIP ファイル
dwh-migration-dumper ツールの zip ファイルを検証するには、SHA256SUMS.txt ファイルをダウンロードして次のコマンドを実行します。
Bash
sha256sum --check SHA256SUMS.txt
OK という結果は、チェックサムの検証が成功したことを示します。その他のメッセージは、検証エラーを示しています。
- FAILED: computed checksum did NOT match: zip ファイルが破損しているため、もう一度ダウンロードする必要があります。
- FAILED: listed file could not be read: zip ファイルのバージョンが見つかりません。チェックサム ファイルと ZIP ファイルが同じリリース バージョンからダウンロードされ、同じディレクトリに配置されていることを確認します。
Windows PowerShell
(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]
RELEASE_ZIP_FILENAME は、dwh-migration-dumper コマンドライン抽出ツールのリリースのダウンロード済み zip ファイル名に置き換えます(例: dwh-migration-tools-v1.0.52.zip)。
True という結果は、チェックサムの検証が成功したことを示します。
False の結果は、検証エラーを示します。チェックサム ファイルと ZIP ファイルが同じリリース バージョンからダウンロードされ、同じディレクトリに配置されていることを確認します。
Teradata のクエリログの抽出が遅い
-Dteradata-logs.query-logs-table フラグと -Dteradata-logs.sql-logs-table フラグで指定されたテーブルの結合のパフォーマンスを向上させるには、JOIN 条件に DATE 型の列を追加します。この列は両方のテーブルで定義する必要があり、パーティション プライマリ インデックスの一部である必要があります。この列を含めるには、-Dteradata-logs.log-date-column フラグを使用します。
例:
Bash
dwh-migration-dumper \ -Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV \ -Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl \ -Dteradata-logs.log-date-column=ArchiveLogDate
Windows PowerShell
dwh-migration-dumper ` "-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV" ` "-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl" ` "-Dteradata-logs.log-date-column=ArchiveLogDate"
Teradata の行サイズの上限を超えている
Teradata 15 の行サイズの上限は 64 KB です。上限を超えると、ダンプツールが失敗し、次のメッセージが表示されます。
none
[Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow
このエラーを解決するには、行の上限を 1 MB に拡張するか、行を複数行に分割します。
- 1 MB Perm と Response Rows 機能および最新の TTU ソフトウェアをインストールして有効にします。詳細については、Teradata Database Message 9804 をご覧ください。
- -Dteradata.metadata.max-text-lengthフラグと- -Dteradata-logs.max-sql-lengthフラグを使用して、長いクエリテキストを複数の行に分割します。
次のコマンドは、-Dteradata.metadata.max-text-length フラグを使用して、長いクエリテキストを最大 10,000 文字の複数の行に分割する方法を示しています。
Bash
dwh-migration-dumper \ --connector teradata \ -Dteradata.metadata.max-text-length=10000
Windows PowerShell
dwh-migration-dumper ` --connector teradata ` "-Dteradata.metadata.max-text-length=10000"
次のコマンドは、-Dteradata-logs.max-sql-length フラグを使用して、長いクエリテキストを最大 10,000 文字の複数の行に分割する方法を示しています。
Bash
dwh-migration-dumper \ --connector teradata-logs \ -Dteradata-logs.max-sql-length=10000
Windows PowerShell
dwh-migration-dumper ` --connector teradata-logs ` "-Dteradata-logs.max-sql-length=10000"
Oracle への接続に関する問題
無効なパスワードやホスト名などのよくあるケースでは、dwh-migration-dumper ツールは根本的な問題について説明する有用なエラー メッセージを出力します。ただし、Oracle サーバーから返されるエラー メッセージが一般的な内容で、調査が困難な場合があります。
そのような問題の一つが IO Error: Got minus one from a read call です。このエラーは、Oracle サーバーへの接続が確立されたものの、サーバーがクライアントを受け入れず、接続を閉じたことを示します。この問題は通常、サーバーが TCPS 接続のみを受け入れる場合に発生します。デフォルトでは、dwh-migration-dumper ツールは TCP プロトコルを使用します。この問題を解決するには、Oracle JDBC 接続 URL をオーバーライドする必要があります。
oracle-service、host、port フラグを指定する代わりに、jdbc:oracle:thin:@tcps://{HOST_NAME}:{PORT}/{ORACLE_SERVICE} という形式で url フラグを指定すると、この問題を解決できます。通常、Oracle サーバーで使用される TCPS ポート番号は 2484 です。
dumper コマンドの例:
  dwh-migration-dumper \
    --connector oracle-stats \
    --url "jdbc:oracle:thin:@tcps://host:port/oracle_service" \
    --assessment \
    --driver "jdbc_driver_path" \
    --user "user" \
    --password
接続プロトコルを TCPS に変更するだけでなく、Oracle サーバー証明書の検証に必要な trustStore SSL 構成を指定することが必要になる場合もあります。SSL 構成がないと、Unable to find valid
certification path エラー メッセージが表示されます。この問題を解決するには、次のように JAVA_OPTS 環境変数を設定します。
  set JAVA_OPTS=-Djavax.net.ssl.trustStore="jks_file_location" -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword="password"
Oracle サーバー構成によっては、keyStore 構成も指定する必要がある場合があります。構成オプションの詳細については、Oracle JDBC シンドライバを使用した SSL をご覧ください。
次のステップ
dwh-migration-dumper ツールを実行した後、変換するソースファイルとともに Cloud Storage に出力をアップロードします。