Migrasi Snowflake ke BigQuery
Dokumen ini memberikan pengantar tentang cara bermigrasi dari Snowflake ke BigQuery. Bagian berikut memperkenalkan alat migrasi untuk membantu Anda melakukan migrasi BigQuery, dan menguraikan beberapa perbedaan antara Snowflake dan BigQuery untuk membantu Anda merencanakan migrasi.
Memigrasikan alur kerja dari Snowflake ke BigQuery
Saat merencanakan migrasi BigQuery, pertimbangkan berbagai alur kerja yang Anda miliki di Snowflake dan cara Anda dapat memigrasikannya satu per satu. Untuk meminimalkan dampak pada operasi yang ada, sebaiknya migrasikan kueri SQL ke BigQuery, lalu migrasikan skema dan kode Anda setelahnya.
Memigrasikan kueri SQL
Untuk memigrasikan kueri SQL, BigQuery Migration Service menawarkan berbagai fitur terjemahan SQL untuk mengotomatiskan konversi kueri SQL Snowflake ke SQL GoogleSQL, seperti penerjemah SQL batch untuk menerjemahkan kueri secara massal, penerjemah SQL interaktif untuk menerjemahkan kueri individual, dan SQL Translation API. Layanan terjemahan ini juga mencakup fungsi yang ditingkatkan Gemini untuk lebih menyederhanakan proses migrasi kueri SQL Anda.
Saat menerjemahkan kueri SQL, tinjau kueri yang diterjemahkan dengan cermat untuk memverifikasi bahwa jenis data dan struktur tabel ditangani dengan benar. Untuk melakukannya, sebaiknya buat berbagai kasus pengujian dengan skenario dan data yang berbeda. Kemudian, jalankan kasus pengujian ini di BigQuery untuk membandingkan hasilnya dengan hasil Snowflake asli. Jika ada perbedaan, analisis dan perbaiki kueri yang dikonversi.
Memigrasikan skema dan kode
Untuk memigrasikan skema dan data dari Snowflake, gunakan konektor Snowflake di BigQuery Data Transfer Service untuk menyiapkan transfer data. Saat menyiapkan transfer data, Anda dapat menentukan tabel Snowflake tertentu untuk disertakan, dan juga meminta konektor mendeteksi skema tabel dan jenis data Anda secara otomatis selama transfer.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan transfer data Snowflake, lihat Menjadwalkan transfer Snowflake.
Pentransferan inkremental
Saat melakukan transfer data Snowflake menggunakan konektor Snowflake, Anda dapat menyiapkan transfer inkremental yang hanya mentransfer data yang diubah sejak transfer data terakhir, bukan memuat seluruh set data dengan setiap transfer data. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan transfer Snowflake.
Memigrasikan fitur Snowflake lainnya
Pertimbangkan fitur Snowflake berikut saat Anda merencanakan migrasi ke BigQuery.
| Kasus penggunaan | Fitur Snowflake | Fitur BigQuery |
|---|---|---|
| Menyiapkan file data mentah untuk pemuatan dan ekspor | Data dapat diupload dan didownload ke penyiapan dengan perintah `GET` dan `PUT`. Kueri dan perintah `COPY` dapat membaca dan menulis ke penyiapan. | BigQuery mengandalkan Cloud Storage untuk menyiapkan data file dan mendukung pembacaan dari dan penulisan ke beberapa sumber dan layanan lainnya. Google Cloud Gunakan Cloud Storage untuk mengupload dan mendownload file data mentah. Lihat Pengantar pemuatan data untuk mengetahui detail selengkapnya tentang berbagai cara memuat data dari Cloud Storage dan sumber lainnya serta Pengantar ekspor data untuk mengetahui detail selengkapnya tentang cara mengekspor ke Cloud Storage dan sumber lainnya. |
| Menghitung hasil kueri umum terlebih dahulu | Tabel dinamis dapat ditentukan dengan kueri dan diperbarui sesuai jadwal. | Tabel virtual terwujud dapat dikonfigurasi untuk mempertahankan dan memperbarui komputasi kueri SQL secara otomatis. |
| Operasi DML kecil | Tabel Hybrid Snowflake memungkinkan penulisan DML kecil. | DML terperinci dapat digunakan di BigQuery untuk meningkatkan latensi dan throughput penulisan kecil. Untuk kasus penggunaan pemrosesan transaksional/analitik hybrid (HTAP) lanjutan, pertimbangkan untuk menggunakan set data eksternal Spanner. |
| Notebook dan visualisasi | Aplikasi Snowflake Streamlit dapat memvisualisasikan data dengan kode Python. | Notebook BigQuery dan library Python BigFrames dapat digunakan untuk menjelajahi dan memvisualisasikan data di Python. Untuk mengetahui informasi tentang integrasi dengan Looker dan alat analisis serta visualisasi lainnya, lihat Pengantar alat analisis dan business intelligence. |
| Tata letak data fisik | Snowflake mendukung clustering dan mikro-partisi untuk mengatur data di disk. | BigQuery mendukung partisi dan clustering eksplisit untuk memberi pengguna kontrol yang tepat atas cara data didistribusikan dan diatur, yang dapat meningkatkan performa biaya dan runtime. Layanan terjemahan SQL secara otomatis menangani terjemahan clustering tabel dan dapat dikonfigurasi untuk menyesuaikan partisi dan clustering saat memigrasikan DDL. |
| Fungsi &Prosedur Eksternal | Snowflake mendukung fungsi dan prosedur tersimpan yang diimplementasikan dalam beberapa bahasa eksternal. | BigQuery mendukung panggilan fungsi eksternal melalui fungsi Cloud Run. Anda juga dapat menggunakan [fungsi yang ditentukan pengguna](/bigquery/docs/user-defined-functions) (UDF) seperti UDF SQL, yang dijalankan di BigQuery. BigQuery mendukung SQL untuk prosedur tersimpan. Untuk bahasa lain, sebaiknya gunakan fungsi eksternal atau logika aplikasi sisi klien. |
Fitur keamanan BigQuery
Saat bermigrasi dari Snowflake ke BigQuery, pertimbangkan cara Google Cloud menangani keamanan secara berbeda dari Snowflake.
Keamanan di BigQuery secara intrinsik ditautkan ke Identity and Access Management (IAM) di Google Cloud. Hak istimewa IAM menentukan operasi yang diizinkan pada resource dan diterapkan di Google Cloud level, sehingga memberikan pendekatan terpusat dan konsisten untuk pengelolaan keamanan. Berikut adalah beberapa fitur keamanan utama dari Google Cloud:
- Keamanan Terintegrasi: BigQuery memanfaatkan Google Cloud's fitur keamanan. Hal ini mencakup IAM untuk kontrol akses terperinci untuk integrasi keamanan yang kuat dan lancar.
- Keamanan tingkat resource: IAM berfokus pada kontrol akses tingkat resource, memberikan izin kepada pengguna dan grup untuk berbagai resource dan layanan BigQuery. Pendekatan ini memungkinkan pengelolaan hak akses yang efektif sehingga pengguna hanya memiliki izin yang diperlukan untuk melakukan tugas mereka.
- Keamanan jaringan: BigQuery mendapatkan manfaat dari fitur keamanan jaringan yang kuat, seperti Virtual Private Cloud dan koneksi pribadi. Google Cloud
Saat bermigrasi dari Snowflake ke BigQuery, pertimbangkan persyaratan migrasi terkait keamanan berikut:
- Konfigurasi IAM: Anda harus mengonfigurasi peran dan izin IAM di BigQuery agar sesuai dengan kebijakan kontrol akses Snowflake yang ada. Hal ini melibatkan pemetaan peran Snowflake ke peran dan izin IAM BigQuery yang sesuai.
- Kontrol akses terperinci: Jika Anda menggunakan keamanan tingkat baris atau tingkat kolom di Snowflake, Anda harus menerapkan kontrol yang setara di BigQuery menggunakan tampilan yang diizinkan atau tag kebijakan.
- Migrasi tampilan dan UDF: Saat memigrasikan tampilan dan UDF, pastikan kontrol keamanan terkait diterjemahkan dengan benar ke tampilan yang diizinkan dan UDF yang diizinkan di BigQuery.
Enkripsi
BigQuery mengenkripsi data Anda dalam penyimpanan dan saat transit secara default. Jika memerlukan kontrol lebih besar atas kunci enkripsi, BigQuery mendukung kunci enkripsi yang dikelola pelanggan di Cloud Key Management Service. Anda juga dapat menggunakan enkripsi tingkat kolom.
Untuk mempertahankan keamanan data selama dan setelah migrasi ke BigQuery, pertimbangkan hal berikut:
- Pengelolaan Kunci: Jika Anda memerlukan kunci yang dikelola pelanggan, buat strategi pengelolaan kunci di Cloud Key Management Service dan konfigurasi BigQuery untuk menggunakan kunci tersebut.
- Penyamaran/Tokenisasi Data: Jika data sensitif terlibat, nilai apakah penyamaran atau tokenisasi data diperlukan untuk melindunginya.
- Keamanan Tingkat Baris: Terapkan keamanan tingkat baris menggunakan tampilan yang diizinkan, filter keamanan tingkat baris, atau metode lain yang sesuai.
- Pemindaian Kerentanan dan Pengujian Penetrasi: Lakukan pemindaian kerentanan dan pengujian penetrasi secara rutin untuk memeriksa postur keamanan lingkungan BigQuery Anda.
Peran
Peran adalah entity yang dapat memberikan dan mencabut hak istimewa pada objek yang dapat diamankan.
Di IAM, izin dikelompokkan ke dalam peran. IaM menyediakan tiga jenis peran:
- Peran dasar:
Peran ini mencakup peran Pemilik, Editor, dan Viewer. Anda dapat menerapkan
peran ini pada tingkat resource layanan atau project menggunakan
Google Cloud konsol, Identity and Access Management API, atau
gcloud CLI. Secara umum, untuk keamanan terkuat, sebaiknya Anda menggunakan peran yang telah ditetapkan untuk mengikuti prinsip hak istimewa terendah. - Peran yang telah ditetapkan: Peran ini memberikan akses yang lebih terperinci ke fitur dalam produk (seperti BigQuery) dan dimaksudkan untuk mendukung kasus penggunaan umum dan pola kontrol akses.
- Peran khusus: Peran ini terdiri dari izin yang ditentukan pengguna.
Kontrol akses
Snowflake memungkinkan Anda memberikan peran ke peran lain sehingga membuat hierarki peran. IaM tidak mendukung hierarki peran, tetapi menerapkan hierarki resource. Hierarki IaM mencakup level organisasi, level folder, level project, dan level resource. Anda dapat menetapkan peran IAM di level hierarki mana pun, dan resource mewarisi semua kebijakan resource induknya.
BigQuery mendukung kontrol akses tingkat tabel. Izin tingkat tabel menentukan pengguna, grup, dan akun layanan yang dapat mengakses tabel atau tampilan. Anda dapat memberi pengguna akses ke tabel atau tampilan tertentu tanpa memberi pengguna akses ke set data lengkap.
Untuk akses yang lebih terperinci, Anda juga dapat menggunakan kontrol akses tingkat kolom atau keamanan tingkat baris. Jenis kontrol ini memberikan akses yang lebih terperinci ke kolom sensitif dengan menggunakan tag kebijakan atau klasifikasi data berbasis jenis.
Anda juga dapat membuat tampilan yang diizinkan guna membatasi akses data untuk kontrol akses yang lebih terperinci sehingga pengguna yang ditentukan dapat membuat kueri tampilan tanpa perlu memiliki akses baca ke tabel pokok.
Jenis data, properti, dan format file yang didukung
Snowflake dan BigQuery mendukung sebagian besar jenis data yang sama, meskipun terkadang menggunakan nama yang berbeda. Untuk mengetahui daftar lengkap jenis data yang didukung di Snowflake dan BigQuery, lihat Jenis data. Anda juga dapat menggunakan alat terjemahan SQL, seperti penerjemah SQL interaktif, SQL Translation API, atau penerjemah SQL batch, untuk menerjemahkan berbagai dialek SQL ke GoogleSQL.
Untuk mengetahui informasi selengkapnya tentang jenis data yang didukung di BigQuery, lihat Jenis data GoogleSQL.
Snowflake dapat mengekspor data dalam format file berikut. Anda dapat langsung memuat format berikut ke BigQuery:
- Memuat data CSV dari Cloud Storage.
- Memuat data Parquet dari Cloud Storage.
- Memuat data JSON dari Cloud Storage.
- Membuat kueri data dari Apache Iceberg.
Alat migrasi
Daftar berikut menjelaskan alat yang dapat Anda gunakan untuk memigrasikan data dari Snowflake ke BigQuery. Untuk mengetahui contoh cara menggunakan alat ini bersama-sama dalam pipeline migrasi Snowflake, lihat Contoh pipeline migrasi Snowflake.
COPY INTO <location>perintah: Gunakan perintah ini di Snowflake untuk mengekstrak data dari tabel Snowflake langsung ke dalam bucket Cloud Storage yang ditentukan. Untuk contoh menyeluruh, lihat Snowflake ke BigQuery (snowflake2bq) di GitHub.- Apache Sqoop: Untuk mengekstrak data dari Snowflake ke HDFS atau Cloud Storage, kirimkan tugas Hadoop dengan driver JDBC dari Sqoop dan Snowflake. Sqoop berjalan di lingkungan Managed Service for Apache Spark.
- Snowflake JDBC: Gunakan driver ini dengan sebagian besar aplikasi atau alat klien yang mendukung JDBC.
Anda dapat menggunakan alat generik berikut untuk memigrasikan data dari Snowflake ke BigQuery:
- BigQuery Data Transfer Service untuk konektor Snowflake (Pratinjau): Lakukan transfer batch otomatis untuk data Cloud Storage ke BigQuery.
- Google Cloud CLI: Salin file Snowflake yang didownload ke Cloud Storage dengan alat command line ini.
- Alat command line bq: Berinteraksi dengan BigQuery menggunakan alat command line ini. Kasus penggunaan umum mencakup membuat skema tabel BigQuery, memuat data Cloud Storage ke dalam tabel, dan menjalankan kueri.
- Library klien Cloud Storage: Menyalin file Snowflake yang didownload ke Cloud Storage dengan alat kustom yang menggunakan library klien Cloud Storage.
- Library klien BigQuery: Berinteraksi dengan BigQuery menggunakan alat kustom yang dibuat berdasarkan library klien BigQuery.
- Penjadwal kueri BigQuery: Jadwalkan kueri SQL berulang dengan fitur BigQuery bawaan ini.
- Cloud Composer: Gunakan lingkungan apache airflow yang terkelola sepenuhnya ini untuk mengorkestrasi tugas pemuatan dan transformasi BigQuery.
Untuk informasi lebih lanjut tentang memuat data ke BigQuery, lihat Memuat data ke BigQuery.
Harga
Saat merencanakan migrasi Snowflake, pertimbangkan biaya transfer data, penyimpanan data, dan penggunaan layanan di BigQuery. Untuk mengetahui informasi selengkapnya, lihat Harga.
Mungkin ada biaya traffic keluar untuk memindahkan data dari Snowflake atau AWS. Mungkin juga ada biaya tambahan saat mentransfer data antar-region, atau mentransfer data antar-penyedia cloud yang berbeda.
Mulai
Bagian berikut merangkum proses migrasi Snowflake ke BigQuery:
Menjalankan penilaian migrasi
Dalam migrasi Snowflake ke BigQuery, kami merekomendasikan agar Anda mulai dengan menjalankan alat penilaian migrasi BigQuery untuk menilai kelayakan dan potensi manfaat memindahkan data warehouse dari Snowflake ke BigQuery. Alat ini memberikan pendekatan terstruktur untuk memahami lingkungan Snowflake Anda saat ini dan memperkirakan upaya yang diperlukan dalam migrasi yang berhasil.
Menjalankan alat penilaian migrasi BigQuery akan menghasilkan laporan penilaian yang berisi bagian berikut:
- Laporan sistem yang ada: snapshot dari sistem dan penggunaan Snowflake yang ada, termasuk jumlah database, skema, tabel, dan ukuran total dalam TB. Laporan ini juga mencantumkan skema berdasarkan ukuran dan mengarah ke potensi pemanfaatan resource yang kurang optimal, seperti tabel tanpa penulisan atau beberapa pembacaan.
- Saran transformasi status stabil BigQuery: menunjukkan tampilan sistem di BigQuery setelah migrasi. Saran ini mencakup saran untuk mengoptimalkan workload di BigQuery dan menghindari pemborosan.
- Rencana migrasi: memberikan informasi tentang upaya migrasi itu sendiri. Misalnya, beralih dari sistem yang ada ke status stabil BigQuery. Bagian ini berisi jumlah kueri yang diterjemahkan secara otomatis dan perkiraan waktu untuk memindahkan setiap tabel ke BigQuery.
Untuk mengetahui informasi selengkapnya tentang hasil penilaian migrasi, lihat Meninjau laporan Looker Studio.
Memvalidasi migrasi
Setelah memigrasikan data Snowflake ke BigQuery, jalankan Alat Validasi Data (DVT) untuk melakukan validasi data pada data BigQuery yang baru dimigrasikan. DVT memvalidasi berbagai fungsi, dari tingkat tabel hingga tingkat baris, untuk memverifikasi bahwa data yang dimigrasikan berfungsi sebagaimana mestinya.