Menggunakan Babelfish sebagai target untuk AWS Database Migration Service - AWS Layanan Migrasi Database

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Babelfish sebagai target untuk AWS Database Migration Service

Anda dapat memigrasi data dari database sumber Microsoft SQL Server ke target Babelfish menggunakan. AWS Database Migration Service

Babelfish untuk Aurora PostgreSQL memperluas database Edisi Kompatibel Amazon Aurora PostgreSQL Anda dengan kemampuan untuk menerima koneksi database dari klien Microsoft SQL Server. Melakukan hal ini memungkinkan aplikasi awalnya dibangun untuk SQL Server untuk bekerja secara langsung dengan Aurora PostgreSQL dengan beberapa perubahan kode dibandingkan dengan migrasi tradisional, dan tanpa mengubah driver database.

Untuk informasi tentang versi Babelfish yang AWS DMS mendukung sebagai target, lihat. Target untuk AWS DMS Versi Babelfish sebelumnya di Aurora PostgreSQL memerlukan peningkatan sebelum menggunakan titik akhir Babelfish.

catatan

Titik akhir target Aurora PostgreSQL adalah cara yang lebih disukai untuk memigrasi data ke Babelfish. Untuk informasi selengkapnya, lihat Menggunakan Babelfish untuk Aurora PostgreSQL sebagai target.

Untuk informasi tentang penggunaan Babelfish sebagai titik akhir database, lihat Babelfish for Aurora PostgreSQL di Panduan Pengguna Amazon Aurora untuk Aurora

Prasyarat untuk menggunakan Babelfish sebagai target AWS DMS

Anda harus membuat tabel sebelum memigrasi data untuk memastikan bahwa AWS DMS menggunakan tipe data yang benar dan metadata tabel. Jika Anda tidak membuat tabel pada target sebelum menjalankan migrasi, AWS DMS dapat membuat tabel dengan jenis data yang salah dan izin. Misalnya, AWS DMS membuat kolom timestamp sebagai biner (8) sebagai gantinya, dan tidak menyediakan fungsionalitas timestamp/rowversion yang diharapkan.

Untuk mempersiapkan dan membuat tabel Anda sebelum migrasi
  1. Jalankan pernyataan membuat tabel DDL Anda yang mencakup kendala unik, kunci primer, atau kendala default.

    Jangan menyertakan kendala kunci asing, atau pernyataan DDL untuk objek seperti tampilan, prosedur yang disimpan, fungsi, atau pemicu. Anda dapat menerapkannya setelah memigrasi database sumber Anda.

  2. Mengidentifikasi setiap kolom identitas, kolom dihitung, atau kolom yang berisi rowversion atau timestamp jenis data untuk tabel Anda. Kemudian, buat aturan transformasi yang diperlukan untuk menangani masalah yang diketahui saat menjalankan tugas migrasi. Untuk informasi lebih lanjut lihat, Aturan dan tindakan transformasi.

  3. Identifikasi kolom dengan tipe data yang tidak didukung Babelfish. Kemudian, ubah kolom yang terpengaruh di tabel target untuk menggunakan tipe data yang didukung, atau buat aturan transformasi yang menghapusnya selama tugas migrasi. Untuk informasi lebih lanjut lihat, Aturan dan tindakan transformasi.

    Tabel berikut mencantumkan tipe data sumber yang tidak didukung oleh Babelfish, dan jenis data target yang direkomendasikan sesuai untuk digunakan.

    Jenis data sumber

    Tipe data Babelfish yang direkomendasikan

    PUSAKA

    NVARCHAR (250)

    GEOMETRY

    VARCHAR (MAKS)

    GEOGRAPHY

    VARCHAR (MAKS)

Untuk mengatur level unit kapasitas Aurora (ACU) untuk basis data sumber V2 Tanpa Server Aurora PostgreSQL Anda

Anda dapat meningkatkan kinerja tugas AWS DMS migrasi sebelum menjalankannya dengan menetapkan nilai ACU minimum.

Setelah menjalankan tugas AWS DMS migrasi, Anda dapat mengatur ulang nilai minimum ACU Anda ke tingkat yang wajar untuk basis data sumber V2 Tanpa Server Aurora PostgreSQL Anda.

Persyaratan keamanan saat menggunakan Babelfish sebagai target AWS Database Migration Service

Berikut ini menjelaskan persyaratan keamanan untuk digunakan AWS DMS dengan target Babelfish:

  • Nama pengguna administrator (pengguna Admin) yang digunakan untuk membuat database.

  • Login PSQL dan pengguna dengan izin SELECT, INSERT, UPDATE, DELETE, dan REFERENCES yang cukup.

Izin pengguna untuk menggunakan Babelfish sebagai target untuk AWS DMS

penting

Untuk tujuan keamanan, akun pengguna yang digunakan untuk migrasi data harus merupakan pengguna terdaftar dalam database Babelfish apa pun yang Anda gunakan sebagai target.

Titik akhir target Babelfish Anda memerlukan izin pengguna minimum untuk menjalankan migrasi. AWS DMS

Untuk membuat login dan pengguna Transact-SQL (T-SQL) dengan hak istimewa rendah
  1. Buat login dan kata sandi untuk digunakan saat menghubungkan ke server.

    CREATE LOGIN dms_user WITH PASSWORD = 'password'; GO
  2. Buat database virtual untuk klaster Babelfish Anda.

    CREATE DATABASE my_database; GO
  3. Buat pengguna T-SQL untuk database target Anda.

    USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
  4. Untuk setiap tabel dalam database Babelfish Anda, izin GRANT ke tabel.

    GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;

