Parquet-format i Azure Data Factory och Azure Synapse Analytics
GÄLLER FÖR: Azure Data Factory
Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Följ den här artikeln när du vill parsa Parquet-filerna eller skriva data i Parquet-format.
Parquet-format stöds för följande anslutningsappar:
- Amazon S3
- Amazon S3-kompatibel lagring
- Azure Blob
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Azure Files
- Filsystem
- FTP
- Google Cloud Storage
- HDFS
- HTTP
- Oracle Cloud Storage
- SFTP
En lista över funktioner som stöds för alla tillgängliga anslutningsappar finns i artikeln Översikt över anslutningsappar.
Använda lokalt installerad integrationskörning
Viktigt!
För kopiering som underlättas av lokalt installerad integrationskörning, t.ex. mellan lokala datalager och molndatalager, måste du installera 64-bitars JRE 8 (Java Runtime Environment), JDK 23 (Java Development Kit) eller OpenJDK på din IR-dator om du inte kopierar Parquet-filer i den här fasen. Kontrollera följande stycke med mer information.
För kopiering som körs på lokalt installerad IR med Parquet-filserialisering/deserialisering letar tjänsten upp Java-körningen genom att först kontrollera registret (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome)
för JRE, om det inte hittas, för det andra genom att kontrollera systemvariabeln JAVA_HOME
för OpenJDK.
- För att kunna använda JRE: 64-bitars IR kräver 64-bitars JRE. Du hittar den härifrån.
- För att använda JDK: 64-men IR kräver 64-bitars JDK 23. Du hittar den härifrån. Se till att uppdatera
JAVA_HOME
systemvariabeln till rotmappen för JDK 23-installationen, d.v.s.C:\Program Files\Java\jdk-23
och lägg till sökvägen till både mapparnaC:\Program Files\Java\jdk-23\bin
ochC:\Program Files\Java\jdk-23\bin\server
iPath
systemvariabeln. - Så här använder du OpenJDK: Det stöds sedan IR version 3.13. Paketera jvm.dll med alla andra nödvändiga sammansättningar av OpenJDK till en lokalt installerad IR-dator och ange JAVA_HOME för systemmiljön och starta sedan om lokalt installerad IR för att börja gälla omedelbart. Information om hur du laddar ned Microsoft Build of OpenJDK finns i Microsoft Build of OpenJDK™.
Dricks
Om du kopierar data till/från Parquet-format med hjälp av lokalt installerad integrationskörning och stöter på felet "Ett fel uppstod när java anropades, meddelande: java.lang.OutOfMemoryError:Java heap space", kan du lägga till en miljövariabel _JAVA_OPTIONS
på datorn som är värd för lokalt installerad IR för att justera minsta/max-heapstorleken för JVM för att ge en sådan kopia och sedan köra pipelinen igen.
Exempel: ange variabel med _JAVA_OPTIONS
värdet -Xms256m -Xmx16g
. Flaggan Xms
anger den första minnesallokeringspoolen för en virtuell Java-dator (JVM) och Xmx
anger den maximala minnesallokeringspoolen. Det innebär att JVM startas med Xms
mycket minne och kan använda maximalt Xmx
mycket minne. Som standard använder tjänsten min 64 MB och max 1G.
Egenskaper för datauppsättning
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln Datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av Parquet-datauppsättningen.
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Datamängdens typegenskap måste anges till Parquet. | Ja |
plats | Platsinställningar för filen eller filerna. Varje filbaserad anslutningsapp har en egen platstyp och egenskaper som stöds under location . Mer information finns i artikeln om anslutningsappar –> avsnittet Egenskaper för datauppsättning. |
Ja |
compressionCodec | Komprimeringskodcen som ska användas när du skriver till Parquet-filer. När du läser från Parquet-filer avgör datafabriker automatiskt komprimeringskodcen baserat på filmetadata. Typer som stöds är "none", "gzip", "snappy" (standard) och "lzo". Observera att aktiviteten Kopiera för närvarande inte stöder LZO när du läser/skriver Parquet-filer. |
Nej |
Kommentar
Tomt utrymme i kolumnnamnet stöds inte för Parquet-filer.
Nedan visas ett exempel på Parquet-datamängd på Azure Blob Storage:
{
"name": "ParquetDataset",
"properties": {
"type": "Parquet",
"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",
},
"compressionCodec": "snappy"
}
}
}
Kopiera egenskaper för aktivitet
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av Parquet-källan och mottagaren.
Parquet som källa
Följande egenskaper stöds i avsnittet kopieringsaktivitet *källa* .
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste anges till ParquetSource. | Ja |
storeSettings | En grupp med egenskaper för hur du läser data från ett datalager. Varje filbaserad anslutningsapp har egna läsinställningar som stöds under storeSettings . Mer information finns i artikeln om anslutningsappar –> aktiviteten Kopiera egenskaper. |
Nej |
Parquet som mottagare
Följande egenskaper stöds i avsnittet kopieringsaktivitet *mottagare* .
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetsmottagaren måste anges till ParquetSink. | Ja |
formatInställningar | En grupp med egenskaper. Se tabellen För parquet-skrivinställningar nedan. | Nej |
storeSettings | En grupp med egenskaper för hur du skriver data till ett datalager. Varje filbaserad anslutningsapp har egna skrivinställningar som stöds under storeSettings . Mer information finns i artikeln om anslutningsappar –> aktiviteten Kopiera egenskaper. |
Nej |
Parquet-skrivinställningar som stöds under formatSettings
:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typen av formatInställningar måste anges till ParquetWriteSettings. | Ja |
maxRowsPerFile | När du skriver data till en mapp kan du välja att skriva till flera filer och ange maximalt antal rader per fil. | Nej |
fileNamePrefix | Tillämpligt när maxRowsPerFile har konfigurerats.Ange filnamnsprefixet när du skriver data till flera filer, vilket resulterade i det här mönstret: <fileNamePrefix>_00000.<fileExtension> . Om det inte anges genereras filnamnsprefixet automatiskt. Den här egenskapen gäller inte när källan är filbaserad lagring eller partitionsalternativaktiverat datalager. |
Nej |
Mappa dataflödesegenskaper
När du mappar dataflöden kan du läsa och skriva till parquet-format i följande datalager: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 och SFTP, och du kan läsa parquet-format i Amazon S3.
Källegenskaper
Tabellen nedan visar de egenskaper som stöds av en parquet-källa. Du kan redigera dessa egenskaper på fliken Källalternativ .
Name | beskrivning | Obligatoriskt | Tillåtna värden | Egenskap för dataflödesskript |
---|---|---|---|---|
Format | Formatet måste vara parquet |
ja | parquet |
format |
Sökvägar för jokertecken | Alla filer som matchar sökvägen för jokertecken bearbetas. Åsidosätter den mapp och filsökväg som angetts i datauppsättningen. | nej | Sträng[] | wildcardPaths |
Partitionsrotsökväg | För fildata som är partitionerade kan du ange en partitionsrotsökväg för att läsa partitionerade mappar som kolumner | nej | String | partitionRootPath |
Lista över filer | Om källan pekar på en textfil som visar filer som ska bearbetas | nej | true eller false |
fileList |
Kolumn för att lagra filnamn | Skapa en ny kolumn med källfilens namn och sökväg | nej | String | rowUrlColumn |
Efter slutförande | Ta bort eller flytta filerna efter bearbetningen. Filsökvägen startar från containerroten | nej | Ta bort: true eller false Flytta: [<from>, <to>] |
purgeFiles moveFiles |
Filtrera efter senast ändrad | Välj att filtrera filer baserat på när de senast ändrades | nej | Tidsstämpel | modifiedAfter modifiedBefore |
Tillåt att inga filer hittas | Om sant utlöses inte ett fel om inga filer hittas | nej | true eller false |
ignoreNoFilesFound |
Källexempel
Bilden nedan är ett exempel på en parquet-källkonfiguration i mappning av dataflöden.
Det associerade dataflödesskriptet är:
source(allowSchemaDrift: true,
validateSchema: false,
rowUrlColumn: 'fileName',
format: 'parquet') ~> ParquetSource
Egenskaper för mottagare
Tabellen nedan visar de egenskaper som stöds av en parquet-mottagare. Du kan redigera de här egenskaperna på fliken Inställningar .
Name | beskrivning | Obligatoriskt | Tillåtna värden | Egenskap för dataflödesskript |
---|---|---|---|---|
Format | Formatet måste vara parquet |
ja | parquet |
format |
Rensa mappen | Om målmappen rensas före skrivning | nej | true eller false |
trunkera |
Filnamnsalternativ | Namngivningsformatet för de data som skrivits. Som standard är en fil per partition i format part-#####-tid-<guid> |
nej | Mönster: Sträng Per partition: String[] Som data i kolumnen: Sträng Utdata till en enskild fil: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn partitionFileNames |
Exempel på mottagare
Bilden nedan är ett exempel på en parquet-mottagarkonfiguration i mappning av dataflöden.
Det associerade dataflödesskriptet är:
ParquetSource sink(
format: 'parquet',
filePattern:'output[n].parquet',
truncate: true,
allowSchemaDrift: true,
validateSchema: false,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> ParquetSink
Stöd för datatyp
Parquet komplexa datatyper (t.ex. MAP, LIST, STRUCT) stöds för närvarande endast i Dataflöde, inte i Kopieringsaktivitet. Om du vill använda komplexa typer i dataflöden ska du inte importera filschemat i datauppsättningen och lämna schemat tomt i datauppsättningen. Importera sedan projektionen i källtransformeringen.