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-tama diatur dalam bucket Amazon S3 Anda, yang kemudian ditransfer ke BigQuery dengan BigQuery Data Transfer Service.
  • Untuk akun Snowflake yang dihosting diGoogle Cloud, data pertama-tama akan di-staging di bucket Cloud Storage Anda, yang kemudian ditransfer ke BigQuery dengan BigQuery Data Transfer Service.
  • Untuk akun Snowflake yang dihosting di Azure, data pertama-tama ditahapkan di penampung Azure Blob Storage Anda, yang kemudian ditransfer ke BigQuery dengan BigQuery Data Transfer Service.

Batasan

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

  • 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 atau container Azure Blob Storage atau bucket Cloud Storage dibatasi oleh warehouse Snowflake yang telah Anda pilih untuk transfer ini.
  • 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 tersebut ke BigQuery. Untuk mengetahui informasi selengkapnya, lihat Ringkasan transfer Amazon S3.

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 penyiapan
  4. Membuat pengguna Snowflake dengan izin yang diperlukan
  5. Menambahkan kebijakan jaringan
  6. Opsional: Deteksi dan pemetaan skema
  7. Menilai Snowflake Anda untuk mengetahui apakah ada jenis data yang tidak didukung
  8. Opsional: Mengaktifkan transfer inkremental
  9. Opsional: Aktifkan konektivitas pribadi
  10. Mengumpulkan informasi transfer
  11. Jika Anda berencana menentukan kunci enkripsi yang dikelola pelanggan (CMEK), pastikan bahwa akun layanan memiliki izin untuk mengenkripsi dan mendekripsi, dan Anda memiliki ID resource kunci Cloud KMS yang diperlukan untuk menggunakan CMEK. Untuk mengetahui informasi tentang cara kerja CMEK dengan transfer, lihat Menentukan kunci enkripsi dengan transfer.

Menyiapkan project Google Cloud

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

  1. Buat project Google Cloud 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 guna membuat transfer data BigQuery Data Transfer Service, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) di project Anda. 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 data BigQuery Data Transfer Service. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat transfer data BigQuery Data Transfer Service:

  • Izin BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Izin BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

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

Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bigquery.admin.

Menyiapkan bucket staging

Untuk menyelesaikan transfer data Snowflake, Anda harus membuat bucket penyiapan, lalu mengonfigurasinya agar mengizinkan akses tulis dari Snowflake.

Pilih salah satu opsi berikut:

AWS

Bucket penyiapan untuk akun Snowflake yang dihosting di AWS

Untuk akun Snowflake yang dihosting AWS, buat bucket Amazon S3 untuk melakukan staging data Snowflake sebelum dimuat ke BigQuery.

  1. Buat bucket Amazon S3.

  2. Buat dan konfigurasi 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 IAM Amazon khusus dan berikan kebijakan AmazonS3ReadOnlyAccess kepadanya.

  2. Buat pasangan kunci akses Amazon untuk pengguna IAM.

Azure

Menyiapkan kontainer Azure Blob Storage untuk akun Snowflake yang dihosting di Azure

Untuk akun Snowflake yang dihosting di Azure, buat kontainer Azure Blob Storage untuk menyiapkan data Snowflake sebelum dimuat ke BigQuery.

  1. Buat akun penyimpanan Azure dan penampung penyimpanan di dalamnya.
  2. Buat dan konfigurasi objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke dalam kontainer penyimpanan Azure sebagai tahap eksternal. Perhatikan bahwa 'Langkah 3: Membuat panggung eksternal' dapat dilewati karena kita tidak menggunakannya.

Untuk mengizinkan akses baca pada penampung Azure Anda, buat Token SAS untuk penampung tersebut.

Google Cloud

Bucket penyiapan untuk akun Snowflake yang dihosting Google Cloud

Untuk akun Snowflake yang dihosting Google Cloud, buat bucket Cloud Storage untuk menyimpan data Snowflake sebelum dimuat ke BigQuery.

  1. Buat bucket Cloud Storage.
  2. Buat dan konfigurasi objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke bucket Cloud Storage sebagai tahap eksternal.
  3. Untuk mengizinkan akses ke bucket penyiapan, Berikan peran roles/storage.objectViewer kepada agen layanan DTS dengan perintah berikut:

    gcloud storage buckets add-iam-policy-binding gs://STAGING_BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
      --role=roles/storage.objectViewer

