Condividi tramite


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.
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.
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.
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.
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 e namespaceUri,@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 modello definedPrefix:elementName o definedPrefix:@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.