Menjadwalkan transfer Snowflake

Konektor Snowflake yang disediakan oleh BigQuery Data Transfer Service memungkinkan Anda menjadwalkan dan mengelola tugas transfer otomatis untuk memigrasikan data dari Snowflake ke BigQuery menggunakan daftar yang diizinkan IP publik.

Ringkasan

Konektor Snowflake melibatkan agen migrasi di Google Kubernetes Engine dan memicu operasi pemuatan dari Snowflake ke area staging dalam penyedia cloud yang sama tempat Snowflake dihosting. Untuk akun Snowflake yang dihosting AWS, data pertama kali di-staging di bucket Amazon S3 Anda, yang kemudian ditransfer ke BigQuery dengan BigQuery Data Transfer Service.

Diagram berikut menunjukkan cara data ditransfer dari data warehouse Snowflake yang dihosting AWS ke BigQuery.

Aliran data selama migrasi Snowflake ke BigQuery.

Batasan

Transfer data yang dilakukan menggunakan konektor Snowflake tunduk pada batasan berikut:

  • Transfer data hanya didukung dari akun Snowflake yang dihosting di AWS. Transfer data dari akun Snowflake yang dihosting di Google Cloud atau Microsoft Azure tidak didukung.
  • Konektor Snowflake tidak mendukung transfer data inkremental.
  • Konektor Snowflake hanya mendukung transfer dari tabel dalam satu database dan skema Snowflake. Untuk mentransfer dari tabel dengan beberapa database atau skema Snowflake, Anda dapat menyiapkan setiap tugas transfer secara terpisah.
  • Kecepatan pemuatan data dari Snowflake ke bucket Amazon S3 Anda dibatasi oleh warehouse Snowflake yang telah Anda pilih untuk transfer ini.
  • Data diekstrak dari Snowflake dalam format data Parquet sebelum dimuat ke BigQuery:

    • Jenis data Parquet berikut tidak didukung:
      • TIMESTAMP_TZ, TIMESTAMP_LTZ
      • OBJECT, VARIANT, ARRAY
      • Untuk informasi selengkapnya, lihat Menilai data Snowflake.
    • Jenis data Parquet berikut tidak didukung, tetapi dapat dikonversi:

      • TIMESTAMP_NTZ

      Gunakan YAML konfigurasi konversi jenis global untuk mengganti perilaku default konversi DATETIME menjadi TIMESTAMP saat Anda membuat metadata dan menjalankan mesin terjemahan.

      YAML konfigurasi mungkin terlihat mirip dengan contoh berikut:

      type: experimental_object_rewriter
      global:
        typeConvert:
          datetime: TIMESTAMP
      

Sebelum memulai

Sebelum menyiapkan transfer Snowflake, Anda harus melakukan semua langkah yang tercantum di bagian ini. Berikut adalah daftar semua langkah yang diperlukan.

  1. Menyiapkan Google Cloud project
  2. Peran BigQuery yang diperlukan
  3. Menyiapkan bucket Amazon S3
  4. Membuat pengguna Snowflake dengan izin yang diperlukan
  5. Menambahkan kebijakan jaringan
  6. Membuat metadata dan menjalankan mesin terjemahan
  7. Menilai Snowflake Anda untuk mengetahui jenis data yang tidak didukung
  8. Mengumpulkan informasi transfer

Menyiapkan project Google Cloud

Buat dan konfigurasikan project Google Cloud untuk transfer Snowflake dengan langkah-langkah berikut:

  1. Buat Google Cloud project atau pilih project yang ada.

  2. Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.

  3. Buat set data BigQuery untuk menyimpan data Anda. Anda tidak perlu membuat tabel apa pun.

Peran BigQuery yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat transfer, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin). Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat transfer. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat transfer:

  • bigquery.transfers.update di akun pengguna atau akun layanan yang membuat konfigurasi transfer
  • bigquery.datasets.get di akun pengguna atau akun layanan yang membuat konfigurasi transfer
  • bigquery.datasets.update di akun pengguna atau akun layanan yang membuat konfigurasi transfer

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Menyiapkan bucket Amazon S3

Untuk menyelesaikan transfer data Snowflake, Anda harus membuat bucket Amazon S3, lalu mengonfigurasinya untuk mengizinkan akses tulis dari Snowflake.

  1. Buat bucket Amazon S3. Bucket Amazon S3 digunakan untuk melakukan staging data sebelum dimuat ke BigQuery.

  2. Buat dan konfigurasikan objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke bucket Amazon S3 sebagai tahap eksternal.

Untuk mengizinkan akses baca di bucket Amazon S3, Anda juga harus melakukan hal berikut:

  1. Buat pengguna Amazon IAM khusus dan berikan kebijakan AmazonS3ReadOnlyAccess kepadanya.

  2. Buat pasangan kunci akses Amazon untuk pengguna IAM.

