formát Common Data Model ve Azure Data Factory a Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF se můžou upgradovat na Fabric pro přístup k novým funkcím napříč datovými vědami, analýzami v reálném čase a vytvářením sestav.

Systém metadat Common Data Model (CDM) umožňuje snadno sdílet data a jeho význam napříč aplikacemi a obchodními procesy. Další informace najdete v přehledu Common Data Model.

V kanálech Azure Data Factory a Synapse můžou uživatelé transformovat data z entit CDM v model.json i ve formuláři manifestu uloženém v Azure Data Lake Store Gen2 (ADLS Gen2) pomocí mapování toků dat. Data ve formátu CDM můžete také potopit pomocí odkazů na entity CDM, které přidají vaše data ve formátu CSV nebo Parquet v dělených složkách.

Mapování vlastností toku dat

Common Data Model je k dispozici jako datová sada inline při mapování toků dat jako zdroj i jímka.

Poznámka:

Při psaní entit CDM musíte mít již definovanou existující definici entity CDM (schéma metadat), která se má použít jako odkaz. Jímka toku dat přečte soubor entity CDM a naimportuje schéma do jímky pro mapování polí.

Poznámka:

Při použití CDM se službou Change Data Capture (CDC) v tocích dat se zjistí aktualizace pomocí přístupu CDC založeného na souborech řízeným časovými razítky poslední změny souboru.

Vlastnosti zdroje

Následující tabulka uvádí vlastnosti podporované zdrojem CDM. Tyto vlastnosti můžete upravit na kartě Možnosti zdroje.

Název Popis Povinní účastníci Povolené hodnoty Vlastnost skriptu toku dat
Formát Formát musí být cdm ano cdm format
Formát metadat Kde se nachází odkaz na entitu na data. Pokud používáte CDM verze 1.0, zvolte manifest. Pokud používáte verzi CDM před verzí 1.0, zvolte model.json. Ano 'manifest' nebo 'model' manifestType
Kořenové umístění: kontejner Název kontejneru složky CDM ano String fileSystem
Kořenové umístění: cesta ke složce Umístění kořenové složky složky CDM ano String folderPath
Soubor manifestu: Cesta k entitě Cesta ke složce entity v kořenové složce ne String entityPath
Soubor manifestu: Název manifestu Název souboru manifestu. Výchozí hodnota je výchozí. No String manifestName
Filtrovat podle poslední změny Zvolte filtrování souborů na základě toho, kdy byly naposledy změněny. ne Časové razítko modifiedAfter
modifiedBefore
Propojená služba schématu Propojená služba, kde se nachází korpus Ano, pokud používáte manifest 'adlsgen2' nebo 'github' corpusStore
Kontejner odkazů na entity Korpus kontejneru je v Ano, pokud používáte manifest a korpus v ADLS Gen2. String adlsgen2_fileSystem
Referenční úložiště entit název úložiště GitHub Ano, pokud používáte manifest a korpus v GitHub String github_repository
Referenční větev entity větev úložiště GitHub Ano, pokud používáte manifest a korpus v GitHub String github_branch
Složka Korpusu kořenové umístění korpusu Ano, pokud používáte manifest String corpusPath
Entita korpusu Cesta k odkazu na entitu ano String entita
Povolit žádné nalezené soubory Pokud je pravda, chyba se nevyvolá, pokud se nenašly žádné soubory. ne true nebo false ignoreNoFilesFound

Při výběru odkazu na entitu v transformacích Zdroj i Jímka můžete vybrat z těchto tří možností pro umístění odkazu na entitu:

  • Místní používá entitu definovanou v souboru manifestu, který už služba používá.
  • Vlastní vás vyzve k odkazování na soubor manifestu entity, který se liší od souboru manifestu, který služba používá.
  • Standard bude používat odkaz na entitu ze standardní knihovny entit CDM udržovaných v GitHub.

Nastavení jímky

  • Nasměrujte na referenční soubor entity CDM, který obsahuje definici entity, kterou chcete napsat.

