Bagikan melalui


Mengubah Pengambilan Data di penyimpanan analitik Azure Cosmos DB

BERLAKU UNTUK: Nosql MongoDB

Mengubah penangkapan data (CDC) di penyimpanan analitik Azure Cosmos DB memungkinkan Anda untuk secara efisien menggunakan umpan berkelanjutan dan bertambah bertahap dari data yang diubah (dimasukkan, diperbarui, dan dihapus) dari penyimpanan analitis. Terintegrasi tanpa hambatan dengan Azure Synapse dan Azure Data Factory, ini memberi Anda pengalaman tanpa kode yang dapat diskalakan untuk volume data tinggi. Karena fitur pengambilan data perubahan didasarkan pada penyimpanan analitis, fitur ini tidak menggunakan RU yang disediakan, tidak memengaruhi beban kerja transaksional Anda, memberikan latensi yang lebih rendah, dan memiliki TCO yang lebih rendah.

Fitur ubah pengambilan data di penyimpanan analitik Azure Cosmos DB dapat menulis ke berbagai sink menggunakan aliran data Azure Synapse atau Azure Data Factory.

Diagram of the analytical store in Azure Cosmos DB and how it, with change data capture, can write to various first and third-party target services.

Untuk informasi selengkapnya tentang jenis sink yang didukung dalam aliran data pemetaan, lihat jenis sink yang didukung aliran data.

Selain menyediakan umpan data inkremental dari penyimpanan analitik ke target yang beragam, penangkapan data perubahan mendukung kemampuan berikut:

  • Mendukung pengambilan penghapusan dan pembaruan perantara
  • Kemampuan untuk memfilter umpan perubahan untuk jenis operasi tertentu (Sisipkan | Penghapusan | Pembaruan | TTL)
  • Mendukung penerapan filter, proyeksi, dan transformasi pada umpan Perubahan melalui kueri sumber
  • Beberapa umpan perubahan pada kontainer yang sama dapat dikonsumsi secara bersamaan
  • Setiap perubahan dalam kontainer muncul tepat sekali dalam umpan pengambilan data perubahan, dan titik pemeriksaan dikelola secara internal untuk Anda
  • Perubahan dapat disinkronkan "dari awal" atau "dari tanda waktu tertentu" atau "dari sekarang"
  • Tidak ada batasan sekeliling periode retensi data tetap yang perubahannya tersedia

Penangkapan data inkremental yang efisien dengan titik pemeriksaan yang dikelola secara internal

Setiap perubahan dalam kontainer Cosmos DB muncul tepat sekali di umpan CDC, dan titik pemeriksaan dikelola secara internal untuk Anda. Ini membantu mengatasi kerugian di bawah ini dari pola umum menggunakan titik pemeriksaan kustom berdasarkan nilai "_ts":

  • Filter "_ts" diterapkan terhadap file data yang tidak selalu menjamin pemindaian data minimal. Titik pemeriksaan berbasis GLSN yang dikelola secara internal dalam kemampuan CDC baru memastikan bahwa identifikasi data inkremental dilakukan, hanya berdasarkan metadata sehingga menjamin pemindaian data minimal di setiap aliran.

  • Proses sinkronisasi penyimpanan analitis tidak menjamin urutan berbasis "_ts" yang berarti bahwa mungkin ada kasus di mana "_ts" rekaman bertahas lebih rendah dari "_ts" terakhir yang ditunjukkan dan dapat dilewatkan dalam aliran bertahas. CDC baru tidak mempertimbangkan "_ts" untuk mengidentifikasi rekaman inkremental dan dengan demikian menjamin bahwa tidak ada catatan inkremental yang terlewatkan.

Fitur

Mengubah pengambilan data di penyimpanan analitik Azure Cosmos DB mendukung fitur utama berikut.

Mengambil perubahan dari awal

Start from beginning Saat opsi dipilih, beban awal menyertakan rekam jepret lengkap data kontainer dalam eksekusi pertama, dan data yang diubah atau bertambah bertahap diambil dalam eksekusi berikutnya. Ini dibatasi oleh properti dan dokumen yang analytical TTL dihapus TTL dari penyimpanan analitik tidak termasuk dalam umpan perubahan. Contoh: Bayangkan kontainer dengan diatur ke 31536000 detik, yang setara dengan analytical TTL 1 tahun. Jika Anda membuat proses CDC untuk kontainer ini, hanya dokumen yang lebih baru dari 1 tahun yang akan disertakan dalam beban awal.

Menangkap perubahan dari tanda waktu tertentu

Start from timestamp Saat opsi dipilih, beban awal memproses data dari tanda waktu yang diberikan, dan data bertambah bertahas atau diubah diambil dalam eksekusi berikutnya. Proses ini juga dibatasi analytical TTL oleh properti.

Mengambil perubahan dari sekarang

Start from timestamp Saat opsi dipilih, semua operasi kontainer sebelumnya tidak diambil.

Menangkap penghapusan, pembaruan perantara, dan TTL

Fitur ubah pengambilan data untuk penyimpanan analitik menangkap penghapusan, pembaruan perantara, dan operasi TTL. Penghapusan dan pembaruan yang diambil dapat diterapkan pada Sink yang mendukung operasi penghapusan dan pembaruan. Nilai {_rid} secara unik mengidentifikasi rekaman dan sebagainya dengan menentukan {_rid} sebagai kolom kunci di sisi Sink, operasi pembaruan dan penghapusan akan tercermin pada Sink.

