Membuat metadata untuk terjemahan dan penilaian

Dokumen ini menjelaskan cara membuat metadata dan membuat kueri file log dengan menggunakan alat ekstraksi command line dwh-migration-dumper. File metadata menjelaskan objek SQL di sistem sumber Anda.

BigQuery Migration Service menggunakan informasi ini untuk meningkatkan terjemahan skrip SQL dari dialek sistem sumber Anda ke GoogleSQL.

Penilaian migrasi BigQuery menggunakan file metadata dan file log kueri untuk menganalisis data warehouse yang ada dan membantu menilai upaya pemindahan data warehouse Anda ke BigQuery.

Ringkasan

Anda dapat menggunakan alat dwh-migration-dumper untuk mengekstrak informasi metadata dari platform database yang Anda migrasikan ke BigQuery. Meskipun penggunaan alat ekstraksi tidak diwajibkan untuk penerjemahan, alat ini wajib untuk penilaian migrasi BigQuery dan sebaiknya gunakan untuk semua tugas migrasi.

Untuk informasi selengkapnya, baca Membuat file metadata.

Anda dapat menggunakan alat dwh-migration-dumper untuk mengekstrak metadata dari platform database berikut:

  • Teradata
  • Amazon Redshift
  • Apache Hive
  • Apache Spark
  • Azure Synapse
  • Microsoft SQL Server
  • IBM Netezza
  • Oracle
  • Snowflake
  • Trino atau PrestoSQL
  • Vertica

Untuk sebagian besar database ini, Anda juga dapat mengekstrak log kueri.

Alat dwh-migration-dumper membuat kueri pada tabel sistem untuk mengumpulkan pernyataan bahasa definisi data (DDL) yang terkait dengan database pengguna dan sistem. Alat ini tidak membuat kueri konten database pengguna. Alat ini menyimpan informasi metadata dari tabel sistem sebagai file CSV, lalu mengompresi file tersebut menjadi satu paket. Kemudian, Anda mengupload file zip ini ke Cloud Storage saat mengupload file sumber untuk diterjemahkan atau dinilai.

Saat menggunakan opsi log kueri, alat dwh-migration-dumper membuat kueri tabel sistem untuk pernyataan DDL dan log kueri yang terkait dengan database pengguna dan sistem. Hasilnya disimpan dalam format CSV atau yaml ke subdirektori, lalu dikemas ke dalam paket zip. Konten database pengguna tidak akan dibuat sendiri kuerinya. Pada tahap ini, penilaian migrasi BigQuery memerlukan file CSV, YAML, dan teks individual untuk log kueri, sehingga Anda harus mengekstrak semua file ini dari file ZIP log kueri dan menguploadnya untuk penilaian.

Alat dwh-migration-dumper dapat berjalan di Windows, macOS, dan Linux.

Alat dwh-migration-dumper tersedia dalam lisensi Apache 2.

Jika memilih untuk tidak menggunakan alat dwh-migration-dumper untuk menerjemahkan, Anda dapat menyediakan file metadata secara manual dengan mengumpulkan pernyataan bahasa definisi data (DDL) untuk objek SQL di sistem sumber ke dalam file teks terpisah.

Berikan metadata dan log kueri yang diekstrak dengan alat ini diperlukan untuk penilaian migrasi menggunakan penilaian migrasi BigQuery.

Persyaratan kepatuhan

Kami menyediakan biner alat dwh-migration-dumper yang telah dikompilasi untuk kemudahan penggunaan. Jika perlu mengaudit alat untuk memastikannya memenuhi persyaratan kepatuhan, Anda dapat meninjau kode sumber dari repositori GitHub alat dwh-migration-dumper, dan mengompilasi biner Anda sendiri.

Prasyarat

Menginstal Java

Server tempat Anda berencana menjalankan alat dwh-migration-dumper harus sudah menginstal Java 8 atau yang lebih baru. Jika tidak, download Java dari halaman download Java, lalu instal.

Izin yang diperlukan

Akun pengguna yang Anda tentukan untuk menghubungkan alat dwh-migration-dumper ke sistem sumber harus memiliki izin untuk membaca metadata dari sistem tersebut. Pastikan akun ini memiliki keanggotaan peran yang sesuai untuk membuat kueri resource metadata yang tersedia untuk platform Anda. Misalnya, INFORMATION_SCHEMA adalah resource metadata yang umum di beberapa platform.

Menginstal alat dwh-migration-dumper

Untuk menginstal alat dwh-migration-dumper, ikuti langkah-langkah berikut:

  1. Di komputer tempat Anda ingin menjalankan alat dwh-migration-dumper, download file zip dari repositori GitHub alat dwh-migration-dumper.
  2. Download file SHA256SUMS.txt dan jalankan perintah berikut:
    sha256sum --check SHA256SUMS.txt
    
    Jika verifikasi gagal, lihat Pemecahan masalah.
  3. Ekstrak file ZIP. Biner alat ekstraksi berada dalam subdirektori /bin dari folder yang dibuat dengan mengekstrak file ZIP.
  4. Update variabel lingkungan PATH untuk menyertakan jalur penginstalan untuk alat ekstraksi.

Menjalankan alat dwh-migration-dumper

Alat dwh-migration-dumper menggunakan format berikut:

dwh-migration-dumper [FLAGS]

Menjalankan alat dwh-migration-dumper akan membuat file output bernama dwh-migration-<source platform>-metadata.zip—misalnya, dwh-migration-teradata-metadata.zip, di direktori kerja Anda.

Gunakan petunjuk berikut untuk mempelajari cara menjalankan alat dwh-migration-dumper untuk platform sumber Anda.

Teradata

Untuk mengizinkan alat dwh-migration-dumper terhubung ke Teradata, download driver JDBC-nya dari halaman download Teradata.

