ORC-indeling in Azure Data Factory en Synapse Analytics

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u geen gegevensintegratie hebt, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

Volg dit artikel als u de ORC-bestanden wilt parseren of de gegevens naar ORC-indeling wilt schrijven.

ORC-indeling wordt ondersteund voor de volgende connectors: Amazon S3, Amazon S3 Compatible Storage, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage en SFTP.

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de ORC-gegevensset.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op Orc. Ja
locatie Locatie-instellingen van de bestanden. Elke op bestanden gebaseerde connector heeft een eigen locatietype en ondersteunde eigenschappen onder location. Zie de details in het connectorartikel -> sectie Eigenschappen van gegevensset. Ja
compressionCodec De compressiecodec die moet worden gebruikt bij het schrijven naar ORC-bestanden. Bij het lezen uit ORC-bestanden bepalen Data Factory's automatisch de compressiecodec op basis van de metagegevens van het bestand.
Ondersteunde typen zijn geen, zlib, snappy (standaard) en lzo. Opmerking momenteel Copy activity LZO niet ondersteunt bij het lezen/schrijven van ORC-bestanden.
Nee

Hieronder ziet u een voorbeeld van een ORC-gegevensset op Azure Blob Storage:

{
    "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",
            }
        }
    }
}

Let op de volgende punten:

  • Complexe gegevenstypen (bijvoorbeeld MAP, LIST, STRUCT) worden momenteel alleen ondersteund in Gegevensstroom s, niet in kopieeractiviteit. Als u complexe typen in gegevensstromen wilt gebruiken, importeert u het bestandsschema niet in de gegevensset, waardoor het schema leeg blijft in de gegevensset. Importeer vervolgens de projectie in de brontransformatie.
  • Witruimte in kolomnaam wordt niet ondersteund.

Copy activity eigenschappen

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de ORC-bron en -sink.

ORC als bron

De volgende eigenschappen worden ondersteund in de sectie kopieeractiviteit *source* .

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op OrcSource. Ja
storeSettings Een groep eigenschappen over het lezen van gegevens uit een gegevensarchief. Elke op bestanden gebaseerde connector heeft zijn eigen ondersteunde leesinstellingen onder storeSettings. Meer informatie vindt u in het connectorartikel -> Copy activity properties section. Nee

ORC als sink

De volgende eigenschappen worden ondersteund in de sectie kopieeractiviteit *sink* .

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de sink van de kopieeractiviteit moet worden ingesteld op OrcSink. Ja
formatSettings Een groep eigenschappen. Raadpleeg de onderstaande tabel met schrijfinstellingen voor ORC. Nee
storeSettings Een groep eigenschappen over het schrijven van gegevens naar een gegevensarchief. Elke op bestanden gebaseerde connector heeft zijn eigen ondersteunde schrijfinstellingen onder storeSettings. Meer informatie vindt u in het connectorartikel -> Copy activity properties section. Nee

Ondersteunde ORC-schrijfinstellingen onder formatSettings:

Eigenschappen Beschrijving Vereist
type Het type formatSettings moet worden ingesteld op OrcWriteSettings. Ja
maxRowsPerFile Wanneer u gegevens in een map schrijft, kunt u ervoor kiezen om naar meerdere bestanden te schrijven en de maximumrijen per bestand op te geven. Nee
fileNamePrefix Van toepassing wanneer maxRowsPerFile deze is geconfigureerd.
Geef het voorvoegsel voor de bestandsnaam op bij het schrijven van gegevens naar meerdere bestanden, wat resulteert in dit patroon: <fileNamePrefix>_00000.<fileExtension> Als dit niet is opgegeven, wordt het voorvoegsel van de bestandsnaam automatisch gegenereerd. Deze eigenschap is niet van toepassing wanneer de bron een op bestanden gebaseerd archief of gegevensarchief met partitieopties is.
Nee

Eigenschappen van toewijzingsgegevensstroom

In toewijzingsgegevensstromen kunt u de ORC-indeling lezen en schrijven in de volgende gegevensarchieven: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 en SFTP en u kunt ORC-indeling lezen in Amazon S3.

U kunt verwijzen naar ORC-bestanden met behulp van ORC-gegevensset of met behulp van een inlinegegevensset.

Broneigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een ORC-bron. U kunt deze eigenschappen bewerken op het tabblad Bronopties .