Buat pengguna Snowflake dengan izin yang diperlukan

Selama transfer Snowflake, konektor Snowflake 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.

Membuat pasangan kunci untuk autentikasi

Karena penghentian penggunaan login sandi satu faktor oleh Snowflake, sebaiknya gunakan pasangan kunci untuk autentikasi.

Anda dapat mengonfigurasi pasangan kunci dengan membuat pasangan kunci RSA terenkripsi atau tidak terenkripsi, lalu menetapkan kunci publik ke pengguna Snowflake. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi autentikasi pasangan kunci.

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. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi kebijakan jaringan untuk transfer Snowflake.

Deteksi dan pemetaan skema

Untuk menentukan skema, Anda dapat menggunakan BigQuery Data Transfer Service untuk mendeteksi skema dan pemetaan jenis data secara otomatis saat mentransfer data dari Snowflake ke BigQuery. Atau, Anda dapat menggunakan mesin terjemahan untuk menentukan skema dan jenis data secara manual.

Untuk mengetahui informasi selengkapnya, lihat Deteksi dan pemetaan skema untuk Snowflake.

Mengaktifkan transfer inkremental

Untuk menyiapkan transfer data Snowflake inkremental, lihat Menyiapkan transfer inkremental untuk Snowflake.

Mengaktifkan konektivitas pribadi

Jika ingin membuat transfer data Snowflake pribadi, Anda harus mengonfigurasi jaringan untuk konektivitas pribadi.

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 konsol Google Cloud .

    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 Snowflake Credentials, lakukan hal berikut:

    1. Untuk Account Identifier, masukkan ID unik untuk akun Snowflake Anda, yang merupakan kombinasi 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 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 Authentication Mechanism, pilih metode autentikasi pengguna Snowflake:

      PASSWORD

      • Untuk Password, masukkan sandi pengguna Snowflake.

      KEY_PAIR

      • Untuk Private Key, masukkan kunci pribadi yang ditautkan dengan kunci publik yang terkait dengan pengguna Snowflake.
      • Untuk Is Private Key Encrypted, pilih kolom ini jika kunci pribadi dienkripsi dengan frasa sandi.
      • Untuk Private Key Passphrase, masukkan frasa sandi untuk kunci pribadi terenkripsi. Kolom ini wajib diisi jika Anda telah memilih Apakah Kunci Pribadi dienkripsi. Untuk mengetahui informasi selengkapnya, lihat Membuat pasangan kunci untuk autentikasi
    • Untuk Warehouse, masukkan warehouse yang digunakan untuk eksekusi transfer data ini.
    • Untuk Database Snowflake, masukkan nama database Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
    • Untuk Skema Snowflake, masukkan nama skema Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
  7. Di bagian Storage Configuration, lakukan hal berikut:

    1. Untuk Storage integration object name, masukkan nama objek integrasi penyimpanan Snowflake.
    2. Opsional: Untuk Ukuran file maks, tentukan ukuran maksimum setiap file yang dibongkar dari Snowflake ke lokasi penyiapan (dalam MB).
    3. Untuk Cloud Provider, pilih AWS atau AZURE atau GCP, bergantung pada penyedia cloud yang menghosting akun Snowflake Anda.

      AWS

      Azure

      Google Cloud

      • Untuk GCS URI, masukkan URI Cloud Storage yang akan digunakan sebagai area staging.
  8. Di bagian Service Account, lakukan tindakan berikut:

    1. 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.
  9. Di bagian Konfigurasi Skema, lakukan hal berikut:

    1. Untuk Ingestion type, pilih Full atau Incremental. Untuk informasi selengkapnya, lihat Perilaku penyerapan data.
    2. 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.
    3. Opsional: Untuk Gunakan Output Mesin Terjemahan BigQuery, pilih kolom ini jika Anda ingin menentukan jalur output terjemahan kustom.
    4. Opsional: Untuk Translation output GCS path, tentukan jalur ke folder Cloud Storage yang berisi file pemetaan skema dari mesin terjemahan. Anda dapat membiarkannya kosong agar konektor Snowflake mendeteksi skema Anda secara otomatis.
      • Jalur harus mengikuti format translation_target_base_uri/metadata/config/db/schema/ dan harus diakhiri dengan /.
    5. Opsional: Untuk Jalur file skema kustom, tentukan jalur Cloud Storage ke file skema kustom.
    6. Opsional: Untuk Petakan NUMBER Snowflake skala nol ke INT64 BigQuery, pilih kolom ini jika Anda ingin jenis NUMBER(p, 0) Snowflake dipetakan ke INT64 BigQuery.
  10. Di bagian Network Connectivity, lakukan hal berikut:

    1. Untuk Gunakan Jaringan Pribadi, jika Anda membuat transfer data pribadi, pilih Benar.
    2. Untuk PSC Service Attachment, jika Anda membuat koneksi pribadi, masukkan URI lampiran layanan. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi transfer Snowflake pribadi.
    3. Untuk Private Network Service, jika Anda membuat transfer data pribadi, masukkan link mandiri direktori layanan. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi transfer Snowflake pribadi.
  11. 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.
  12. Jika Anda menggunakan CMEK, di bagian Advanced options, pilih Customer-managed key. Daftar CMEK yang tersedia akan muncul dan dapat Anda pilih. Untuk mengetahui informasi tentang cara kerja CMEK dengan BigQuery Data Transfer Service, lihat Menentukan kunci enkripsi dengan transfer.

  13. Klik Simpan.

  14. 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"}'.

