Formato XML nelle pipeline di 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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Seguire questo articolo quando si desidera analizzare i file XML.
Il formato XML è supportato per i connettori seguenti: Amazon S3, Amazon S3 Compatible Storage, BLOB di Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, File di Azure, File System, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage e SFTP. È supportato come origine ma non come sink.
Proprietà del set di dati
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo Set di dati. In questa sezione viene fornito un elenco delle proprietà supportate dal set di dati XML.
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type del set di dati deve essere impostata su Xml. | Sì |
location | Impostazioni di posizione dei file. Ogni connettore basato su file ha il proprio tipo di percorso e le proprietà supportate in location . Vedere i dettagli nell'articolo del connettore -> sezione Proprietà del set di dati. |
Sì |
encodingName | Tipo di codifica usato per leggere/scrivere file di test. I valori consentiti sono i seguenti: "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP" ", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISOO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", ""ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1251 "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258". |
No |
nullValue | Specifica la rappresentazione di stringa del valore Null. Il valore predefinito è stringa vuota. |
No |
compressione | Gruppo di proprietà per configurare la compressione dei file. Configurare questa sezione se si desidera eseguire la compressione/decompressione durante l'esecuzione dell'attività. | No |
type (in compression ) |
Codec di compressione utilizzato per leggere/scrivere file XML. I valori consentiti sono bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappyo lz4. Il valore predefinito non è compresso. Nota attualmente l'attività Copy non supporta "snappy" & "lz4" e il flusso di dati di mapping non supporta "ZipDeflate", "TarGzip" e "Tar". Nota quando si usa l'attività Copy per decomprimere i file ZipDeflate/TarGzip/Tar e scrivere nell'archivio dati sink basato su file, per impostazione predefinita i file vengono estratti nella cartella: <path specified in dataset>/<folder named as source compressed file>/ , usare preserveZipFileNameAsFolder /preserveCompressionFileNameAsFolder su origine attività Copy per controllare se mantenere il nome dei file compressi come struttura di cartelle. |
No. |
level (in compression ) |
Rapporto di compressione. I valori consentiti sono ottimale o più veloce. - Fastest: l'operazione di compressione deve essere completata il più rapidamente possibile, anche se il file risultante non viene compresso in modo ottimale. - Optimal: l'operazione di compressione deve comprimere il file in modo ottimale, anche se il completamento richiede più tempo. Per maggiori informazioni, vedere l'argomento relativo al livello di compressione . |
No |
Di seguito è riportato un esempio di set di dati XML in Archiviazione BLOB di Azure:
{
"name": "XMLDataset",
"properties": {
"type": "Xml",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"compression": {
"type": "ZipDeflate"
}
}
}
}
Proprietà dell'attività di copia
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. In questa sezione viene fornito un elenco delle proprietà supportate dall'origine XML.
Informazioni su come eseguire il mapping dei dati XML e dell'archivio dati sink/formato dal mapping dello schema. Quando si visualizza l'anteprima dei file XML, i dati vengono visualizzati con la gerarchia JSON e si usa il percorso JSON per puntare ai campi.
XML come origine
Nella sezione *source* dell'attività Copy sono supportate le proprietà seguenti. Altre informazioni sul comportamento del connettore XML.
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type dell'origine dell'attività di copia deve essere impostata su XmlSource. | Sì |
formatSettings | Gruppo di proprietà. Fare riferimento alla tabella delle impostazioni di lettura XML riportata di seguito. | No |
storeSettings | Gruppo di proprietà su come leggere i dati da un archivio dati. Ogni connettore basato su file dispone di impostazioni di lettura proprie supportate in storeSettings . Vedere i dettagli nell'articolo del connettore -> sezione Proprietà dell'attività Copy. |
No |
Impostazioni di lettura XML supportate in formatSettings
:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | Il tipo di formatSettings deve essere impostato su XmlReadSettings. | Sì |
validationMode | Specifica se convalidare lo schema XML. I valori consentiti sono none (impostazione predefinita, nessuna convalida), xsd (convalida tramite XSD), dtd (convalida tramite DTD). |
No |
spazi dei nomi | Specificare se abilitare lo spazio dei nomi durante l'analisi dei file XML. I valori consentiti sono: true (predefinito), false. | No |
namespacePrefixes | URI dello spazio dei nomi per il mapping dei prefissi, usato per denominare i campi durante l'analisi del file xml. Se uno spazio dei nomi e lo spazio dei nomi di un file XML è abilitato, per impostazione predefinita, il nome del campo corrisponde a quello nel documento XML. Se nella mappa è definito un elemento per l'URI dello spazio dei nomi, il nome del campo è prefix:fieldName . |
No |
detectDataType | Specificare se rilevare i tipi di dati interi, doppi e booleani. I valori consentiti sono: true (predefinito), false. | No |
compressionProperties | Gruppo di proprietà su come decomprimere i dati per un determinato codec di compressione. | No |
preserveZipFileNameAsFolder (in compressionProperties ->type come ZipDeflateReadSettings ) |
Si applica quando il set di dati di input è configurato con compressione ZipDeflate. Indica se mantenere il nome del file ZIP di origine come struttura di cartelle durante la copia. - Se impostato su true (impostazione predefinita), il servizio scrive i file decompressi in <path specified in dataset>/<folder named as source zip file>/ .- Se impostato su false, il servizio scrive i file decompressi direttamente in <path specified in dataset> . Assicurarsi di non avere nomi di file duplicati in file ZIP di origine diversi per evitare corse o comportamenti imprevisti. |
No |
preserveCompressionFileNameAsFolder (in compressionProperties ->type come TarGZipReadSettings o TarReadSettings ) |
Si applica quando il set di dati di input è configurato con compressione TarGzip/Tar. Indica se mantenere il nome del file compresso di origine come struttura delle cartelle durante la copia. - Se impostato su true (impostazione predefinita), il servizio scrive i file decompressi in <path specified in dataset>/<folder named as source compressed file>/ . - Se impostato su false, il servizio scrive i file decompressi direttamente in <path specified in dataset> . Assicurarsi di non avere nomi di file duplicati in file di origine diversi per evitare corse o comportamenti imprevisti. |
No |
Proprietà del flusso di dati per mapping
Nei flussi di dati di mapping è possibile leggere il formato XML negli archivi dati seguenti: Archiviazione BLOB di Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 e SFTP. È possibile puntare ai file XML usando un set di dati XML o un set di dati inline.
Proprietà di origine
Nella tabella seguente sono elencate le proprietà supportate da un'origine XML. È possibile modificare queste proprietà nella scheda Opzioni origine. Altre informazioni sul comportamento del connettore XML. Quando si usa il set di dati inline, verranno visualizzate impostazioni di file aggiuntive, che corrispondono alle proprietà descritte nella sezione proprietà del set di dati.
Nome | Descrizione | Richiesto | Valori consentiti | Proprietà script del flusso di dati |
---|---|---|---|---|
Percorsi con caratteri jolly | Verranno elaborati tutti i file corrispondenti al percorso con caratteri jolly. Esegue l'override della cartella e del percorso del file impostato nel set di dati. | No | String[] | wildcardPaths |
Partition Root Path (Percorso radice partizione) | Per i dati dei file partizionati, è possibile immettere un percorso radice della partizione per leggere le cartelle partizionate come colonne | No | String | partitionRootPath |
Elenco di file | Indica se l'origine punta a un file di testo che elenca i file da elaborare | No | true oppure false |
fileList |
Colonna in cui archiviare il nome file | Creare una nuova colonna con il nome e il percorso del file di origine | No | String | rowUrlColumn |
Dopo il completamento | Eliminare o spostare i file dopo l'elaborazione. Il percorso del file inizia dalla radice del contenitore | No | Eliminare: true o false Spostare: ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtra per data ultima modifica | Scegliere di filtrare i file in base all'ultima modifica | No | Timestamp: | modifiedAfter modifiedBefore |
Modalità di convalida | Specifica se convalidare lo schema XML. | No | None (impostazione predefinita, nessuna convalida)xsd (convalidare con XSD)dtd (convalidare tramite DTD). |
validationMode |
Namespaces (Spazi dei nomi) | Specificare se abilitare lo spazio dei nomi durante l'analisi dei file XML. | No | true (impostazione predefinita) o false |
spazi dei nomi |
Coppie prefissi spazio nomi | URI dello spazio dei nomi per il mapping dei prefissi, usato per denominare i campi durante l'analisi del file xml. Se uno spazio dei nomi e lo spazio dei nomi di un file XML è abilitato, per impostazione predefinita, il nome del campo corrisponde a quello nel documento XML. Se nella mappa è definito un elemento per l'URI dello spazio dei nomi, il nome del campo è prefix:fieldName . |
No | Matrice con pattern['URI1'->'prefix1','URI2'->'prefix2'] |
namespacePrefixes |
Consenti nessun file trovato | Se true, un errore non viene generato se non vengono trovati file | no | true oppure false |
ignoreNoFilesFound |
Esempio di script di origine XML
Lo script seguente è un esempio di configurazione di origine XML nei flussi di dati di mapping tramite la modalità set di dati.
source(allowSchemaDrift: true,
validateSchema: false,
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Lo script seguente è un esempio di configurazione dell'origine XML usando la modalità set di dati inline.
source(allowSchemaDrift: true,
validateSchema: false,
format: 'xml',
fileSystem: 'filesystem',
folderPath: 'folder',
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Comportamento del connettore XML
Quando si usa XML come origine, tenere presente quanto segue.
Attributi XML:
- Gli attributi di un elemento vengono analizzati come sottocampi dell'elemento nella gerarchia.
- Il nome del campo attributo segue il modello
@attributeName
.
Convalida di XML Schema:
- È possibile scegliere di non convalidare lo schema o convalidare lo schema usando XSD o DTD.
- Quando si usa XSD o DTD per convalidare i file XML, è necessario fare riferimento al file XSD/DTD all'interno dei file XML tramite il percorso relativo.
Gestione dello spazio dei nomi:
- Lo spazio dei nomi può essere disabilitato quando si usa il flusso di dati, nel qual caso gli attributi che definiscono lo spazio dei nomi verranno analizzati come attributi normali.
- Quando lo spazio dei nomi è abilitato, i nomi dell'elemento e degli attributi seguono il modello
namespaceUri,elementName
enamespaceUri,@attributeName
per impostazione predefinita. È possibile definire il prefisso dello spazio dei nomi per ogni URI dello spazio dei nomi nell'origine, nel qual caso i nomi dell'elemento e degli attributi seguono il modellodefinedPrefix:elementName
odefinedPrefix:@attributeName
.
Colonna valore:
- Se un elemento XML ha sia un valore di testo semplice che attributi/elementi figlio, il valore di testo semplice viene analizzato come valore di una "colonna valore" con il nome
_value_
di campo predefinito . E eredita anche lo spazio dei nomi dell'elemento, se applicabile.
- Se un elemento XML ha sia un valore di testo semplice che attributi/elementi figlio, il valore di testo semplice viene analizzato come valore di una "colonna valore" con il nome