変換と評価のためのメタデータを生成する
このドキュメントでは、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 メタデータとクエリログを抽出するためによく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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(IAM)のアクセスキー ID と秘密鍵。
- AWS IAM プロファイルの名前。
ユーザー名とパスワードで認証を行うには、Amazon Redshift のデフォルトの PostgreSQL JDBC ドライバを使用します。AWS IAM で認証するには、Amazon Redshift JDBC ドライバを使用します。このドライバはダウンロード ページからダウンロードできます。
次の表に、dwh-migration-dumper
ツールを使用して Amazon Redshift メタデータとクエリログを抽出するためによく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 のメタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出するために使用される一般的なフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出する場合によく使用されるフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出するために使用される一般的なフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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 メタデータを抽出するために使用される一般的なフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--connector |
使用するコネクタの名前。この場合は snowflake です。 | ○ | |
--database |
接続先のデータベースの名前。 Snowflake から一度に抽出できるのは 1 つのデータベースのみです。 |
はい | |
--host |
localhost | データベース サーバーのホスト名または IP アドレス。 | × |
--password |
データベース接続に使用するパスワード。 | 指定しない場合、抽出ツールは安全なプロンプトを使用してパスワードを要求します。 | |
--role |
認可に使用する Snowflake のロール。これを指定する必要があるのは、INFORMATION_SCHEMA ではなく SNOWFLAKE.ACCOUNT_USAGE スキーマからメタデータを取得する必要がある大規模なインストールの場合のみです。詳細については、大規模な Snowflake インスタンスの操作をご覧ください。 |
× | |
--user |
データベース接続に使用するユーザー名。 |
○ | |
--warehouse |
メタデータ クエリの処理に使用する Snowflake ウェアハウス。 |
○ |
例
次の例は、ローカルホストで標準的なサイズの Snowflake データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
--connector snowflake \
--database database \
--password password \
--user user \
--warehouse warehouse
次の例は、指定したホスト上の大規模な Snowflake データベースのメタデータを抽出する方法を示しています。
dwh-migration-dumper \
--connector snowflake \
--database database \
--host "account.snowflakecomputing.com" \
--password password \
--role role \
--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 メタデータを抽出するために使用される一般的なフラグを示します。サポートされているすべてのフラグについては、グローバル フラグをご覧ください。
名前 | デフォルト値 | Description | 必須 |
---|---|---|---|
--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
グローバル フラグ
次の表に、サポートされているソース プラットフォームで使用できるフラグを示します。
名前 | Description |
---|---|
--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 |
プロダクトのバージョンが表示されます。 |
トラブルシューティング
このセクションでは、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
です。
ダンプツール コマンドの例:
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 に出力をアップロードします。