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' Tidak 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.

entity settings

  • Tentukan jalur partisi dan format file output yang Anda inginkan untuk digunakan layanan untuk menulis entitas Anda.

entity format

  • Atur lokasi file output dan lokasi dan nama untuk file manifes.

cdm location

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.

CDM sink settings

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:

  1. Buka file model.json di sebuah editor teks
  2. Temukan properti partitions.Location
  3. Ubah "blob.core.windows.net" menjadi "dfs.core.windows.net"
  4. Perbaiki pengkodean "%2F" di URL ke "/"
  5. 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' Tidak 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

Buat transformasi sumber di pemetaan aliran data.