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 | nej | 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 | nej | 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 | nej | 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.
- 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.
- Ange platsen för utdatafilen och platsen och namnet på manifestfilen.
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 schema på fliken 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.
Kommentar
När du använder model.json källtyp 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 sannolikt på formateringsproblem för partitionsplatssökvägen i model.json-filen. Åtgärda detta genom att följa dessa steg:
- Öppna filen model.json i en textredigerare
- Hitta partitionerna. Platsegenskap
- Ändra "blob.core.windows.net" till "dfs.core.windows.net"
- Åtgärda eventuella %2F-kodningar i URL:en till "/"
- Om du använder ADF-dataflöden måste specialtecken i partitionsfilens sökväg ersättas med alfanumeriska värden eller växla till Azure Synapse Data Flows
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 de här egenskaperna 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 | nej | 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 | nej | String | partitionPath |
Rensa mappen | Om målmappen rensas före skrivning | nej | true eller false |
trunkera |
Formattyp | Välj att ange parquet-format | nej | 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 | nej | 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
Relaterat innehåll
Skapa en källtransformering i dataflödet för mappning.