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 から BigQuery への移行中のデータの流れ。

制限事項

Snowflake コネクタを使用して行うデータ転送には、次の制限が適用されます。

  • データ転送は、AWS でホストされている Snowflake アカウントからのみサポートされます。 Trusted Cloud by S3NS または Microsoft Azure でホストされている Snowflake アカウントからのデータ転送はサポートされていません。
  • Snowflake コネクタは増分データ転送をサポートしていません。
  • Snowflake コネクタは、単一の Snowflake データベースとスキーマ内のテーブルからの転送のみをサポートします。複数の Snowflake データベースまたはスキーマを含むテーブルから転送するには、各転送ジョブを個別に設定します。
  • Snowflake から Amazon S3 バケットへのデータの読み込み速度は、この転送に選択した Snowflake ウェアハウスによって制限されます。
  • データは、BigQuery に読み込まれる前に、Parquet データ形式で Snowflake から抽出されます。

始める前に

Snowflake 転送を設定する前に、このセクションに記載されているすべての手順を実行する必要があります。必要な手順は次のとおりです。

  1. Trusted Cloud プロジェクトを準備する
  2. 必要な BigQuery のロール
  3. Amazon S3 バケットを準備する
  4. 必要な権限を持つ Snowflake ユーザーを作成する
  5. ネットワーク ポリシーを追加する
  6. メタデータを生成して翻訳エンジンを実行する
  7. サポートされていないデータ型がないか Snowflake を評価する
  8. 転送情報を収集する

Trusted Cloud プロジェクトを準備する

Snowflake 転送用の Trusted Cloud プロジェクトを作成して構成する手順は次のとおりです。

  1. Trusted Cloud by S3NS プロジェクトを作成するか、既存のプロジェクトを選択します。

  2. BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。

  3. データを保存する BigQuery データセットを作成します。テーブルを作成する必要はありません。

必要な BigQuery のロール

転送の作成に必要な権限を取得するには、BigQuery 管理者 roles/bigquery.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

転送を作成するには、次の権限が必要です。

  • 転送構成を作成するユーザーまたはサービス アカウントに対する bigquery.transfers.update
  • 転送構成を作成するユーザーまたはサービス アカウントに対する bigquery.datasets.get
  • 転送構成を作成するユーザーまたはサービス アカウントに対する bigquery.datasets.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Amazon S3 バケットを準備する

Snowflake データ転送を完了するには、Amazon S3 バケットを作成し、Snowflake からの書き込みアクセスを許可するように構成する必要があります。

  1. Amazon S3 バケットを作成する。Amazon S3 バケットは、BigQuery に読み込む前にデータをステージングするために使用されます。

  2. Snowflake ストレージ統合オブジェクトを作成して構成し、Snowflake が外部ステージとして Amazon S3 バケットにデータを書き込めるようにします。

Amazon S3 バケットに対する読み取りアクセスを許可するには、次の操作も行う必要があります。

  1. 専用の Amazon IAM ユーザーを作成し、AmazonS3ReadOnlyAccess ポリシーを付与します。

  2. 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 アドレスを許可リストに追加する手順は次のとおりです。

  1. type = IPV4ネットワーク ルールを作成します。BigQuery Data Transfer Service は、JDBC 接続を使用して Snowflake アカウントに接続します。
  2. 前に作成したネットワーク ルールと次の表の 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 データ転送を完了するには、まず翻訳用のメタデータを生成してから、翻訳エンジンを実行する必要があります。

  1. Snowflake の dwh-migration-tool を実行します。詳細については、変換と評価のためのメタデータを生成するをご覧ください。
  2. 生成された metadata.zip ファイルを Cloud Storage バケットにアップロードします。metadata.zip ファイルは、翻訳エンジンの入力として使用されます。
  3. 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_TZTIMESTAMP_LTZ のデータ型をサポートしていません。データにこれらの型が含まれている場合は、データを CSV ファイルとして Amazon S3 にエクスポートし、CSV ファイルを BigQuery にインポートできます。詳細については、Amazon S3 転送の概要をご覧ください。

転送情報を収集する

BigQuery Data Transfer Service で移行を設定するために必要な情報を収集します。

Snowflake の転送を設定する

次のオプションのいずれかを選択します。