Tabel berikut menjelaskan flag yang umum digunakan untuk mengekstrak metadata Teradata dan log kueri menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--assessment

Mengaktifkan mode penilaian saat membuat log database atau mengekstrak metadata. Alat dwh-migration-dumper menghasilkan statistik metadata yang diperlukan untuk penilaian migrasi BigQuery saat digunakan untuk ekstraksi metadata. Saat digunakan untuk log kueri, fitur ini akan mengekstrak kolom tambahan untuk penilaian migrasi BigQuery.

Wajib diisi saat menggunakan untuk menjalankan penilaian, tidak perlu untuk menerjemahkan.
--connector Nama konektor yang akan digunakan, dalam hal ini teradata untuk metadata atau teradata-logs untuk log kueri. Ya
--database

Daftar database yang akan diekstrak, dipisahkan dengan koma. Nama database mungkin peka huruf besar/kecil, bergantung pada konfigurasi server Teradata.

Jika tanda ini digunakan bersama dengan konektor teradata, alat dwh-migration-dumper akan memfilter tabel dan tampilan metadata menurut daftar database yang disediakan. Pengecualiannya adalah tampilan DatabasesV dan RoleMembersV - alat dwh-migration-dumper mengekstrak database dan pengguna dari tampilan ini tanpa memfilter berdasarkan nama database.

Tanda ini tidak dapat digunakan bersama dengan konektor teradata-logs. Log kueri selalu diekstrak untuk semua database.

Tidak
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Ya
--host localhost Nama host atau alamat IP server database. Tidak
--password Kata sandi yang akan digunakan untuk koneksi database. Jika tidak ditentukan, alat ekstraksi akan menggunakan permintaan yang aman untuk memintanya.
--port 1025 Port server database. Tidak
--user

Nama pengguna yang akan digunakan untuk koneksi database.

Ya
--query-log-alternates

Hanya untuk konektor teradata-logs.

Untuk mengekstrak log kueri dari lokasi alternatif, kami merekomendasikan agar Anda menggunakan tanda -Dteradata-logs.query-logs-table dan -Dteradata-logs.sql-logs-table sebagai gantinya.

Secara default, log kueri diekstrak dari tabel dbc.DBQLogTbl dan dbc.DBQLSQLTbl. Jika Anda menggunakan flag --assessment, log kueri diekstrak dari dbc.QryLogV tabel virtual dan dari dbc.DBQLSQLTbl tabel. Jika perlu mengekstrak log kueri dari lokasi alternatif, Anda dapat menentukan nama tabel atau tabel virtual yang sepenuhnya memenuhi syarat menggunakan flag --query-log-alternates. Parameter pertama mereferensikan alternatif ke dbc.DBQLogTbl tabel, dan parameter kedua mereferensikan alternatif ke dbc.DBQLSQLTbl tabel. Kedua parameter diperlukan.
Flag -Dteradata-logs.log-date-column dapat digunakan untuk meningkatkan performa ekstraksi jika kedua tabel memiliki kolom terindeks dari jenis DATE.

Contoh: --query-log-alternates historicdb.ArchivedQryLogV,historicdb.ArchivedDBQLSqlTbl

Tidak
-Dteradata.tmode

Mode transaksi untuk koneksi. Nilai-nilai berikut ini didukung:

  • ANSI: Mode ANSI. Ini adalah mode default (jika flag tidak ditentukan)
  • TERA: Mode transaksi Teradata (BTET)
  • DEFAULT: menggunakan mode transaksi default yang dikonfigurasi di server database
  • NONE: tidak ada mode yang ditetapkan untuk koneksi

Contoh (Bash):
-Dteradata.tmode=TERA

Contoh (Windows PowerShell):
"-Dteradata.tmode=TERA"

Tidak
-Dteradata-logs.log-date-column

Hanya untuk konektor teradata-logs.

Untuk meningkatkan performa tabel gabungan yang ditentukan oleh tanda -Dteradata-logs.query-logs-table dan -Dteradata-logs.sql-logs-table, Anda dapat menyertakan kolom tambahan jenis DATE dalam kondisi JOIN. Kolom ini harus ditentukan dalam kedua tabel dan harus menjadi bagian dari Indeks Utama yang Dipartisi.

Contoh (Bash):
-Dteradata-logs.log-date-column=ArchiveLogDate

Contoh (Windows PowerShell):
"-Dteradata-logs.log-date-column=ArchiveLogDate"

Tidak
-Dteradata-logs.query-logs-table

Hanya untuk konektor teradata-logs.

Secara default, log kueri diekstrak dari tabel dbc.DBQLogTbl. Jika Anda menggunakan flag --assessment, log kueri akan diekstrak dari tampilan dbc.QryLogV. Jika perlu mengekstrak log kueri dari lokasi alternatif, Anda dapat menentukan nama tabel atau tampilan yang sepenuhnya memenuhi syarat menggunakan flag ini.
Lihat flag -Dteradata-logs.log-date-column untuk meningkatkan performa ekstraksi.

Contoh (Bash):
-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV

Contoh (Windows PowerShell):
"-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV"

Tidak
-Dteradata-logs.sql-logs-table

Hanya untuk konektor teradata-logs.

Secara default, log kueri yang berisi teks SQL diekstrak dari tabel dbc.DBQLSqlTbl. Jika perlu mengekstraknya dari lokasi alternatif, Anda dapat menentukan nama tabel atau tampilan yang sepenuhnya memenuhi syarat menggunakan flag ini.
Lihat flag -Dteradata-logs.log-date-column untuk meningkatkan performa ekstraksi.

Contoh (Bash):
-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl

Contoh (Windows PowerShell):
"-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl"

Tidak
-Dteradata-logs.utility-logs-table