Membuat pengguna Snowflake dengan izin yang diperlukan

Selama transfer Snowflake, konektor Snowflake akan terhubung ke akun Snowflake Anda menggunakan koneksi JDBC. Anda harus membuat pengguna Snowflake baru dengan peran kustom yang hanya memiliki hak istimewa yang diperlukan untuk melakukan transfer data:

  // 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;

Ganti kode berikut:

  • MIGRATION_ROLE: nama peran kustom yang Anda buat
  • WAREHOUSE_NAME: nama data warehouse Anda
  • DATABASE_NAME: nama database Snowflake Anda
  • SCHEMA_NAME: nama skema Snowflake Anda
  • TABLE_NAME: nama Snowflake yang disertakan dalam transfer data ini
  • STORAGE_INTEGRATION_OBJECT_NAME: nama objek integrasi penyimpanan Snowflake Anda.

Menambahkan kebijakan jaringan

Untuk konektivitas publik, akun Snowflake mengizinkan koneksi publik dengan kredensial database secara default. Namun, Anda mungkin telah mengonfigurasi aturan atau kebijakan jaringan yang dapat mencegah konektor Snowflake terhubung ke akun Anda. Dalam hal ini, Anda harus menambahkan alamat IP yang diperlukan ke daftar yang diizinkan.

Tabel berikut adalah daftar alamat IP untuk lokasi regional dan multi-regional yang digunakan untuk transfer publik. Anda dapat menambahkan alamat IP yang hanya sesuai dengan lokasi set data, atau menambahkan semua alamat IP yang tercantum dalam tabel. Ini adalah alamat IP yang dicadangkan oleh Google untuk transfer data BigQuery Data Transfer Service.

Untuk menambahkan alamat IP ke daftar yang diizinkan, lakukan hal berikut:

  1. Buat aturan jaringan dengan type = IPV4. BigQuery Data Transfer Service menggunakan koneksi JDBC untuk terhubung ke akun Snowflake.
  2. Buat kebijakan jaringan dengan aturan jaringan yang Anda buat sebelumnya dan alamat IP dari tabel berikut.

Lokasi regional

Deskripsi region Nama region Alamat IP
Amerika
Columbus, Ohio 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
Dallas 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
Iowa 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
Las Vegas 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
Los Angeles 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
Meksiko 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
Montréal 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
Northern Virginia 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
Oregon 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
Salt Lake City 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
São Paolo 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
Santiago 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
South Carolina 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
Toronto 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
Eropa
Belgia 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
Berlin 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
Finlandia 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
Frankfurt 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
London 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
Madrid 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
Milan 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
Belanda 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
Paris 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
Stockholm 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
Turin 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
Warsawa 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
Zürich 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 Pasifik
Delhi 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
Hong Kong 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
Jakarta 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
Melbourne 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
Mumbai 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
Osaka 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
Seoul 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
Singapura 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
Sydney 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
Taiwan 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
Tokyo 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
Timur Tengah
Dammam 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
Doha 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
Tel Aviv 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
Afrika
Johannesburg 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

Lokasi multi-regional

Deskripsi multi-region Nama multi-region Alamat IP
Pusat data di negara anggota Uni Eropa1 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
Pusat data di Amerika Serikat 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 Data yang berada di multi-region EU tidak disimpan di pusat data europe-west2 (London) atau europe-west6 (Zürich).

Membuat metadata dan menjalankan mesin terjemahan

Konektor BigQuery Data Transfer Service untuk Snowflake menggunakan mesin terjemahan layanan migrasi BigQuery untuk pemetaan skema saat memigrasikan tabel Snowflake ke BigQuery. Untuk menyelesaikan transfer data Snowflake, Anda harus membuat metadata untuk terjemahan terlebih dahulu, lalu menjalankan mesin terjemahan:

  1. Jalankan dwh-migration-tool untuk Snowflake. Untuk informasi selengkapnya, lihat Membuat metadata untuk terjemahan dan penilaian.
  2. Upload file metadata.zip yang dihasilkan ke bucket Cloud Storage. File metadata.zip digunakan sebagai input untuk mesin terjemahan.
  3. Jalankan layanan terjemahan batch, dengan menentukan kolom target_types sebagai dts-mapping. Untuk informasi selengkapnya, lihat Menerjemahkan kueri SQL dengan API terjemahan.
    • Berikut adalah contoh perintah untuk menjalankan terjemahan batch untuk 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": "dts-mapping",
          }
        }
      },
      }" 
      -H "Content-Type:application/json"
      -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/project_id/locations/location/workflows
    • Anda dapat memeriksa status perintah ini di halaman Terjemahan SQL di BigQuery. Output tugas terjemahan batch disimpan di gs://translation_target_base_uri/dts/config/.

Izin akun layanan yang diperlukan

Dalam transfer Snowflake, akun layanan digunakan untuk membaca data dari output mesin terjemahan di jalur Cloud Storage yang ditentukan. Anda harus memberikan izin storage.objects.get dan storage.objects.list ke akun layanan.

Jika akun layanan berasal dari Google Cloud project yang berbeda dengan project yang membuat transfer data BigQuery, Anda juga harus mengaktifkan otorisasi akun layanan lintas project.

Untuk mengetahui informasi selengkapnya, lihat Peran dan izin IAM BigQuery.

Menilai data Snowflake

BigQuery menulis data dari Snowflake ke Cloud Storage sebagai file Parquet. File Parquet tidak mendukung jenis data TIMESTAMP_TZ dan TIMESTAMP_LTZ. Jika data Anda berisi jenis ini, Anda dapat mengekspornya ke Amazon S3 sebagai file CSV, lalu mengimpor file CSV ke dalam BigQuery. Untuk informasi selengkapnya, lihat Ringkasan transfer Amazon S3.

Mengumpulkan informasi transfer

Kumpulkan informasi yang Anda perlukan untuk menyiapkan migrasi dengan BigQuery Data Transfer Service:

Menyiapkan transfer Snowflake

Pilih salah satu opsi berikut:

Konsol

  1. Buka halaman Transfer data di Google Cloud konsol.

    Buka Data transfers

  2. Klik Create transfer.

  3. Di bagian Jenis sumber, pilih Snowflake Migration dari daftar Sumber.

  4. Di bagian Transfer nama konfigurasi, masukkan nama untuk transfer, misalnya My migration, di kolom Nama tampilan. Nama tampilan dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.

  5. Di bagian Setelan tujuan, pilih set data yang Anda buat dari daftar Set data.

  6. Di bagian Detail sumber data, lakukan hal berikut:

    1. Untuk ID akun, masukkan ID unik untuk akun Snowflake Anda, yang merupakan kombinasi dari nama organisasi dan nama akun Anda. ID adalah awalan URL akun Snowflake, bukan URL lengkap. Contoh, ACCOUNT_IDENTIFIER.snowflakecomputing.com.
    2. Untuk Nama pengguna, masukkan nama pengguna pengguna Snowflake yang kredensial dan otorisasinya digunakan untuk mengakses database Anda guna mentransfer tabel Snowflake. Sebaiknya gunakan pengguna yang Anda buat untuk transfer ini.
    3. Untuk Sandi, masukkan sandi pengguna Snowflake.
    4. Untuk Warehouse, masukkan warehouse yang digunakan untuk menjalankan transfer data ini.
    5. Untuk Akun layanan, masukkan akun layanan yang akan digunakan dengan transfer data ini. Akun layanan harus termasuk dalam projectGoogle Cloud yang sama tempat konfigurasi transfer dan set data tujuan dibuat. Akun layanan harus memiliki izin yang diperlukan storage.objects.list dan storage.objects.get.
    6. Untuk Database, masukkan nama database Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
    7. Untuk Skema, masukkan nama skema Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
    8. Untuk Pola nama tabel, tentukan tabel yang akan ditransfer dengan memasukkan nama atau pola yang cocok dengan nama tabel dalam skema. Anda dapat menggunakan ekspresi reguler untuk menentukan pola, misalnya table1_regex;table2_regex. Pola ini harus mengikuti sintaksis ekspresi reguler Java. Misalnya,

      • lineitem;ordertb cocok dengan tabel yang bernama lineitem dan ordertb.
      • .* cocok dengan semua tabel.
    9. Untuk Translation output GCS path, tentukan jalur ke folder Cloud Storage yang berisi file pemetaan skema dari mesin terjemahan.

      • Jalur harus mengikuti format gs:/translation_target_base_uri/dts/db/schema/ dan harus diakhiri dengan /.
    10. Untuk Storage integration object name, masukkan nama objek integrasi penyimpanan Snowflake. Dalam hal ini, S3.

    11. Untuk Penyedia cloud, pilih AWS.

    12. Untuk URI GCS, nama akun penyimpanan Azure, nama penampung Azure, Azure SAS, biarkan kolom ini kosong.

    13. Untuk Amazon S3 URI, masukkan URI bucket S3 yang akan digunakan sebagai area staging.

    14. Untuk Access key ID dan Secret access key, masukkan pasangan kunci akses.

  7. Opsional: Di bagian Opsi notifikasi, lakukan hal berikut:

    1. Klik tombol untuk mengaktifkan notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
    2. Untuk Select a Pub/Sub topic, pilih nama topik atau klik Create a topic. Opsi ini mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda.
  8. Klik Simpan.

  9. Konsol Google Cloud menampilkan semua detail penyiapan transfer, termasuk Nama resource untuk transfer ini.

bq

Masukkan perintah bq mk dan berikan flag pembuatan transfer --transfer_config. Flag berikut juga diperlukan:

  • --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'

Ganti kode berikut:

  • project_id: Google Cloud Project ID Anda. Jika --project_id tidak ditentukan, project default akan digunakan.
  • data_source: sumber data, snowflake_migration.
  • dataset: set data target BigQuery untuk konfigurasi transfer.
  • name: nama tampilan untuk konfigurasi transfer. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
  • service_account: (Opsional) nama akun layanan yang digunakan untuk mengautentikasi transfer Anda. Akun layanan harus dimiliki oleh project_id yang sama yang digunakan untuk membuat transfer dan harus memiliki semua peran yang diperlukan.
  • parameters: parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Contoh: --params='{"param":"param_value"}'.

Parameter yang diperlukan untuk konfigurasi transfer Snowflake adalah:

  • account_identifier: ID unik untuk akun Snowflake Anda, yang merupakan kombinasi dari nama organisasi dan nama akun Anda. ID adalah awalan URL akun Snowflake, bukan URL lengkap. Contoh, account_identifier.snowflakecomputing.com.
  • username: nama pengguna pengguna Snowflake yang kredensial dan otorisasi-nya digunakan untuk mengakses database Anda guna mentransfer tabel Snowflake.
  • password: masukkan sandi pengguna Snowflake.
  • warehouse: masukkan gudang yang digunakan untuk menjalankan transfer data ini.
  • service_account: masukkan akun layanan yang akan digunakan dengan transfer data ini. Akun layanan harus termasuk dalam project Google Cloud yang sama tempat konfigurasi transfer dan set data tujuan dibuat. Akun layanan harus memiliki izin yang diperlukan storage.objects.list dan storage.objects.get.
  • database: masukkan nama database Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
  • schema: masukkan nama skema Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
  • table_name_patterns: menentukan tabel yang akan ditransfer dengan memasukkan nama atau pola yang cocok dengan nama tabel dalam skema. Anda dapat menggunakan ekspresi reguler untuk menentukan pola, misalnya table1_regex;table2_regex. Pola ini harus mengikuti sintaksis ekspresi reguler Java. Misalnya,

    • lineitem;ordertb cocok dengan tabel yang bernama lineitem dan ordertb.
    • .* cocok dengan semua tabel.

      Anda juga dapat membiarkan kolom ini kosong untuk memigrasikan semua tabel dari skema yang ditentukan.

  • translation_output_gcs_path: tentukan jalur ke folder Cloud Storage yang berisi file pemetaan skema dari mesin terjemahan.

    • Jalur harus mengikuti format gs:/translation_target_base_uri/dts/db/schema/ dan harus diakhiri dengan /.
  • storage_integration_object_name: masukkan nama objek integrasi penyimpanan Snowflake. Dalam hal ini, S3.

  • cloud_provider: masukkan AWS.

  • amazon_s3_uri: masukkan URI bucket S3 yang akan digunakan sebagai area staging.

  • aws_access_key_id: masukkan pasangan kunci akses.

  • aws_secret_access_key: masukkan pasangan kunci akses.

Misalnya, perintah berikut akan membuat transfer Snowflake bernama snowflake transfer config dengan set data target bernama your_bq_dataset dan project dengan ID your_project_id.

  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/dts/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

Gunakan metode projects.locations.transferConfigs.create dan berikan instance resource TransferConfig.

Kuota dan batas

BigQuery memiliki kuota muatan sebesar 15 TB untuk setiap tugas pemuatan untuk setiap tabel. Secara internal, Snowflake mengompresi data tabel, sehingga ukuran tabel yang diekspor lebih besar dari ukuran tabel yang dilaporkan oleh Snowflake. Jika Anda berencana untuk memigrasikan tabel yang lebih besar dari 15 TB, hubungi dts-migration-preview-support@google.com.

Karena model konsistensi Amazon S3, ada kemungkinan bahwa beberapa file tidak akan disertakan dalam transfer ke BigQuery.

Harga

Untuk mengetahui informasi tentang harga BigQuery Data Transfer Service, lihat halaman Harga.

  • Jika warehouse Snowflake dan bucket Amazon S3 berada di region yang berbeda, Snowflake akan menerapkan tagihan keluar saat Anda menjalankan transfer data Snowflake. Tidak ada biaya keluar untuk transfer data Snowflake jika warehouse Snowflake dan bucket Amazon S3 berada di region yang sama.
  • Saat data ditransfer dari AWS ke Google Cloud, biaya traffic keluar antar-cloud akan diterapkan.

Langkah berikutnya