Perhatikan bahwa operasi TTL dianggap sebagai penghapusan. Periksa bagian pengaturan sumber untuk memeriksa detail mode dan dukungan untuk pembaruan perantara dan penghapusan di sink.

Memfilter umpan perubahan untuk jenis operasi tertentu

Anda dapat memfilter umpan tangkapan data perubahan untuk jenis operasi tertentu. Misalnya, Anda dapat secara selektif mengambil operasi sisipkan dan perbarui saja, sehingga mengabaikan operasi penghapusan pengguna dan penghapusan TTL.

Menerapkan filter, proyeksi, dan transformasi pada umpan Perubahan melalui kueri sumber

Anda dapat secara opsional menggunakan kueri sumber untuk menentukan filter, proyeksi, dan transformasi, yang semuanya akan didorong ke penyimpanan analitik kolom. Berikut adalah sampel kueri sumber yang hanya akan mengambil rekaman bertahas dengan filter Category = 'Urban'. Contoh kueri ini hanya memproyeksikan lima bidang dan menerapkan transformasi sederhana:

SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c 
WHERE Category = 'Urban'

Beberapa proses CDC

Anda dapat membuat beberapa proses untuk menggunakan CDC di penyimpanan analitis. Pendekatan ini menghadirkan fleksibilitas untuk mendukung skenario dan persyaratan yang berbeda. Meskipun satu proses mungkin tidak memiliki transformasi data dan beberapa sink, satu lagi dapat meratakan data dan satu sink. Dan mereka dapat berjalan secara paralel.

Isolasi throughput, latensi yang lebih rendah, dan TCO yang lebih rendah

Operasi di penyimpanan analitik Cosmos DB tidak menggunakan RU yang disediakan sehingga tidak memengaruhi beban kerja transaksional Anda. Ubah tangkapan data dengan penyimpanan analitik juga memiliki latensi yang lebih rendah dan TCO yang lebih rendah. Latensi yang lebih rendah dikaitkan dengan penyimpanan analitik yang memungkinkan paralelisme yang lebih baik untuk pemrosesan data dan mengurangi keseluruhan TCO yang memungkinkan Anda mendorong efisiensi biaya dalam kondisi ekonomi yang bergeser dengan cepat ini.

Skenario

Berikut adalah skenario umum di mana Anda dapat menggunakan penangkapan data perubahan dan penyimpanan analitik.

Mengonsumsi data bertahap dari Cosmos DB

Anda dapat menggunakan pengambilan data perubahan penyimpanan analitis, jika saat ini Anda menggunakan atau berencana menggunakan:

  • Penangkapan data bertahap menggunakan Aliran Data Azure Data Factory atau aktivitas Salin.
  • Satu kali pemrosesan batch menggunakan Azure Data Factory.
  • Streaming data Cosmos DB
    • Penyimpanan analitik memiliki latensi hingga 2 menit untuk menyinkronkan data penyimpanan transaksional. Anda dapat menjadwalkan Aliran Data di Azure Data Factory setiap menit.
    • Jika Anda perlu melakukan streaming tanpa latensi di atas, sebaiknya gunakan fitur umpan perubahan penyimpanan transaksional.
  • Menangkap penghapusan, perubahan bertahap, menerapkan filter pada Data Cosmos DB.
    • Jika Anda menggunakan pemicu Azure Functions atau opsi lain dengan umpan perubahan dan ingin mengambil penghapusan, perubahan bertahap, menerapkan transformasi, dll.; sebaiknya ubah pengambilan data melalui penyimpanan analitis.

Umpan inkremental ke platform analitik pilihan Anda

Kemampuan penangkapan data perubahan memungkinkan solusi analitik end-to-end yang memberi Anda fleksibilitas untuk menggunakan data Azure Cosmos DB dengan salah satu jenis sink yang didukung. Untuk informasi selengkapnya tentang jenis sink yang didukung, lihat jenis sink yang didukung aliran data. Mengubah penangkapan data juga memungkinkan Anda membawa data Azure Cosmos DB ke dalam data lake terpusat dan menggabungkan data dengan data dari sumber beragam lainnya. Anda dapat meratakan data, mempartisinya, dan menerapkan lebih banyak transformasi baik di Azure Synapse Analytics atau Azure Data Factory.

Mengubah pengambilan data pada kontainer Azure Cosmos DB for MongoDB

Antarmuka layanan tertaut untuk API untuk MongoDB belum tersedia dalam aliran data Azure Data Factory. Anda dapat menggunakan API untuk titik akhir akun MongoDB dengan antarmuka layanan tertaut Azure Cosmos DB for NoSQL sebagai pekerjaan hingga layanan tertaut Mongo didukung secara langsung.

Di antarmuka untuk layanan tertaut NoSQL baru, pilih Masukkan Secara Manual untuk memberikan informasi akun Azure Cosmos DB. Di sini, gunakan titik akhir dokumen NoSQL akun (Contoh: https://<account-name>.documents.azure.com:443/) alih-alih titik akhir Mongo DB (Contoh: mongodb://<account-name>.mongo.cosmos.azure.com:10255/)

Langkah berikutnya