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 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 satu per satu, dan SQL Translation API. Layanan terjemahan ini juga menyertakan fungsi yang ditingkatkan dengan Gemini untuk lebih menyederhanakan proses migrasi kueri SQL Anda.
Saat menerjemahkan kueri SQL, tinjau dengan cermat kueri yang diterjemahkan untuk memverifikasi bahwa jenis data dan struktur tabel ditangani dengan benar. Untuk melakukannya, sebaiknya buat berbagai kasus pengujian dengan berbagai skenario dan data. 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 yang akan disertakan, dan juga membuat konektor otomatis mendeteksi skema tabel dan jenis data selama transfer.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan transfer data Snowflake, lihat Menjadwalkan transfer Snowflake.
Fitur keamanan BigQuery
Saat Anda bermigrasi dari Snowflake ke BigQuery, pertimbangkan cara Google Cloud menangani keamanan secara berbeda dari Snowflake.
Keamanan di BigQuery terkait erat dengan Identity and Access Management (IAM) di Google Cloud. Hak istimewa IAM menentukan operasi yang diizinkan pada resource dan diterapkan di tingkat Google Cloud , sehingga memberikan pendekatan yang terpusat dan konsisten untuk pengelolaan keamanan. Berikut beberapa fitur keamanan utama Google Cloud:
- Keamanan Terintegrasi: BigQuery memanfaatkan fitur keamanan Google Cloud's. Hal ini mencakup IAM untuk kontrol akses terperinci guna integrasi keamanan yang tangguh 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 menjalankan tugas mereka.
- Keamanan jaringan: BigQuery memanfaatkan fitur keamanan jaringan yang tangguh dari Google Cloud, seperti Virtual Private Cloud dan koneksi pribadi.
Saat Anda 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 diberi otorisasi atau tag kebijakan.
- Migrasi tampilan dan UDF: Saat memigrasikan tampilan dan UDF, pastikan kontrol keamanan terkait diterjemahkan dengan benar ke tampilan yang diberi otorisasi dan UDF yang diberi otorisasi di BigQuery.
Enkripsi
BigQuery mengenkripsi data Anda dalam penyimpanan dan saat transit secara default. Jika Anda 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 menjaga 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 sah, 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 konsolGoogle Cloud , Identity and Access Management API, atau
gcloud CLI. Secara umum, untuk keamanan terkuat, sebaiknya Anda menggunakan peran yang telah ditentukan sebelumnya 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.
Memigrasikan fitur Snowflake lainnya
Pertimbangkan fitur Snowflake berikut saat Anda merencanakan migrasi ke BigQuery. Dalam beberapa kasus, Anda dapat menggunakan layanan lain di Google Cloud untuk menyelesaikan migrasi.
Perjalanan waktu: Di BigQuery, Anda dapat menggunakan perjalanan waktu untuk mengakses data dari titik mana pun dalam tujuh hari terakhir. Jika Anda perlu mengakses data lebih dari tujuh hari, pertimbangkan untuk mengekspor snapshot yang dijadwalkan secara rutin.
aliran: BigQuery mendukung pengambilan data perubahan (CDC) dengan Datastream. Anda juga dapat menggunakan software CDC, seperti Debezium, untuk menulis data ke BigQuery dengan Dataflow. Untuk informasi lebih lanjut tentang mendesain pipeline CDC secara manual dengan BigQuery, lihat Memigrasikan data warehouse ke BigQuery: Mengubah pengambilan data (CDC).
Tasks: BigQuery memungkinkan Anda menjadwalkan kueri dan aliran data atau integrasi streaming ke dalam kueri dengan Datastream.
Fungsi eksternal: BigQuery mendukung panggilan fungsi eksternal melalui fungsi Cloud Run. Anda juga dapat menggunakan fungsi yang ditentukan pengguna (UDF) seperti UDF SQL, meskipun fungsi ini dijalankan di dalam BigQuery.
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 dalam 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.
- Buat kueri data dari Apache Iceberg.
Alat migrasi
Daftar berikut menjelaskan alat yang dapat Anda gunakan untuk memigrasikan data dari Snowflake ke BigQuery. Untuk contoh cara penggunaan alat ini bersama-sama dalam pipeline migrasi Snowflake, lihat Contoh pipeline migrasi Snowflake.
- Perintah
COPY INTO <location>: 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 Dataproc.
- 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:
- Konektor BigQuery Data Transfer Service untuk 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 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, sebaiknya Anda memulai 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 saat ini dan memperkirakan upaya yang diperlukan untuk migrasi yang berhasil.
Menjalankan alat penilaian migrasi BigQuery akan menghasilkan laporan penilaian yang berisi bagian berikut:
- Laporan sistem yang ada: snapshot sistem dan penggunaan Snowflake yang ada, termasuk jumlah database, skema, tabel, dan ukuran total dalam TB. Bagian 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. Bagian 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 Anda
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.