Formato common data model in Azure Data Factory e Synapse Analytics
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .
Il sistema di metadati Common Data Model (CDM) consente di condividere facilmente i dati e il suo significato tra applicazioni e processi aziendali. Per altre informazioni, vedere Panoramica di Common Data Model .
Nelle pipeline di Azure Data Factory e Synapse gli utenti possono trasformare i dati da entità CDM in formato model.json e manifesto archiviati in Azure Data Lake Store Gen2 (ADLS Gen2 ) usando flussi di dati di mapping. È anche possibile eseguire il sink dei dati in formato CDM usando riferimenti all'entità CDM che invieranno i dati in formato CSV o Parquet in cartelle partizionate.
Proprietà del flusso di dati per mapping
Common Data Model è disponibile come set di dati inline nei flussi di dati di mapping sia come origine che come sink.
Nota
Quando si scrivono entità CDM, è necessario disporre di una definizione di entità CDM esistente (schema di metadati) già definita per l'uso come riferimento. Il sink del flusso di dati leggerà il file di entità CDM e importerà lo schema nel sink per il mapping dei campi.
Proprietà di origine
Nella tabella seguente sono elencate le proprietà supportate da un'origine CDM. È possibile modificare queste proprietà nella scheda Opzioni origine.
Name | Descrizione | Richiesto | Valori consentiti | Proprietà script flusso di dati |
---|---|---|---|---|
Formatta | Il formato deve essere cdm |
yes | cdm |
format |
Formato metadati | Posizione in cui si trova il riferimento all'entità ai dati. Se si usa CDM versione 1.0, scegliere manifesto. Se si usa una versione cdm precedente alla 1.0, scegliere model.json. | Sì | 'manifest' o 'model' |
manifestType |
Percorso radice: contenitore | Nome del contenitore della cartella CDM | yes | Stringa | fileSystem |
Percorso radice: percorso cartella | Percorso della cartella radice della cartella CDM | yes | Stringa | folderPath |
File manifesto: percorso entità | Percorso della cartella dell'entità all'interno della cartella radice | no | Stringa | entityPath |
File manifesto: nome manifesto | Nome del file manifesto. Il valore predefinito è 'default' | No | Stringa | manifestName |
Filtra per data ultima modifica | Scegliere di filtrare i file in base all'ultima modifica | no | Timestamp: | modifiedAfter modifiedBefore |
Servizio collegato schema | Servizio collegato in cui si trova il corpus | Sì, se si usa il manifesto | 'adlsgen2' o 'github' |
corpusStore |
Contenitore di riferimento per le entità | Il corpus dei contenitori si trova in | Sì, se si usa manifesto e corpus in ADLS Gen2 | Stringa | adlsgen2_fileSystem |
Repository di riferimento per le entità | Nome repository GitHub | Sì, se si usa manifesto e corpus in GitHub | Stringa | github_repository |
Ramo informazioni di riferimento sulle entità | Ramo del repository GitHub | Sì, se si usa manifesto e corpus in GitHub | Stringa | github_branch |
Cartella Corpus | posizione radice del corpus | Sì, se si usa il manifesto | Stringa | corpusPath |
Entità Corpus | Percorso del riferimento all'entità | yes | Stringa | entità |
Consenti nessun file trovato | Se true, un errore non viene generato se non vengono trovati file | no | true o false |
ignoreNoFilesFound |
Quando si seleziona "Riferimento entità" nelle trasformazioni Origine e Sink, è possibile selezionare tra queste tre opzioni per la posizione del riferimento all'entità:
- Local usa l'entità definita nel file manifesto già usata dal servizio
- Personalizzato chiederà di puntare a un file manifesto dell'entità diverso dal file manifesto usato dal servizio
- Standard userà un riferimento all'entità dalla libreria standard di entità CDM gestite in
GitHub
.
Impostazioni sink
- Puntare al file di riferimento dell'entità CDM che contiene la definizione dell'entità da scrivere.
- Definire il percorso della partizione e il formato dei file di output che si desidera che il servizio usi per la scrittura delle entità.
- Impostare il percorso del file di output e il percorso e il nome per il file manifesto.
Importa schema
CDM è disponibile solo come set di dati inline e, per impostazione predefinita, non ha uno schema associato. Per ottenere i metadati della colonna, fare clic sul pulsante Importa schema nella scheda Proiezione . In questo modo sarà possibile fare riferimento ai nomi delle colonne e ai tipi di dati specificati dal corpus. Per importare lo schema, una sessione di debug del flusso di dati deve essere attiva ed è necessario disporre di un file di definizione di entità CDM esistente a cui puntare.
Quando si esegue il mapping delle colonne del flusso di dati alle proprietà dell'entità nella trasformazione Sink, fare clic sulla scheda "Mapping" e selezionare "Importa schema". Il servizio leggerà il riferimento all'entità a cui si fa riferimento nelle opzioni sink, consentendo di eseguire il mapping allo schema CDM di destinazione.
Nota
Quando si usa il tipo di origine model.json che ha origine da flussi di dati di Power BI o Power Platform, è possibile che si verifichino errori "il percorso del corpus è null o vuoto" dalla trasformazione di origine. Questo è probabilmente dovuto a problemi di formattazione del percorso della partizione nel file model.json. Per risolvere questo problema, seguire questa procedura:
- Aprire il file model.json in un editor di testo
- Trovare le partizioni. Proprietà Location
- Modificare "blob.core.windows.net" in "dfs.core.windows.net"
- Correggere qualsiasi codifica "%2F" nell'URL in "/"
- Se si usano Flusso di dati di Azure Data Factory, i caratteri speciali nel percorso del file di partizione devono essere sostituiti con valori alfanumerici oppure passare ad Azure Synapse Flusso di dati
Esempio di script del flusso di dati di origine 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
Proprietà sink
La tabella seguente elenca le proprietà supportate da un sink CDM. È possibile modificare queste proprietà nella scheda Impostazioni.
Name | Descrizione | Richiesto | Valori consentiti | Proprietà script flusso di dati |
---|---|---|---|---|
Formatta | Il formato deve essere cdm |
yes | cdm |
format |
Percorso radice: contenitore | Nome del contenitore della cartella CDM | yes | Stringa | fileSystem |
Percorso radice: percorso cartella | Percorso della cartella radice della cartella CDM | yes | Stringa | folderPath |
File manifesto: percorso entità | Percorso della cartella dell'entità all'interno della cartella radice | no | Stringa | entityPath |
File manifesto: nome manifesto | Nome del file manifesto. Il valore predefinito è 'default' | No | Stringa | manifestName |
Servizio collegato schema | Servizio collegato in cui si trova il corpus | yes | 'adlsgen2' o 'github' |
corpusStore |
Contenitore di riferimento per le entità | Il corpus dei contenitori si trova in | Sì, se corpus in ADLS Gen2 | Stringa | adlsgen2_fileSystem |
Repository di riferimento per le entità | Nome repository GitHub | Sì, se corpus in GitHub | Stringa | github_repository |
Ramo informazioni di riferimento sulle entità | Ramo del repository GitHub | Sì, se corpus in GitHub | Stringa | github_branch |
Cartella Corpus | posizione radice del corpus | yes | Stringa | corpusPath |
Entità Corpus | Percorso del riferimento all'entità | yes | Stringa | entità |
Percorso partizione | Percorso in cui verrà scritta la partizione | no | Stringa | partitionPath |
Cancellare la cartella | Se la cartella di destinazione viene cancellata prima della scrittura | no | true o false |
truncate |
Tipo di formato | Scegliere di specificare il formato Parquet | no | parquet se specificato |
formato secondario |
Delimitatore di colonna | Se si scrive in DelimitedText, come delimitare le colonne | Sì, se si scrive in DelimitedText | Stringa | columnDelimiter |
Prima riga come intestazione | Se si usa DelimitedText, se i nomi delle colonne vengono aggiunti come intestazione | no | true o false |
columnNamesAsHeader |
Esempio di script del flusso di dati sink cdm
Lo script del flusso di dati associato è:
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
Contenuto correlato
Creare una trasformazione di origine nel flusso di dati di mapping.