Batasan dalam menggunakan Babelfish sebagai target untuk AWS Database Migration Service

Batasan berikut berlaku saat menggunakan database Babelfish sebagai target untuk: AWS DMS

  • Hanya mode persiapan meja “Do Nothing “yang didukung.

  • Tipe data ROWVERSION memerlukan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama tugas migrasi.

  • Tipe data sql_variant tidak didukung.

  • Mode LOB penuh didukung. Menggunakan SQL Server sebagai titik akhir sumber memerlukan SQL Server Endpoint Connection Atribut pengaturan ForceFullLob=True yang akan ditetapkan agar LOB untuk dimigrasi ke titik akhir target.

  • Pengaturan tugas replikasi memiliki batasan berikut:

    { "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
  • TIME (7), DATETIME2 (7), dan DATETIMEOFFSET (7) tipe data di Babelfish membatasi nilai presisi untuk bagian detik waktu untuk 6 digit. Pertimbangkan untuk menggunakan nilai presisi 6 untuk tabel target Anda saat menggunakan tipe data ini. Untuk Babelfish versi 2.2.0 dan yang lebih tinggi, saat menggunakan TIME (7) dan DATETIME2 (7), digit ketujuh presisi selalu nol.

  • Dalam mode DO_NOTHING, DMS memeriksa untuk melihat apakah tabel sudah ada. Jika tabel tidak ada dalam skema target, DMS membuat tabel berdasarkan definisi tabel sumber, dan memetakan setiap jenis data yang ditetapkan pengguna ke tipe data dasar mereka.

  • Tugas AWS DMS migrasi ke target Babelfish tidak mendukung tabel yang memiliki kolom menggunakan tipe data ROWVERSION atau TIMESTAMP. Anda dapat menggunakan aturan pemetaan tabel yang menghapus nama kolom dari tabel selama proses transfer. Dalam contoh aturan transformasi berikut, tabel bernama Actor dalam sumber Anda diubah untuk menghapus semua kolom dimulai dengan karakter col dari Actor tabel di target Anda.

    { "rules": [{ "rule-type": "selection",is "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
  • Untuk tabel dengan identitas atau kolom yang dihitung, di mana tabel target menggunakan nama kasus campuran seperti Kategori, Anda harus membuat tindakan aturan transformasi yang mengubah nama tabel menjadi huruf kecil untuk tugas DMS Anda. Contoh berikut menunjukkan cara membuat tindakan aturan transformasi, Membuat huruf kecil menggunakan konsol. AWS DMS Untuk informasi selengkapnya, lihat Aturan dan tindakan transformasi.

    Aturan transformasi babelfish
  • Sebelum Babelfish versi 2.2.0, DMS membatasi jumlah kolom yang dapat Anda replikasi ke titik akhir target Babelfish menjadi dua puluh (20) kolom. Dengan Babelfish 2.2.0 batasnya meningkat menjadi 100 kolom. Tetapi dengan Babelfish versi 2.4.0 dan lebih tinggi, jumlah kolom yang dapat Anda replikasi meningkat lagi. Anda dapat menjalankan contoh kode berikut terhadap database SQL Server Anda untuk menentukan tabel yang terlalu panjang.

    USE myDB; GO DECLARE @Babelfish_version_string_limit INT = 8000; -- Use 380 for Babelfish versions before 2.2.0 WITH bfendpoint AS ( SELECT [TABLE_SCHEMA] ,[TABLE_NAME] , COUNT( [COLUMN_NAME] ) AS NumberColumns , ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) AS InsertIntoCommandLength -- values string , CASE WHEN ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) -- values string >= @Babelfish_version_string_limit THEN 1 ELSE 0 END AS IsTooLong FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_SCHEMA], [TABLE_NAME] ) SELECT * FROM bfendpoint WHERE IsTooLong = 1 ORDER BY TABLE_SCHEMA, InsertIntoCommandLength DESC, TABLE_NAME ;

Tipe data target untuk Babelfish

Tabel berikut menunjukkan tipe data target Babelfish yang didukung saat menggunakan AWS DMS dan pemetaan default dari AWS DMS tipe data.

Untuk informasi tambahan tentang tipe data AWS DMS, lihat Tipe data untuk AWS Database Migration Service.

Tipe data AWS DMS

Tipe data babelfish

BOOLEAN

TINYINT

BYTES

VARBINARY(length)

TANGGAL

DATE

TIME

WAKTU

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIK

NUMERIK (p, s)

REAL4

REAL

REAL8

FLOAT

STRING

Jika kolom berupa kolom tanggal atau waktu, lakukan hal berikut:

  • Untuk SQL Server 2008 dan yang lebih tinggi, gunakan DATETIME2.

  • Untuk versi sebelumnya, jika skalanya 3 atau kurang, gunakan DATETIME. Selain itu gunakan VARCHAR (37).

Jika kolom bukan berupa kolom tanggal atau waktu, gunakan VARCHAR (length).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR (panjang)

BLOB

VARBINARY(max)

Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan gumpalan untuk tugas tertentu. DMS mendukung tipe data BLOB hanya dalam tabel yang menyertakan kunci primer.

CLOB

VARCHAR(max)

Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan CLOB untuk tugas tertentu.

NCLOB

NVARCHAR(max)

Untuk menggunakan tipe data ini dengan DMS, Anda harus mengaktifkan penggunaan NCLOB untuk tugas tertentu. Selama CDC, DMS mendukung tipe data NCLOB hanya dalam tabel yang menyertakan kunci primer.