Format Common Data Model di Azure Data Factory

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

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 Azure Data Factory, 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 Azure Data Factory akan membaca file entitas CDM tersebut dan mengimpor skemanya ke sink Anda untuk pemetaan lapangan.

Properti Sumber Data

Tabel di bawah ini mencantumkan properti yang didukung oleh sumber CDM. Anda bisa mengedit properti ini di tab opsi Sumber.

Nama Deskripsi Diperlukan Nilai yang diizinkan Properti skrip aliran data
Format Format harus berupa cdm ya 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 ya String fileSystem
Lokasi akar: jalur folder Lokasi folder akar folder CDM ya String folderPath
File manifes: Jalur entitas Jalur folder entitas dalam folder akar tidak String entityPath
File manifes: Nama manifes Nama file manifes. Nilai default adalah 'default' Tidak Untai (karakter) manifestName
Filter menurut terakhir diubah Pilih untuk memfilter file berdasarkan waktu terakhir kali file diubah tidak 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 Untai (karakter) adlsgen2_fileSystem
Repositori referensi entitas Nama repositori GitHub ya, jika menggunakan manifes dan corpus di GitHub Untai (karakter) github_repository
Referensi entitas Cabang Cabang repositori GitHub ya, jika menggunakan manifes dan corpus di GitHub Untai (karakter) github_branch
Folder corpus lokasi akar corpus Ya, jika menggunakan manifes Untai (karakter) corpusPath
Entitas corpus Jalur ke referensi entitas ya Untai (karakter) entitas
Izinkan file tidak ditemukan Jika true, kesalahan tidak akan ditampilkan jika tidak ditemukan file tidak 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 Azure Data Factory
  • Kustom akan meminta Anda untuk menunjuk ke file manifes entitas yang berbeda dari file manifes yang digunakan Azure Data Factory
  • 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.

pengaturan entitas

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

format entitas

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

lokasi cdm

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 untuk ditunjuk.

Saat memetakan kolom aliran data ke properti entitas dalam transformasi Sink, klik pada tab "Pemetaan" dan pilih "Impor Skema". Azure Data Factory akan membaca referensi entitas yang Anda arahkan dalam opsi Sink Anda, dan memungkinkan Anda untuk memetakan ke skema CDM target.

Pengaturan sink CDM

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 bisa mengedit properti ini di tab Pengaturan.

Nama Deskripsi Diperlukan Nilai yang diizinkan Properti skrip aliran data
Format Format harus berupa cdm ya cdm format
Lokasi akar: kontainer Nama kontainer folder CDM ya String fileSystem
Lokasi akar: jalur folder Lokasi folder akar folder CDM ya String folderPath
File manifes: Jalur entitas Jalur folder entitas dalam folder akar tidak String entityPath
File manifes: Nama manifes Nama file manifes. Nilai default adalah 'default' Tidak Untai (karakter) manifestName
Layanan skema tertaut Layanan tertaut tempat corpus berada ya 'adlsgen2' atau 'github' corpusStore
Kontainer referensi entitas Kontainer corpus ada ya, jika corpus di ADLS Gen2 Untai (karakter) adlsgen2_fileSystem
Repositori referensi entitas Nama repositori GitHub ya, jika corpus di GitHub Untai (karakter) github_repository
Referensi entitas Cabang Cabang repositori GitHub ya, jika corpus di GitHub Untai (karakter) github_branch
Folder corpus lokasi akar corpus ya Untai (karakter) corpusPath
Entitas corpus Jalur ke referensi entitas ya Untai (karakter) entitas
Jalur partisi Lokasi tempat partisi akan ditulis tidak Untai (karakter) partitionPath
Bersihkan folder Jika folder tujuan dibersihkan sebelum menulis tidak true atau false truncate
Jenis format Pilih untuk menentukan format parquet tidak parquet jika ditentukan subformat
Pemisah Kolom Jika menulis ke DelimitedText, cara memisah kolom ya, jika menulis ke DelimitedText Untai (karakter) columnDelimiter
Baris pertama sebagai header Jika menggunakan DelimitedText, apakah nama kolom ditambahkan sebagai header tidak 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

Langkah berikutnya

Buat transformasi sumber di pemetaan aliran data.