Hanya untuk konektor teradata-logs.

Secara default, log utilitas diekstrak dari tabel dbc.DBQLUtilityTbl. Jika perlu mengekstrak log utilitas dari lokasi alternatif, Anda dapat menentukan nama tabel yang sepenuhnya memenuhi syarat menggunakan flag -Dteradata-logs.utility-logs-table.

Contoh (Bash):
-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs

Contoh (Windows PowerShell):
"-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs"

Tidak
-Dteradata-logs.res-usage-scpu-table

Hanya untuk konektor teradata-logs.

Secara default, log penggunaan resource SCPU diekstrak dari tabel dbc.ResUsageScpu. Jika perlu mengekstraknya dari lokasi alternatif, Anda dapat menentukan nama tabel yang sepenuhnya memenuhi syarat menggunakan tanda -Dteradata-logs.res-usage-scpu-table.

Contoh (Bash):
-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu

Contoh (Windows PowerShell):
"-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu"

Tidak
-Dteradata-logs.res-usage-spma-table

Hanya untuk konektor teradata-logs.

Secara default, log penggunaan resource SPMA diekstrak dari tabel dbc.ResUsageSpma. Jika perlu mengekstrak log ini dari lokasi alternatif, Anda dapat menentukan nama tabel yang sepenuhnya memenuhi syarat menggunakan flag -Dteradata-logs.res-usage-spma-table.

Contoh (Bash):
-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma

Contoh (Windows PowerShell):
"-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma"

Tidak
--query-log-start

Waktu mulai (inklusif) untuk diekstrak log kueri. Nilai akan dipotong menjadi jam. Flag ini hanya tersedia untuk konektor teradata-logs.

Contoh: --query-log-start "2023-01-01 14:00:00"

Tidak
--query-log-end

Waktu berakhir (eksklusif) untuk ekstraksi log kueri. Nilai akan dipotong menjadi jam. Flag ini hanya tersedia untuk konektor teradata-logs.

Contoh: --query-log-end "2023-01-15 22:00:00"

Tidak
-Dteradata.metadata.tablesizev.max-rows

Hanya untuk konektor teradata.

Batasi jumlah baris yang diekstrak dari TableSizeV tabel virtual. Baris dikelompokkan menurut kolom DatabaseName, AccountName, dan TableName, lalu diurutkan dalam urutan menurun berdasarkan ukuran ruang permanen (ekspresi SUM(CurrentPerm)). Kemudian, jumlah baris yang ditentukan akan diekstrak.

Contoh (Bash):
-Dteradata.metadata.tablesizev.max-rows=100000

Contoh (Windows PowerShell):
"-Dteradata.metadata.tablesizev.max-rows=100000"

Tidak
-Dteradata.metadata.diskspacev.max-rows

Hanya untuk konektor teradata.

Batasi jumlah baris yang diekstrak dari DiskSpaceV tabel virtual. Baris diurutkan secara menurun berdasarkan ukuran ruang permanen (kolom CurrentPerm), lalu jumlah baris yang ditentukan diekstrak.

Contoh (Bash):
-Dteradata.metadata.diskspacev.max-rows=100000

Contoh (Windows PowerShell):
"-Dteradata.metadata.diskspacev.max-rows=100000"

Tidak
-Dteradata.metadata.databasesv.users.max-rows

Hanya untuk konektor teradata.

Batasi jumlah baris yang mewakili pengguna (DBKind='U') yang diekstrak dari DatabasesV tabel virtual. Baris diurutkan secara menurun berdasarkan PermSpace kolom, lalu jumlah baris yang ditentukan diekstrak.

Contoh (Bash):
-Dteradata.metadata.databasesv.users.max-rows=100000

Contoh (Windows PowerShell):
"-Dteradata.metadata.databasesv.users.max-rows=100000"

Tidak
-Dteradata.metadata.databasesv.dbs.max-rows

Hanya untuk konektor teradata.

Batasi jumlah baris yang mewakili database (DBKind='D') yang diekstrak dari DatabasesV tabel virtual. Baris diurutkan secara menurun berdasarkan PermSpace kolom, lalu jumlah baris yang ditentukan diekstrak.

Contoh (Bash):
-Dteradata.metadata.databasesv.dbs.max-rows=100000

Contoh (Windows PowerShell):
"-Dteradata.metadata.databasesv.dbs.max-rows=100000"

Tidak
-Dteradata.metadata.max-text-length

Hanya untuk konektor teradata.

Panjang maksimum kolom teks saat mengekstrak data dari tampilan TableTextV. Teks yang melebihi batas yang ditentukan akan dibagi menjadi beberapa baris. Rentang yang diizinkan: antara 5.000 dan 32.000 (inklusif).

Contoh (Bash):
-Dteradata.metadata.max-text-length=10000

Contoh (Windows PowerShell):
"-Dteradata.metadata.max-text-length=10000"

Tidak
-Dteradata-logs.max-sql-length

Hanya untuk konektor teradata-logs.

Panjang maksimum kolom DBQLSqlTbl.SqlTextInfo. Teks kueri yang lebih panjang dari batas yang ditentukan akan dibagi menjadi beberapa baris. Rentang yang diizinkan: antara 5.000 dan 31.000 (inklusif).

Contoh (Bash):
-Dteradata-logs.max-sql-length=10000

Contoh (Windows PowerShell):
"-Dteradata-logs.max-sql-length=10000"

Tidak

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata untuk dua database Teradata di host lokal:

dwh-migration-dumper \
  --connector teradata \
  --user user \
  --password password \
  --database database1,database2 \
  --driver path/terajdbc4.jar

Contoh berikut menunjukkan cara mengekstrak log kueri untuk Penilaian di host lokal untuk autentikasi:

