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.
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
menjadiTIMESTAMP
saat Anda membuat metadata dan menjalankan mesin terjemahan.YAML konfigurasi mungkin terlihat mirip dengan contoh berikut:
type: experimental_object_rewriter global: typeConvert: datetime: TIMESTAMP
- Jenis data Parquet berikut tidak didukung:
Sebelum memulai
Sebelum menyiapkan transfer Snowflake, Anda harus melakukan semua langkah yang tercantum di bagian ini. Berikut adalah daftar semua langkah yang diperlukan.
- Menyiapkan Google Cloud project
- Peran BigQuery yang diperlukan
- Menyiapkan bucket Amazon S3
- Membuat pengguna Snowflake dengan izin yang diperlukan
- Menambahkan kebijakan jaringan
- Membuat metadata dan menjalankan mesin terjemahan
- Menilai Snowflake Anda untuk mengetahui jenis data yang tidak didukung
- Mengumpulkan informasi transfer
Menyiapkan project Google Cloud
Buat dan konfigurasikan project Google Cloud untuk transfer Snowflake dengan langkah-langkah berikut:
Buat Google Cloud project atau pilih project yang ada.
Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
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.
Buat bucket Amazon S3. Bucket Amazon S3 digunakan untuk melakukan staging data sebelum dimuat ke BigQuery.
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:
Buat pengguna Amazon IAM khusus dan berikan kebijakan AmazonS3ReadOnlyAccess kepadanya.
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 buatWAREHOUSE_NAME
: nama data warehouse AndaDATABASE_NAME
: nama database Snowflake AndaSCHEMA_NAME
: nama skema Snowflake AndaTABLE_NAME
: nama Snowflake yang disertakan dalam transfer data iniSTORAGE_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:
- Buat aturan jaringan
dengan
type
=IPV4
. BigQuery Data Transfer Service menggunakan koneksi JDBC untuk terhubung ke akun Snowflake. - 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:
- Jalankan
dwh-migration-tool
untuk Snowflake. Untuk informasi selengkapnya, lihat Membuat metadata untuk terjemahan dan penilaian. - Upload file
metadata.zip
yang dihasilkan ke bucket Cloud Storage. Filemetadata.zip
digunakan sebagai input untuk mesin terjemahan. - Jalankan layanan terjemahan batch, dengan menentukan kolom
target_types
sebagaidts-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/
.
- Berikut adalah contoh perintah untuk menjalankan terjemahan batch untuk Snowflake:
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:
- ID akun Snowflake Anda, yang merupakan awalan di URL akun Snowflake Anda. Misalnya,
ACCOUNT_IDENTIFIER.snowflakecomputing.com
. - Nama pengguna dan sandi pengguna dengan izin yang sesuai ke database Snowflake Anda. Fungsi ini hanya dapat memiliki izin yang diperlukan untuk menjalankan transfer data.
- URI bucket Amazon S3 yang ingin Anda gunakan untuk transfer, dan pasangan kunci akses pengguna AWS. Sebaiknya siapkan kebijakan siklus proses untuk bucket ini guna menghindari biaya yang tidak perlu.
- URI bucket Cloud Storage tempat Anda menyimpan file pemetaan skema yang diperoleh dari mesin terjemahan.
Menyiapkan transfer Snowflake
Pilih salah satu opsi berikut:
Konsol
Buka halaman Transfer data di Google Cloud konsol.
Klik
Create transfer.Di bagian Jenis sumber, pilih Snowflake Migration dari daftar Sumber.
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.Di bagian Setelan tujuan, pilih set data yang Anda buat dari daftar Set data.
Di bagian Detail sumber data, lakukan hal berikut:
- 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
. - 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.
- Untuk Sandi, masukkan sandi pengguna Snowflake.
- Untuk Warehouse, masukkan warehouse yang digunakan untuk menjalankan transfer data ini.
- 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
danstorage.objects.get
. - Untuk Database, masukkan nama database Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
- Untuk Skema, masukkan nama skema Snowflake yang berisi tabel yang disertakan dalam transfer data ini.
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 bernamalineitem
danordertb
..*
cocok dengan semua tabel.
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/
.
- Jalur harus mengikuti format
Untuk Storage integration object name, masukkan nama objek integrasi penyimpanan Snowflake. Dalam hal ini,
S3
.Untuk Penyedia cloud, pilih
AWS
.Untuk URI GCS, nama akun penyimpanan Azure, nama penampung Azure, Azure SAS, biarkan kolom ini kosong.
Untuk Amazon S3 URI, masukkan URI bucket S3 yang akan digunakan sebagai area staging.
Untuk Access key ID dan Secret access key, masukkan pasangan kunci akses.
- 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,
Opsional: Di bagian Opsi notifikasi, lakukan hal berikut:
- Klik tombol untuk mengaktifkan notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
- Untuk Select a Pub/Sub topic, pilih nama topik atau klik Create a topic. Opsi ini mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda.
Klik Simpan.
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 diperlukanstorage.objects.list
danstorage.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, misalnyatable1_regex;table2_regex
. Pola ini harus mengikuti sintaksis ekspresi reguler Java. Misalnya,lineitem;ordertb
cocok dengan tabel yang bernamalineitem
danordertb
..*
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/
.
- Jalur harus mengikuti format
storage_integration_object_name
: masukkan nama objek integrasi penyimpanan Snowflake. Dalam hal ini,S3
.cloud_provider
: masukkanAWS
.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
- Pelajari BigQuery Data Transfer Service lebih lanjut.
- Migrasikan kode SQL dengan terjemahan Batch SQL.