Ruang kerja konversi membantu Anda mengonversi skema dan objek dari database sumber ke dalam sintaksis SQL yang kompatibel dengan database tujuan. Halaman ini memberikan ringkasan ruang kerja konversi Database Migration Service:
Ringkasan konversi memberikan penampang progres konversi skema Anda.
Objek yang didukung oleh konversi skema dan kode deterministik mencantumkan objek Oracle yang didukung untuk konversi skema deterministik.
Editor SQL interaktif menjelaskan objek yang dapat Anda ubah langsung di editor ruang kerja konversi.
Fitur konversi yang didukung Gemini membahas cara Anda dapat mengintegrasikan dukungan AI generatif untuk mempercepat proses konversi skema.
Bagian File pemetaan konversi memberikan ringkasan tentang petunjuk penyesuaian yang dapat Anda gunakan untuk mengganti aturan konversi skema deterministik.
Ruang kerja konversi lama menjelaskan ruang kerja lama yang tidak memberikan dukungan untuk editor SQL interaktif.
Ada jenis data tertentu yang tidak didukung untuk migrasi Oracle. Untuk mengetahui informasi selengkapnya, lihat Batasan yang diketahui untuk jenis data.
Ringkasan progres konversi
Informasi ringkasan yang kuat di ruang kerja konversi, tempat Anda dapat memperoleh insight tentang jumlah total masalah konversi yang belum terselesaikan atau telah diselesaikan, peningkatan yang dibantu Gemini, dan performa umum proses konversi Anda.


Anda dapat menggunakan tampilan ini untuk memfilter objek dalam skema menurut jenis, tingkat keparahan masalah, tindakan yang diperlukan, atau status konversi.