dwh-migration-dumper \
  --connector teradata-logs \
  --assessment \
  --user user \
  --password password \
  --driver path/terajdbc4.jar

Tabel dan tabel virtual yang diekstrak oleh alat dwh-migration-dumper

Tabel dan tabel virtual berikut diekstrak saat Anda menggunakan konektor teradata:

  • DBC.ColumnsV
  • DBC.DatabasesV
  • DBC.DBCInfo
  • DBC.FunctionsV
  • DBC.IndicesV
  • DBC.PartitioningConstraintsV
  • DBC.TablesV
  • DBC.TableTextV

Tabel dan tabel virtual tambahan berikut diekstrak saat Anda menggunakan konektor teradata dengan flag --assessment:

  • DBC.All_RI_ChildrenV
  • DBC.All_RI_ParentsV
  • DBC.AllTempTablesVX
  • DBC.DiskSpaceV
  • DBC.RoleMembersV
  • DBC.StatsV
  • DBC.TableSizeV

Tabel dan tabel virtual berikut diekstrak saat Anda menggunakan konektor teradata-logs:

  • DBC.DBQLogTbl (berubah menjadi DBC.QryLogV jika flag --assessment digunakan)
  • DBC.DBQLSqlTbl

Tabel dan tabel virtual tambahan berikut diekstrak saat Anda menggunakan konektor teradata-logs dengan flag --assessment:

  • DBC.DBQLUtilityTbl
  • DBC.ResUsageScpu
  • DBC.ResUsageSpma

Redshift

Anda dapat menggunakan salah satu mekanisme otorisasi dan autentikasi Amazon Redshift berikut dengan alat ekstraksi:

  • Nama pengguna dan sandi.
  • ID kunci akses dan kunci rahasia Pengelolaan Akses dan Identitas (IAM) AWS.
  • Nama profil IAM AWS.

Untuk mengautentikasi dengan nama pengguna dan sandi, gunakan driver JDBC PostgreSQL default Amazon Redshift. Untuk mengautentikasi dengan IAM AWS, gunakan driver JDBC Amazon Redshift, yang dapat didownload dari halaman download ini.

Tabel berikut menjelaskan flag yang biasa digunakan untuk mengekstrak metadata dan log kueri Amazon Redshift menggunakan alat dwh-migration-dumper. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--assessment

Mengaktifkan mode penilaian saat membuat log database atau mengekstrak metadata. Alat ini menghasilkan statistik metadata yang diperlukan untuk penilaian migrasi BigQuery saat digunakan untuk ekstraksi metadata. Saat digunakan untuk ekstraksi log kueri, alat ini akan menghasilkan statistik metrik kueri untuk penilaian migrasi BigQuery.

Wajib diisi saat menjalankan mode penilaian dan tidak diperlukan untuk penerjemahan.
--connector Nama konektor yang akan digunakan, dalam hal ini redshift untuk metadata atau redshift-raw-logs untuk log kueri. Ya
--database Jika tidak ditentukan, Amazon Redshift akan menggunakan nilai --user sebagai nama database default.

Nama database yang akan dihubungkan.

Tidak
--driver Jika tidak ditentukan, Amazon Redshift akan menggunakan driver JDBC PostgreSQL default. Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Tidak
--host localhost Nama host atau alamat IP server database. Tidak
--iam-accesskeyid

ID kunci akses IAM AWS yang akan digunakan untuk autentikasi. Kunci akses adalah string karakter, seperti AKIAIOSFODNN7EXAMPLE.

Gunakan bersama dengan flag --iam-secretaccesskey. Jangan gunakan flag ini saat menentukan flag --iam-profile atau --password.

Hal ini tidak secara eksplisit, tetapi Anda harus memberikan informasi autentikasi melalui salah satu metode berikut:

  • Menggunakan flag ini bersama dengan flag --iam-secretaccesskey.
  • Menggunakan flag --iam-profile.
  • Menggunakan flag --password bersama dengan flag --user.
--iam-profile

Profil IAM AWS yang akan digunakan untuk autentikasi. Anda dapat mengambil nilai profil yang akan digunakan dengan memeriksa file $HOME/.aws/credentials atau dengan menjalankan aws configure list-profiles.

Jangan gunakan flag ini dengan flag --iam-accesskeyid, --iam-secretaccesskey, atau --password.

Hal ini tidak secara eksplisit, tetapi Anda harus memberikan informasi autentikasi melalui salah satu metode berikut:

  • Menggunakan flag ini.
  • Menggunakan flag --iam-accesskeyid bersama dengan flag --iam-secretaccesskey.
  • Menggunakan flag --password bersama dengan flag --user.
--iam-secretaccesskey

Kunci akses rahasia IAM AWS yang akan digunakan untuk autentikasi. Kunci akses rahasia adalah string karakter, seperti wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

Gunakan bersama dengan flag --iam-accesskeyid. Jangan gunakan flag ini dengan flag --iam-profile atau --password.

Hal ini tidak secara eksplisit, tetapi Anda harus memberikan informasi autentikasi melalui salah satu metode berikut:

  • Menggunakan flag ini bersama dengan flag --iam-accesskeyid.
  • Menggunakan flag --iam-profile.
  • Menggunakan flag --password bersama dengan flag --user.
--password Kata sandi yang akan digunakan untuk koneksi database.

Jangan gunakan flag ini dengan flag --iam-accesskeyid, --iam-secretaccesskey, atau --iam-profile.

Hal ini tidak secara eksplisit, tetapi Anda harus memberikan informasi autentikasi melalui salah satu metode berikut:

  • Menggunakan flag ini bersama dengan flag --user.
  • Menggunakan flag --iam-accesskeyid bersama dengan flag --iam-secretaccesskey.
  • Menggunakan flag --password.
