Halaman ini berisi informasi tentang:
- Perilaku cara Datastream menangani data yang ditarik dari database SQL Server sumber.
- Metode pengambilan data perubahan (CDC) yang didukung Datastream.
- Versi database SQL Server yang didukung Datastream.
- Batasan yang diketahui untuk menggunakan database SQL Server sebagai sumber.
Perilaku
Datastream melacak perubahan bahasa pengolahan data (DML) menggunakan salah satu metode CDC berikut:
Mengubah tabel
Metode CDC tabel perubahan memungkinkan pengguna menyimpan log untuk waktu yang lebih singkat, sehingga menghemat ruang penyimpanan, tetapi mendukung throughput yang lebih rendah dibandingkan dengan metode log transaksi. Metode ini memiliki lebih sedikit batasan daripada log transaksi. Misalnya, fitur ini menghilangkan risiko pemotongan log yang menyebabkan streaming gagal secara permanen, dan mendukung replikasi tabel terenkripsi. Untuk mengetahui informasi selengkapnya, lihat Batasan umum.
Saat menggunakan metode CDC ini, perubahan pada sumber dilacak menggunakan tabel perubahan khusus. Log transaksi masih digunakan, tetapi dalam batas tertentu, dan Anda tidak perlu menyimpannya dalam jangka waktu yang lebih lama. Saat peristiwa DML diterapkan ke tabel sumber, perubahan direplikasi ke tabel perubahan yang sesuai. Tabel perubahan memiliki struktur yang sama dengan tabel sumber, tetapi dengan kolom tambahan untuk menyertakan metadata perubahan. Hanya transaksi yang di-commit yang ditambahkan ke tabel perubahan, beserta nomor urut log (LSN) dari operasi commit.
Cara Datastream menangani perubahan DDL pada skema sumber
Saat Anda menggunakan metode CDC tabel perubahan, instance pengambilan dibuat untuk setiap tabel perubahan. Setiap instance pengambilan dikaitkan dengan daftar kolom yang diambil dan dilacaknya. Secara default, saat perubahan bahasa definisi data (DDL) terjadi di sumber setelah instance pengambilan dibuat, instance akan mengabaikan perubahan tersebut. Namun, Anda dapat mengonfigurasi streaming SQL Server untuk mereplikasi kolom yang ditambahkan ke skema sumber setelah streaming dan instance pengambilan dibuat.
Sebelum memulai
- Pastikan pengguna Datastream Anda telah diberi izin
db_owner
.
Mereplikasi kolom yang ditambahkan ke skema sumber
Agar Datastream mendukung replikasi kolom yang ditambahkan ke skema sumber setelah aliran dibuat, Anda perlu menambahkan label enable_ddl_support_for_ct
ke aliran:
Buka halaman Streams di Konsol Google Cloud .
Klik aliran SQL Server yang ingin Anda edit.
Di halaman Detail aliran data, klik Jeda.
Klik Edit > Edit setelan streaming.
Klik Tambahkan label.
Di kolom Key, ketik
enable_ddl_support_for_ct
.Di kolom Nilai, ketik
true
.Klik Simpan.
Klik Mulai untuk melanjutkan streaming Anda.
Datastream memeriksa tabel
cdc.ddl_history
untuk DDL baru setiap lima menit. Jika ada kolom baru yang ditambahkan ke tabel yang disertakan dalam konfigurasi streaming, Datastream akan memverifikasi apakah tabel memiliki dua instance pengambilan:
Jika tidak, Datastream akan membuat instance pengambilan baru, membaca data instance pengambilan asli hingga saat DDL terjadi, lalu mulai membaca dari instance pengambilan baru.
Jika ya, entri log akan ditambahkan bahwa perubahan DDL tidak dapat ditangani karena jumlah maksimum instance pengambilan telah tercapai.
Log transaksi
Saat menggunakan metode CDC ini, Datastream membaca perubahan di sumber langsung dari log transaksi. Metode ini memerlukan lebih sedikit resource dan memungkinkan pengambilan data yang lebih cepat, tetapi memiliki lebih banyak batasan.
Untuk mencegah kehilangan data, log tidak boleh dipangkas sebelum Datastream membacanya. Di sisi lain, jika Anda menyimpan file log terlalu lama, file tersebut akan menggunakan ruang penyimpanan, yang pada akhirnya dapat menyebabkan instance database memasuki mode hanya baca.
Untuk memastikan pembaca CDC memiliki waktu yang cukup untuk membaca log sekaligus memungkinkan pemotongan log untuk mengosongkan ruang penyimpanan, Anda perlu menerapkan langkah-langkah konfigurasi tambahan, seperti mengubah interval polling dan menyiapkan pengamanan pemotongan. Langkah-langkah ini memberikan lapisan perlindungan tambahan untuk memastikan Datastream dapat membaca data meskipun terjadi periode nonaktif di sisi Datastream atau masalah konektivitas antara database sumber dan Datastream.
Untuk mengetahui petunjuk mendetail tentang cara menerapkan langkah-langkah tambahan ini, lihat halaman Mengonfigurasi database SQL Server sumber dan pilih jenis database Anda.
Versi
Datastream mendukung versi dan edisi database SQL Server berikut:
- Dikelola sendiri (dihosting di lokal atau cloud) menggunakan versi berikut:
- Enterprise: 2008 dan yang lebih baru
- Standard: 2016 SP1 dan yang lebih baru
- Developer: 2008 dan yang lebih baru
- Amazon RDS for SQL Server
Azure SQL Database (tingkat S3 dan yang lebih tinggi).
Cloud SQL untuk SQL Server
Datastream tidak mendukung versi database SQL Server berikut:
- Edisi SQL Server Standard dari versi 2008 hingga 2014
- SQL Server Express
- SQL Server Web
Batasan umum
Batasan umum saat menggunakan database SQL Server sebagai sumber meliputi:
- Aliran data dibatasi hingga 10.000 tabel.
- Tabel yang memiliki lebih dari 500 juta baris tidak dapat diisi ulang kecuali jika
persyaratan berikut terpenuhi:
- Tabel memiliki indeks unik.
- Tidak ada kolom indeks yang nullable.
- Semua kolom indeks disertakan dalam aliran.
- Database dengan ketahanan tertunda atau pemulihan database yang dipercepat (ADR) diaktifkan tidak didukung.
- Streaming perubahan ke tabel sistem tidak didukung.
- Autentikasi Windows Active Directory (AD) tidak didukung.
- Jenis data berikut tidak didukung, dan tidak direplikasi ke tujuan:
SQL_VARIANT
HIERARCHYID
GEOMETRY
GEOGRAPHY
- Datastream mereplikasi jenis data yang ditentukan pengguna, tetapi jenis data dasar yang Anda dapatkan dari jenis yang ditentukan pengguna yang disimpan di tujuan. Misalnya, jika Anda menentukan jenis data
USERNAME
berdasarkan jenis dataVARCHAR(50)
, data akan disimpan di tujuan sebagaiVARCHAR(50)
. Datastream tidak mendukung CDC untuk kolom objek besar (
TEXT
,NTEXT
,XML
,IMAGE
) dan kolom panjang variabel maksimum (VARCHAR(MAX)
,VARBINARY(MAX)
,NVARCHAR(MAX)
) dalam tabel tanpa indeks unik.Jika kolom objek besar tidak disertakan dalam aliran, CDC didukung.
Datastream tidak mendukung replikasi perubahan skema sumber berikut saat menggunakan metode CDC tabel perubahan:
- Menghapus kolom: data dalam kolom ini diganti dengan nilai
NULL
. - Mengubah jenis data: Datastream mencoba memasukkan data ke tujuan dan memunculkan error jika data ditolak.
- Mengganti nama kolom: tidak didukung untuk SQL Server saat CDC diaktifkan.
Perubahan skema tersebut dapat menyebabkan kerusakan data atau kegagalan memproses peristiwa.
- Menghapus kolom: data dalam kolom ini diganti dengan nilai
Datastream tidak mendukung penyamaran data. Data direplikasi tanpa masking.
Datastream tidak mendukung replikasi perubahan yang diterapkan ke database menggunakan paket Data Tier Application Package (DACPAC).
Datastream tidak mereplikasi perubahan yang dibuat menggunakan pernyataan
WRITETEXT
atauUPDATETEXT
.Datastream tidak mendukung replikasi kolom terkomputasi kecuali jika kolom ditandai
PERSISTED
.Datastream tidak mendukung jenis kompresi
PAGE
,COLUMNSTORE
, atauCOLUMNSTORE ARCHIVE
.
Batasan tambahan saat menggunakan metode log transaksi
Jika Anda menggunakan metode CDC log transaksi, batasan tambahan berikut berlaku:
- Transparent Data Encryption (TDE) tidak didukung.
- Enkripsi Tingkat Kolom tidak didukung. Data dalam kolom ini diganti dengan nilai
NULL
. - Saat menggunakan metode CDC log transaksi, Datastream tidak mendukung replikasi kolom yang ditambahkan ke skema sumber setelah aliran dibuat. Kolom baru tidak direplikasi ke tujuan.
- Datastream tidak mendukung pernyataan
ROLLBACK TO SAVEPOINT
. Peristiwa rollback tersebut diabaikan dan tidak direplikasi ke tujuan. - Datastream tidak mendukung CDC untuk baris yang lebih besar dari 8 KB dalam jenis tabel berikut:
- Tabel tanpa indeks unik
- Tabel yang hanya berisi indeks non-klaster unik dengan satu atau beberapa kolom panjang variabel (
VARCHAR
,VARBINARY
,NVARCHAR
)
Datastream tidak mendukung CDC untuk kolom objek besar (
TEXT
,NTEXT
,XML
,IMAGE
) dalam jenis tabel berikut:- Tabel tanpa indeks unik
- Tabel yang hanya berisi indeks non-klaster unik dengan satu atau beberapa kolom panjang variabel (
VARCHAR
,VARBINARY
,NVARCHAR
)
Jika kolom objek besar tidak disertakan dalam aliran, CDC hanya didukung untuk tabel tersebut jika memiliki indeks yang valid.
Langkah berikutnya
- Pelajari cara mengonfigurasi sumber SQL Server untuk digunakan dengan Datastream.