Merencanakan migrasi dengan asal usul migrasi
Anda dapat menggunakan layanan silsilah migrasi untuk memvisualisasikan alur dan koneksi data di database sumber saat merencanakan migrasi data warehouse BigQuery.
Saat Anda membuat silsilah migrasi, layanan silsilah akan menyediakan grafik yang memvisualisasikan cara data berpindah melalui sistem sumber Anda, dan cara setiap tabel atau tampilan di sistem sumber Anda terhubung, seperti yang ditunjukkan dalam diagram berikut:
Layanan silsilah migrasi mendukung dialek SQL berikut:
- Amazon Redshift SQL
- Snowflake SQL
- SQL Teradata
- GoogleSQL (BigQuery)
Batasan
Layanan silsilah memproses 5 GB pertama log terlama dari database sumber Anda.
Lokasi yang didukung
Layanan silsilah migrasi tersedia di lokasi tertentu. Untuk mengetahui informasi selengkapnya, lihat Lokasi layanan silsilah dan penerjemah SQL BigQuery.
Izin yang diperlukan
Untuk mendapatkan izin yang
diperlukan guna menggunakan layanan silsilah migrasi,
minta administrator Anda untuk memberi Anda
peran IAM MigrationWorkflow Editor (roles/bigquerymigration.editor) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menggunakan layanan silsilah migrasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menggunakan layanan silsilah migrasi:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.lineageDbs.query
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin IAM BigQuery.
Membuat silsilah migrasi
Untuk membuat silsilah migrasi, Anda harus menjalankan alat dwh-migration-dumper terlebih dahulu untuk
membuat file log SQL input sumber yang Anda upload ke Cloud Storage.
Setelah mengupload file input ke Cloud Storage, Anda dapat membuat silsilah migrasi dengan konsol Google Cloud atau BigQuery Migration API.
Menjalankan alat dwh-migration-dumper
Pilih salah satu opsi berikut:
Amazon Redshift
Untuk membuat dan melihat silsilah migrasi di database Amazon Redshift, lakukan hal berikut:
- Jalankan alat
dwh-migration-dumperuntuk membuat dump file sistem sumber Anda. - Upload log kueri ke Cloud Storage.
Snowflake
Untuk membuat dan melihat asal migrasi di database Snowflake, lakukan hal berikut:
- Jalankan alat
dwh-migration-dumperuntuk membuat dump file sistem sumber Anda. - Upload log kueri ke Cloud Storage.
Teradata
Untuk membuat dan melihat silsilah migrasi di database Teradata, lakukan langkah-langkah berikut:
- Jalankan alat
dwh-migration-dumperuntuk membuat dump file sistem sumber Anda. - Upload log kueri ke Cloud Storage.
BigQuery
Untuk membuat dan melihat silsilah migrasi di database BigQuery, lakukan hal berikut:
- Berikan peran berikut ke akun atau akun layanan:
- BigQuery Metadata Viewer (
roles/bigquery.metadataViewer) - Data Catalog Viewer (
roles/datacatalog.viewer)
- BigQuery Metadata Viewer (
- Instal alat
dwh-migration-dumper. Untuk membuat metadata dan log kueri, jalankan alat
dwh-migration-dumper. Log kueri dan metadata ini terdapat dalam satu atau beberapa file ZIP.dwh-migration-dumper --connector bigquery dwh-migration-dumper --connector bigquery-logs
Upload file ZIP ke bucket Cloud Storage. Untuk mengetahui informasi selengkapnya tentang cara membuat bucket dan mengupload file ke Cloud Storage, lihat Membuat bucket dan Mengupload objek dari sistem file.
Membuat silsilah migrasi
Setelah mengupload file ZIP yang berisi metadata dan log kueri ke Cloud Storage, Anda dapat membuat silsilah migrasi. Pilih salah satu opsi berikut:
Konsol
Buka halaman Layanan migrasi Anda.
Di bagian Translate SQL, klik Translate > Batch translation.
Di bagian Konfigurasi terjemahan, masukkan yang berikut:
- Untuk Nama tampilan, tentukan nama untuk tugas silsilah. Nama tersebut dapat berisi huruf, angka, atau garis bawah.
- Untuk Processing Location, pilih lokasi tempat Anda ingin menjalankan tugas silsilah.
- Untuk Source dialect, pilih dialek SQL sumber Anda.
- Untuk Target dialect, pilih GoogleSQL.
Klik Berikutnya.
Di bagian Detail lokasi file, lakukan hal berikut:
- Untuk Output directory location, tentukan jalur ke bucket Cloud Storage untuk menyimpan file output terjemahan Anda. Anda dapat mengetik
jalur dalam format
bucket_name/folder_name/atau mengklik Jelajahi. - Untuk Input directory location, tentukan jalur ke folder Cloud Storage yang berisi file ZIP log yang Anda upload sebelumnya. Anda dapat mengetik
jalur dalam format
bucket_name/folder_name/atau mengklik Jelajahi. Anda juga dapat memberi nama subdirektori file output di kolom Nama subdirektori output. - Anda dapat menambahkan file input tambahan dengan mengklik Tambahkan lokasi direktori input.
- Untuk Output directory location, tentukan jalur ke bucket Cloud Storage untuk menyimpan file output terjemahan Anda. Anda dapat mengetik
jalur dalam format
Klik Berikutnya.
Centang kotak Lineage dari log kueri.
Klik Create.
Tugas silsilah kini berjalan. Tugas ini dapat memerlukan waktu beberapa jam untuk diselesaikan, bergantung pada ukuran input Anda. Setelah tugas selesai, alat ini akan menyediakan link ke silsilah migrasi yang dihasilkan.
API
Untuk membuat tugas silsilah, jalankan perintah curl berikut:
curl -d "{ \"tasks\": { \"TASK_NAME\": { \"type\": \"Experimental_Lineage\", \"translation_details\": { \"target_base_uri\": \"BUCKET_PATH\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"BUCKET_PATH\" } }, \"target_types\": \"LINEAGE\" } } } } " \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows
Ganti kode berikut:
TASK_NAME: nama untuk mengidentifikasi tugas silsilah ini.BUCKET_PATH: jalur ke bucket Cloud Storage yang berisi file ZIP input Anda.PROJECT_ID: project ID ke Google Cloud project Anda.LOCATION: lokasi pemrosesan. Nilai ini harus berupaeuatauus.
Panggilan ini menampilkan pesan yang mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID", "tasks": { "task_name": { /*...*/ } }, "state": "RUNNING" }
Tugas silsilah kini berjalan. Tugas ini dapat memerlukan waktu beberapa jam untuk diselesaikan, bergantung pada ukuran input Anda. Untuk memeriksa status tugas silsilah,
jalankan perintah curl berikut dengan ID alur kerja:
curl \ -H "Content-Type:application/json" \ -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
Setelah tugas selesai, alat ini akan memberikan link ke tampilan silsilah yang dihasilkan.
Membuka silsilah migrasi
Setelah membuat silsilah migrasi, Anda dapat membuka silsilah migrasi dengan menggunakan salah satu opsi berikut:
Konsol
Buka halaman Layanan migrasi Anda.
Di bagian Terjemahkan SQL, klik Lihat terbaru.
Di halaman SQL translations, klik nama tugas untuk memilih tugas silsilah lengkap. Tugas silsilah memiliki nilai output
Lineage.Di halaman Detail terjemahan, klik Silsilah data.
API
Untuk membuka silsilah migrasi yang telah selesai, jalankan perintah curl berikut dengan BigQuery Migration API:
curl \ -H "Content-Type:application/json" \ -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
Ganti kode berikut:
PROJECT_ID: project ID ke Google Cloud project Anda.LOCATION: lokasi pemrosesan. Nilai ini harus berupaeuatauus.WORKFLOW_ID: ID alur kerja dari silsilah yang dihasilkan.
Buka link yang disertakan dalam kolom
taskResult.translationTaskResult.consoleUri dari pesan output.
Bekerja dengan asal usul migrasi
Bagian berikut menjelaskan cara menggunakan silsilah migrasi untuk menggunakan data dan database sumber Anda.
Memahami istilah silsilah migrasi
Istilah berikut digunakan dalam silsilah migrasi:
| Persyaratan | Deskripsi |
|---|---|
| Skrip | Skrip SQL dan program lain yang terlihat di log database yang diproses selama pembuatan silsilah. Skrip terdiri dari pernyataan, yang paling umum adalah pernyataan SQL tunggal. |
| Node | Verteks grafik silsilah. Objek ini terdiri dari tabel dan kolom. |
| Tabel | Juga disebut sebagai relasi, termasuk tabel biasa, tampilan, file terstruktur, dan resource seperti tabel lainnya. |
| Kolom | Juga disebut sebagai atribut, termasuk kolom tabel, proyeksi tampilan, pseudokolom, kolom seperti kolom dalam file dan resource lainnya, serta sub-kolom seperti kolom struct. |
| Tepi | Koneksi antar-node silsilah yang menunjukkan interaksi karena pipeline menjalankan skrip yang membaca atau menulis node tersebut. Edge diberi anotasi dengan stempel waktu, predikat, dan metadata lainnya dari saat edge berasal. Node yang berdekatan dengan node lain dengan tepi disebut koneksi langsung; jalur tepi antara dua node disebut koneksi tidak langsung. |
| Tepi silsilah | Edge terarah yang menunjukkan bahwa node
sumber disertakan dalam klausa seperti klausa FROM,
WHERE, atau GROUP BY yang memengaruhi
data node target. |
| Pengguna dan pipeline | Label metadata yang disediakan oleh database sumber tentang siapa dan apa yang menjalankan skrip. Tidak memiliki makna inheren untuk mesin silsilah, tetapi digunakan untuk mengelompokkan skrip berdasarkan asal. |
Bagian berikut menjelaskan berbagai halaman dalam silsilah migrasi.
Meninjau halaman landing
Halaman landing silsilah migrasi menampilkan ID tugas silsilah, kolom penelusuran untuk menemukan objek silsilah menurut nama, dan daftar saran yang menandai beberapa objek silsilah yang mungkin menarik. Halaman ini juga mencakup jumlah total tabel, pipeline, dan pengguna di seluruh silsilah migrasi.
Untuk membuka tabel, tampilan, atau kolom tertentu, telusuri objek di kolom penelusuran, atau klik salah satu objek yang disarankan di halaman landing.
Meninjau halaman node
Untuk meninjau node dalam silsilah migrasi Anda, klik salah satu tab berikut.
Tab Aliran Data
Tab Alur Data menampilkan representasi visual dari sebagian grafik silsilah. Halaman ini adalah halaman default saat Anda melihat tabel atau kolom untuk pertama kalinya di layanan silsilah. Grafik memvisualisasikan cara data berpindah melalui sistem sumber. Node dalam grafik ini merepresentasikan tabel atau tampilan, sedangkan tepi di antara node merepresentasikan data yang mengalir dari node di sebelah kiri, menuju node di sebelah kanan.
Setiap tabel dalam grafik Alur Data menampilkan nama yang tidak memenuhi syarat. Untuk melihat nama tabel yang sepenuhnya memenuhi syarat dengan awalan database dan skema, tahan kursor di atas node untuk menampilkan tooltip-nya. Setiap tabel menunjukkan skemanya seperti yang ditunjukkan oleh batang vertikal pada node. Semua skema dalam silsilah diurutkan berdasarkan abjad dan diberi warna, sehingga tabel dalam skema yang sama memiliki batang berwarna yang sama, dan tabel dalam skema dengan nama yang mirip memiliki batang berwarna yang mirip.
Setiap node menampilkan ikon, yang menunjukkan properti node:
- monitor: tampilan, bukan tabel.
- cached: tabel yang selalu dimuat ulang sepenuhnya (dipangkas, lalu ditulis ulang). Klik ikon untuk melihat skrip yang berdekatan dengan tabel ini.
- cached: tabel yang tidak selalu di-refresh sepenuhnya (dipangkas, lalu ditulis ulang). Klik ikon untuk melihat skrip yang berdekatan dengan tabel ini.
- timer: tabel yang berumur pendek. Arahkan kursor ke ikon untuk melihat durasi keberadaan tabel.
- snowflake: tabel yang terakhir ditulis lebih dari tujuh hari yang lalu, yang menunjukkan tabel dengan data statis atau yang jarang ditulis.
Untuk meninjau objek dalam grafik Alur Data, lakukan hal berikut:
- Untuk melihat daftar kolom tabel, klik tabel. Tampilan ini mencakup nama setiap kolom serta jenis datanya, sebagaimana ditentukan dari dump metadata yang diberikan atau disimpulkan dari SQL yang terlihat di log kueri.
- Untuk melihat grafik silsilah tingkat kolom, klik kolom. Dalam grafik silsilah tingkat kolom, tepi mewakili alur data yang memengaruhi kolom target.
Untuk melihat detail tentang tepi, klik tepi dalam grafik. Tampilan ini mencakup link ke skrip SQL yang menyebabkan terjadinya kasus ekstrem.
Edge dibuat dari node sumber ke node target saat pernyataan SQL mereferensikan node sumber saat pernyataan tersebut menghitung data yang dimasukkan ke dalam node target. Biasanya, hal ini melibatkan transfer data dari sumber ke target, tetapi tab Alur Data juga menampilkan tepi saat node sumber digunakan dalam klausa
WHEREatauGROUP BYyang memengaruhi target. Untuk memfilter hanya transfer data, alihkan tombol Tampilkan tepi non-data di toolbar.
Tab Koneksi
Tab Koneksi dari node silsilah menampilkan daftar node terdekat dalam grafik silsilah. Secara default, node yang terhubung diurutkan berdasarkan jarak jalur terpendek dari node saat ini—node yang memerlukan lebih sedikit tepi untuk dijangkau dari node saat ini dicantumkan terlebih dahulu. Anda dapat mengubah pengurutan dengan opsi Urutkan.
Daftar koneksi mencakup node upstream (produsen) dan downstream (konsumen) dari node saat ini secara default. Anda dapat mengubah filter ini dengan kontrol Jenis. Di kolom Jarak, node yang berada di hulu node saat ini ditampilkan dengan panah yang mengarah ke atas dengan jarak jalur terpendek ke belakang ke node tersebut dari node saat ini; demikian pula, node yang berada di hilir node saat ini ditampilkan dengan panah yang mengarah ke bawah dengan jarak jalur terpendek ke depan ke node tersebut dari node saat ini. Node dapat berada di hulu dan hilir node saat ini jika merupakan bagian dari siklus.
Untuk mendownload file yang berisi semua node yang ditampilkan, klik download CSV
Tab Pengguna
Tab Pengguna pada node menampilkan pengguna yang menjalankan skrip yang membaca atau menulis node atau node yang berada di hulu atau hilir node tersebut. Secara default, pengguna yang melakukan tindakan terpisah paling banyak akan dicantumkan terlebih dahulu. Anda dapat mengubah pengurutan dengan opsi Urutkan.
Untuk mendownload file yang berisi semua pengguna yang ditampilkan, klik download CSV.
Tab Pipeline
Tab Pipelines dari sebuah node menampilkan pipeline yang menjalankan skrip yang membaca atau menulis node atau node yang berada di hulu atau hilir node tersebut. Secara default, pipeline yang melakukan tindakan terpisah paling banyak akan dicantumkan terlebih dahulu. Anda dapat mengubah pengurutan dengan opsi Urutkan.
Untuk mendownload file yang berisi semua pipeline yang ditampilkan, klik download CSV.
Tab Kode
Tab Kode untuk sebuah node menampilkan semua skrip SQL yang terlihat di file input yang membaca data dari atau menulis data ke node tersebut. Penyebutan node ditandai dalam teks SQL. Klik skrip untuk meluaskan teks lengkap. Anda dapat mengubah setelan filter untuk memfilter daftar skrip yang ditampilkan.
Untuk mendownload file yang berisi semua skrip yang ditampilkan, klik download CSV.
Meninjau halaman tepi
Untuk meninjau tepi node dalam grafik silsilah, klik salah satu tab berikut.
Tab Detail
Tab Detail untuk tepi menampilkan predikat dan kategori, yang menjelaskan operasi yang dilakukan oleh skrip yang memicu tepi.
Predikat dinotasikan sebagai kode tiga bagian yang dipisahkan dengan tanda hubung. Bagian pertama
adalah r, yang menunjukkan bahwa sumber edge adalah relasi, atau a,
yang menunjukkan bahwa sumber edge adalah atribut. Bagian kedua adalah salah satu singkatan berikut yang menunjukkan cara node sumber memengaruhi
data di node target:
has: relasi sumber berisi atribut target.dat: sumber menyalin atau mentransfer data ke target.res: sumber memfilter atau membatasi kardinalitas target dalam klausa sepertiWHERE,HAVING, atauJOIN ON.grp: sumber digunakan dalam klausaGROUP BYyang memengaruhi target.
Bagian ketiga juga berupa r atau a, yang menunjukkan apakah target
edge adalah relasi atau atribut.
Kategori tepi dapat mencakup hal berikut:
datpredikat:AGGREGATE: sumber digunakan dalam komputasi gabungan yang menulis target.EXACT_COPY: data dari sumber disalin sepenuhnya ke target.FUNCTION: sumber digunakan untuk menghitung target.IDENTITY_COPY: target tidak dihitung. Target adalah salinan literal sumber tanpa transmisi atau konversi.PARTITION_PROMOTION: target berisi data dari sumber sebagai hasil dari mempromosikan partisi sumber ke target.WEAK_COPY: data dari sumber disalin setidaknya sebagian ke target.
respredikat:FILTER: sumber digunakan dalam perbandingan yang menulis target.KEY: data dari sumber digunakan sebagai kunci dalam perbandingan gabungan yang menulis target.
grppredikat:GROUP: data dari sumber digunakan sebagai kunci dalam klausaGROUP BYyang memengaruhi target.
Tab Kode
Tab Kode untuk tepi menampilkan skrip SQL yang menyebabkan tepi tersebut. Node sumber dan target tepi ditandai saat disebutkan dalam teks SQL.
Langkah berikutnya
- Jalankan penilaian migrasi untuk menilai kelayakan dan potensi manfaat memigrasikan data warehouse Anda ke BigQuery.
- Gunakan layanan terjemahan SQL, seperti penerjemah SQL interaktif, Translation API, dan penerjemah SQL batch untuk mengotomatiskan konversi kueri SQL Anda ke GoogleSQL, termasuk penyesuaian SQL yang ditingkatkan Gemini.