Tanya Jawab Azure Synapse Link for Dataverse

Artikel ini memberikan informasi tentang pertanyaan yang sering diajukan tentang cara mengekspor data tabel Microsoft Dataverse ke Azure Synapse Analytics dan Azure data lake.

Dapatkah saya melakukan tugas secara manual seperti membuat, memperbarui, menghapus, atau mengatur kebijakan penghapusan otomatis untuk file data di penyimpanan Azure yang terhubung?

File data tidak boleh dimodifikasi oleh pelanggan dan tidak ada file pelanggan yang boleh ditempatkan di folder data.

Catatan

Untuk menjatuhkan data basi dan stagnan di data lake tanpa merusak Azure Synapse Link, pertimbangkan untuk menggunakan fitur Query dan analisis pembaruan inkremental

Bagaimana cara mengakses tabel Relasi?

Untuk mengakses Relasi banyak-ke-banyak, relasi tersedia sebagai tabel untuk dipilih dari halaman Tambahkan tabel untuk tautkan baru dan dari Kelola tabel untuk tautkan yang sudah ada sebelumnya.

Catatan

Semua data Relasi berada dalam mode Hanya Tambahkan secara default saat ditulis dalam format CSV.

Azure Synapse Link adalah fitur gratis dengan Dataverse. Menggunakan Azure Synapse Link for Dataverse tidak dikenakan biaya tambahan di bawah Dataverse. Namun, pertimbangkan potensi biaya untuk layanan Azure:

Apa yang terjadi saat saya menambahkan kolom?

Saat Anda menambahkan kolom baru ke tabel di sumber, kolom tersebut juga ditambahkan di akhir file di tujuan di partisi file yang sesuai. Meskipun baris yang ada sebelum penambahan kolom tidak ditampilkan di kolom baru, baris baru atau yang diperbarui menampilkan kolom yang baru ditambahkan.

Apa yang terjadi saat saya menghapus kolom?

Saat Anda menghapus kolom dari tabel di sumber, kolom tidak dihapus dari tujuan. Sebagai gantinya, baris tidak diperbarui lagi dan ditandai sebagai nihil saat mempertahankan baris sebelumnya.

Apa yang terjadi jika saya mengubah jenis data pada kolom?

Mengubah tipe data kolom adalah perubahan yang melanggar dan Anda perlu membatalkan tautan dan menautkan ulang.

Apa yang terjadi saat saya menghapus baris?

Menghapus baris ditangani secara berbeda berdasarkan pilihan penulisan data yang dipilih:

  • Pembaruan di tempat dengan format CSV: Ini adalah mode default. Saat Anda menghapus baris tabel dalam mode ini, baris juga dihapus dari partisi data yang sesuai di Azure Data Lake. Dengan kata lain, data dihapus secara fisik dari tujuan.
  • Hanya tambahkan dengan format CSV dan pembaruan folder inkremental: Dalam mode ini, saat Dataverse baris tabel dihapus, baris tersebut tidak dihapus secara paksa dari tujuan. Sebagai gantinya, baris ditambahkan dan diatur sesuai dengan isDeleted=True file di partisi data yang sesuai di Azure Data Lake.
  • Ekspor ke format Delta lake: Azure Synapse Link melakukan penghapusan sementara pada data selama siklus sinkronisasi delta berikutnya, diikuti dengan penghapusan permanen setelah 30 hari.

Mengapa saya tidak melihat header kolom dalam file yang diekspor?

Azure Synapse Link mengikuti Model Data Umum untuk memungkinkan data dan artinya dibagikan di seluruh aplikasi dan proses bisnis seperti Microsoft Power Apps, Power BI, Dynamics 365, dan Azure. Di setiap folder CDM, metadata seperti header kolom disimpan dalam file model.json. Informasi lebih lanjut: Common Data Model dan Azure Data Lake Storage Gen2 | Microsoft Learn

Mengapa file Model.json bertambah atau berubah panjangnya untuk tipe data dan tidak menyimpan apa yang didefinisikan Dataverse?

Model.json mempertahankan panjang database untuk ukuran kolom. Dataverse memiliki konsep panjang database untuk setiap kolom. Jika Anda membuat kolom dengan ukuran 200 dan kemudian menguranginya menjadi 100, masih Dataverse memungkinkan data yang ada untuk hadir Dataverse. Itu dilakukan dengan menjaga DBLength 200 dan MaxLength 100. Apa yang Anda lihat di Model.json adalah DBLength dan jika Anda menggunakannya untuk proses hilir, Anda tidak akan pernah provisi ruang yang lebih sedikit untuk kolom Anda Dataverse .

