Snowflake の転送をスケジュールする
BigQuery Data Transfer Service で提供される Snowflake コネクタを使用すると、自動転送ジョブをスケジュールして管理し、パブリック IP 許可リストを使用して Snowflake から BigQuery にデータを移行できます。
概要
Snowflake コネクタは、Google Kubernetes Engine の移行エージェントを起動して、Snowflake から Snowflake がホストされている同じクラウド プロバイダ内のステージング領域への読み込みオペレーションをトリガーします。AWS でホストされている Snowflake アカウントの場合、データはまず Amazon S3 バケットにステージングされ、BigQuery Data Transfer Service を使用して BigQuery に転送されます。
次の図は、AWS でホストされている Snowflake データ ウェアハウスから BigQuery にデータが転送される仕組みを示しています。
制限事項
Snowflake コネクタを使用して行うデータ転送には、次の制限が適用されます。
- データ転送は、AWS でホストされている Snowflake アカウントからのみサポートされます。 Trusted Cloud by S3NS または Microsoft Azure でホストされている Snowflake アカウントからのデータ転送はサポートされていません。
- Snowflake コネクタは増分データ転送をサポートしていません。
- Snowflake コネクタは、単一の Snowflake データベースとスキーマ内のテーブルからの転送のみをサポートします。複数の Snowflake データベースまたはスキーマを含むテーブルから転送するには、各転送ジョブを個別に設定します。
- Snowflake から Amazon S3 バケットへのデータの読み込み速度は、この転送に選択した Snowflake ウェアハウスによって制限されます。
データは、BigQuery に読み込まれる前に、Parquet データ形式で Snowflake から抽出されます。
- 次の Parquet データ型はサポートされていません。
TIMESTAMP_TZ
、TIMESTAMP_LTZ
OBJECT
、VARIANT
、ARRAY
- 詳細については、Snowflake データを評価するをご覧ください。
次の Parquet データ型はサポートされていませんが、変換できます。
TIMESTAMP_NTZ
グローバル タイプの変換構成 YAML を使用して、メタデータを生成して変換エンジンを実行するときに、
DATETIME
からTIMESTAMP
へのデフォルトの動作をオーバーライドします。構成 YAML は次の例のようになります。
type: experimental_object_rewriter global: typeConvert: datetime: TIMESTAMP
- 次の Parquet データ型はサポートされていません。
始める前に
Snowflake 転送を設定する前に、このセクションに記載されているすべての手順を実行する必要があります。必要な手順は次のとおりです。
- Trusted Cloud プロジェクトを準備する
- 必要な BigQuery のロール
- Amazon S3 バケットを準備する
- 必要な権限を持つ Snowflake ユーザーを作成する
- ネットワーク ポリシーを追加する
- メタデータを生成して翻訳エンジンを実行する
- サポートされていないデータ型がないか Snowflake を評価する
- 転送情報を収集する
Trusted Cloud プロジェクトを準備する
Snowflake 転送用の Trusted Cloud プロジェクトを作成して構成する手順は次のとおりです。
Trusted Cloud by S3NS プロジェクトを作成するか、既存のプロジェクトを選択します。
BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
データを保存する BigQuery データセットを作成します。テーブルを作成する必要はありません。
必要な BigQuery のロール
転送の作成に必要な権限を取得するには、BigQuery 管理者 (roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
転送を作成するには、次の権限が必要です。
-
転送構成を作成するユーザーまたはサービス アカウントに対する
bigquery.transfers.update
-
転送構成を作成するユーザーまたはサービス アカウントに対する
bigquery.datasets.get
-
転送構成を作成するユーザーまたはサービス アカウントに対する
bigquery.datasets.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Amazon S3 バケットを準備する
Snowflake データ転送を完了するには、Amazon S3 バケットを作成し、Snowflake からの書き込みアクセスを許可するように構成する必要があります。
Amazon S3 バケットを作成する。Amazon S3 バケットは、BigQuery に読み込む前にデータをステージングするために使用されます。
Snowflake ストレージ統合オブジェクトを作成して構成し、Snowflake が外部ステージとして Amazon S3 バケットにデータを書き込めるようにします。
Amazon S3 バケットに対する読み取りアクセスを許可するには、次の操作も行う必要があります。
専用の Amazon IAM ユーザーを作成し、AmazonS3ReadOnlyAccess ポリシーを付与します。
IAM ユーザーの Amazon アクセスキー ペアを作成します。
必要な権限を持つ Snowflake ユーザーを作成する
Snowflake 転送中、Snowflake コネクタは JDBC 接続を使用して Snowflake アカウントに接続します。データ転送の実行に必要な権限のみを持つカスタムロールを持つ新しい Snowflake ユーザーを作成する必要があります。
// Create and configure new role, MIGRATION_ROLE GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON DATABASE DATABASE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON SCHEMA DATABASE_NAME.SCHEMA_NAME TO ROLE MIGRATION_ROLE; // You can modify this to give select permissions for all tables in a schema GRANT SELECT ON TABLE DATABASE_NAME.SCHEMA_NAME.TABLE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON STORAGE_INTEGRATION_OBJECT_NAME TO ROLE MIGRATION_ROLE;
次のように置き換えます。
MIGRATION_ROLE
: 作成するカスタムロールの名前WAREHOUSE_NAME
: データ ウェアハウスの名前DATABASE_NAME
: Snowflake データベースの名前SCHEMA_NAME
: Snowflake スキーマの名前TABLE_NAME
: このデータ転送に含まれる Snowflake の名前STORAGE_INTEGRATION_OBJECT_NAME
: Snowflake ストレージ統合オブジェクトの名前。
ネットワーク ポリシーを追加する
パブリック接続の場合、Snowflake アカウントはデフォルトでデータベース認証情報によるパブリック接続を許可します。ただし、Snowflake コネクタがアカウントに接続できないネットワーク ルールまたはポリシーが設定されている可能性があります。この場合は、必要な IP アドレスを許可リストに追加する必要があります。
次の表に、一般公開転送に使用されるリージョン ロケーションとマルチリージョン ロケーションの IP アドレスを示します。データセットのロケーションに対応する IP アドレスのみを追加することも、表に記載されているすべての IP アドレスを追加することもできます。これらは、BigQuery Data Transfer Service のデータ転送用に Google によって予約された IP アドレスです。
IP アドレスを許可リストに追加する手順は次のとおりです。
type
=IPV4
でネットワーク ルールを作成します。BigQuery Data Transfer Service は、JDBC 接続を使用して Snowflake アカウントに接続します。- 前に作成したネットワーク ルールと次の表の IP アドレスを使用して、ネットワーク ポリシーを作成します。
リージョンのロケーション
リージョンの説明 | リージョン名 | IP アドレス | |
---|---|---|---|
南北アメリカ | |||
コロンバス(オハイオ州) | us-east5 |
34.162.72.184 34.162.173.185 34.162.205.205 34.162.81.45 34.162.182.149 34.162.59.92 34.162.157.190 34.162.191.145 |
|
ダラス | us-south1 |
34.174.172.89 34.174.40.67 34.174.5.11 34.174.96.109 34.174.148.99 34.174.176.19 34.174.253.135 34.174.129.163 |
|
アイオワ | us-central1 |
34.121.70.114 34.71.81.17 34.122.223.84 34.121.145.212 35.232.1.105 35.202.145.227 35.226.82.216 35.225.241.102 |
|
ラスベガス | us-west4 |
34.125.53.201 34.125.69.174 34.125.159.85 34.125.152.1 34.125.195.166 34.125.50.249 34.125.68.55 34.125.91.116 |
|
ロサンゼルス | us-west2 |
35.236.59.167 34.94.132.139 34.94.207.21 34.94.81.187 34.94.88.122 35.235.101.187 34.94.238.66 34.94.195.77 |
|
メキシコ | northamerica-south1 |
34.51.6.35 34.51.7.113 34.51.12.83 34.51.10.94 34.51.11.219 34.51.11.52 34.51.2.114 34.51.15.251 |
|
モントリオール | northamerica-northeast1 |
34.95.20.253 35.203.31.219 34.95.22.233 34.95.27.99 35.203.12.23 35.203.39.46 35.203.116.49 35.203.104.223 |
|
北バージニア | us-east4 |
35.245.95.250 35.245.126.228 35.236.225.172 35.245.86.140 35.199.31.35 35.199.19.115 35.230.167.48 35.245.128.132 35.245.111.126 35.236.209.21 |
|
オレゴン | us-west1 |
35.197.117.207 35.199.178.12 35.197.86.233 34.82.155.140 35.247.28.48 35.247.31.246 35.247.106.13 34.105.85.54 |
|
ソルトレイクシティ | us-west3 |
34.106.37.58 34.106.85.113 34.106.28.153 34.106.64.121 34.106.246.131 34.106.56.150 34.106.41.31 34.106.182.92 |
|
サンパウロ | southamerica-east1 |
35.199.88.228 34.95.169.140 35.198.53.30 34.95.144.215 35.247.250.120 35.247.255.158 34.95.231.121 35.198.8.157 |
|
サンティアゴ | southamerica-west1 |
34.176.188.48 34.176.38.192 34.176.205.134 34.176.102.161 34.176.197.198 34.176.223.236 34.176.47.188 34.176.14.80 |
|
サウスカロライナ | us-east1 |
35.196.207.183 35.237.231.98 104.196.102.222 35.231.13.201 34.75.129.215 34.75.127.9 35.229.36.137 35.237.91.139 |
|
トロント | northamerica-northeast2 |
34.124.116.108 34.124.116.107 34.124.116.102 34.124.116.80 34.124.116.72 34.124.116.85 34.124.116.20 34.124.116.68 |
|
ヨーロッパ | |||
ベルギー | europe-west1 |
35.240.36.149 35.205.171.56 34.76.234.4 35.205.38.234 34.77.237.73 35.195.107.238 35.195.52.87 34.76.102.189 |
|
ベルリン | europe-west10 |
34.32.28.80 34.32.31.206 34.32.19.49 34.32.33.71 34.32.15.174 34.32.23.7 34.32.1.208 34.32.8.3 |
|
フィンランド | europe-north1 |
35.228.35.94 35.228.183.156 35.228.211.18 35.228.146.84 35.228.103.114 35.228.53.184 35.228.203.85 35.228.183.138 |
|
フランクフルト | europe-west3 |
35.246.153.144 35.198.80.78 35.246.181.106 35.246.211.135 34.89.165.108 35.198.68.187 35.242.223.6 34.89.137.180 |
|
ロンドン | europe-west2 |
35.189.119.113 35.189.101.107 35.189.69.131 35.197.205.93 35.189.121.178 35.189.121.41 35.189.85.30 35.197.195.192 |
|
マドリッド | europe-southwest1 |
34.175.99.115 34.175.186.237 34.175.39.130 34.175.135.49 34.175.1.49 34.175.95.94 34.175.102.118 34.175.166.114 |
|
ミラノ | europe-west8 |
34.154.183.149 34.154.40.104 34.154.59.51 34.154.86.2 34.154.182.20 34.154.127.144 34.154.201.251 34.154.0.104 |
|
オランダ | europe-west4 |
35.204.237.173 35.204.18.163 34.91.86.224 34.90.184.136 34.91.115.67 34.90.218.6 34.91.147.143 34.91.253.1 |
|
パリ | europe-west9 |
34.163.76.229 34.163.153.68 34.155.181.30 34.155.85.234 34.155.230.192 34.155.175.220 34.163.68.177 34.163.157.151 |
|
ストックホルム | europe-north2 |
34.51.133.48 34.51.136.177 34.51.128.140 34.51.141.252 34.51.139.127 34.51.142.55 34.51.134.218 34.51.138.9 |
|
トリノ | europe-west12 |
34.17.15.186 34.17.44.123 34.17.41.160 34.17.47.82 34.17.43.109 34.17.38.236 34.17.34.223 34.17.16.47 |
|
ワルシャワ | europe-central2 |
34.118.72.8 34.118.45.245 34.118.69.169 34.116.244.189 34.116.170.150 34.118.97.148 34.116.148.164 34.116.168.127 |
|
チューリッヒ | europe-west6 |
34.65.205.160 34.65.121.140 34.65.196.143 34.65.9.133 34.65.156.193 34.65.216.124 34.65.233.83 34.65.168.250 |
|
アジア太平洋 | |||
デリー | asia-south2 |
34.126.212.96 34.126.212.85 34.126.208.224 34.126.212.94 34.126.208.226 34.126.212.232 34.126.212.93 34.126.212.206 |
|
香港 | asia-east2 |
34.92.245.180 35.241.116.105 35.220.240.216 35.220.188.244 34.92.196.78 34.92.165.209 35.220.193.228 34.96.153.178 |
|
ジャカルタ | asia-southeast2 |
34.101.79.105 34.101.129.32 34.101.244.197 34.101.100.180 34.101.109.205 34.101.185.189 34.101.179.27 34.101.197.251 |
|
メルボルン | australia-southeast2 |
34.126.196.95 34.126.196.106 34.126.196.126 34.126.196.96 34.126.196.112 34.126.196.99 34.126.196.76 34.126.196.68 |
|
ムンバイ | asia-south1 |
34.93.67.112 35.244.0.1 35.200.245.13 35.200.203.161 34.93.209.130 34.93.120.224 35.244.10.12 35.200.186.100 |
|
大阪 | asia-northeast2 |
34.97.94.51 34.97.118.176 34.97.63.76 34.97.159.156 34.97.113.218 34.97.4.108 34.97.119.140 34.97.30.191 |
|
ソウル | asia-northeast3 |
34.64.152.215 34.64.140.241 34.64.133.199 34.64.174.192 34.64.145.219 34.64.136.56 34.64.247.158 34.64.135.220 |
|
シンガポール | asia-southeast1 |
34.87.12.235 34.87.63.5 34.87.91.51 35.198.197.191 35.240.253.175 35.247.165.193 35.247.181.82 35.247.189.103 |
|
シドニー | australia-southeast1 |
35.189.33.150 35.189.38.5 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.31.141 35.189.14.219 |
|
台湾 | asia-east1 |
35.221.201.20 35.194.177.253 34.80.17.79 34.80.178.20 34.80.174.198 35.201.132.11 35.201.223.177 35.229.251.28 35.185.155.147 35.194.232.172 |
|
東京 | asia-northeast1 |
34.85.11.246 34.85.30.58 34.85.8.125 34.85.38.59 34.85.31.67 34.85.36.143 34.85.32.222 34.85.18.128 34.85.23.202 34.85.35.192 |
|
中東 | |||
ダンマーム | me-central2 |
34.166.20.177 34.166.10.104 34.166.21.128 34.166.19.184 34.166.20.83 34.166.18.138 34.166.18.48 34.166.23.171 |
|
ドーハ | me-central1 |
34.18.48.121 34.18.25.208 34.18.38.183 34.18.33.25 34.18.21.203 34.18.21.80 34.18.36.126 34.18.23.252 |
|
テルアビブ | me-west1 |
34.165.184.115 34.165.110.74 34.165.174.16 34.165.28.235 34.165.170.172 34.165.187.98 34.165.85.64 34.165.245.97 |
|
アフリカ | |||
ヨハネスブルグ | africa-south1 |
34.35.11.24 34.35.10.66 34.35.8.32 34.35.3.248 34.35.2.113 34.35.5.61 34.35.7.53 34.35.3.17 |
マルチリージョンのロケーション
マルチリージョンの説明 | マルチリージョン名 | IP アドレス |
---|---|---|
欧州連合の加盟国内のデータセンター1 | EU |
34.76.156.158 34.76.156.172 34.76.136.146 34.76.1.29 34.76.156.232 34.76.156.81 34.76.156.246 34.76.102.206 34.76.129.246 34.76.121.168 |
米国内のデータセンター | US |
35.185.196.212 35.197.102.120 35.185.224.10 35.185.228.170 35.197.5.235 35.185.206.139 35.197.67.234 35.197.38.65 35.185.202.229 35.185.200.120 |
1 EU
マルチリージョン内のデータは europe-west2
(ロンドン)や europe-west6
(チューリッヒ)のデータセンターには保存されません。
メタデータを生成して翻訳エンジンを実行する
Snowflake コネクタ用の BigQuery Data Transfer Service は、Snowflake テーブルを BigQuery に移行するときに、BigQuery 移行サービス変換エンジンを使用してスキーマ マッピングを行います。Snowflake データ転送を完了するには、まず翻訳用のメタデータを生成してから、翻訳エンジンを実行する必要があります。
- Snowflake の
dwh-migration-tool
を実行します。詳細については、変換と評価のためのメタデータを生成するをご覧ください。 - 生成された
metadata.zip
ファイルを Cloud Storage バケットにアップロードします。metadata.zip
ファイルは、翻訳エンジンの入力として使用されます。 target_types
フィールドをmetadata
として指定して、バッチ変換サービスを実行します。詳細については、Translation API を使用して SQL クエリを変換するをご覧ください。- Snowflake のバッチ変換を実行するコマンドの例を次に示します。
curl -d "{ \"name\": \"sf_2_bq_translation\", \"displayName\": \"Snowflake to BigQuery Translation\", \"tasks\": { string: { \"type\": \"Snowflake2BigQuery_Translation\", \"translation_details\": { \"target_base_uri\": \"gs://sf_test_translation/output\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"gs://sf_test_translation/input\" } }, \"target_types\": \"metadata\", } } }, }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/project_id/locations/location/workflows
- このコマンドのステータスは、BigQuery の SQL 変換ページで確認できます。バッチ変換ジョブの出力は
gs://translation_target_base_uri/metadata/config/
に保存されます。
必要なサービス アカウントの権限
Snowflake 転送では、サービス アカウントを使用して、指定された Cloud Storage パスの翻訳エンジン出力からデータを読み取ります。サービス アカウントに storage.objects.get
権限と storage.objects.list
権限を付与する必要があります。
サービス アカウントが BigQuery データ転送を作成したプロジェクトとは異なるプロジェクトにある場合は、プロジェクト間のサービス アカウントの承認を有効にすることも必要です。 Trusted Cloud by S3NS
詳細については、BigQuery の IAM ロールと権限をご覧ください。
Snowflake データを評価する
BigQuery は、Snowflake から Cloud Storage にデータを Parquet ファイルとして書き込みます。Parquet ファイルは、TIMESTAMP_TZ
と TIMESTAMP_LTZ
のデータ型をサポートしていません。データにこれらの型が含まれている場合は、データを CSV ファイルとして Amazon S3 にエクスポートし、CSV ファイルを BigQuery にインポートできます。詳細については、Amazon S3 転送の概要をご覧ください。
転送情報を収集する
BigQuery Data Transfer Service で移行を設定するために必要な情報を収集します。
- Snowflake アカウント ID(Snowflake アカウント URL の接頭辞)。例:
ACCOUNT_IDENTIFIER.snowflakecomputing.com
- Snowflake データベースに対する適切な権限を持つユーザーのユーザー名とパスワード。データ転送の実行に必要な権限のみを付与できます。
- 転送に使用する Amazon S3 バケットの URI と AWS ユーザー アクセスキー ペア。不要な課金が発生しないように、このバケットにライフサイクル ポリシーを設定していただくことをおすすめします。
- 翻訳エンジンから取得したスキーマ マッピング ファイルを保存した Cloud Storage バケットの URI。
Snowflake の転送を設定する
次のオプションのいずれかを選択します。
コンソール
Trusted Cloud コンソールの [データ転送] ページに移動します。
[転送を作成] をクリックします。
[ソースタイプ] セクションで、[ソース] リストから [Snowflake Migration] を選択します。
[転送構成名] セクションで、[表示名] フィールドに、
My migration
などの転送の名前を入力します。表示名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。[転送先の設定] セクションで、[データセット] リストから作成したデータセットを選択します。
[データソースの詳細] セクションで、次のようにします。
- [アカウント ID] に、Snowflake アカウントの一意の識別子を入力します。これは、組織名とアカウント名の組み合わせです。ID は Snowflake アカウント URL の接頭辞であり、完全な URL ではありません。例:
ACCOUNT_IDENTIFIER.snowflakecomputing.com
- [ユーザー名] に、データベースへのアクセスと Snowflake テーブルの転送に使用される認証情報と承認を持つ Snowflake ユーザーのユーザー名を入力します。この転送用に作成したユーザーを使用することをおすすめします。
- [パスワード] に、Snowflake ユーザーのパスワードを入力します。
- [ウェアハウス] に、このデータ転送の実行に使用するウェアハウスを入力します。
- [サービス アカウント] に、このデータ転送で使用するサービス アカウントを入力します。サービス アカウントは、転送構成と宛先データセットが作成されたTrusted Cloud by S3NS プロジェクトに属している必要があります。サービス アカウントには、
storage.objects.list
とstorage.objects.get
の必要な権限が必要です。 - [データベース] に、このデータ転送に含まれるテーブルを含む Snowflake データベースの名前を入力します。
- [スキーマ] に、このデータ転送に含まれるテーブルを含む Snowflake スキーマの名前を入力します。
[テーブル名のパターン] で、スキーマ内のテーブル名と一致する名前またはパターンを入力して、転送するテーブルを指定します。正規表現を使用してパターンを指定できます(例:
table1_regex;table2_regex
)。このパターンは、Java の正規表現の構文に従っている必要があります。次に例を示します。lineitem;ordertb
は、lineitem
とordertb
という名前のテーブルに一致します。.*
はすべてのテーブルを照合します。
[Translation output GCS path] に、翻訳エンジンのスキーマ マッピング ファイルを含む Cloud Storage フォルダのパスを指定します。
- パスは
gs:/translation_target_base_uri/metadata/config/db/schema/
の形式に従い、/
で終わる必要があります。
- パスは
[Storage integration object name] に、Snowflake ストレージ統合オブジェクトの名前を入力します。この場合は
S3
です。[クラウド プロバイダ] で [
AWS
] を選択します。[GCS URI、Azure ストレージ アカウント名、Azure コンテナ名、Azure SAS] は空白のままにします。
[Amazon S3 URI] に、ステージング領域として使用する S3 バケットの URI を入力します。
[Access key ID] と [Secret access key] に、アクセスキー ペアを入力します。
- [アカウント ID] に、Snowflake アカウントの一意の識別子を入力します。これは、組織名とアカウント名の組み合わせです。ID は Snowflake アカウント URL の接頭辞であり、完全な URL ではありません。例:
省略可: [通知オプション] セクションで、次のようにします。
[保存] をクリックします。
Trusted Cloud この転送のリソース名を含むすべての転送設定の詳細がコンソールに表示されます。
bq
bq mk
コマンドを入力して、転送作成フラグ --transfer_config
を指定します。次のフラグも必要です。
--project_id
--data_source
--target_dataset
--display_name
--params
bq mk \ --transfer_config \ --project_id=project_id \ --data_source=data_source \ --target_dataset=dataset \ --display_name=name \ --service_account_name=service_account \ --params='parameters'
次のように置き換えます。
- project_id: 実際の Trusted Cloud by S3NS プロジェクト ID。
--project_id
を指定しない場合は、デフォルトのプロジェクトが使用されます。 - data_source: データソース
snowflake_migration
。 - dataset: 転送構成の BigQuery ターゲット データセット。
- name: 転送構成の表示名。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
- service_account:(省略可)転送の認証に使用されるサービス アカウント名。サービス アカウントは、転送の作成に使用した
project_id
が所有している必要があります。また、必要なロールがすべて付与されている必要があります。 - parameters: 作成される転送構成のパラメータを JSON 形式で指定します。例:
--params='{"param":"param_value"}'
。
Snowflake の転送構成に必要なパラメータは次のとおりです。
account_identifier
: Snowflake アカウントの一意の識別子。組織名とアカウント名の組み合わせです。ID は、Snowflake アカウント URL の接頭辞であり、完全な URL ではありません。例:account_identifier.snowflakecomputing.com
username
: データベースへのアクセスと Snowflake テーブルの転送に使用される認証情報と認可を持つ Snowflake ユーザーのユーザー名。password
: Snowflake ユーザーのパスワードを入力します。warehouse
: このデータ転送の実行に使用するウェアハウスを入力します。service_account
: このデータ転送で使用するサービス アカウントを入力します。サービス アカウントは、転送構成と宛先データセットが作成された Trusted Cloud by S3NS プロジェクトに属している必要があります。サービス アカウントには、storage.objects.list
とstorage.objects.get
の必要な権限が必要です。database
: このデータ転送に含まれるテーブルを含む Snowflake データベースの名前を入力します。schema
: このデータ転送に含まれるテーブルを含む Snowflake スキーマの名前を入力します。table_name_patterns
: スキーマ内のテーブル名に一致する名前またはパターンを入力して、転送するテーブルを指定します。正規表現を使用してパターンを指定できます(例:table1_regex;table2_regex
)。このパターンは、Java の正規表現の構文に従っている必要があります。次に例を示します。lineitem;ordertb
は、lineitem
とordertb
という名前のテーブルに一致します。.*
はすべてのテーブルを照合します。このフィールドを空白のままにして、指定したスキーマからすべてのテーブルを移行することもできます。
translation_output_gcs_path
: 翻訳エンジンのスキーマ マッピング ファイルを含む Cloud Storage フォルダのパスを指定します。- パスは
gs:/translation_target_base_uri/metadata/config/db/schema/
の形式に従い、/
で終わる必要があります。
- パスは
storage_integration_object_name
: Snowflake ストレージ統合オブジェクトの名前を入力します。この場合はS3
です。cloud_provider
: 「AWS
」と入力します。amazon_s3_uri
: ステージング領域として使用する S3 バケットの URI を入力します。aws_access_key_id
: アクセスキーペアを入力します。aws_secret_access_key
: アクセスキーペアを入力します。
たとえば、次のコマンドは、your_bq_dataset
というターゲット データセットと ID your_project_id
のプロジェクトを使用して、snowflake transfer config
という名前の Snowflake 転送を作成します。
PARAMS='{ "account_identifier": "your_account_identifier", "aws_access_key_id": "your_access_key_id", "aws_secret_access_key": "your_aws_secret_access_key", "cloud_provider": "AWS", "database": "your_sf_database", "password": "your_sf_password", "schema": "your_snowflake_schema", "service_account": "your_service_account", "storage_integration_object_name": "your_storage_integration_object", "staging_s3_uri": "s3://your/s3/bucket/uri", "table_name_patterns": ".*", "translation_output_gcs_path": "gs://sf_test_translation/output/metadata/config/database_name/schema_name/", "username": "your_sf_username", "warehouse": "your_warehouse" }' bq mk --transfer_config \ --project_id=your_project_id \ --target_dataset=your_bq_dataset \ --display_name='snowflake transfer config' \ --params="$PARAMS" \ --data_source=snowflake_migration
API
projects.locations.transferConfigs.create
メソッドを使用して、TransferConfig
リソースのインスタンスを指定します。
割り当てと上限
BigQuery の読み込み割り当て量は、読み込みジョブごと各テーブルあたり 15 TB です。Snowflake は内部でテーブルデータを圧縮するため、エクスポートされたテーブルサイズは、Snowflake で報告されたテーブルサイズより大きくなります。15 TB を超えるテーブルを移行する場合は、dts-migration-preview-support@google.com までお問い合わせください。
Amazon S3 の整合性モデルにより、一部のファイルが BigQuery への転送に含まれない可能性があります。
料金
BigQuery Data Transfer Service の料金については、料金をご覧ください。
- Snowflake ウェアハウスと Amazon S3 バケットが異なるリージョンにある場合、Snowflake データ転送を実行すると、下り(外向き)料金が適用されます。Snowflake ウェアハウスと Amazon S3 バケットの両方が同じリージョンにある場合、Snowflake データ転送の下り(外向き)料金は発生しません。
- AWS から Trusted Cloudにデータが転送されると、クラウド間下り(外向き)料金が適用されます。
次のステップ
- BigQuery Data Transfer Service の詳細を確認する。
- Batch SQL 変換を使用して SQL コードを移行する。