Format Common Data Model di Azure Data Factory dan Synapse Analytics
BERLAKU UNTUK: Azure Data Factory
Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Sistem metadata Common Data Model (CDM) memungkinkan kita untuk membagikan data dengan mudah di seluruh aplikasi dan proses bisnis. Untuk mempelajari selengkapnya, lihat gambaran umum Common Data Model.
Di alur Azure Data Factory dan Synapse, pengguna dapat mengubah data dari entitas CDM dalam bentuk model.json dan manifes yang disimpan di Azure Data Lake Store Gen2 (ADLS Gen2) menggunakan pemetaan aliran data. Anda juga dapat sink data dalam format CDM menggunakan referensi entitas CDM yang akan menempatkan data Anda dalam format CSV atau Parquet dalam folder yang dipartisi.
Properti pemetaan aliran data
Common Data Model tersedia sebagai himpunan data sebaris dalam pemetaan aliran data sebagai sumber dan sink.
Catatan
Saat menulis entitas CDM, Anda harus memiliki definisi entitas CDM (skema metadata) yang sudah didefinisikan untuk digunakan sebagai referensi. Sink aliran data akan membaca file entitas CDM tersebut dan mengimpor skemanya ke sink Anda untuk pemetaan lapangan.
Properti sumber
Tabel di bawah ini mencantumkan properti yang didukung oleh sumber CDM. Anda bisa mengedit properti ini di tab opsi Sumber.
Nama | Deskripsi | Wajib diisi | Nilai yang diizinkan | Properti skrip aliran data |
---|---|---|---|---|
Format | Format harus berupa cdm |
yes | cdm |
format |
Format metadata | Tempat referensi entitas untuk data berada. Jika menggunakan CDM versi 1.0, pilih manifes. Jika menggunakan versi CDM sebelum 1.0, pilih model.json. | Ya | 'manifest' atau 'model' |
manifestType |
Lokasi akar: kontainer | Nama kontainer folder CDM | yes | String | fileSystem |
Lokasi akar: jalur folder | Lokasi folder akar folder CDM | yes | String | folderPath |
File manifes: Jalur entitas | Jalur folder entitas dalam folder akar | no | String | entityPath |
File manifes: Nama manifes | Nama file manifes. Nilai default adalah 'default' | No | String | manifestName |
Filter menurut terakhir diubah | Pilih untuk memfilter file berdasarkan waktu terakhir file tersebut diubah | no | Tanda Waktu | modifiedAfter modifiedBefore |
Layanan skema tertaut | Layanan tertaut tempat corpus berada | Ya, jika menggunakan manifes | 'adlsgen2' atau 'github' |
corpusStore |
Kontainer referensi entitas | Kontainer corpus ada | Ya, jika menggunakan manifes dan corpus dalam ADLS Gen2 | String | adlsgen2_fileSystem |
Repositori referensi entitas | Nama repositori GitHub | ya, jika menggunakan manifes dan corpus di GitHub | String | github_repository |
Referensi entitas Cabang | Cabang repositori GitHub | ya, jika menggunakan manifes dan corpus di GitHub | String | github_branch |
Folder corpus | lokasi akar corpus | Ya, jika menggunakan manifes | String | corpusPath |
Entitas corpus | Jalur ke referensi entitas | yes | String | entitas |
Izinkan file tidak ditemukan | Jika true, kesalahan tidak akan ditampilkan jika tidak ditemukan file | no | true atau false |
ignoreNoFilesFound |
Saat memilih "Referensi Entitas" baik dalam transformasi Sumber dan Sink, Anda dapat memilih dari tiga opsi ini untuk lokasi referensi entitas Anda:
- Lokal menggunakan entitas yang ditentukan dalam file manifes yang sudah digunakan oleh layanan
- Kustom akan meminta Anda untuk menunjuk ke file manifes entitas yang berbeda dari file manifes yang digunakan layanan
- Standar akan menggunakan referensi entitas dari pustaka standar entitas CDM yang dikelola dalam
GitHub
.
Pengaturan sink
- Arahkan ke file referensi entitas CDM yang berisi definisi entitas yang ingin Anda tulis.
- Tentukan jalur partisi dan format file output yang Anda inginkan untuk digunakan layanan untuk menulis entitas Anda.
- Atur lokasi file output dan lokasi dan nama untuk file manifes.
Mengimpor skema
CDM hanya tersedia sebagai himpunan data sebaris dan secara default tidak memiliki skema terkait. Untuk mendapatkan metadata kolom, klik tombol Impor skema di tab Proyeksi. Hal ini akan memungkinkan Anda untuk mereferensikan nama kolom dan jenis data yang ditentukan oleh corpus. Untuk mengimpor skema, sesi debug aliran data harus aktif dan Anda harus memiliki file definisi entitas CDM yang ada untuk ditunjuk.
Saat memetakan kolom aliran data ke properti entitas dalam transformasi Sink, klik pada tab "Pemetaan" dan pilih "Impor Skema". Layanan akan membaca referensi entitas yang Anda arahkan dalam opsi Sink Anda, dan memungkinkan Anda untuk memetakan ke skema CDM target.
Catatan
Saat menggunakan jenis sumber model.json yang berasal dari aliran data Power BI atau Power Platform, Anda mungkin menemukan kesalahan "jalur corpus null atau kosong" dari transformasi sumber. Hal ini kemungkinan terjadi karena masalah pemformatan jalur lokasi partisi dalam file model.json. Untuk memperbaikinya, ikuti langkah-langkah berikut:
- Buka file model.json di sebuah editor teks
- Temukan properti partitions.Location
- Ubah "blob.core.windows.net" menjadi "dfs.core.windows.net"
- Perbaiki pengkodean "%2F" di URL ke "/"
- Jika menggunakan Aliran Data ADF, Karakter khusus dalam jalur file partisi harus diganti dengan nilai alfa-numerik, atau beralih ke Aliran Data Azure Synapse
Contoh skrip aliran data sumber CDM
source(output(
ProductSizeId as integer,
ProductColor as integer,
CustomerId as string,
Note as string,
LastModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
manifestType: 'manifest',
manifestName: 'ProductManifest',
entityPath: 'Product',
corpusPath: 'Products',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
folderPath: 'ProductData',
fileSystem: 'data') ~> CDMSource
Properti sink
Tabel di bawah ini mencantumkan properti yang didukung oleh sink CDM. Anda dapat mengedit properti ini di tab Pengaturan.
Nama | Deskripsi | Wajib diisi | Nilai yang diizinkan | Properti skrip aliran data |
---|---|---|---|---|
Format | Format harus berupa cdm |
yes | cdm |
format |
Lokasi akar: kontainer | Nama kontainer folder CDM | yes | String | fileSystem |
Lokasi akar: jalur folder | Lokasi folder akar folder CDM | yes | String | folderPath |
File manifes: Jalur entitas | Jalur folder entitas dalam folder akar | no | String | entityPath |
File manifes: Nama manifes | Nama file manifes. Nilai default adalah 'default' | No | String | manifestName |
Layanan skema tertaut | Layanan tertaut tempat corpus berada | yes | 'adlsgen2' atau 'github' |
corpusStore |
Kontainer referensi entitas | Kontainer corpus ada | ya, jika corpus di ADLS Gen2 | String | adlsgen2_fileSystem |
Repositori referensi entitas | Nama repositori GitHub | ya, jika corpus di GitHub | String | github_repository |
Referensi entitas Cabang | Cabang repositori GitHub | ya, jika corpus di GitHub | String | github_branch |
Folder corpus | lokasi akar corpus | yes | String | corpusPath |
Entitas corpus | Jalur ke referensi entitas | yes | String | entitas |
Jalur partisi | Lokasi tempat partisi akan ditulis | no | String | partitionPath |
Menghapus folder | Jika folder tujuan dibersihkan sebelum menulis | no | true atau false |
Memotong |
Jenis format | Pilih untuk menentukan format parquet | no | parquet jika ditentukan |
subformat |
Pemisah Kolom | Jika menulis ke DelimitedText, cara memisah kolom | ya, jika menulis ke DelimitedText | String | columnDelimiter |
Baris pertama sebagai header | Jika menggunakan DelimitedText, apakah nama kolom ditambahkan sebagai header | no | true atau false |
columnNamesAsHeader |
Contoh skrip aliran data sink CDM
Skrip aliran data terkait adalah:
CDMSource sink(allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
entityPath: 'ProductSize',
manifestName: 'ProductSizeManifest',
corpusPath: 'Products',
partitionPath: 'adf',
folderPath: 'ProductSizeData',
fileSystem: 'cdm',
subformat: 'parquet',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CDMSink
Konten terkait
Buat transformasi sumber di pemetaan aliran data.