Catatan

Bidang memo didefinisikan sebagai dengan varchar(max) panjang maksimum default 9999.

Format tanggal dan waktu apa yang dapat diharapkan dalam tabel Dataverse yang diekspor?

Ada tiga Format tanggal dan waktu apa yang dapat diharapkan dalam tabel Dataverse yang diekspor.

Nama Kolom Format Jenis Data Contoh
SinkCreatedOn dan SinkModifiedOn M/d/yyyy H:mm:ss tt datetime 6/28/2021 4:34:35 PM
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
Semua Kolom lain yyyy-MM-dd'T'HH:mm:ss'Z' datetime 2021-06-25T16:21:12Z

Catatan

CreatedOn diubah dari datetime menjadi pada datetimeOffset 29/07/2022. Untuk mengedit format tipe data untuk tabel yang dibuat sebelum perubahan, lepaskan dan tambahkan kembali tabel.

Anda dapat memilih perilaku kolom yang berbeda untuk kolom Tanggal dan Waktu di, Dataverse yang memperbarui format tipe data. Informasi lebih lanjut: Perilaku dan format kolom Tanggal dan Waktu

Mengapa saya melihat nama file 1.csv atau 1_001.csv alih-alih nama file yang dipartisi tanggal waktu reguler untuk beberapa Dataverse tabel?

Perilaku ini diharapkan saat Anda memilih mode ekspor khusus tambahan dan memiliki tabel tanpa kolom CreatedOn yang valid . Blob diatur ke dalam file seperti 1.csv, 2.csv (menggunakan partisi kustom karena tidak adanya tanggal pembuatan yang valid). Ketika partisi mendekati 95% dari MaxBlockPerBlobLimit, sistem secara otomatis menghasilkan file baru—diilustrasikan di sini sebagai 1_001.csv.

Kapan saya harus menggunakan strategi partisi tahunan atau bulanan?

Untuk tabel Dataverse dengan volume data tinggi dalam setahun, sebaiknya gunakan partisi bulanan. Melakukannya akan menghasilkan file yang lebih kecil dan kinerja yang lebih baik. Selain itu, jika baris dalam Dataverse tabel sering diperbarui, pemisahan menjadi beberapa file yang lebih kecil membantu meningkatkan performa dalam kasus skenario pembaruan di tempat. Delta Lake hanya tersedia dengan partisi tahunan karena kinerjanya yang unggul dibandingkan dengan format CSV.

Apa yang dimaksud dengan mode tambahkan saja dan apa perbedaan antara mode tambahkan saja dan mode pembaruan di tempat?

Dalam mode hanya menambahkan, data inkremental dari Dataverse tabel ditambahkan ke partisi file yang sesuai di danau. Untuk informasi lebih lanjut: Opsi Konfigurasi Lanjutan di Azure Synapse Link

Kapan saya menggunakan mode tambahkan saja untuk tampilan historis perubahan?

Mode Lampirkan saja merupakan pilihan yang disarankan untuk menulis data tabel Dataverse ke lake, terutama bila volume data tinggi dalam partisi dengan data yang sering berubah. Sekali lagi, ini adalah pilihan yang umum digunakan dan sangat direkomendasikan untuk pelanggan perusahaan. Selain itu, Anda dapat memilih untuk menggunakan mode ini untuk skenario yang bermaksud untuk secara inkremental meninjau perubahan dari Dataverse dan memproses perubahan untuk skenario ETL, AI, dan ML. Mode Lampirkan saja memberikan riwayat perubahan, bukan perubahan terbaru atau pembaruan di tempat, dan mengaktifkan beberapa rangkaian waktu dari skenario AI, seperti prediksi atau analitik peramalan berdasarkan nilai historis.

Bagaimana cara mengambil baris terbaru dari setiap rekaman dan mengecualikan baris yang dihapus saat saya mengekspor data dalam mode hanya menambahkan?

Dalam mode hanya menambahkan, Anda harus mengidentifikasi versi terbaru rekaman dengan ID yang sama menggunakan VersionNumber dan SinkModifiedOn kemudian menerapkan isDeleted=0 pada versi terbaru.

Mengapa saya melihat nomor versi duplikat saat saya mengekspor data menggunakan mode hanya tambahkan?

