Common Data Model-format i Azure Data Factory och Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Cdm-metadatasystemet (Common Data Model) gör det möjligt för data och dess betydelse att enkelt delas mellan program och affärsprocesser. Mer information finns i Översikt över Common Data Model .

I Azure Data Factory- och Synapse-pipelines kan användare transformera data från CDM-entiteter i både model.json och manifestformulär som lagras i Azure Data Lake Store Gen2 (ADLS Gen2) med hjälp av mappning av dataflöden. Du kan också hämta data i CDM-format med cdm-entitetsreferenser som landar dina data i CSV- eller Parquet-format i partitionerade mappar.

Mappa dataflödesegenskaper

Common Data Model är tillgänglig som en infogad datauppsättning i mappning av dataflöden som både en källa och en mottagare.

Kommentar

När du skriver CDM-entiteter måste du redan ha en befintlig CDM-entitetsdefinition (metadataschema) som ska användas som referens. Dataflödesmottagaren läser den CDM-entitetsfilen och importerar schemat till din mottagare för fältmappning.

Källegenskaper

Tabellen nedan visar de egenskaper som stöds av en CDM-källa. Du kan redigera dessa egenskaper på fliken Källalternativ .

Name beskrivning Obligatoriskt Tillåtna värden Egenskap för dataflödesskript
Format Formatet måste vara cdm ja cdm format
Metadataformat Där entitetsreferensen till data finns. Om du använder CDM version 1.0 väljer du manifest. Om du använder en CDM-version före 1.0 väljer du model.json. Ja 'manifest' eller 'model' manifestType
Rotplats: container Containernamn för CDM-mappen ja String Filesystem
Rotplats: mappsökväg Rotmappens plats för CDM-mappen ja String folderPath
Manifestfil: Entitetssökväg Mappsökväg för entiteten i rotmappen no String entityPath
Manifestfil: Manifestnamn Namnet på manifestfilen. Standardvärdet är "standard" Nej String manifestName
Filtrera efter senast ändrad Välj att filtrera filer baserat på när de senast ändrades no Tidsstämpel modifiedAfter
modifiedBefore
Länkad schematjänst Den länkade tjänst där corpus finns Ja, om du använder manifest 'adlsgen2' eller 'github' corpusStore
Entitetsreferenscontainer Container corpus är i Ja, om du använder manifest och corpus i ADLS Gen2 String adlsgen2_fileSystem
Entitetsreferenslagringsplats GitHub-lagringsplatsnamn Ja, om du använder manifest och corpus i GitHub String github_repository
Entitetsreferensgren GitHub-lagringsplatsgren Ja, om du använder manifest och corpus i GitHub String github_branch
Corpus-mapp rotplatsen för corpus Ja, om du använder manifest String corpusPath
Corpus-entitet Sökväg till entitetsreferens ja String entity
Tillåt att inga filer hittas Om sant utlöses inte ett fel om inga filer hittas no true eller false ignoreNoFilesFound

När du väljer "Entitetsreferens" både i käll- och mottagartransformeringar kan du välja bland dessa tre alternativ för platsen för entitetsreferensen:

  • Lokal använder entiteten som definierats i manifestfilen som redan används av tjänsten
  • Custom ber dig att peka på en entitetsmanifestfil som skiljer sig från manifestfilen som tjänsten använder
  • Standard använder en entitetsreferens från standardbiblioteket för CDM-entiteter som underhålls i GitHub.

Inställningar för mottagare

  • Peka på referensfilen för CDM-entiteten som innehåller definitionen av den entitet som du vill skriva.

entity settings

  • Definiera partitionssökvägen och formatet för de utdatafiler som du vill att tjänsten ska använda för att skriva dina entiteter.

entity format

  • Ange platsen för utdatafilen och platsen och namnet på manifestfilen.

cdm location

Importera schema

CDM är endast tillgängligt som en infogad datauppsättning och har som standard inget associerat schema. Om du vill hämta kolumnmetadata klickar du på knappen Importera schemafliken Projektion . På så sätt kan du referera till kolumnnamnen och datatyperna som anges av corpus. Om du vill importera schemat måste en dataflödesbugingsession vara aktiv och du måste ha en befintlig CDM-entitetsdefinitionsfil att peka på.

När du mappar dataflödeskolumner till entitetsegenskaper i sinktransformeringen klickar du på fliken Mappning och väljer "Importera schema". Tjänsten läser entitetsreferensen som du pekade på i alternativen för mottagare, så att du kan mappa till mål-CDM-schemat.

CDM sink settings

Kommentar

När du använder model.json-källtypen som kommer från Power BI- eller Power Platform-dataflöden kan det uppstå "corpus path is null or empty"-fel från källomvandlingen. Detta beror troligen på formateringsproblem för partitionsplatssökvägen i filen model.json. Åtgärda detta genom att följa dessa steg:

  1. Öppna filen model.json i en textredigerare
  2. Hitta partitionerna. Platsegenskap
  3. Ändra "blob.core.windows.net" till "dfs.core.windows.net"
  4. Åtgärda eventuella %2F-kodningar i URL:en till "/"
  5. Om du använder ADF-Dataflöde måste specialtecken i partitionsfilens sökväg ersättas med alfanumeriska värden eller växla till Azure Synapse Dataflöde s

Exempel på CDM-källdataflödesskript

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

Egenskaper för mottagare

Tabellen nedan visar de egenskaper som stöds av en CDM-mottagare. Du kan redigera dessa egenskaper på fliken Inställningar.

Name beskrivning Obligatoriskt Tillåtna värden Egenskap för dataflödesskript
Format Formatet måste vara cdm ja cdm format
Rotplats: container Containernamn för CDM-mappen ja String Filesystem
Rotplats: mappsökväg Rotmappens plats för CDM-mappen ja String folderPath
Manifestfil: Entitetssökväg Mappsökväg för entiteten i rotmappen no String entityPath
Manifestfil: Manifestnamn Namnet på manifestfilen. Standardvärdet är "standard" Nej String manifestName
Länkad schematjänst Den länkade tjänst där corpus finns ja 'adlsgen2' eller 'github' corpusStore
Entitetsreferenscontainer Container corpus är i Ja, om corpus i ADLS Gen2 String adlsgen2_fileSystem
Entitetsreferenslagringsplats GitHub-lagringsplatsnamn Ja, om corpus i GitHub String github_repository
Entitetsreferensgren GitHub-lagringsplatsgren Ja, om corpus i GitHub String github_branch
Corpus-mapp rotplatsen för corpus ja String corpusPath
Corpus-entitet Sökväg till entitetsreferens ja String entity
Partitionssökväg Plats där partitionen kommer att skrivas no String partitionPath
Rensa mappen Om målmappen rensas före skrivning no true eller false trunkera
Formattyp Välj att ange parquet-format no parquet om det anges underformat
Kolumn avgränsare Om du skriver till Avgränsadtext, hur du avgränsar kolumner Ja, om du skriver till Avgränsadtext String columnDelimiter
Första raden som rubrik Om du använder DelimitedText, om kolumnnamnen läggs till som en rubrik no true eller false columnNamesAsHeader

Exempel på cdm-mottagardataflödesskript

Det associerade dataflödesskriptet är:

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

Skapa en källtransformering i dataflödet för mappning.