--port 5439 Port server database. Tidak
--user Nama pengguna yang akan digunakan untuk koneksi database. Ya
--query-log-start

Waktu mulai (inklusif) untuk diekstrak log kueri. Nilai akan dipotong menjadi jam. Tanda ini hanya tersedia untuk konektor redshift-raw-logs.

Contoh: --query-log-start "2023-01-01 14:00:00"

Tidak
--query-log-end

Waktu berakhir (eksklusif) untuk ekstraksi log kueri. Nilai akan dipotong menjadi jam. Tanda ini hanya tersedia untuk konektor redshift-raw-logs.

Contoh: --query-log-end "2023-01-15 22:00:00"

Tidak

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata dari database Amazon Redshift pada host tertentu, menggunakan kunci IAM AWS untuk autentikasi:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-accesskeyid access_key_ID \
  --iam-secretaccesskey secret_access-key \
  --user user

Contoh berikut menunjukkan cara mengekstrak metadata dari database Amazon Redshift di host default, menggunakan nama pengguna dan sandi untuk autentikasi:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --password password \
  --user user

Contoh berikut menunjukkan cara mengekstrak metadata dari database Amazon Redshift di host tertentu, menggunakan profil IAM AWS untuk autentikasi:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-profile profile \
  --user user \
  --assessment

Contoh berikut menunjukkan cara mengekstrak log kueri untuk Assessment dari database Amazon Redshift pada host tertentu, menggunakan profil IAM AWS untuk autentikasi:

dwh-migration-dumper \
  --connector redshift-raw-logs \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host 123.456.789.012 \
  --iam-profile profile \
  --user user \
  --assessment

Tabel dan tabel virtual yang diekstrak oleh alat dwh-migration-dumper

Tabel dan tabel virtual berikut diekstrak saat Anda menggunakan konektor redshift:

  • SVV_COLUMNS
  • SVV_EXTERNAL_COLUMNS
  • SVV_EXTERNAL_DATABASES
  • SVV_EXTERNAL_PARTITIONS
  • SVV_EXTERNAL_SCHEMAS
  • SVV_EXTERNAL_TABLES
  • SVV_TABLES
  • SVV_TABLE_INFO
  • INFORMATION_SCHEMA.COLUMNS
  • PG_CAST
  • PG_DATABASE
  • PG_LANGUAGE
  • PG_LIBRARY
  • PG_NAMESPACE
  • PG_OPERATOR
  • PG_PROC
  • PG_TABLE_DEF
  • PG_TABLES
  • PG_TYPE
  • PG_VIEWS

Tabel dan tabel virtual tambahan berikut diekstrak saat Anda menggunakan konektor redshift dengan flag --assessment:

  • SVV_DISKUSAGE
  • STV_MV_INFO
  • STV_WLM_SERVICE_CLASS_CONFIG
  • STV_WLM_SERVICE_CLASS_STATE

Tabel dan tabel virtual berikut diekstrak saat Anda menggunakan konektor redshift-raw-logs:

  • STL_DDLTEXT
  • STL_QUERY
  • STL_QUERYTEXT
  • PG_USER

Tabel dan tabel virtual tambahan berikut diekstrak saat Anda menggunakan konektor redshift-raw-logs dengan flag --assessment:

  • STL_QUERY_METRICS
  • SVL_QUERY_QUEUE_INFO
  • STL_WLM_QUERY

Untuk informasi tentang tabel virtual dan tabel sistem di Redshift, lihat Tabel virtual sistem Redshift dan Tabel katalog sistem Redshift.

Apache Hive/Spark atau Trino/PrestoSQL

Alat dwh-migration-dumper hanya mendukung autentikasi ke metastore Apache Hive melalui Kerberos. Agar flag --user dan --password tidak digunakan. Sebagai gantinya, gunakan flag --hive-kerberos-url untuk memberikan detail autentikasi Kerberos.

Tabel berikut menjelaskan flag yang umum digunakan untuk mengekstrak metadata Apache Hive, Spark, Presto, atau Trino menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--assessment

Mengaktifkan mode penilaian saat mengekstrak metadata. Alat dwh-migration-dumper menghasilkan statistik metadata yang diperlukan untuk penilaian migrasi BigQuery saat digunakan untuk ekstraksi metadata.

Diperlukan untuk penilaian. Tidak diperlukan untuk terjemahan.
--connector Nama konektor yang akan digunakan, dalam hal ini hiveql. Ya
--hive-metastore-dump-partition-metadata true

Menyebabkan alat dwh-migration-dumper mengekstrak metadata partisi. Anda mungkin ingin menetapkan flag ini ke false untuk metastore produksi dengan jumlah partisi yang signifikan, karena implikasi performa klien Thrift. Hal ini meningkatkan performa fitur ekstraksi, tetapi menyebabkan hilangnya beberapa pengoptimalan partisi di sisi BigQuery.

Jangan gunakan flag ini dengan flag --assessment, karena tidak akan berpengaruh.

Tidak
--hive-metastore-version 2.3.6

Saat dijalankan, alat dwh-migration-dumper akan memilih spesifikasi Thrift yang sesuai untuk digunakan berkomunikasi dengan server Apache Hive Anda, berdasarkan nilai flag ini. Jika alat ekstraksi tidak memiliki spesifikasi Thrift yang sesuai, alat ini akan menggunakan klien 2.3.6 dan memberikan peringatan ke stdout. Jika hal ini terjadi, hubungi Dukungan dan berikan nomor versi Apache Hive yang Anda minta.

Tidak
--host localhost Nama host atau alamat IP server database. Tidak
--port 9083 Port server database. Tidak
--hive-kerberos-url Entity utama dan host Kerberos yang akan digunakan untuk autentikasi. Diperlukan untuk cluster yang telah mengaktifkan autentikasi Kerberos.
-Dhiveql.rpc.protection