コンソール

  1. Trusted Cloud コンソールの [データ転送] ページに移動します。

    [データ転送] に移動

  2. [転送を作成] をクリックします。

  3. [ソースタイプ] セクションで、[ソース] リストから [Snowflake Migration] を選択します。

  4. [転送構成名] セクションで、[表示名] フィールドに、My migration などの転送の名前を入力します。表示名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。

  5. [転送先の設定] セクションで、[データセット] リストから作成したデータセットを選択します。

  6. [データソースの詳細] セクションで、次のようにします。

    1. [アカウント ID] に、Snowflake アカウントの一意の識別子を入力します。これは、組織名とアカウント名の組み合わせです。ID は Snowflake アカウント URL の接頭辞であり、完全な URL ではありません。例: ACCOUNT_IDENTIFIER.snowflakecomputing.com
    2. [ユーザー名] に、データベースへのアクセスと Snowflake テーブルの転送に使用される認証情報と承認を持つ Snowflake ユーザーのユーザー名を入力します。この転送用に作成したユーザーを使用することをおすすめします。
    3. [パスワード] に、Snowflake ユーザーのパスワードを入力します。
    4. [ウェアハウス] に、このデータ転送の実行に使用するウェアハウスを入力します。
    5. [サービス アカウント] に、このデータ転送で使用するサービス アカウントを入力します。サービス アカウントは、転送構成と宛先データセットが作成されたTrusted Cloud by S3NS プロジェクトに属している必要があります。サービス アカウントには、storage.objects.liststorage.objects.get必要な権限が必要です。
    6. [データベース] に、このデータ転送に含まれるテーブルを含む Snowflake データベースの名前を入力します。
    7. [スキーマ] に、このデータ転送に含まれるテーブルを含む Snowflake スキーマの名前を入力します。
    8. [テーブル名のパターン] で、スキーマ内のテーブル名と一致する名前またはパターンを入力して、転送するテーブルを指定します。正規表現を使用してパターンを指定できます(例: table1_regex;table2_regex)。このパターンは、Java の正規表現の構文に従っている必要があります。次に例を示します。

      • lineitem;ordertb は、lineitemordertb という名前のテーブルに一致します。
      • .* はすべてのテーブルを照合します。
    9. [Translation output GCS path] に、翻訳エンジンのスキーマ マッピング ファイルを含む Cloud Storage フォルダのパスを指定します。

      • パスは gs:/translation_target_base_uri/metadata/config/db/schema/ の形式に従い、/ で終わる必要があります。
    10. [Storage integration object name] に、Snowflake ストレージ統合オブジェクトの名前を入力します。この場合は S3 です。

    11. [クラウド プロバイダ] で [AWS] を選択します。

    12. [GCS URI、Azure ストレージ アカウント名、Azure コンテナ名、Azure SAS] は空白のままにします。

    13. [Amazon S3 URI] に、ステージング領域として使用する S3 バケットの URI を入力します。

    14. [Access key ID] と [Secret access key] に、アクセスキー ペアを入力します。

  7. 省略可: [通知オプション] セクションで、次のようにします。

    1. 切り替えボタンをクリックしてメール通知を有効にします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
    2. [Pub/Sub トピックを選択してください] で、トピック名を選択するか、[トピックを作成する] をクリックします。このオプションで、Pub/Sub の転送実行通知を構成します。
  8. [保存] をクリックします。

  9. 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.liststorage.objects.get必要な権限が必要です。
  • database: このデータ転送に含まれるテーブルを含む Snowflake データベースの名前を入力します。
  • schema: このデータ転送に含まれるテーブルを含む Snowflake スキーマの名前を入力します。
  • table_name_patterns: スキーマ内のテーブル名に一致する名前またはパターンを入力して、転送するテーブルを指定します。正規表現を使用してパターンを指定できます(例: table1_regex;table2_regex)。このパターンは、Java の正規表現の構文に従っている必要があります。次に例を示します。

    • lineitem;ordertb は、lineitemordertb という名前のテーブルに一致します。
    • .* はすべてのテーブルを照合します。

      このフィールドを空白のままにして、指定したスキーマからすべてのテーブルを移行することもできます。

  • 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にデータが転送されると、クラウド間下り(外向き)料金が適用されます。

次のステップ