nastavení entity

  • Definujte cestu k oddílu a formát výstupních souborů, které má služba používat k zápisu entit.

formát entity

  • Nastavte umístění výstupního souboru a umístění a název souboru manifestu.

umístění cdm

Import schématu

CDM je k dispozici pouze jako vložená datová sada a ve výchozím nastavení nemá přidružené schéma. Pokud chcete získat metadata sloupců, klikněte na tlačítko Importovat schéma na kartě Projekce . To vám umožní odkazovat na názvy sloupců a datové typy určené korpusem. K importu schématu musí být aktivní ladicí relace toku dat a musíte mít existující definiční soubor entity CDM, na který má odkazovat.

Při mapování sloupců toku dat na vlastnosti entity v transformaci jímky klikněte na kartu Mapování a vyberte Importovat schéma. Služba přečte odkaz na entitu, na kterou jste odkazovali v možnostech jímky, což vám umožní namapovat na cílové schéma CDM.

Nastavení jímky CDM

Poznámka:

Při použití model.json zdrojového typu, který pochází z toků dat Power BI nebo Power Platform, může dojít k chybám "cesta k souboru je null nebo prázdná" z transformace zdroje. Důvodem je pravděpodobně problémy s formátováním cesty k umístění oddílu v souboru model.json. Pokud chcete tento problém vyřešit, postupujte takto:

  1. Otevření souboru model.json v textovém editoru
  2. Najděte oddíly. Location – vlastnost
  3. Změňte blob.core.windows.net na dfs.core.windows.net.
  4. Oprava jakéhokoli kódování %2F v adrese URL na /
  5. Pokud používáte toky dat ADF, musí být speciální znaky v cestě k souboru oddílu nahrazeny alfačíselnými hodnotami nebo přepnout na Azure Synapse toky dat.

Příklad skriptu toku dat zdroje 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

Vlastnosti jímky

Následující tabulka uvádí vlastnosti podporované jímkou CDM. Tyto vlastnosti můžete upravit na kartě Nastavení .

Název Popis Povinní účastníci Povolené hodnoty Vlastnost skriptu toku dat
Formát Formát musí být cdm ano cdm format
Kořenové umístění: kontejner Název kontejneru složky CDM ano String fileSystem
Kořenové umístění: cesta ke složce Umístění kořenové složky složky CDM ano String folderPath
Soubor manifestu: Cesta k entitě Cesta ke složce entity v kořenové složce ne String entityPath
Soubor manifestu: Název manifestu Název souboru manifestu. Výchozí hodnota je výchozí. No String manifestName
Propojená služba schématu Propojená služba, kde se nachází korpus ano 'adlsgen2' nebo 'github' corpusStore
Kontejner odkazů na entity Korpus kontejneru je v Jo, pokud korpus v ADLS Gen2 String adlsgen2_fileSystem
Referenční úložiště entit název úložiště GitHub Jo, pokud korpus v GitHub String github_repository
Referenční větev entity větev úložiště GitHub Jo, pokud korpus v GitHub String github_branch
Složka Korpusu kořenové umístění korpusu ano String corpusPath
Entita korpusu Cesta k odkazu na entitu ano String entita
Cesta k oddílu Umístění, kam se oddíl zapíše ne String partitionPath
Vymazání složky Pokud je cílová složka před zápisem vymazána. ne true nebo false zkrátit
Typ formátu Volba pro určení formátu parquet ne parquet pokud je zadáno podformulář
Oddělovač sloupců Pokud píšete do oddělovače Textu, jak oddělovat sloupce Ano, pokud zápis do oddělovače String columnDelimiter
První řádek jako záhlaví Pokud používáte oddělovač, zda se názvy sloupců přidají jako záhlaví. ne true nebo false columnNamesAsHeader

Příklad skriptu toku dat jímky CDM

Přidružený skript toku dat je:

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

Vytvoření transformace zdroje při mapování toku dat