Tingkat konfigurasi perlindungan RPC. Ini menentukan Kualitas Perlindungan (QOP) dari koneksi Simple Authentication dan Security Layer (SASL) antara cluster dan alat dwh-migration-dumper.

Harus sama dengan nilai parameter hadoop.rpc.protection di dalam file /etc/hadoop/conf/core-site.xml di cluster, dengan salah satu nilai berikut:

  • authentication
  • integrity
  • privacy

Contoh (Bash):
-Dhiveql.rpc.protection=privacy

Contoh (Windows PowerShell):
"-Dhiveql.rpc.protection=privacy"

Diperlukan untuk cluster yang telah mengaktifkan autentikasi Kerberos.

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata untuk database Hive 2.3.7 pada host tertentu, tanpa autentikasi dan menggunakan port alternatif untuk koneksi:

dwh-migration-dumper \
  --connector hiveql \
  --hive-metastore-version 2.3.7 \
  --host host \
  --port port

Untuk menggunakan autentikasi Kerberos, login sebagai pengguna yang memiliki izin baca ke metastore Hive dan buat tiket Kerberos. Selanjutnya, buat file zip metadata dengan perintah berikut:

JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false" \
  dwh-migration-dumper \
  --connector hiveql \
  --host host \
  --port port \
  --hive-kerberos-url principal/kerberos_host

Azure Synapse atau Microsoft SQL Server

Untuk mengizinkan alat dwh-migration-dumper terhubung ke Azure Synapse atau Microsoft SQL Server, download driver JDBC-nya dari halaman download Microsoft.

Tabel berikut menjelaskan flag yang biasa digunakan untuk mengekstrak metadata Azure Synapse atau Microsoft SQL Server menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--connector Nama konektor yang akan digunakan, dalam hal ini sqlserver. Ya
--database

Nama database yang akan dihubungkan.

Ya
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Ya
--host localhost Nama host atau alamat IP server database. Tidak
--password Kata sandi yang akan digunakan untuk koneksi database. Ya
--port 1433 Port server database. Tidak
--user Nama pengguna yang akan digunakan untuk koneksi database. Ya

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata dari database Azure Synapse pada host tertentu:

dwh-migration-dumper \
  --connector sqlserver \
  --database database \
  --driver path/mssql-jdbc.jar \
  --host server_name.sql.azuresynapse.net \
  --password password \
  --user user

Netezza

Untuk mengizinkan alat dwh-migration-dumper terhubung ke IBM Netezza, Anda harus mendapatkan driver JDBC-nya. Anda biasanya bisa mendapatkan driver dari direktori /nz/kit/sbin di host peralatan IBM Netezza. Jika Anda tidak dapat menemukannya, minta bantuan administrator sistem Anda, atau baca Menginstal dan Mengonfigurasi JDBC dalam dokumentasi IBM Netezza.

Tabel berikut menjelaskan flag yang umum digunakan untuk mengekstrak metadata IBM Netezza menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--connector Nama konektor yang akan digunakan, dalam hal ini netezza. Ya
--database

Daftar database yang akan diekstrak, dipisahkan dengan koma.

Ya
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Ya
--host localhost Nama host atau alamat IP server database. Tidak
--password Kata sandi yang akan digunakan untuk koneksi database. Ya
--port 5480 Port server database. Tidak
--user Nama pengguna yang akan digunakan untuk koneksi database. Ya

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata untuk dua database IBM Netezza pada host tertentu:

dwh-migration-dumper \
  --connector netezza \
  --database database1,database2 \
  --driver path/nzjdbc.jar \
  --host host \
  --password password \
  --user user

Oracle

Untuk mengizinkan alat dwh-migration-dumper terhubung ke Oracle, download driver JDBC-nya dari halaman download Oracle.

Tabel berikut menjelaskan flag yang umum digunakan untuk mengekstrak metadata Oracle menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--connector Nama konektor yang akan digunakan, dalam hal ini Oracle. Ya
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Ya
--host localhost Nama host atau alamat IP server database. Tidak
--oracle-service

Nama layanan Oracle yang akan digunakan untuk koneksi.

Tidak secara eksplisit, tetapi Anda harus menentukan flag ini atau flag --oracle-sid.
--oracle-sid

ID sistem Oracle (SID) yang akan digunakan untuk koneksi.

Tidak secara eksplisit, tetapi Anda harus menentukan flag ini atau flag --oracle-service.
--password Kata sandi yang akan digunakan untuk koneksi database. Jika tidak ditentukan, alat ekstraksi akan menggunakan permintaan yang aman untuk memintanya.
--port 1521 Port server database. Tidak
--user

Nama pengguna yang akan digunakan untuk koneksi database.

Pengguna yang Anda tentukan harus memiliki peran SELECT_CATALOG_ROLE agar dapat mengekstrak metadata. Untuk mengetahui apakah pengguna memiliki peran yang diperlukan, jalankan kueri select granted_role from user_role_privs; terhadap database Oracle.

Ya

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata untuk database Oracle di host tertentu, menggunakan layanan Oracle untuk koneksi:

dwh-migration-dumper \
  --connector oracle \
  --driver path/ojdbc8.jar \
  --host host \
  --oracle-service service_name \
  --password password \
  --user user

Snowflake

Tabel berikut menjelaskan flag yang biasa digunakan untuk mengekstrak metadata Snowflake menggunakan alat dwh-migration-dumper. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--connector Nama konektor yang akan digunakan, dalam hal ini snowflake. Ya
--database

Nama database yang akan dihubungkan.

Anda hanya dapat mengekstrak dari satu database dalam satu waktu dari Snowflake.