Untuk mengetahui informasi selengkapnya tentang cara menggunakan ringkasan konversi untuk memeriksa hasil konversi, lihat Bekerja dengan ruang kerja konversi.
Konversi kode dan skema deterministik
Saat Anda membuat ruang kerja konversi, Database Migration Service akan segera melakukan konversi skema awal menggunakan serangkaian aturan konversi deterministik yang memetakan jenis data dan objek Oracle tertentu ke jenis data dan objek PostgreSQL tertentu. Proses ini mendukung subkumpulan objek database Oracle yang sangat spesifik.
Konversi kode deterministik memberikan dukungan untuk objek database Oracle berikut:
Elemen skema Oracle yang didukung
- Batasan
- Indeks (hanya indeks yang dibuat dalam skema yang sama dengan tabelnya)
- Tampilan Terwujud
- Jenis Objek (dukungan sebagian)
- Urutan
- Sinonim
- Tabel
- Dilihat
Elemen kode Oracle yang didukung
- Pemicu (khusus tingkat tabel)
- Paket
- Functions
- Prosedur Tersimpan
Editor SQL interaktif
Editor SQL interaktif memungkinkan Anda mengubah sintaksis PostgreSQL yang dikonversi secara langsung di Database Migration Service. Anda dapat menggunakannya untuk memperbaiki masalah konversi atau menyesuaikan skema agar lebih sesuai dengan kebutuhan Anda. Beberapa objek tidak dapat diubah di editor bawaan.
Objek Oracle yang dapat diedit
Setelah mengonversi kode dan skema database sumber, Anda dapat menggunakan editor interaktif untuk mengubah SQL yang dihasilkan untuk jenis objek tertentu. Objek Oracle berikut didukung oleh editor:
- Pemicu tabel (memerlukan izin)
- Tampilan terwujud
- Paket
- Fungsi, prosedur tersimpan
- Sinonim
- Dilihat
- Batasan
- Indeks
- Urutan
Selain itu, beberapa objek dikonversi tetapi tidak tersedia untuk diedit secara langsung di dalam Database Migration Service. Untuk mengubah objek tersebut, Anda harus melakukan update langsung di database tujuan setelah Anda menerapkan skema dan kode yang dikonversi.
Objek yang tidak didukung untuk pengeditan:
- Jenis objek yang ditentukan pengguna
- Tabel
- Skema
Mempercepat konversi kode dan skema dengan Gemini
Database Migration Service mengintegrasikan Gemini untuk Google Cloud ke dalam ruang kerja konversi untuk membantu Anda mempercepat dan meningkatkan proses konversi di area berikut:
Tingkatkan hasil konversi deterministik dengan konversi otomatis yang didukung Gemini untuk memanfaatkan kecanggihan AI guna mengurangi secara signifikan jumlah penyesuaian manual yang diperlukan dalam kode PostgreSQL Anda.
Menyediakan fitur penjelasan kode dengan asisten konversi: serangkaian perintah khusus yang dapat membantu Anda lebih memahami logika konversi, menyarankan perbaikan untuk masalah konversi, atau mengoptimalkan kode yang dikonversi.
Percepat penerapan perbaikan untuk masalah konversi dengan saran konversi kode Gemini: mekanisme yang memungkinkan model Gemini belajar saat Anda memperbaiki masalah konversi dan menyarankan perubahan pada objek rusak lainnya di ruang kerja.
Untuk mengetahui informasi selengkapnya tentang konversi yang didukung Gemini, lihat halaman berikut:
File pemetaan konversi
Anda dapat menyesuaikan logika konversi dengan file pemetaan konversi. File pemetaan konversi adalah file teks yang berisi petunjuk yang tepat (disebut sebagai petunjuk konversi) tentang cara mengonversi objek Oracle menjadi objek PostgreSQL.
Arahan konversi yang didukung
Database Migration Service mendukung direktif konversi berikut untuk file pemetaan konversi:
EXPORT_SCHEMA
EXPORT_SCHEMA
adalah direktif wajib untuk semua file pemetaan konversi. Database Migration Service memerlukan petunjuk ini untuk memastikan
bahwa skema sumber Anda dikonversi ke skema tujuan yang benar.
Pastikan file pemetaan konversi Anda menyertakan baris ini:
EXPORT_SCHEMA 1
SCHEMA
Database Migration Service harus dapat menentukan skema mana yang berisi
objek yang harus diubah dengan perintah konversi Anda.
Direktif SCHEMA
menghasilkan penyesuaian berikut pada alur konversi:
- Database Migration Service hanya mengonversi skema ini. Jika Anda perlu mengonversi skema lain dalam satu ruang kerja konversi, Anda harus mengupload beberapa file dengan skema yang berbeda.
- Semua petunjuk penyesuaian lainnya yang diberikan dalam file Anda hanya berlaku untuk objek dalam skema tertentu ini.
Gunakan format berikut:
SCHEMA SCHEMA_NAME
Dengan SCHEMA_NAME adalah nama skema Anda dalam database sumber.
- Jika Anda menyertakan direktif ini dalam file pemetaan konversi, semua penyesuaian hanya diterapkan ke objek yang ada dalam skema tertentu ini. Jika ingin menyesuaikan objek dalam skema lain, Anda harus membuat beberapa file pemetaan konversi dan menguploadnya ke ruang kerja konversi.
- Jika Anda melewati petunjuk ini, Anda harus memberikan nama skema eksplisit untuk objek yang diubah oleh petunjuk konversi lainnya.
Misalnya, daripada menggunakan
SOURCE_TABLE_NAME
untukREPLACE_TABLES
, Anda harus menggunakan"SCHEMA_NAME.SOURCE_TABLE_NAME"
.
DATA_TYPE
Anda dapat menggunakan direktif ini untuk memetakan secara eksplisit jenis data yang didukung antara sintaksis Oracle dan PostgreSQL. Petunjuk ini
mengharapkan daftar pemetaan yang dipisahkan dengan koma. Seluruh definisi harus
disediakan dalam satu baris, tetapi Anda menyertakan beberapa direktif DATA_TYPE
dalam file konfigurasi. Gunakan format berikut:
DATA_TYPE ORACLE_DATA_TYPE1:PGSQL_DATA_TYPE1 DATA_TYPE ORACLE_DATA_TYPE2:PGSQL_DATA_TYPE2...
Dengan ORACLE_DATA_TYPE dan PGSQL_DATA_TYPE adalah jenis data yang didukung oleh versi Oracle dan PostgreSQL yang Anda gunakan dalam migrasi. Untuk mengetahui informasi tentang versi yang didukung, lihat Ringkasan skenario.
Contoh:
DATA_TYPE REAL:double precision,SMALLINT:integer
Untuk mengetahui informasi selengkapnya tentang jenis data Oracle dan PostgreSQL, lihat:
- Jenis data Oracle dalam dokumentasi Oracle.
- Jenis data PostgreSQL dalam dokumentasi PostgreSQL.
MODIFY_TYPE
Dengan direktif MODIFY_TYPE
, Anda dapat mengontrol jenis data yang dikonversi oleh Database Migration Service untuk kolom tertentu dalam tabel sumber.
Petunjuk ini mengharapkan daftar pemetaan yang dipisahkan dengan koma.
Seluruh definisi harus diberikan dalam satu baris, tetapi Anda menyertakan
beberapa direktif MODIFY_TYPE
dalam file konfigurasi.
Gunakan format berikut:
MODIFY_TYPE SOURCE_TABLE_NAME1:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE MODIFY_TYPE SOURCE_TABLE_NAME2:COLUMN_NAME:EXPECTED_END_RESULT_DATA_TYPE...
Dengan:
- SOURCE_TABLE_NAME adalah nama tabel yang berisi kolom tempat Anda ingin mengubah jenis data.
- COLUMN_NAME adalah nama kolom yang pemetaan konversinya ingin Anda sesuaikan.
- EXPECTED_END_RESULT_DATA_TYPE adalah jenis data PostgreSQL yang ingin Anda gunakan untuk kolom yang dikonversi.
Contoh:
MODIFY_TYPE events:dates_and_times:DATETIME,users:pseudonym:TEXT
PG_INTEGER_TYPE
Secara default,Database Migration Service mengonversi jenis NUMBER(p,s)
ke jenis DECIMAL(p,s)
PostgreSQL.
Anda dapat mengubah perilaku ini dengan direktif PG_INTEGER_TYPE
. Tetapkan nilainya ke 1
dan paksa semua jenis
NUMBER
dengan presisi dan skala (NUMBER(p,s)
)
dikonversi menjadi jenis smallint
, integer
, atau bigint
PostgreSQL berdasarkan jumlah digit presisi.
Sertakan setelan berikut dalam file pemetaan konversi Anda:
PG_INTEGER_TYPE 1
PG_NUMERIC_TYPE
Tetapkan direktif ini ke 1
jika Anda ingin mengonversi semua jenis
NUMBER
dengan presisi dan skala (NUMBER(p,s)
)
ke jenis real
atau float
PostgreSQL (berdasarkan jumlah digit presisinya).
Jika Anda menetapkan direktif ini ke 0
, nilai NUMBER(p,s)
akan mempertahankan nilai aslinya yang tepat dan menggunakan jenis data
PostgreSQL internal.
Sertakan setelan berikut dalam file pemetaan konversi Anda:
PG_NUMERIC_TYPE 1
DEFAULT_NUMERIC
Konversi default untuk NUMBER
s tanpa presisi
mengubah apakah Anda juga menggunakan
PG_INTEGER_TYPE
direktif:
- Jika Anda menggunakan direktif
PG_INTEGER
,NUMBER
tanpa presisi akan dikonversi menjadi nilaiDECIMAL
. - Jika Anda tidak menggunakan direktif
PG_INTEGER
,NUMBER
tanpa presisi akan dikonversi menjadi nilaiBIGINT
.
Anda dapat mengubah perilaku ini dan menggunakan direktif DEFAULT_NUMERIC
untuk menentukan jenis data yang harus digunakan untuk
jenis NUMBER
tanpa titik presisi yang ditentukan.
Gunakan format berikut:
DEFAULT_NUMERIC POSTGRESQL_NUMERIC_DATA_TYPE
Dengan POSTGRESQL_NUMERIC_DATA_TYPE adalah salah satu dari
berikut: integer
, smallint
, bigint
.
Contoh:
DEFAULT_NUMERIC integer
REPLACE_COLS
Anda dapat menggunakan perintah REPLACE_COLS
untuk mengganti nama kolom
dalam skema yang dikonversi. Petunjuk ini mengharapkan daftar pemetaan yang dipisahkan dengan koma.
Gunakan format berikut:
REPLACE_COLS SOURCE_TABLE_NAME1(SOURCE1_TABLE1_COLUMN_NAME1:DESTINATION_TABLE1_COLUMN_NAME1,SOURCE_TABLE1_COLUMN_NAME2:DESTINATION_TABLE1_COLUMN_NAME2),SOURCE_TABLE_NAME2(SOURCE_TABLE2_COLUMN_NAME1:DESTINATION_TABLE2_COLUMN_NAME1,SOURCE_TABLE2_COLUMN_NAME2:DESTINATION_TABLE2_COLUMN_NAME2)...
Dengan:
- SOURCE_TABLE_NAME adalah nama tabel yang berisi kolom yang namanya ingin Anda ubah.
- SOURCE_COLUMN_NAME adalah nama kolom di sumber yang ingin Anda ubah namanya.
- DESTINATION_COLUMN_NAME adalah nama baru untuk kolom yang ingin Anda gunakan dalam skema yang dikonversi.
Contoh:
REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
REPLACE_TABLES
Anda dapat menggunakan direktif REPLACE_TABLES
untuk mengganti nama tabel
atau memindahkannya ke skema baru. Direktif ini mengharapkan daftar
pemetaan yang dipisahkan dengan spasi. Untuk mengetahui informasi selengkapnya tentang sintaksis untuk
setiap kasus penggunaan, luaskan bagian berikut.
Mengganti nama tabel
Untuk mengganti nama tabel dalam skema yang dikonversi, gunakan format berikut:
REPLACE_TABLES SOURCE_TABLE_NAME1:DESTINATION_TABLE_NAME1 SOURCE_TABLE_NAME2:DESTINATION_TABLE_NAME2
Dengan:
- SOURCE_TABLE_NAME adalah nama tabel sumber yang ingin Anda ganti namanya dalam skema yang dikonversi.
- DESTINATION_TABLE_NAME adalah nama baru untuk tabel yang ingin Anda gunakan dalam skema yang dikonversi.
Contoh:
REPLACE_TABLES "events:login_events" "users:platform_users"
Memindahkan tabel antar-skema
Anda dapat menggunakan direktif ini untuk memindahkan tabel antar-skema dengan menambahkan awalan skema ke nama tabel baru. Mekanisme ini dapat digunakan terlepas dari cara Anda menggunakan direktif SCHEMA untuk seluruh file konversi. Contoh:
REPLACE_TABLES "events:NEW_SCHEMA_NAME.login_events"
Alias untuk menyesuaikan jenis data
Saat menggunakan direktif konversi untuk mengubah cara Database Migration Service mengonversi berbagai jenis data (misalnya, dengan direktif
DATA_TYPE
,
MODIFY_TYPE
, atau
PG_NUMERIC_TYPE
), Anda dapat menggunakan
alias, bukan jenis data SQL sumber.
Luaskan bagian berikut untuk melihat daftar alias jenis data yang didukung oleh Database Migration Service.
Alias jenis data
Alias | Dikonversi ke jenis PostgreSQL |
---|---|
bigint , int8 |
BIGINT |
bool , boolean |
BOOLEAN |
bytea |
BYTEA |
char , character |
CHAR |
character varying , varchar |
VARCHAR |
date |
DATE |
decimal , numeric |
DECIMAL |
double precision , float8 |
DOUBLE PRECISION |
real , float4 |
REAL |
int , integer , int4 |
INTEGER |
int2 |
SMALLINT |
interval |
INTERVAL |
json |
JSON |
smallint |
SMALLINT |
text |
TEXT |
time |
TIME |
timestamp |
TIMESTAMP |
timestamptz |
TIMESTAMPTZ |
timetz |
TIMETZ |
uuid |
UUID |
XML |
XML |
Contoh file pemetaan konversi
Lihat contoh file pemetaan konversi berikut yang menggunakan semua direktif konversi skema yang didukung:
EXPORT_SCHEMA 1 SCHEMA root PG_NUMERIC_TYPE 0 PG_INTEGER_TYPE 1 DEFAULT_NUMERIC integer DATA_TYPE NUMBER(4\,0):integer MODIFY_TYPE events:dates_and_times:TIMESTAMP REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname) REPLACE_TABLES events:login_events users:platform_users
Hasil penggunaan file ini adalah sebagai berikut:
EXPORT_SCHEMA 1
adalah perintah wajib.SCHEMA root
menghasilkan penyesuaian berikut pada alur konversi:- Database Migration Service hanya melakukan konversi untuk entity dalam
skema
root
. Tidak ada skema lain yang dikonversi. - Semua petunjuk penyesuaian lainnya dalam file ini hanya berlaku untuk
kolom dan jenis data yang ditentukan dalam skema
root
.
- Database Migration Service hanya melakukan konversi untuk entity dalam
skema
PG_INTEGER_TYPE 1
membuat Database Migration Service mengonversi semua jenis data numerik Oracle yang ditemukan dalam tabel di skemaroot
menjadi jenis khusus PostgreSQL, bukan jenis numerik yang kompatibel dengan ANSI.DEFAULT_NUMERIC
menyebabkan Database Migration Service mengonversi nilaiNUMBER
yang tidak memiliki titik presisi yang ditentukan menjadi jenisINTEGER
PostgreSQL. Hal ini hanya berlaku untuk nilaiNUMBER
yang ditemukan dalam tabel di skemaroot
.DATA_TYPE NUMBER(4\,0):integer
menyebabkan Database Migration Service mengonversi nilaiNUMBER(4,0)
tertentu keINTEGER
PostgreSQL.- Direktif
MODIFY_TYPE
menyebabkan Database Migration Service mengonversi data di kolomdates_and_times
dalam tabel sumberevents
secara khusus ke jenisDATETIME
PostgreSQL, terlepas dari format kolom sumber yang sebenarnya. REPLACE_COLS events(dates_and_times:event_dates),users(pseudonym:nickname)
membuat Database Migration Service mengganti nama kolom berikut dalam skema yang dikonversi:- Kolom
dates_and_times
dalam tabelevents
sumber diganti namanya menjadievent_dates
dalam tabel yang sama dalam skema yang dikonversi. - Kolom
pseudonym
dalam tabelusers
sumber diganti namanya menjadinickname
dalam tabel yang sama dalam skema yang dikonversi.
events
danusers
dalam skemaroot
.- Kolom
REPLACE_TABLES events:login_events users:platform_users
mengganti nama tabel berikut dalam skema yang dikonversi:- Tabel
events
diganti namanya menjadilogin_events
. - Tabel
users
diganti namanya menjadiplatform_users
.
events
danusers
dalam skemaroot
.- Tabel
Ruang kerja konversi lama
Ruang kerja konversi lama adalah jenis ruang kerja konversi yang lebih lama dan lebih terbatas. Ruang kerja konversi lama tidak mendukung fitur konversi yang ditingkatkan Gemini atau editor SQL interaktif. Anda hanya dapat menggunakannya untuk mengonversi skema sumber dengan alat migrasi Ora2Pg.
Sebaiknya jangan gunakan jenis ruang kerja konversi lama untuk migrasi Anda. Jika skenario Anda memerlukan penggunaan ruang kerja konversi lama, lihat Bekerja dengan ruang kerja konversi lama.
Langkah berikutnya
Untuk mempelajari cara menggunakan ruang kerja konversi, lihat: