Datastream mendukung replikasi peristiwa perubahan dari instance Microsoft Dataverse. Dataverse adalah platform data berbasis cloud yang memungkinkan Anda menyimpan dan mengelola data yang digunakan oleh aplikasi bisnis secara aman.
Halaman ini berisi informasi tentang:
- Istilah utama yang perlu Anda pahami saat mereplikasi dari Dataverse.
- Perilaku cara Datastream menangani data yang ditarik dari lingkungan Dataverse sumber.
- Versi Dataverse yang didukung Datastream.
- Batasan yang diketahui untuk menggunakan Dataverse sebagai sumber.
Istilah utama
Dataverse beroperasi menggunakan konsep berikut:
- Tabel, yang sebelumnya merupakan entitas, mirip dengan tabel dalam database relasional. Dataverse menyertakan tabel standar secara default, tetapi Anda juga dapat membuat tabel kustom.
- Kolom, yang sebelumnya disebut field, adalah atribut tabel, dan serupa dengan kolom dalam database relasional.
- Baris adalah kumpulan data tertentu dalam tabel, dan mirip dengan baris dalam database relasional.
Perilaku
Dukungan sumber Dataverse di Datastream mengandalkan Dataverse Web API, yang menggunakan Open Data Protocol (OData). Datastream melakukan polling untuk perubahan sumber berdasarkan interval yang Anda tetapkan.
Saat mereplikasi data dari sumber Dataverse, perilaku berikut diamati:
- Interaksi API: Datastream berinteraksi dengan Dataverse Web API menggunakan permintaan RESTful. URL lingkungan dasar adalah
https://ORGANIZATION_ID.crm.dynamics.com/api/data/v9.1/. Header standar (Accept: application/json,OData-MaxVersion: 4.0,OData-Version: 4.0) digunakan. - Autentikasi: Datastream menangani autentikasi menggunakan OAuth 2.0 dengan jenis pemberian kredensial klien. Datastream mendapatkan token dari Microsoft Identity Platform.
Penemuan skema: Skema Dataverse bersifat dinamis. Datastream menemukan nama dan skema objek dengan membuat kueri ke endpoint
/EntityDefinitions.- Nama objek: Datastream mengambil nama objek dengan mengirimkan
permintaan
GETke jalur set entitas/EntityDefinitionsdengan filter$filter=TableType ne 'Virtual' and IsPrivate eq falsedan parameter$select=EntitySetName. - Skema objek: Datastream mengambil skema objek
per-entitas dengan mengirimkan permintaan
GETke jalur set entitas/EntityDefinitionsdengan parameter$expand=Attributes($select=LogicalName,AttributeType,AttributeTypeName)dan filter$filter=EntitySetName eq '[objectName]'.
- Nama objek: Datastream mengambil nama objek dengan mengirimkan
permintaan
Replikasi data:
- Datastream mereplikasi tabel Dataverse standar dan kustom. Tidak termasuk tabel virtual dan pribadi.
- Pengisian ulang historis: jika dikonfigurasi untuk aliran, Datastream
mereplikasi semua data historis untuk tabel yang disertakan. Hal ini dilakukan dengan
mengirim permintaan
GETawal ke set entitas dan melakukan iterasi di semua halaman menggunakan properti@odata.nextLinkyang diberikan dalam respons API. HeaderPrefer: odata.maxpagesize=5000digunakan. - Sinkronisasi inkremental: Datastream mereplikasi peristiwa penyisipan dan pembaruan. Hal ini dicapai dengan menggunakan sinkronisasi berbasis stempel waktu,
memfilter data yang kolom
modifiedon-nya lebih besar dari waktu sinkronisasi terakhir ($filter=modifiedon gt [last_sync_timestamp]). Datastream tidak merekam peristiwa penghapusan.
Interval polling: Datastream melakukan polling untuk mencari perubahan sesuai dengan interval polling yang Anda tetapkan saat membuat aliran. Interval ini tercermin dalam metrik keaktualan data aliran.
Semua objek yang direplikasi mendukung sinkronisasi inkremental, menggunakan kolom modifiedon, dan pengisian ulang lengkap.
Versi
Datastream menggunakan Dataverse Web API versi v9.1.
Batasan umum
Batasan yang diketahui untuk menggunakan Dataverse sebagai sumber meliputi:
- Metode sinkronisasi inkremental, berdasarkan stempel waktu
modifiedon, tidak merekam peristiwa penghapusan. - Datastream tidak mendukung fitur pelacakan perubahan yang direkomendasikan Dataverse yang menggunakan link delta (
@odata.deltaLink). Hal ini karena penyimpanan URL link delta yang diperlukan untuk penarikan inkremental berikutnya tidak didukung. - Replikasi terbatas pada tabel standar dan kustom. Tabel virtual dan pribadi tidak didukung.
- Pembaruan kolom
modifiedonyang akurat di tabel sumber sangat penting untuk memastikan sinkronisasi inkremental berfungsi seperti yang diharapkan. - Untuk mengambil label untuk kolom
Picklist, permintaan data harus menyertakan headerPrefer: data.include-annotations="*", bukan hanya nilai bilangan bulat.
Langkah berikutnya
- Pelajari cara mengonfigurasi sumber Dataverse untuk digunakan dengan Datastream.