Ya
--host localhost Nama host atau alamat IP server database. Tidak
--password Kata sandi yang akan digunakan untuk koneksi database. Jika tidak ditentukan, alat ekstraksi akan menggunakan permintaan yang aman untuk memintanya.
--role Peran Snowflake yang akan digunakan untuk otorisasi. Anda hanya perlu menetapkannya untuk penginstalan besar yang mengharuskan Anda mendapatkan metadata dari skema SNOWFLAKE.ACCOUNT_USAGE, bukan INFORMATION_SCHEMA. Untuk informasi selengkapnya, baca Menangani instance Snowflake berukuran besar. Tidak
--user

Nama pengguna yang akan digunakan untuk koneksi database.

Ya
--warehouse

Warehouse Snowflake yang akan digunakan untuk memproses kueri metadata.

Ya

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata untuk database Snowflake yang biasanya berukuran besar pada host lokal:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --password password \
  --user user \
  --warehouse warehouse

Contoh berikut menunjukkan cara mengekstrak metadata untuk database Snowflake berukuran besar pada host tertentu:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --password password \
  --role role \
  --user user \
  --warehouse warehouse

Menangani instance Snowflake berukuran besar

Alat dwh-migration-dumper membaca metadata dari Snowflake INFORMATION_SCHEMA. Namun, ada batasan jumlah data yang dapat Anda ambil dari INFORMATION_SCHEMA. Jika menjalankan alat ekstraksi dan menerima error SnowflakeSQLException: Information schema query returned too much data, Anda harus melakukan langkah-langkah berikut agar dapat membaca metadata dari skema SNOWFLAKE.ACCOUNT_USAGE:

  1. Buka opsi Shares di antarmuka web Snowflake.
  2. Buat database dari bagian SNOWFLAKE.ACCOUNT_USAGE:

    -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
    
  3. Membuat peran:

    CREATE ROLE role;
    
  4. Beri IMPORTED hak istimewa di database baru untuk peran tersebut:

    GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
    
  5. Berikan peran kepada pengguna yang ingin Anda gunakan untuk menjalankan alat dwh-migration-dumper:

    GRANT ROLE role TO USER user;
    

Vertica

Untuk mengizinkan alat dwh-migration-dumper terhubung ke Vertica, download driver JDBC-nya dari halaman download ini.

Tabel berikut menjelaskan flag yang biasa digunakan untuk mengekstrak metadata Vertika menggunakan alat ekstraksi. Untuk informasi tentang semua flag yang didukung, lihat flag global.

Nama Nilai default Deskripsi Wajib
--connector Nama konektor yang akan digunakan, dalam hal ini vertica. Ya
--database

Nama database yang akan dihubungkan.

Ya
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan untuk koneksi ini. Anda dapat menentukan beberapa file JAR driver, dengan memisahkannya dengan koma. Ya
--host localhost Nama host atau alamat IP server database. Tidak
--password Kata sandi yang akan digunakan untuk koneksi database. Ya
--port 5433 Port server database. Tidak
--user Nama pengguna yang akan digunakan untuk koneksi database. Ya

Contoh

Contoh berikut menunjukkan cara mengekstrak metadata dari database Vertica di host lokal:

dwh-migration-dumper \
  --driver path/vertica-jdbc.jar \
  --connector vertica \
  --database database
  --user user
  --password password

Flag global

Tabel berikut menjelaskan flag yang dapat digunakan dengan salah satu platform sumber yang didukung.

Nama Deskripsi
--connector Nama konektor untuk sistem sumber.
--database Penggunaan bervariasi menurut sistem sumber.
--driver Jalur absolut atau relatif ke file JAR driver yang akan digunakan saat terhubung ke sistem sumber. Anda dapat menentukan beberapa file JAR driver, yang memisahkannya dengan koma.
--dry-run atau -n Tampilkan tindakan yang akan dilakukan fitur ekstraksi tanpa menjalankannya.
--help Menampilkan bantuan command line.
--host Nama host atau alamat IP server database yang akan dihubungkan.
--jdbcDriverClass Secara opsional, mengganti nama class driver JDBC yang ditentukan vendor. Gunakan ini jika Anda memiliki klien JDBC kustom.
--output Jalur file ZIP output. Misalnya dir1/dir2/teradata-metadata.zip. Jika Anda tidak menentukan jalur, file output akan dibuat di direktori kerja. Jika Anda menentukan jalur ke direktori, nama file zip default akan dibuat di direktori yang ditentukan. Jika tidak ada, direktori akan dibuat.

Untuk menggunakan Cloud Storage, gunakan format berikut:
gs://<BUCKET>/<PATH>

Untuk melakukan autentikasi menggunakan kredensial Google Cloud, lihat Mengautentikasi untuk menggunakan library klien.

--password Kata sandi yang akan digunakan untuk koneksi database.
--port Port server database.
--save-response-file Menyimpan flag command line dalam file JSON agar mudah digunakan kembali. File ini diberi nama dumper-response-file.json dan dibuat di direktori kerja. Untuk menggunakan file respons, berikan jalur ke file tersebut yang diawali dengan @ saat Anda menjalankan alat ekstraksi, misalnya dwh-migration-dumper @path/to/dumper-response-file.json.
--schema

Daftar skema yang akan diekstrak, dipisahkan dengan koma.

Oracle tidak membedakan antara skema dan pengguna database yang membuat skema, sehingga Anda dapat menggunakan nama skema atau nama pengguna dengan flag --schema. Misalnya --schema schema1,user2,schema3.

--thread-pool-size

Menetapkan ukuran kumpulan thread, yang memengaruhi ukuran kumpulan koneksi. Ukuran default kumpulan thread adalah jumlah inti di server yang menjalankan alat dwh-migration-dumper.