Anda dapat mengonfigurasi parameter berikut untuk konfigurasi transfer Snowflake:

  • account_identifier: tentukan ID unik untuk akun Snowflake Anda, yang merupakan kombinasi nama organisasi dan nama akun Anda. ID adalah awalan URL akun Snowflake, bukan URL lengkap. Contoh, account_identifier.snowflakecomputing.com.
  • username: tentukan nama pengguna Snowflake yang kredensial dan otorisasinya digunakan untuk mengakses database Anda guna mentransfer tabel Snowflake.
  • auth_mechanism: menentukan metode autentikasi pengguna Snowflake. Nilai yang didukung adalah PASSWORD dan KEY_PAIR. Untuk mengetahui informasi selengkapnya, lihat Membuat pasangan kunci untuk autentikasi.
  • password: tentukan sandi pengguna Snowflake. Kolom ini wajib diisi jika Anda telah menentukan PASSWORD di kolom auth_mechanism.
  • private_key : tentukan kunci pribadi yang ditautkan dengan kunci publik yang terkait dengan pengguna Snowflake. Kolom ini wajib diisi jika Anda telah menentukan KEY_PAIR di kolom auth_mechanism.
  • is_private_key_encrypted : tentukan true jika kunci pribadi dienkripsi dengan frasa sandi.
  • private_key_passphrase : tentukan frasa sandi untuk kunci pribadi terenkripsi. Kolom ini wajib diisi jika Anda telah menentukan KEY_PAIR di kolom auth_mechanism dan menentukan true di kolom is_private_key_encrypted.
  • warehouse: tentukan gudang yang digunakan untuk eksekusi transfer data ini.
  • service_account: tentukan akun layanan yang akan digunakan dengan transfer data ini. Akun layanan harus termasuk dalam project Google Cloud yang sama dengan tempat konfigurasi transfer dan set data tujuan dibuat. Akun layanan harus memiliki izin yang diperlukan storage.objects.list dan storage.objects.get.
  • database: tentukan nama database Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
  • schema: tentukan nama skema Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
  • table_name_patterns: 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 harus mengikuti sintaksis ekspresi reguler Java. Misalnya,

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

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

  • ingestion_mode: menentukan mode penyerapan untuk transfer. Nilai yang didukung adalah FULL dan INCREMENTAL. Untuk informasi selengkapnya, lihat Perilaku penyerapan data.

  • translation_output_gcs_path: (Opsional) tentukan jalur ke folder Cloud Storage yang berisi file pemetaan skema dari mesin terjemahan. Anda dapat membiarkannya kosong agar konektor Snowflake mendeteksi skema Anda secara otomatis.

    • Jalur harus mengikuti format gs://translation_target_base_uri/metadata/config/db/schema/ dan harus diakhiri dengan /.
  • storage_integration_object_name: tentukan nama objek integrasi penyimpanan Snowflake.

  • cloud_provider: masukkan AWS atau AZURE atau GCP, bergantung pada penyedia cloud yang menghosting akun Snowflake Anda.

  • staging_s3_uri: masukkan URI bucket S3 yang akan digunakan sebagai area staging. Hanya diperlukan jika cloud_provider Anda adalah AWS.

  • aws_access_key_id: masukkan pasangan kunci akses. Hanya diperlukan jika cloud_provider Anda adalah AWS.

  • aws_secret_access_key: masukkan pasangan kunci akses. Hanya diperlukan jika cloud_provider Anda adalah AWS.

  • azure_storage_account: masukkan nama akun penyimpanan yang akan digunakan sebagai area penahapan. Hanya diperlukan jika cloud_provider Anda adalah AZURE.

  • staging_azure_container: masukkan kontainer dalam Azure Blob Storage untuk digunakan sebagai area penahapan. Hanya diperlukan jika cloud_provider Anda adalah AZURE.

  • azure_sas_token: masukkan token SAS. Hanya diperlukan jika cloud_provider Anda adalah AZURE.

  • staging_gcs_uri : masukkan URI Cloud Storage yang akan digunakan sebagai area penyiapan. Hanya diperlukan jika cloud_provider Anda adalah GCP.

  • use_private_network: jika Anda membuat transfer data pribadi, setel ke TRUE.

  • service_attachment: jika Anda membuat transfer data pribadi, tentukan URI lampiran layanan. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi transfer Snowflake pribadi.

  • private_network_service: jika Anda membuat transfer data pribadi, tentukan link mandiri layanan NLB. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi transfer Snowflake pribadi.

