Babelfish memungkinkan instans ApsaraDB RDS for PostgreSQL Anda memahami pernyataan T-SQL dan menerima koneksi TDS, sehingga Anda dapat menjalankan beban kerja SQL Server di PostgreSQL dengan perubahan kode minimal.
Apa Itu Babelfish
Babelfish untuk ApsaraDB RDS for PostgreSQL didasarkan pada proyek open source Babelfish for PostgreSQL. Aktifkan Babelfish saat membuat instans RDS PostgreSQL untuk mengurai dan mengeksekusi pernyataan T-SQL SQL Server bersamaan dengan kueri PostgreSQL native.
Babelfish mendukung SQL Server Tabular Data Stream (TDS) wire protocol dan T-SQL, the Microsoft SQL Server query language. Anda dapat melakukan migrasi aplikasi SQL Server ke RDS PostgreSQL dengan sedikit perubahan kode, tanpa perlu mengganti driver database atau menulis ulang pernyataan SQL.
Skenario Penggunaan
-
Mengurangi biaya lisensi SQL Server.
-
Memigrasikan dari SQL Server ke PostgreSQL dengan perubahan aplikasi minimal.
-
Mengakses ekstensi PostgreSQL seperti PostGIS untuk analisis spasial dan TimescaleDB untuk data deret waktu.
-
Mendapatkan kemampuan mesin ganda (SQL Server dan PostgreSQL) dengan biaya satu instans.
Arsitektur
Cara Babelfish memproses permintaan SQL:
-
Instans mendengarkan dua port TCP untuk permintaan SQL:
-
TDS Listener: Menerima permintaan SQL pada port TDS. Port default: 1433.
CatatanBabelfish mendukung protokol TDS versi 7.1 dan yang lebih baru (SQL Server 2000+).
-
PostgreSQL Listener: Menerima permintaan SQL pada port PostgreSQL. Port default: 5432.
CatatanApsaraDB RDS for PostgreSQL 15 saat ini didukung.
-
-
Permintaan dari port TDS diteruskan ke parser T-SQL, yang mengonversi T-SQL menjadi rencana eksekusi PostgreSQL.
-
Permintaan dari port PostgreSQL diproses melalui parser PostgreSQL native.
-
Pelaksana PostgreSQL memproses semua rencana eksekusi.
Dengan Babelfish, satu instans RDS PostgreSQL dapat melayani klien SQL Server dan PostgreSQL sekaligus, sehingga mengurangi biaya sekaligus memperluas kemampuan.
Mode Migrasi
Babelfish menyimpan semua objek dan struktur SQL Server yang dimigrasikan dalam database PostgreSQL bernama babelfish_db.
Jika Anda terhubung ke instans melalui port TDS, database babelfish_db tidak akan terlihat.
Pilih mode Single-DB atau Multi-DB. Pilihan Anda memengaruhi skema dan nama database SQL Server di dalam babelfish_db.
Mode Single-DB
-
Arsitektur:

-
Deskripsi: Nama skema dalam babelfish_db langsung sesuai dengan nama skema asli SQL Server.
Contoh: Anda membuat database DB_A melalui port TDS dengan skema schema_A.
-
Di database babelfish_db PostgreSQL, nama skemanya adalah dbo dan schema_A.
-
Di database DB_A SQL Server, nama skemanya adalah dbo dan schema_A.
-
Mode Multi-DB
-
Arsitektur:

-
Deskripsi: Skema PostgreSQL menggunakan format
dbname_schemaname. Nama skema SQL Server tetap tidak berubah.Contoh: Anda membuat database DB_A melalui port TDS dengan skema schema_A.
-
Di database babelfish_db PostgreSQL, nama skemanya adalah DB_A_dbo dan DB_A_schema_A.
-
Di database DB_A SQL Server, nama skemanya adalah dbo dan schema_A.
-
Penagihan
Babelfish tidak menambahkan biaya tambahan pada instans RDS PostgreSQL Anda. Harga bergantung pada wilayah, spesifikasi, dan penyimpanan, sebagaimana tercantum di halaman pembelian ApsaraDB RDS.
Catatan Penggunaan
-
Anda tidak dapat mengaktifkan Babelfish untuk instans ApsaraDB RDS for PostgreSQL yang sudah ada.
-
Setelah Anda mengaktifkan Babelfish, Anda tidak dapat menonaktifkannya.
-
Setelah instans dibuat, sebuah database bernama
babelfish_dbdiinisialisasi. Database ini sangat penting bagi fitur Babelfish. Jangan menghapusnya, karena instans akan menjadi tidak tersedia.