Jika alat ekstraksi tampak lambat atau membutuhkan lebih banyak resource, Anda dapat meningkatkan jumlah thread yang digunakan. Jika terdapat indikasi bahwa proses lain di server memerlukan lebih banyak bandwidth, Anda dapat menurunkan jumlah thread yang digunakan.

--url

URL yang akan digunakan untuk koneksi database, bukan URI yang dihasilkan oleh driver JDBC.

URI yang dihasilkan seharusnya sudah memadai dalam sebagian besar kasus. Hanya ganti URI yang dihasilkan saat Anda perlu menggunakan setelan koneksi JDBC yang khusus untuk platform sumber dan belum ditetapkan oleh salah satu flag yang tercantum dalam tabel ini.

--user Nama pengguna yang akan digunakan untuk koneksi database.
--version Menampilkan versi produk.

Pemecahan masalah

Bagian ini menjelaskan beberapa masalah umum dan teknik pemecahan masalah untuk alat dwh-migration-dumper.

Error kehabisan memori

Error java.lang.OutOfMemoryError dalam output terminal alat dwh-migration-dumper sering kali berkaitan dengan memori yang tidak cukup untuk memproses data yang diambil. Untuk mengatasi masalah ini, tingkatkan memori yang tersedia atau kurangi jumlah thread pemrosesan.

Anda dapat meningkatkan memori maksimum dengan mengekspor variabel lingkungan JAVA_OPTS:

Linux

export JAVA_OPTS="-Xmx4G"

Windows

set JAVA_OPTS="-Xmx4G"

Anda dapat mengurangi jumlah thread pemrosesan (default-nya adalah 32) dengan menyertakan flag --thread-pool-size. Opsi ini hanya didukung untuk konektor hiveql dan redshift*.

dwh-migration-dumper --thread-pool-size=1

Menangani error WARN...Task failed

Terkadang Anda mungkin melihat error WARN [main] o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … dalam output terminal alat dwh-migration-dumper. Alat ekstraksi mengirimkan beberapa kueri ke sistem sumber, dan output setiap kueri ditulis ke filenya sendiri. Jika masalah ini muncul, berarti salah satu kueri ini gagal. Namun, kegagalan satu kueri tidak mencegah eksekusi kueri lainnya. Jika Anda melihat lebih dari beberapa error WARN, tinjau detail masalah dan lihat apakah ada hal yang perlu diperbaiki agar kueri dapat berjalan dengan baik. Misalnya, jika pengguna database yang Anda tentukan saat menjalankan alat ekstraksi tidak memiliki izin untuk membaca semua metadata, coba lagi dengan pengguna yang memiliki izin yang tepat.

File ZIP rusak

Untuk memvalidasi file zip alat dwh-migration-dumper, download file SHA256SUMS.txt dan jalankan perintah berikut:

sha256sum --check SHA256SUMS.txt

Hasil OK mengonfirmasi verifikasi checksum yang berhasil. Pesan lainnya menunjukkan error verifikasi:

  • FAILED: computed checksum did NOT match: file ZIP rusak dan harus didownload lagi.
  • FAILED: listed file could not be read: versi file ZIP tidak dapat ditemukan. Pastikan file checksum dan zip didownload dari versi rilis yang sama dan ditempatkan di direktori yang sama.

Ekstraksi log kueri teradata berjalan lambat

Untuk meningkatkan performa tabel gabungan yang ditentukan oleh flag -Dteradata-logs.query-logs-table dan -Dteradata-logs.sql-logs-table, Anda dapat menyertakan kolom tambahan jenis DATE dalam kondisi JOIN. Kolom ini harus ditentukan dalam kedua tabel dan harus menjadi bagian dari Indeks Utama yang Dipartisi. Untuk menyertakan kolom ini, gunakan flag -Dteradata-logs.log-date-column.

Contoh:

Bash

dwh-migration-dumper \
  -Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV \
  -Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl \
  -Dteradata-logs.log-date-column=ArchiveLogDate

Windows PowerShell

dwh-migration-dumper `
  "-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV" `
  "-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl" `
  "-Dteradata-logs.log-date-column=ArchiveLogDate"

Batas ukuran baris teradata terlampaui

Teradata 15 memiliki batas ukuran baris sebesar 64 kB. Jika batas terlampaui, dumper akan gagal dengan pesan berikut: none [Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

Untuk mengatasi error ini, perpanjang batas baris menjadi 1 MB atau bagi baris menjadi beberapa baris:

  • Instal dan aktifkan fitur Perm dan Response Rows sebesar 1 MB serta software TTU saat ini. Untuk informasi selengkapnya, lihat Pesan Database Teradata 9804
  • Bagi teks kueri panjang menjadi beberapa baris menggunakan tanda -Dteradata.metadata.max-text-length dan -Dteradata-logs.max-sql-length.

Perintah berikut menunjukkan penggunaan flag -Dteradata.metadata.max-text-length untuk membagi teks kueri yang panjang menjadi beberapa baris dengan masing-masing maksimal 10.000 karakter:

Bash

dwh-migration-dumper \
  --connector teradata \
  -Dteradata.metadata.max-text-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata `
  "-Dteradata.metadata.max-text-length=10000"

Perintah berikut menunjukkan penggunaan flag -Dteradata-logs.max-sql-length untuk membagi teks kueri yang panjang menjadi beberapa baris dengan masing-masing maksimal 10.000 karakter:

Bash

dwh-migration-dumper \
  --connector teradata-logs \
  -Dteradata-logs.max-sql-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata-logs `
  "-Dteradata-logs.max-sql-length=10000"

Langkah selanjutnya

Setelah Anda menjalankan alat dwh-migration-dumper, upload output ke Cloud Storage beserta file sumber untuk diterjemahkan.