Misalnya, untuk akun Snowflake yang dihosting di AWS, 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",
  "auth_mechanism": "KEY_PAIR",
  "aws_access_key_id": "your_access_key_id",
  "aws_secret_access_key": "your_aws_secret_access_key",
  "cloud_provider": "AWS",
  "database": "your_sf_database",
  "ingestion_mode": "INCREMENTAL",
  "private_key": "-----BEGIN PRIVATE KEY----- privatekey\nseparatedwith\nnewlinecharacters=-----END PRIVATE KEY-----",
  "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

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

Menentukan kunci enkripsi dengan transfer

Anda dapat menentukan kunci enkripsi yang dikelola pelanggan (CMEK) guna mengenkripsi data untuk proses transfer. Anda dapat menggunakan CMEK untuk mendukung transfer dari Snowflake.

Saat Anda menentukan CMEK dengan transfer, BigQuery Data Transfer Service akan menerapkan CMEK ke cache perantara data yang diserap dalam disk, sehingga seluruh alur kerja transfer data mematuhi CMEK.

Anda tidak dapat memperbarui transfer yang sudah ada untuk menambahkan CMEK jika transfer tersebut awalnya tidak dibuat dengan CMEK. Misalnya, Anda tidak dapat mengubah tabel tujuan yang awalnya dienkripsi secara default menjadi kini dienkripsi dengan CMEK. Sebaliknya, Anda juga tidak dapat mengubah tabel tujuan yang dienkripsi CMEK agar memiliki jenis enkripsi yang berbeda.

Anda dapat memperbarui CMEK untuk transfer jika konfigurasi transfer awalnya dibuat dengan enkripsi CMEK. Saat Anda memperbarui CMEK untuk konfigurasi transfer, BigQuery Data Transfer Service akan menyebarkan CMEK ke tabel tujuan pada proses transfer berikutnya. Di sini, BigQuery Data Transfer Service akan mengganti CMEK yang sudah usang dengan CMEK baru selama proses transfer. Untuk informasi selengkapnya, lihat Memperbarui transfer.

Anda juga dapat menggunakan kunci default project. Saat Anda menentukan kunci default project dengan transfer, BigQuery Data Transfer Service akan menggunakan kunci default project sebagai kunci default untuk setiap konfigurasi transfer baru.

Kuota dan batas

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

Untuk meningkatkan waktu pemuatan tabel yang lebih besar, tentukan jenis tugas PIPELINE untuk penetapan pemesanan Anda.

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 data warehouse Snowflake dan bucket Amazon S3 berada di region yang berbeda, Snowflake akan mengenakan biaya keluar saat Anda menjalankan transfer data Snowflake. Tidak ada biaya keluar untuk transfer data Snowflake jika gudang Snowflake dan bucket Amazon S3 berada di region yang sama.
  • Saat data ditransfer dari AWS ke Google Cloud, biaya traffic keluar antar-cloud akan dikenakan.

Langkah berikutnya