Condividi tramite


Formato ORC 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 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 vogliono analizzare i file ORC o scrivere i dati in formato ORC.

Il formato ORC è 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.

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. Questa sezione fornisce un elenco delle proprietà supportate dal set di dati ORC.

Proprietà Descrizione Richiesto
type La proprietà type del set di dati deve essere impostata su Orc.
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.
compressionCodec Codec di compressione da usare per la scrittura in file ORC. Durante la lettura da file ORC, Data Factory determina automaticamente il codec di compressione in base ai metadati del file.
I tipi supportati sono none, zlib, snappy (impostazione predefinita) e lzo. Nota attualmente attività Copy non supporta LZO quando i file ORC di lettura/scrittura.
No

Di seguito è riportato un esempio di set di dati ORC in Archiviazione BLOB di Azure:

{
    "name": "OrcDataset",
    "properties": {
        "type": "Orc",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            }
        }
    }
}

Notare i punti seguenti:

  • I tipi di dati complessi ,ad esempio MAP, LIST, STRUCT, sono attualmente supportati solo in Flusso di dati, non nell'attività di copia. Per usare tipi complessi nei flussi di dati, non importare lo schema del file nel set di dati, lasciando vuoto lo schema nel set di dati. Quindi, nella trasformazione Origine, importare la proiezione.
  • Spazi vuoti nel nome della colonna non sono supportati.

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 e dal sink ORC.

ORC come origine

Nella sezione *source* dell'attività Copy sono supportate le proprietà seguenti.

Proprietà Descrizione Richiesto
type La proprietà type dell'origine dell'attività di copia deve essere impostata su OrcSource.
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

ORC come sink

Nella sezione *sink* dell'attività Copy sono supportate le proprietà seguenti.

Proprietà Descrizione Richiesto
type La proprietà type del sink dell'attività di copia deve essere impostata su OrcSink.
formatSettings Gruppo di proprietà. Fare riferimento alla tabella delle impostazioni di scrittura ORC di seguito. No
storeSettings Gruppo di proprietà su come scrivere i dati in un archivio dati. Ogni connettore basato su file dispone di impostazioni di scrittura supportate in storeSettings. Vedere i dettagli nell'articolo del connettore -> sezione Proprietà dell'attività Copy. No

Impostazioni di scrittura ORC supportate in formatSettings:

Proprietà Descrizione Richiesto
type Il tipo di formatSettings deve essere impostato su OrcWriteSettings.
maxRowsPerFile Quando si scrivono dati in una cartella, è possibile scegliere di scrivere in più file e specificare il numero massimo di righe per file. No
fileNamePrefix Applicabile quando maxRowsPerFile è configurato.
Specificare il prefisso del nome file durante la scrittura di dati in più file ha dato luogo a questo motivo: <fileNamePrefix>_00000.<fileExtension>. Se non specificato, il prefisso del nome file verrà generato automaticamente. Questa proprietà non si applica quando l'origine è l'archivio basato su file o archivio dati abilitato per l'opzione di partizione.
No

Proprietà del flusso di dati per mapping

Nei flussi di dati di mapping è possibile leggere e scrivere in formato ORC negli archivi dati seguenti: Archiviazione BLOB di Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 e SFTP ed è possibile leggere il formato ORC in Amazon S3.

È possibile puntare ai file ORC usando il set di dati ORC o usando un set di dati inline.

Proprietà di origine

La tabella seguente elenca le proprietà supportate da un'origine ORC. È possibile modificare queste proprietà nella scheda Opzioni origine.

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
Formato Il formato deve essere orc yes orc format
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
Consenti nessun file trovato Se true, un errore non viene generato se non vengono trovati file no true oppure false ignoreNoFilesFound

Esempio di origine

Lo script del flusso di dati associato di una configurazione dell'origine ORC è:

source(allowSchemaDrift: true,
    validateSchema: false,
    rowUrlColumn: 'fileName',
    format: 'orc') ~> OrcSource

Proprietà sink

Nella tabella seguente sono elencate le proprietà supportate da un sink ORC. È possibile modificare queste proprietà nella scheda Impostazioni.

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
Formato Il formato deve essere orc yes orc format
Cancellare la cartella Se la cartella di destinazione viene cancellata prima della scrittura no true oppure false truncate
Opzione Nome file Formato di denominazione dei dati scritti. Per impostazione predefinita, un file per partizione in formato part-#####-tid-<guid> no Motivo: Stringa
Per partizione: Stringa[]
Come dati nella colonna: Stringa
Output in un singolo file: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

Esempio di sink

Lo script del flusso di dati associato di una configurazione sink ORC è:

OrcSource sink(
    format: 'orc',
    filePattern:'output[n].orc',
    truncate: true,
    allowSchemaDrift: true,
    validateSchema: false,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> OrcSink

Uso del runtime di integrazione self-hosted

Importante

Per la copia abilitata dal runtime di integrazione self-hosted, ad esempio tra archivi dati locali e cloud, se non si copiano i file ORC così come sono, è necessario installare JRE 8 (Java Runtime Environment) a 64 bit o OpenJDK e Microsoft Visual C++ 2010 Redistributable Package nel computer del runtime di integrazione. Controllare il paragrafo seguente con altri dettagli.

Per la copia in esecuzione nel runtime di integrazione self-hosted con la serializzazione/deserializzazione dei file ORC, il servizio individua il runtime Java eseguendo in primo luogo una ricerca di JRE nel registro (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome); se non viene trovato, in secondo luogo esegue una ricerca di OpenJDK nella variabile di sistema JAVA_HOME.

  • Per usare JRE: il runtime di integrazione a 64 bit richiede JRE a 64 bit. disponibile qui.
  • Per usare OpenJDK: è supportato a partire dalla versione 3.13 del runtime di integrazione. Includere jvm.dll in un pacchetto con tutti gli altri assembly necessari di OpenJDK nel computer del runtime di integrazione self-hosted e impostare di conseguenza la variabile di ambiente di sistema JAVA_HOME.
  • Per installare Visual C++ 2010 Redistributable Package: Visual C++ 2010 Redistributable Package non è installato con installazioni del runtime di integrazione self-hosted. disponibile qui.

Suggerimento

Se si copiano dati in/dal formato ORC usando il runtime di integrazione self-hosted e viene visualizzato l'errore "Si è verificato un errore durante la chiamata di java, messaggio: java.lang.OutOfMemoryError:Java heap space", è possibile aggiungere una variabile _JAVA_OPTIONS di ambiente nel computer che ospita il runtime di integrazione self-hosted per modificare le dimensioni min/max dell'heap per JVM per abilitare tale copia, quindi rieseguire la pipeline.

Impostare le dimensioni dell'heap JVM nel runtime di integrazione self-hosted

Esempio: impostare la variabile _JAVA_OPTIONS con il valore -Xms256m -Xmx16g. Il flag Xms specifica il pool di allocazione della memoria iniziale per Java Virtual Machine (JVM), mentre Xmx specifica il pool di allocazione della memoria massima. JVM verrà quindi avviato con una quantità di memoria pari a Xms e potrà usare una quantità massima di memoria pari a Xmx. Per impostazione predefinita, il servizio usa min 64 MB e max 1G.