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:

Silsilah migrasi yang menampilkan grafik alur data.

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:

  1. Jalankan alat dwh-migration-dumper untuk membuat dump file sistem sumber Anda.
  2. Upload log kueri ke Cloud Storage.

Snowflake

Untuk membuat dan melihat asal migrasi di database Snowflake, lakukan hal berikut:

  1. Jalankan alat dwh-migration-dumper untuk membuat dump file sistem sumber Anda.
  2. Upload log kueri ke Cloud Storage.

Teradata

Untuk membuat dan melihat silsilah migrasi di database Teradata, lakukan langkah-langkah berikut:

  1. Jalankan alat dwh-migration-dumper untuk membuat dump file sistem sumber Anda.
  2. Upload log kueri ke Cloud Storage.

BigQuery

Untuk membuat dan melihat silsilah migrasi di database BigQuery, lakukan hal berikut:

  1. Berikan peran berikut ke akun atau akun layanan:
  2. Instal alat dwh-migration-dumper.
  3. 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
  4. 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

  1. Buka halaman Layanan migrasi Anda.

    Buka Layanan migrasi Anda

  2. Di bagian Translate SQL, klik Translate > Batch translation.

  3. Di bagian Konfigurasi terjemahan, masukkan yang berikut:

    1. Untuk Nama tampilan, tentukan nama untuk tugas silsilah. Nama tersebut dapat berisi huruf, angka, atau garis bawah.
    2. Untuk Processing Location, pilih lokasi tempat Anda ingin menjalankan tugas silsilah.
    3. Untuk Source dialect, pilih dialek SQL sumber Anda.
    4. Untuk Target dialect, pilih GoogleSQL.
  4. Klik Berikutnya.

  5. Di bagian Detail lokasi file, lakukan hal berikut:

    1. 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.
    2. 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.
    3. Anda dapat menambahkan file input tambahan dengan mengklik Tambahkan lokasi direktori input.
  6. Klik Berikutnya.

  7. Centang kotak Lineage dari log kueri.

  8. 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 berupa eu atau us.

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

  1. Buka halaman Layanan migrasi Anda.

    Buka Layanan migrasi Anda

  2. Di bagian Terjemahkan SQL, klik Lihat terbaru.

  3. Di halaman SQL translations, klik nama tugas untuk memilih tugas silsilah lengkap. Tugas silsilah memiliki nilai output Lineage.

  4. 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 berupa eu atau us.
  • 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 WHERE atau GROUP BY yang 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 seperti WHERE, HAVING, atau JOIN ON.
  • grp: sumber digunakan dalam klausa GROUP BY yang memengaruhi target.

Bagian ketiga juga berupa r atau a, yang menunjukkan apakah target edge adalah relasi atau atribut.

Kategori tepi dapat mencakup hal berikut:

  • dat predikat:
    • 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.
  • res predikat:
    • FILTER: sumber digunakan dalam perbandingan yang menulis target.
    • KEY: data dari sumber digunakan sebagai kunci dalam perbandingan gabungan yang menulis target.
  • grp predikat:
    • GROUP: data dari sumber digunakan sebagai kunci dalam klausa GROUP BY yang 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