Common Data Model-indeling in Azure Data Factory en Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Met het CDM-metagegevenssysteem (Common Data Model) kunnen gegevens en de betekenis ervan eenvoudig worden gedeeld tussen toepassingen en bedrijfsprocessen. Zie het overzicht van Common Data Model voor meer informatie.
In Azure Data Factory- en Synapse-pijplijnen kunnen gebruikers gegevens van CDM-entiteiten transformeren in zowel model.json als manifestformulieren die zijn opgeslagen in Azure Data Lake Store Gen2 (ADLS Gen2 ) met behulp van toewijzingsgegevensstromen. U kunt ook gegevens in CDM-indeling sinken met behulp van CDM-entiteitsverwijzingen waarmee uw gegevens in CSV- of Parquet-indeling in gepartitioneerde mappen terechtkomen.
Eigenschappen van toewijzingsgegevensstroom
Common Data Model is beschikbaar als een inlinegegevensset in toewijzingsgegevensstromen als bron en sink.
Notitie
Bij het schrijven van CDM-entiteiten moet u een bestaande DEFINITIE van een CDM-entiteit (metagegevensschema) hebben die al is gedefinieerd voor gebruik als verwijzing. De gegevensstroomsink leest dat CDM-entiteitsbestand en importeert het schema in uw sink voor veldtoewijzing.
Broneigenschappen
De onderstaande tabel bevat de eigenschappen die worden ondersteund door een CDM-bron. U kunt deze eigenschappen bewerken op het tabblad Bronopties .
Name | Beschrijving | Vereist | Toegestane waarden | Eigenschap gegevensstroomscript |
---|---|---|---|---|
Notatie | Notatie moet zijn cdm |
ja | cdm |
indeling |
Indeling van metagegevens | Waar de entiteitsreferentie naar de gegevens zich bevindt. Als u CDM versie 1.0 gebruikt, kiest u manifest. Als u vóór 1.0 een CDM-versie gebruikt, kiest u model.json. | Ja | 'manifest' of 'model' |
manifestType |
Hoofdlocatie: container | Containernaam van de CDM-map | ja | String | bestandssysteem |
Hoofdlocatie: mappad | Locatie van hoofdmap van CDM-map | ja | String | folderPath |
Manifestbestand: Entiteitspad | Mappad van de entiteit in de hoofdmap | nee | String | entityPath |
Manifestbestand: Manifestnaam | Naam van het manifestbestand. De standaardwaarde is 'standaard' | Nee | String | manifestName |
Filteren op laatst gewijzigd | Kiezen om bestanden te filteren op basis van wanneer ze voor het laatst zijn gewijzigd | nee | Tijdstempel | modifiedAfter modifiedBefore |
Gekoppelde schemaservice | De gekoppelde service waar het corpus zich bevindt | Ja, als u manifest gebruikt | 'adlsgen2' of 'github' |
corpusStore |
Entiteitsreferentiecontainer | Container corpus bevindt zich in | Ja, als u manifest en corpus gebruikt in ADLS Gen2 | String | adlsgen2_fileSystem |
Opslagplaats voor entiteitsreferenties | Naam van GitHub-opslagplaats | Ja, als u manifest en corpus gebruikt in GitHub | String | github_repository |
Entiteitsreferentiebranch | GitHub-opslagplaatsbranch | Ja, als u manifest en corpus gebruikt in GitHub | String | github_branch |
Verzamelingsmap | de hoofdlocatie van het corpus | Ja, als u manifest gebruikt | String | corpusPath |
Entiteit Corpus | Pad naar entiteitsreferentie | ja | String | entity |
Geen bestanden gevonden toestaan | Indien waar, wordt er geen fout gegenereerd als er geen bestanden worden gevonden | nee | true of false |
ignoreNoFilesFound |
Wanneer u 'Entiteitsverwijzing' selecteert in de bron- en sinktransformaties, kunt u kiezen uit deze drie opties voor de locatie van uw entiteitsverwijzing:
- Lokaal maakt gebruik van de entiteit die is gedefinieerd in het manifestbestand dat al door de service wordt gebruikt
- Aangepast vraagt u om te verwijzen naar een manifestbestand voor entiteiten dat verschilt van het manifestbestand dat door de service wordt gebruikt
- Standard gebruikt een entiteitsreferentie uit de standaardbibliotheek van CDM-entiteiten die worden onderhouden in
GitHub
.
Sink-instellingen
- Wijs het REFERENTIEbestand van de CDM-entiteit aan dat de definitie bevat van de entiteit die u wilt schrijven.
- Definieer het partitiepad en de indeling van de uitvoerbestanden die u wilt gebruiken voor het schrijven van uw entiteiten.
- Stel de locatie van het uitvoerbestand en de locatie en de naam voor het manifestbestand in.
Schema importeren
CDM is alleen beschikbaar als een inlinegegevensset en heeft standaard geen gekoppeld schema. Als u kolommetagegevens wilt ophalen, klikt u op de knop Schema importeren op het tabblad Projectie . Hiermee kunt u verwijzen naar de kolomnamen en gegevenstypen die zijn opgegeven door het corpus. Als u het schema wilt importeren, moet een foutopsporingssessie voor gegevensstromen actief zijn en moet u een bestaand CDM-entiteitsdefinitiebestand hebben om naar te verwijzen.
Wanneer kolommen voor het toewijzen van gegevensstromen aan entiteitseigenschappen in de Sink-transformatie, klikt u op het tabblad Toewijzing en selecteert u Schema importeren. De service leest de entiteitsreferentie waarnaar u in de Sink-opties hebt verwezen, zodat u kunt toewijzen aan het DOEL-CDM-schema.
Notitie
Wanneer u model.json brontype gebruikt dat afkomstig is van Power BI- of Power Platform-gegevensstromen, kunnen er fouten optreden met het 'corpuspad is null of leeg' van de brontransformatie. Dit komt waarschijnlijk door opmaakproblemen van het pad naar de partitielocatie in het model.json-bestand. Volg deze stappen om dit op te lossen:
- Het model.json-bestand openen in een teksteditor
- Zoek de partities. Locatie-eigenschap
- Wijzig 'blob.core.windows.net' in 'dfs.core.windows.net'
- Corrigeer eventuele '%2F'-codering in de URL naar '/'
- Als u ADF-Gegevensstroom s gebruikt, moeten speciale tekens in het pad van het partitiebestand worden vervangen door alfanumerieke waarden of overschakelen naar Azure Synapse-Gegevensstroom s
Voorbeeld van script voor CDM-brongegevensstroom
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
Sink-eigenschappen
De onderstaande tabel bevat de eigenschappen die worden ondersteund door een CDM-sink. U kunt deze eigenschappen bewerken op het tabblad Instellingen .
Name | Beschrijving | Vereist | Toegestane waarden | Eigenschap gegevensstroomscript |
---|---|---|---|---|
Notatie | Notatie moet zijn cdm |
ja | cdm |
indeling |
Hoofdlocatie: container | Containernaam van de CDM-map | ja | String | bestandssysteem |
Hoofdlocatie: mappad | Locatie van hoofdmap van CDM-map | ja | String | folderPath |
Manifestbestand: Entiteitspad | Mappad van de entiteit in de hoofdmap | nee | String | entityPath |
Manifestbestand: Manifestnaam | Naam van het manifestbestand. De standaardwaarde is 'standaard' | Nee | String | manifestName |
Gekoppelde schemaservice | De gekoppelde service waar het corpus zich bevindt | ja | 'adlsgen2' of 'github' |
corpusStore |
Entiteitsreferentiecontainer | Container corpus bevindt zich in | Ja, als corpus in ADLS Gen2 | String | adlsgen2_fileSystem |
Opslagplaats voor entiteitsreferenties | Naam van GitHub-opslagplaats | Ja, als corpus in GitHub | String | github_repository |
Entiteitsreferentiebranch | GitHub-opslagplaatsbranch | Ja, als corpus in GitHub | String | github_branch |
Verzamelingsmap | de hoofdlocatie van het corpus | ja | String | corpusPath |
Entiteit Corpus | Pad naar entiteitsreferentie | ja | String | entity |
Partitiepad | Locatie waar de partitie wordt geschreven | nee | String | partitionPath |
Ga naar de map | Als de doelmap is gewist voordat u gaat schrijven | nee | true of false |
truncate |
Indelingstype | Kiezen om parquet-indeling op te geven | nee | parquet indien opgegeven |
subopmaak |
Kolomscheidingsteken | Als u naar DelimitedText schrijft, moet u kolommen scheiden | Ja, als u naar DelimitedText schrijft | String | columnDelimiter |
Eerste rij als koptekst | Als u DelimitedText gebruikt, of de kolomnamen worden toegevoegd als koptekst | nee | true of false |
columnNamesAsHeader |
Voorbeeld van een CDM-sinkgegevensstroomscript
Het gekoppelde gegevensstroomscript is:
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
Gerelateerde inhoud
Maak een brontransformatie in de toewijzingsgegevensstroom.