Wanneer u een inlinegegevensset gebruikt, ziet u aanvullende bestandsinstellingen, die hetzelfde zijn als de eigenschappen die worden beschreven in de sectie eigenschappen van de gegevensset.

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Notatie Notatie moet zijn orc ja orc indeling
Paden met jokertekens Alle bestanden die overeenkomen met het jokertekenpad worden verwerkt. Hiermee overschrijft u de map en het bestandspad dat is ingesteld in de gegevensset. nee Tekenreeks[] jokertekenpaden
Hoofdpad voor partitie Voor bestandsgegevens die zijn gepartitioneerd, kunt u een partitiehoofdpad invoeren om gepartitioneerde mappen als kolommen te lezen nee String partitionRootPath
Lijst met bestanden Of uw bron verwijst naar een tekstbestand waarin bestanden worden vermeld die moeten worden verwerkt nee true of false fileList
Kolom voor het opslaan van de bestandsnaam Een nieuwe kolom maken met de naam en het pad van het bronbestand nee String rowUrlColumn
Na voltooiing Verwijder of verplaats de bestanden na verwerking. Bestandspad begint vanuit de hoofdmap van de container nee Verwijderen: true of false
Bewegen: [<from>, <to>]
purgeFiles
moveFiles
Filteren op laatst gewijzigd Kiezen om bestanden te filteren op basis van wanneer ze voor het laatst zijn gewijzigd nee Tijdstempel modifiedAfter
modifiedBefore
Geen bestanden gevonden toestaan Indien waar, wordt er geen fout gegenereerd als er geen bestanden worden gevonden nee true of false ignoreNoFilesFound

Bronvoorbeeld

Het bijbehorende gegevensstroomscript van een ORC-bronconfiguratie is:

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

Sink-eigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een ORC-sink. U kunt deze eigenschappen bewerken op het tabblad Instellingen .

Wanneer u een inlinegegevensset gebruikt, ziet u aanvullende bestandsinstellingen, die hetzelfde zijn als de eigenschappen die worden beschreven in de sectie eigenschappen van de gegevensset.

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Notatie Notatie moet zijn orc ja orc indeling
Ga naar de map Als de doelmap is gewist voordat u gaat schrijven nee true of false truncate
Optie voor bestandsnaam De naamgevingsindeling van de geschreven gegevens. Standaard één bestand per partitie in indeling part-#####-tid-<guid> nee Patroon: Tekenreeks
Per partitie: Tekenreeks[]
Als gegevens in kolom: Tekenreeks
Uitvoer naar één bestand: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

Sink-voorbeeld

Het bijbehorende gegevensstroomscript van een ORC-sinkconfiguratie is:

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

Zelf-hostende Integration Runtime gebruiken

Belangrijk

Voor kopie die mogelijk is door zelf-hostende Integration Runtime bijvoorbeeld tussen on-premises gegevensarchieven en cloudgegevensarchieven, als u geen ORC-bestanden kopieert as-is, u moet de 64-bits JRE 8 (Java Runtime Environment) of OpenJDK en Microsoft Visual C++ 2010 Redistributable Package installeren op uw IR-computer. Controleer de volgende alinea met meer informatie.

Voor kopiëren die wordt uitgevoerd op zelf-hostende IR met ORC-bestandsserialisatie/deserialisatie, zoekt de service de Java runtime door eerst het register (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) voor JRE te controleren, indien niet gevonden, ten tweede systeemvariabele JAVA_HOME voor OpenJDK controleren.

  • Jre gebruiken: voor de 64-bits IR is 64-bits JRE vereist. U vindt het hier.
  • OpenJDK gebruiken: dit wordt ondersteund sinds IR versie 3.13. Verpakt de jvm.dll met alle andere vereiste assembly's van OpenJDK in een zelf-hostende IR-machine en stel de omgevingsvariabele van het systeem dienovereenkomstig in JAVA_HOME.
  • Visual C++ 2010 Redistributable Package installeren: Visual C++ 2010 Redistributable Package is niet geïnstalleerd met zelf-hostende IR-installaties. U vindt het hier.

Tip

Als u gegevens kopieert naar/van ORC-indeling met behulp van zelf-hostende Integration Runtime en de fout 'Er is een fout opgetreden bij het aanroepen van java, bericht: java.lang. OutOfMemoryError:Java heapruimte", kunt u een omgevingsvariabele toevoegen _JAVA_OPTIONS op de computer waarop de zelf-hostende IR wordt gehost om de minimale/maximale heapgrootte voor JVM aan te passen om dergelijke kopie mogelijk te maken en voer vervolgens de pijplijn opnieuw uit.

JVM-heapgrootte instellen op zelf-hostende IR

Voorbeeld: variabele _JAVA_OPTIONS instellen met waarde -Xms256m -Xmx16g. De vlag Xms geeft de eerste geheugentoewijzingsgroep voor een Java virtuele machine (JVM) op, terwijl Xmx de maximale geheugentoewijzingsgroep specificeert. Dit betekent dat JVM wordt gestart met Xms een hoeveelheid geheugen en een maximale Xmx hoeveelheid geheugen kan gebruiken. De service gebruikt standaard min. 64 MB en maximaal 1G.