Memigrasikan kode dengan penerjemah SQL batch
Dokumen ini menjelaskan cara menggunakan penerjemah SQL batch di BigQuery untuk menerjemahkan skrip yang ditulis dalam dialek SQL lainnya ke dalam kueri GoogleSQL. Dokumen ini ditujukan bagi pengguna yang sudah memahami Konsol Google Cloud.
Penerjemah SQL batch adalah bagian dari BigQuery Migration Service. Penerjemah SQL batch dapat menerjemahkan dialek SQL berikut ke dalam GoogleSQL:
- Amazon Redshift SQL
- Apache HiveQL dan Beeline CLI
- IBM Netezza SQL dan NZPLSQL
- Teradata dan Teradata Vantage
- SQL
- Basic Teradata Query (BTEQ)
- Teradata Parallel Transport (TPT)
Selain itu, terjemahan dialek SQL berikut didukung di pratinjau:
- Apache Spark SQL
- Azure Synapse T-SQL
- MySQL SQL
- Oracle SQL, PL/SQL, Exadata
- PostgreSQL SQL
- Trino atau PrestoSQL
- Snowflake SQL
- SQL Server T-SQL
- SQLite
- Vertica SQL
Izin yang diperlukan
Anda harus memiliki izin berikut pada project untuk mengaktifkan BigQuery Migration Service:
resourcemanager.projects.get
serviceusage.services.enable
serviceusage.services.get
Anda memerlukan izin berikut pada project untuk mengakses dan menggunakan BigQuery Migration Service:
bigquerymigration.workflows.create
bigquerymigration.workflows.get
bigquerymigration.workflows.list
bigquerymigration.workflows.delete
bigquerymigration.subtasks.get
bigquerymigration.subtasks.list
Atau, Anda dapat menggunakan peran berikut untuk mendapatkan izin yang sama:
bigquerymigration.viewer
- Akses hanya baca.bigquerymigration.editor
- Akses baca/tulis.
Guna mengakses bucket Cloud Storage untuk file input dan output:
storage.objects.get
di bucket Cloud Storage sumber.storage.objects.list
di bucket Cloud Storage sumber.storage.objects.create
di bucket Cloud Storage tujuan.
Anda dapat memiliki semua izin Cloud Storage yang diperlukan di atas dari peran berikut:
roles/storage.objectAdmin
roles/storage.admin
Lokasi
Penerjemah SQL batch tersedia di lokasi pemrosesan berikut:
us
(multi-region AS)eu
(multi-region Uni Eropa)southamerica-east1
(São Paulo)us-central1
(Iowa)asia-northeast1
(Tokyo)asia-south1
(Mumbai)asia-southeast1
(Singapura)australia-southeast1
(Sydney)europe-central2
(Warsawa)europe-north1
(Finlandia)europe-west1
(Belgia)europe-west2
(London)europe-west3
(Frankfurt)
Sebelum memulai
Sebelum Anda mengirimkan tugas terjemahan, selesaikan langkah-langkah berikut:
- Mengaktifkan BigQuery Migration API.
- Mengumpulkan file sumber yang berisi skrip dan kueri SQL yang akan diterjemahkan.
- Opsional. Membuat file metadata untuk meningkatkan akurasi terjemahan.
- Opsional. Menentukan apakah Anda perlu memetakan nama objek SQL dalam file sumber ke nama baru di BigQuery. Menentukan aturan pemetaan nama yang akan digunakan jika diperlukan.
- Menentukan metode yang akan digunakan untuk mengirimkan tugas terjemahan.
- Mengupload file sumber ke Cloud Storage.
Mengaktifkan BigQuery Migration API
Jika project Google Cloud CLI Anda dibuat sebelum 15 Februari 2022, aktifkan BigQuery Migration API sebagai berikut:
Di konsol Google Cloud, buka halaman BigQuery Migration API.
Klik Enable.
Mengumpulkan file sumber
File sumber harus berupa file teks yang berisi SQL yang valid untuk dialek sumber. File sumber juga dapat menyertakan komentar. Lakukan yang terbaik untuk memastikan bahwa SQL valid, menggunakan metode apa pun yang tersedia.
Membuat file metadata
Untuk membantu layanan memberikan hasil terjemahan yang lebih akurat, sebaiknya Anda menyediakan file metadata. Namun, hal ini tidak wajib.
Anda dapat menggunakan alat ekstraksi command line dwh-migration-dumper
untuk menghasilkan informasi metadata, atau menyediakan file metadata Anda sendiri. Setelah file metadata siap, Anda dapat menyertakannya bersama dengan file sumber dalam folder sumber terjemahan. Penerjemah otomatis mendeteksinya dan memanfaatkannya untuk menerjemahkan file sumber. Anda tidak perlu mengonfigurasi setelan tambahan untuk mengaktifkannya.
Untuk menghasilkan informasi metadata menggunakan alat dwh-migration-dumper
, lihat Membuat metadata untuk terjemahan.
Untuk menyediakan metadata Anda sendiri, kumpulkan pernyataan bahasa definisi data (DDL) untuk objek SQL di sistem sumber ke dalam file teks terpisah.
Memetakan nama objek SQL
Secara opsional, Anda dapat melakukan pemetaan nama output selama proses terjemahan batch. Saat menggunakan pemetaan nama output Anda menentukan aturan pemetaan nama yang mengubah nama objek SQL di sistem sumber menjadi nama baru di BigQuery. Misalnya, Anda mungkin memiliki objek schema1.table1
di sistem sumber, dan Anda ingin objek tersebut diberi nama project1.dataset1.table1
di BigQuery. Jika menggunakan pemetaan nama output, Anda harus menentukan aturan pemetaan nama sebelum memulai tugas terjemahan batch. Anda dapat memasukkan aturan ini secara manual saat mengonfigurasi tugas, atau Anda dapat membuat file JSON yang berisi aturan pemetaan nama, lalu menguploadnya.
Menentukan cara mengirimkan tugas terjemahan
Anda memiliki tiga opsi untuk mengirimkan tugas terjemahan batch:
Klien terjemahan batch: Mengonfigurasi tugas dengan mengubah setelan di file konfigurasi, lalu mengirimkan tugas menggunakan command line. Pendekatan ini tidak mengharuskan Anda untuk mengupload file sumber secara manual ke Cloud Storage. Klien masih menggunakan Cloud Storage untuk menyimpan file selama pemrosesan tugas terjemahan.
Klien terjemahan batch adalah klien Python open source yang memungkinkan Anda menerjemahkan file sumber yang berada di mesin lokal Anda, dan menghasilkan output file yang telah diterjemahkan ke direktori lokal. Anda mengonfigurasi klien untuk penggunaan dasar dengan mengubah beberapa setelan dalam file konfigurasinya. Jika mau, Anda juga dapat mengonfigurasi klien untuk menangani tugas yang lebih kompleks, seperti penggantian makro, serta pra- dan pascapemrosesan input dan output terjemahan. Untuk mengetahui informasi selengkapnya, lihat file readme klien terjemahan batch.
Konsol Google Cloud: Mengonfigurasi dan mengirimkan tugas menggunakan antarmuka pengguna. Pendekatan ini mengharuskan Anda mengupload file sumber ke Cloud Storage.
BigQuery Migration API: Mengonfigurasi dan mengirimkan tugas secara terprogram. Pendekatan ini mengharuskan Anda mengupload file sumber ke Cloud Storage.
Membuat file YAML konfigurasi
Jika ingin, Anda dapat membuat dan menggunakan file YAML konfigurasi untuk menyesuaikan terjemahan batch. File ini dapat digunakan untuk mengubah output terjemahan dengan berbagai cara. Misalnya, Anda dapat membuat file YAML konfigurasi untuk mengubah huruf objek SQL selama penerjemahan.
Jika ingin menggunakan Konsol Google Cloud atau BigQuery Migration API untuk tugas terjemahan batch, Anda dapat mengupload file YAML konfigurasi ke bucket Cloud Storage yang berisi file sumber.
Jika ingin menggunakan klien terjemahan batch, Anda dapat menempatkan file YAML konfigurasi di folder input terjemahan lokal.
Mengupload file input ke Cloud Storage
Jika ingin menggunakan Konsol Google Cloud atau BigQuery Migration API untuk melakukan tugas terjemahan, Anda harus mengupload file sumber yang berisi kueri dan skrip yang ingin diterjemahkan ke Cloud Storage. Anda juga dapat mengupload file metadata apa pun atau file YAML konfigurasi ke bucket Cloud Storage yang sama yang berisi file sumber. Untuk mengetahui informasi selengkapnya tentang membuat bucket dan mengupload file ke Cloud Storage, lihat Membuat bucket dan Mengupload objek dari sistem file.
Mengirim tugas terjemahan
Ikuti langkah-langkah ini untuk memulai tugas terjemahan, melihat progresnya, dan melihat hasilnya.
Klien terjemahan batch
Dalam direktori penginstalan klien terjemahan batch, gunakan editor teks pilihan Anda untuk membuka file
config.yaml
lalu ubah setelan berikut:project_number
: Ketik nomor project yang ingin Anda gunakan untuk tugas terjemahan batch. Anda dapat menemukannya di panel Project info di halaman sambutan konsol Google Cloud untuk project tersebut.gcs_bucket
: Ketik nama bucket Cloud Storage yang harus digunakan klien terjemahan batch untuk menyimpan file selama pemrosesan tugas terjemahan.input_directory
: Ketik jalur absolut atau relatif ke direktori yang berisi file sumber dan file metadata apa pun.output_directory
: Ketik jalur absolut atau relatif ke direktori target untuk file yang diterjemahkan.
Simpan perubahan dan tutup file
config.yaml
tersebut.Tempatkan file sumber dan metadata di direktori input.
Jalankan klien terjemahan batch menggunakan perintah berikut:
bin/dwh-migration-client
Setelah tugas terjemahan dibuat, Anda dapat melihat statusnya dalam daftar tugas terjemahan di Konsol Google Cloud.
Opsional. Setelah tugas terjemahan selesai, hapus file yang dibuat oleh tugas tersebut di bucket Cloud Storage yang Anda tentukan untuk menghindari biaya penyimpanan.
Konsol
Langkah-langkah ini mengasumsikan bahwa Anda sudah mengupload file sumber ke bucket Cloud Storage.
Di konsol Google Cloud, buka halaman BigQuery.
Di bagian Migration pada panel navigasi, klik SQL translation.
Klik Start Translation.
Isi dialog konfigurasi terjemahan.
- Untuk Display name, ketik nama untuk tugas terjemahan. Nama tersebut dapat berisi huruf, angka, atau garis bawah.
- Untuk Processing location, pilih lokasi tempat Anda ingin menjalankan tugas terjemahan. Misalnya, jika Anda berada di Eropa dan tidak ingin data Anda melewati batas lokasi, pilih region
eu
. Tugas terjemahan akan memiliki performa terbaik jika Anda memilih lokasi yang sama dengan bucket file sumber. - Untuk Source dialect, pilih dialek SQL yang ingin Anda terjemahkan.
- Untuk Target dialect, pilih BigQuery.
Klik Next.
Untuk Source location, tentukan jalur ke folder Cloud Storage yang berisi file yang akan diterjemahkan. Anda dapat mengetik jalur dalam format
bucket_name/folder_name/
atau menggunakan opsi Browse.Klik Next.
Untuk Target location, tentukan jalur ke folder Cloud Storage tujuan untuk file yang diterjemahkan. Anda dapat mengetik jalur dalam format
bucket_name/folder_name/
atau menggunakan opsi Browse.Jika Anda melakukan terjemahan yang tidak perlu menetapkan nama objek default atau pemetaan nama sumber ke target, lanjutkan ke Langkah 11. Jika sudah, klik Next.
Isi setelan opsional yang Anda perlukan.
Opsional. Untuk Default database, ketik nama database default yang akan digunakan dengan file sumber. Penerjemah menggunakan nama database default ini untuk me-resolve nama yang sepenuhnya memenuhi syarat objek SQL yang tidak memiliki nama database.
Opsional. Untuk Schema search path, tentukan skema yang akan ditelusuri saat penerjemah harus me-resolve nama yang sepenuhnya memenuhi syarat objek SQL dalam file sumber yang tidak memiliki nama skema. Jika file sumber menggunakan sejumlah nama skema yang berbeda, klik Add Schema Name dan tambahkan nilai untuk setiap nama skema yang mungkin direferensikan.
Penerjemah menelusuri file metadata yang Anda sediakan untuk memvalidasi tabel dengan nama skemanya. Jika opsi yang pasti tidak dapat ditentukan dari metadata, nama skema pertama yang Anda masukkan akan digunakan sebagai default. Untuk mengetahui informasi selengkapnya tentang cara nama skema default digunakan, lihat skema default.
Opsional. Jika ingin menentukan aturan pemetaan nama untuk mengganti nama objek SQL antara sistem sumber dan BigQuery selama penerjemahan, Anda dapat menyediakan file JSON dengan pasangan pemetaan nama, atau Anda dapat menggunakan Konsol Google Cloud untuk menentukan nilai yang akan dipetakan.
Untuk menggunakan file JSON:
- Klik Upload JSON file for name mapping.
Cari lokasi file pemetaan nama dalam format yang sesuai, pilih file tersebut, lalu klik Open.
Perhatikan bahwa ukuran file harus kurang dari 5 MB.
Untuk menggunakan Konsol Google Cloud:
- Klik Add name mapping pair.
- Tambahkan bagian nama objek sumber yang sesuai di kolom Database, Schema, Relationship, dan Attribute pada kolom Source.
- Tambahkan bagian nama objek target di BigQuery di kolom yang sama seperti untuk nama objek sumber pada kolom Target.
- Untuk Type, pilih jenis objek yang mendeskripsikan objek yang Anda petakan.
- Ulangi Langkah 1 - 4 hingga Anda menentukan semua pasangan pemetaan nama yang Anda butuhkan. Perhatikan bahwa Anda hanya dapat menentukan hingga 25 pasangan pemetaan nama saat menggunakan Konsol Google Cloud.
Klik Create untuk memulai tugas terjemahan.
Setelah tugas terjemahan dibuat, Anda dapat melihat statusnya di daftar tugas terjemahan.
API
Pada metode projects.locations.workflows.create
, berikan instance resource MigrationWorkflow
dengan jenis tugas yang didukung.
Jenis tugas yang didukung
- Amazon Redshift SQL -
Redshift2BigQuery_Translation
- Apache HiveQL dan Beeline CLI -
HiveQL2BigQuery_Translation
- IBM Netezza SQL dan NZPLSQL -
Netezza2BigQuery_Translation
- Teradata dan Teradata Vantage -
Teradata2BigQuery_Translation
- Apache Spark SQL -
SparkSQL2BigQuery_Translation
- T-SQL Azure Synapse -
AzureSynapse2BigQuery_Translation
- SQL MySQL -
MySQL2BigQuery_Translation
- Oracle SQL, PL/SQL, Exadata -
Oracle2BigQuery_Translation
- SQL PostgreSQL -
Postgresql2BigQuery_Translation
- SQL Presto atau Trino -
Presto2BigQuery_Translation
- SQL Snowflake -
Snowflake2BigQuery_Translation
- SQL Server T-SQL -
SQLServer2BigQuery_Translation
- SQL Vertika -
Vertica2BigQuery_Translation
Batasan
API terjemahan gabungan hanya mendukung tugas terjemahan yang selesai dalam waktu kurang dari 1,5 jam.
Izin yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat tugas terjemahan menggunakan API terjemahan gabungan,
minta administrator untuk memberi Anda peran IAM
MigrationWorkflow Editor (roles/bigquerymigration.editor
) di resource parent
.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat tugas terjemahan menggunakan Translation API gabungan. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat tugas terjemahan menggunakan API terjemahan gabungan:
-
bigquerymigration.workflows.create
-
bigquerymigration.workflows.get
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Contoh: Membuat batch terjemahan
Perintah curl
berikut membuat tugas terjemahan batch tempat file input dan output disimpan di Cloud Storage. Kolom source_target_mapping
berisi daftar yang memetakan entri literal
sumber ke jalur relatif
opsional untuk output target.
curl -d "{ \"tasks\": { string: { \"type\": \"TYPE\", \"translation_details\": { \"target_base_uri\": \"TARGET_BASE\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"BASE\" } }, } } } }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows
Ganti kode berikut:
TYPE
: jenis tugas terjemahan, yang menentukan dialek sumber dan target.TARGET_BASE
: URI dasar untuk semua output terjemahan.BASE
: URI dasar untuk semua file yang dibaca sebagai sumber untuk terjemahan.TOKEN
: token untuk autentikasi. Untuk membuat token, gunakan perintahgcloud auth print-access-token
atau OAuth 2.0 playground (gunakan cakupanhttps://www.googleapis.com/auth/cloud-platform
).PROJECT_ID
: proyek untuk memproses terjemahan.LOCATION
: lokasi project untuk memproses terjemahan.
Perintah sebelumnya menampilkan respons yang menyertakan ID alur kerja yang ditulis dalam format projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
. Untuk melihat hasil terjemahan melalui API, lihat Hasil API terjemahan gabungan.
Contoh: Membuat tugas terjemahan dengan input dan output literal string
Perintah curl
berikut membuat tugas terjemahan dengan input dan output literal string. Kolom source_target_mapping
berisi daftar yang memetakan
direktori sumber ke jalur relatif opsional untuk output target.
curl -d "{ \"tasks\": { string: { \"type\": \"TYPE\", \"translation_details\": { \"source_target_mapping\": { \"source_spec\": { \"literal\": { \"relative_path\": \"PATH\", \"literal_string\": \"STRING\" } } }, \"target_return_literals\": \"TARGETS\", } } } }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows
Ganti kode berikut:
TYPE
: jenis tugas terjemahan, yang menentukan dialek sumber dan target.PATH
: ID entri literal, mirip dengan nama file atau jalur.STRING
: string data input literal (misalnya, SQL) yang akan diterjemahkan.TARGETS
: target yang diharapkan dan diinginkan pengguna untuk ditampilkan langsung dalam respons dalam formatliteral
. Respons harus dalam format URI target (misalnya, GENERATED_DIR +target_spec.relative_path
+source_spec.literal.relative_path
). Apa pun yang tidak ada dalam daftar ini tidak akan ditampilkan dalam respons. Direktori yang dihasilkan, GENERATED_DIR untuk terjemahan SQL umum adalahsql/
.TOKEN
: token untuk autentikasi. Untuk membuat token, gunakan perintahgcloud auth print-access-token
atau OAuth 2.0 playground (gunakan cakupanhttps://www.googleapis.com/auth/cloud-platform
).PROJECT_ID
: proyek untuk memproses terjemahan.LOCATION
: lokasi project untuk memproses terjemahan.
Perintah sebelumnya menampilkan respons yang menyertakan ID alur kerja yang ditulis dalam format projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
. Untuk melihat hasil terjemahan melalui API, lihat Hasil API terjemahan gabungan.
Pelajari output terjemahan
Setelah menjalankan tugas terjemahan, Anda dapat melihat informasi tentang tugas tersebut di Konsol Google Cloud. Jika menggunakan konsol Google Cloud untuk menjalankan tugas, Anda dapat melihat hasil tugas di bucket Cloud Storage tujuan yang telah ditentukan. Jika menggunakan API terjemahan gabungan untuk menjalankan tugas, Anda dapat menjalankan perintah lain dengan ID alur kerja untuk mengambil hasil tugas. Jika menggunakan klien terjemahan batch untuk menjalankan tugas, Anda dapat melihat hasil tugas di direktori output yang telah Anda tentukan. Penerjemah SQL batch menghasilkan file berikut ke tujuan yang ditentukan:
- File yang diterjemahkan.
- Laporan ringkasan terjemahan dalam format CSV.
- Pemetaan nama output yang digunakan dalam format JSON.
Output Konsol Google Cloud
Untuk melihat detail tugas terjemahan, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman BigQuery.
Di bagian Migration pada panel navigasi, klik SQL translation.
Dalam daftar tugas terjemahan, cari tugas yang ingin Anda lihat detail terjemahannya. Kemudian, klik nama tugas penerjemahan.
Di bagian Hasil, Anda dapat melihat tingkat keberhasilan terjemahan secara keseluruhan, jumlah pernyataan yang diproses, dan durasi tugas.
Pilih tab Ringkasan Log untuk melihat ringkasan masalah terjemahan, termasuk kategori masalah, tindakan yang disarankan, dan seberapa sering setiap masalah terjadi. Anda juga dapat memilih kategori masalah untuk melihat pesan log yang terkait dengan kategori masalah tersebut (Pratinjau).
Pilih tab Pesan Log untuk melihat detail selengkapnya tentang setiap masalah terjemahan, termasuk kategori masalah, pesan masalah tertentu, dan link ke file tempat masalah terjadi. Anda dapat memilih masalah di tab Log Message untuk membuka tab Kode yang menampilkan file input dan output, jika ada (Preview).
Pilih tab Translation Configuration untuk melihat detail konfigurasi tugas terjemahan.
Hasil API terjemahan gabungan
Setelah terjemahan asinkron selesai, ambil hasilnya dengan menentukan ID alur kerja tugas terjemahan menggunakan perintah berikut:
curl \ -H "Content-Type:application/json" \ -H "Authorization:Bearer TOKEN" -X GET https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
Ganti kode berikut:
TOKEN
: token untuk autentikasi. Untuk membuat token, gunakan perintahgcloud auth print-access-token
atau OAuth 2.0 playground (gunakan cakupanhttps://www.googleapis.com/auth/cloud-platform
).PROJECT_ID
: proyek untuk memproses terjemahan.LOCATION
: lokasi project untuk memproses terjemahan.WORKFLOW_ID
: ID yang dibuat saat Anda membuat alur kerja terjemahan.
Laporan ringkasan
Laporan ringkasan adalah file CSV yang berisi tabel yang memuat semua pesan peringatan dan error yang ditemukan selama tugas terjemahan.
Untuk melihat file ringkasan di Konsol Google Cloud, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman BigQuery.
Di bagian Migration pada panel navigasi, klik SQL translation.
Dalam daftar tugas terjemahan, temukan pekerjaan yang Anda minati, lalu klik Show details di kolom Status.
Di bagian Translation report, klik batch_translation_report.csv.
Di halaman Object details, klik nilai di baris Authenticated URL untuk melihat file di browser Anda.
Tabel berikut menjelaskan kolom file ringkasan:
Kolom | Deskripsi |
---|---|
Stempel waktu | Stempel waktu saat masalah terjadi. |
FilePath | Jalur ke file sumber yang terkait dengan masalah. |
FileName | Nama file sumber yang terkait dengan masalah. |
ScriptLine | Nomor baris tempat masalah terjadi. |
ScriptColumn | Nomor kolom tempat masalah terjadi. |
TranspilerComponent | Komponen internal mesin terjemahan tempat peringatan atau error terjadi. Kolom ini mungkin kosong. |
Lingkungan | Lingkungan dialek terjemahan yang terkait dengan peringatan atau error. Kolom ini mungkin kosong. |
ObjectName | Objek SQL dalam file sumber yang terkait dengan peringatan atau error. Kolom ini mungkin kosong. |
Keseriusan | Tingkat keparahan masalah, baik berupa peringatan maupun error. |
Kategori | Kategori masalah terjemahan. |
SourceType | Sumber masalah ini. Nilai dalam kolom ini dapat berupa SQL , yang menunjukkan masalah dalam file SQL input, atau METADATA , yang menunjukkan masalah dalam paket metadata. |
Pesan | Pesan error atau peringatan masalah terjemahan. |
ScriptContext | Cuplikan SQL dalam file sumber yang terkait dengan masalah. |
Tindakan | Tindakan yang kami sarankan untuk Anda lakukan guna menyelesaikan masalah. |
Tab Kode
Dengan tab kode, Anda dapat meninjau informasi lebih lanjut tentang file input dan output untuk tugas terjemahan tertentu. Pada tab kode, Anda dapat memeriksa file yang digunakan dalam tugas penerjemahan, meninjau perbandingan file input dan terjemahannya secara berdampingan, untuk menemukan ketidakakuratan, serta melihat ringkasan log dan pesan untuk file tertentu dalam tugas tersebut.
Untuk mengakses tab kode, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman BigQuery.
Di bagian Migrasi di panel navigasi, klik Terjemahan SQL.
Dalam daftar tugas terjemahan, cari pekerjaan yang Anda minati, lalu klik Tampilkan detail di kolom Status.
Pilih tab Kode.
File pemetaan nama output yang digunakan
File JSON ini berisi aturan pemetaan nama output yang digunakan oleh tugas terjemahan. Aturan dalam file ini mungkin berbeda dengan aturan pemetaan nama output yang Anda tentukan untuk tugas terjemahan, karena adanya konflik pada aturan pemetaan nama atau kurangnya aturan pemetaan nama untuk objek SQL yang diidentifikasi selama penerjemahan. Tinjau file ini untuk menentukan apakah aturan pemetaan nama perlu diperbaiki atau tidak. Jika ya, buat aturan pemetaan nama output baru yang mengatasi masalah yang teridentifikasi, dan jalankan tugas terjemahan baru.
File yang diterjemahkan
Untuk setiap file sumber, file output yang sesuai akan dihasilkan di jalur tujuan. File output berisi kueri yang diterjemahkan.
Men-debug kueri SQL yang diterjemahkan batch dengan penerjemah SQL interaktif
Anda dapat menggunakan penerjemah SQL interaktif BigQuery untuk meninjau atau men-debug kueri SQL menggunakan metadata atau informasi pemetaan objek yang sama seperti database sumber Anda. Setelah Anda menyelesaikan tugas terjemahan batch, BigQuery akan membuat ID konfigurasi terjemahan yang berisi informasi tentang metadata tugas, pemetaan objek, atau jalur penelusuran skema, sebagaimana yang berlaku untuk kueri tersebut. Gunakan ID konfigurasi terjemahan batch dengan penerjemah SQL interaktif untuk menjalankan kueri SQL dengan konfigurasi yang ditentukan.
Untuk memulai terjemahan SQL interaktif menggunakan ID konfigurasi terjemahan batch, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman BigQuery.
Di bagian Migration pada Navigation menu, klik SQL translation.
Dalam daftar tugas terjemahan, temukan tugas yang Anda minati, lalu klik > Open Interactive Translation.
More Options
Penerjemah SQL interaktif BigQuery kini terbuka dengan ID konfigurasi terjemahan batch yang sesuai. Guna melihat ID konfigurasi terjemahan untuk terjemahan interaktif, klik More > Translation settings pada penerjemah interaktif.
Batasan
Penerjemah tidak dapat menerjemahkan fungsi yang ditentukan pengguna (UDF) dari bahasa selain SQL, karena tidak dapat mengurainya untuk menentukan jenis data input dan output-nya. Hal ini menyebabkan terjemahan pernyataan SQL yang mereferensikan UDF ini menjadi tidak akurat. Untuk memastikan UDF non-SQL direferensikan dengan benar selama penerjemahan, gunakan SQL yang valid untuk membuat UDF placeholder dengan tanda tangan yang sama.
Misalnya, Anda memiliki UDF yang ditulis dalam bahasa C yang menghitung jumlah dua bilangan bulat. Untuk memastikan pernyataan SQL yang mereferensikan UDF ini diterjemahkan dengan benar, buat UDF SQL placeholder yang memiliki tanda tangan yang sama dengan UDF C, seperti yang ditunjukkan dalam contoh berikut:
CREATE FUNCTION Test.MySum (a INT, b INT)
RETURNS INT
LANGUAGE SQL
RETURN a + b;
Simpan UDF placeholder ini dalam file teks, lalu sertakan file tersebut sebagai salah satu file sumber untuk tugas terjemahan. Hal ini memungkinkan penerjemah mempelajari definisi UDF dan mengidentifikasi jenis data input dan output yang diharapkan.
Kuota dan batas
- Kuota BigQuery Migration API berlaku.
- Setiap project dapat memiliki maksimal 10 tugas terjemahan aktif.
- Meskipun tidak ada batasan pasti untuk jumlah total file sumber dan metadata, sebaiknya pertahankan jumlah file tersebut agar tetap kurang dari 1.000 untuk mendapatkan performa yang lebih baik.
Memecahkan masalah error terjemahan
Masalah terjemahan RelationNotFound
atau AttributeNotFound
Terjemahan berfungsi paling baik dengan DDL metadata. Jika definisi objek SQL tidak dapat ditemukan, mesin terjemahan akan menimbulkan masalah RelationNotFound
atau AttributeNotFound
. Sebaiknya gunakan ekstraktor metadata untuk membuat paket metadata guna memastikan semua definisi objek ada. Menambahkan metadata adalah langkah pertama yang direkomendasikan untuk mengatasi sebagian besar error terjemahan, karena sering kali dapat memperbaiki banyak error lain yang disebabkan secara tidak langsung oleh kurangnya metadata.
Untuk mengetahui informasi selengkapnya, lihat Membuat metadata untuk terjemahan dan penilaian.
Harga
Gunakan penerjemah SQL batch ini tanpa biaya. Namun, penyimpanan yang digunakan untuk menyimpan file input dan output dikenakan biaya normal. Untuk mengetahui informasi selengkapnya, lihat Harga penyimpanan.
Langkah selanjutnya
Pelajari lebih lanjut langkah-langkah berikut dalam migrasi data warehouse:
- Ringkasan migrasi
- Penilaian migrasi
- Ringkasan skema dan transfer data
- Pipeline data
- Terjemahan SQL interaktif
- Tata kelola dan keamanan data
- Alat validasi data