Untuk mode tambahkan saja, jika Azure Synapse Link for Dataverse tidak mendapatkan pengakuan dari data lake Azure bahwa data telah dilakukan karena alasan apa pun seperti penundaan jaringan, Azure Synapse Link akan mencoba lagi dalam skenario tersebut dan menerapkan data lagi. Konsumsi hilir harus dibuat tangguh terhadap skenario ini dengan memfilter data menggunakan SinkModifiedOn.

Mengapa saya melihat perbedaan dalam kolom Sinkmodifiedon dan Modifiedon?

Itu diharapkan. Modifiedon adalah tanggalwaktu rekaman yang diubah Dataverse; Sinkmodifiedon adalah tanggal dan waktu rekaman dimodifikasi di data lake.

Tabel mana yang Dataverse tidak didukung untuk ekspor?

Tabel apa pun yang tidak mengaktifkan pelacakan perubahan tidak didukung selain tabel sistem berikut:

  • Lampiran
  • Kalender
  • Calendarrule

Catatan

Anda dapat menambahkan tabel audit untuk ekspor menggunakan Azure Synapse Link for Dataverse. Namun, ekspor tabel audit hanya didukung dengan profil Delta Lake.

Saya menggunakan fitur ekspor ke delta lake, dapatkah saya menghentikan Apache Spark pekerjaan atau mengubah waktu eksekusi?

Pekerjaan konversi Delta Lake dipicu ketika ada perubahan data dalam interval waktu yang dikonfigurasi. Tidak ada opsi untuk menghentikan atau menjeda Apache Spark kumpulan. Namun, Anda dapat mengubah interval waktu setelah pembuatan tautkan di bawah Kelola tabel > Interval Waktu Tingkat Lanjut.

Kolom pencarian terdiri dari ID dan nilai. Nilai pencarian hanya berubah pada tabel akar. Untuk lebih mencerminkan nilai kolom pencarian, sebaiknya gabungkan dengan tabel akar asli untuk mendapatkan nilai terbaru.

Dalam Dataverse, kolom terhitung hanya menyimpan informasi rumus dan nilai sebenarnya tergantung pada kolom tabel dasar. Jadi kolom terhitung hanya didukung jika semua kolom berada dalam tabel yang diekspor yang sama.

Tabel mana yang Dataverse menggunakan mode hanya tambahkan secara default?

Semua tabel yang tidak memiliki bidang createdOn disinkronkan menggunakan mode hanya tambahkan secara default. Ini termasuk tabel relasi dan tabel ActivityParty.

Mengapa saya melihat pesan kesalahan - Konten direktori di jalur tidak dapat dicantumkan?

  • Dataverse Data disimpan dalam wadah penyimpanan yang terhubung. Anda memerlukan peran "Kontributor Data Blob Penyimpanan" di akun penyimpanan tertaut untuk melakukan operasi baca dan kueri melalui Synapse Workspace.
  • Jika Anda memilih untuk mengekspor data dengan format Delta Lake, file CSV Anda akan dibersihkan setelah konversi Delta Lake. Anda perlu mengkueri data dengan tabel non_partitioned melalui Synapse Workspace.

Mengapa saya melihat pesan kesalahan - tidak dapat memuat secara massal karena file tidak lengkap atau tidak dapat dibaca (hanya file CSV)?

Data Dataverse dapat terus berubah terus-menerus melalui membuat, memperbarui, dan menghapus transaksi. Kesalahan ini disebabkan oleh file yang mendasarinya diubah saat Anda membaca data darinya. Jadi, untuk tabel dengan perubahan berkelanjutan, ubah alur konsumsi Anda untuk menggunakan data snapshot (tabel yang dipartisi) untuk dikonsumsi. Informasi selengkapnya: Memecahkan masalah kumpulan SQL tanpa server

Azure Synapse Link for Dataverse dirancang untuk tujuan analitik. Sebaiknya pelanggan menggunakan retensi jangka panjang untuk tujuan pengarsipan. Informasi lebih lanjut: Dataverse Gambaran umum retensi data jangka panjang

Mengapa saya tidak melihat perubahan data apa pun di data lake saat rekaman telah dihapus Dataverse?

Untuk panggilan SQL langsung apa pun untuk menghapus rekaman, Azure Synapse Link for Dataverse layanan tidak memicu karena BPO. Hapus tidak dipanggil. Untuk fitur sampel, buka Cara membersihkan akses yang diwariskan.