Formát Parquet v Azure Data Factory a Azure Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Pokud chcete parsovat soubory Parquet nebo zapisovat data do formátu Parquet, postupujte podle tohoto článku.

Formát Parquet je podporovaný pro následující konektory:

Seznam podporovaných funkcí pro všechny dostupné konektory najdete v článku Přehled konektorů.

Použití Integration Runtime v místním prostředí

Důležité

Pro kopírování, které je vybaveno místním Integration Runtime, např. mezi místními a cloudovými úložišti dat, pokud nekopírujete soubory Parquet as-is, musíte na počítač IR nainstalovat 64bitovou verzi JRE 8 (Java Runtime Environment), sadu JDK 23 (Java Development Kit) nebo OpenJDK. Další podrobnosti najdete v následujícím odstavci.

Pro kopírování spuštěné na samo-hostovaném IR s Parquetovou serializací/deserializací souborů služba vyhledá modul Java runtime, tak, že nejprve zkontroluje registr (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) pro JRE, pokud se nenajde, za druhé zkontroluje systémovou proměnnou JAVA_HOME pro OpenJDK.

  • Použití JRE: 64bitové prostředí IR vyžaduje 64bitové prostředí JRE. Najdete ho tady.
  • Použití sady JDK: 64bitové prostředí IR vyžaduje 64bitovou sadu JDK 23. Najdete ho tady. Nezapomeňte aktualizovat systémovou proměnnou JAVA_HOME na kořenovou složku instalace sady JDK 23, tj. C:\Program Files\Java\jdk-23 a přidat cestu k systémové proměnné C:\Program Files\Java\jdk-23\bin i C:\Program Files\Java\jdk-23\bin\server do systémové proměnné Path.
  • Použití OpenJDK: Je podporováno od IR verze 3.13. Zabalte jvm.dll se všemi ostatními požadovanými sestaveními OpenJDK do počítače místního prostředí IR a nastavte proměnnou systémového prostředí JAVA_HOME odpovídajícím způsobem a restartujte místní prostředí IR, aby se projevilo okamžitě. Pokud chcete stáhnout Microsoft Build of OpenJDK, přečtěte si Microsoft Build of OpenJDK™.

Tip

Pokud kopírujete data do nebo z formátu Parquet pomocí Self-hosted Integration Runtime a dojde k chybě s informací, že při vyvolání Javy došlo k chybě, zpráva: java.lang.OutOfMemoryError:Java heap space, můžete na počítači, který hostuje Self-hosted IR, přidat proměnnou prostředí _JAVA_OPTIONS a upravit minimální/maximální velikost haldy pro JVM, což umožní tuto kopii provést, a poté znovu spustit potrubí.

Nastavení velikosti haldy JVM v místním prostředí IR

Příklad: nastavte proměnnou _JAVA_OPTIONS s hodnotou -Xms256m -Xmx16g. Příznak Xms určuje počáteční fond přidělení paměti pro virtuální počítač Java (JVM), zatímco Xmx určuje maximální fond přidělení paměti. To znamená, že prostředí JVM se spustí s Xms množstvím paměti a bude moct používat maximální Xmx velikost paměti. Ve výchozím nastavení služba používá minimální 64 MB a maximální 1G.

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady . Tato část obsahuje seznam vlastností podporovaných datovou sadou Parquet.

Vlastnost Popis Povinné
typ Vlastnost typu datové sady musí být nastavena na Parquet. Ano
poloha Nastavení umístění souborů Každý konektor založený na souborech má svůj vlastní typ umístění a podporované vlastnosti v části location. Podrobnosti najdete v článku o konektoru v sekci –> Vlastnosti datové sady. Ano
kompresní kodek Komprimační kodek, který se má použít při zápisu do souborů Parquet. Při čtení ze souborů Parquet datové továrny automaticky určují kodek komprese na základě metadat souboru.
Podporované typy jsou none, gzip, snappy (výchozí) a lzo. Všimněte si, že v současné době Copy activity nepodporuje LZO při čtení a zápisu souborů Parquet.
Ne

Poznámka:

Pro soubory Parquet nejsou podporovány mezery v názvu sloupce.

Níže je příklad datové sady Parquet na 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"
        }
    }
}

Vlastnosti kopírovací aktivity

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem a jímkou Parquet.

Parquet jako zdroj

Následující vlastnosti jsou podporovány v části aktivity kopírování *source* .

Vlastnost Popis Povinné
typ Vlastnost typu zdroje aktivity kopírování musí být nastavena na ParquetSource. Ano
nastavení úložiště Skupina vlastností, jak číst data z úložiště dat. Každý souborový konektor má vlastní podporovaná nastavení pro čtení v části storeSettings. Podrobnosti najdete v článku o konektoru -> v oddílu vlastností aktivity kopírování. Ne

Parquet jako jímka

Následující vlastnosti jsou podporovány v části aktivity kopírování *jímka*.

Vlastnost Popis Povinné
typ Vlastnost typu jímky aktivity kopírování musí být nastavena na ParquetSink. Ano
nastavení formátu Skupina vlastností. Podívejte se na tabulku nastavení zápisu Parquet níže. Ne
nastavení úložiště Skupina vlastností pro zápis dat do úložiště dat. Každý konektor založený na souborech má vlastní podporovaná nastavení zápisu pod storeSettings. Podrobnosti najdete v článku o konektoru -> v oddílu vlastností aktivity kopírování. Ne

Podporované nastavení zápisu Parquet pod formatSettings:

Vlastnost Popis Povinné
typ Typ formatSettings musí být nastaven na ParquetWriteSettings. Ano
maxRowsPerFile Při zápisu dat do složky se můžete rozhodnout zapisovat do více souborů a zadat maximální počet řádků na soubor. Ne
fileNamePrefix Platí, pokud maxRowsPerFile je nakonfigurováno.
Při zápisu dat do více souborů zadejte předponu názvu souboru, výsledkem je tento vzor: <fileNamePrefix>_00000.<fileExtension>. Pokud není zadána, automaticky se vygeneruje předpona názvu souboru. Tato vlastnost se nevztahuje, pokud zdroj je úložiště dat založené na souborech nebo úložiště dat s povolenou možností oddílu.
Ne

Mapování vlastností toku dat

V mapování toků dat můžete číst a zapisovat do formátu parquet v následujících úložištích dat: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 a SFTP a parketový formát si můžete přečíst v Amazon S3.

Vlastnosti zdroje

Následující tabulka uvádí vlastnosti podporované zdrojem parquet. Tyto vlastnosti můžete upravit na kartě Možnosti zdroje.

Název Popis Povinné Povolené hodnoty Vlastnost skriptu toku dat
Formát Formát musí být parquet ano parquet formát
Cesty se zástupnými kartami Zpracují se všechny soubory odpovídající cestě se zástupným znakem. Přepíše složku a cestu k souboru nastavenou v datové sadě. ne Řetězec[] zástupné cesty
Kořenová cesta diskového oddílu Pro data souborů rozdělená do oddílů můžete zadat kořenovou cestu oddílu, abyste mohli číst dělené složky jako sloupce. ne String partitionRootPath
Seznam souborů Určuje, jestli váš zdroj ukazuje na textový soubor se seznamem souborů, které se mají zpracovat. ne true nebo false seznam souborů
Sloupec pro uložení názvu souboru Vytvoření nového sloupce s názvem zdrojového souboru a cestou ne String rowUrlColumn
Po dokončení Soubory po zpracování odstraňte nebo přesuňte. Cesta k souboru začíná z kořenového adresáře kontejneru. ne Odstranit: true nebo false
Přesunout: [<from>, <to>]
vymazatSoubory
moveFiles
Filtrovat podle poslední změny Zvolte filtrování souborů na základě toho, kdy byly naposledy změněny. ne Časové razítko modifiedAfter
upravenoPřed
Nepovolit žádné nalezené soubory Pokud je pravda, chyba se nevyvolá, pokud se nenašly žádné soubory. ne true nebo false ignoreNoFilesFound

Příklad zdroje

Následující obrázek je příkladem konfigurace zdroje parquet v mapování toků dat.

Zdroj Parquet

Přidružený skript toku dat je:

source(allowSchemaDrift: true,
    validateSchema: false,
    rowUrlColumn: 'fileName',
    format: 'parquet') ~> ParquetSource

Vlastnosti jímky

Následující tabulka uvádí vlastnosti podporované jímkou parquet. Tyto vlastnosti můžete upravit na kartě Nastavení .

Název Popis Povinné Povolené hodnoty Vlastnost skriptu toku dat
Formát Formát musí být parquet ano parquet formát
Vymazání složky Pokud je cílová složka před zápisem vymazána. ne true nebo false zkrátit
Možnost názvu souboru Formát pojmenování zapsaných dat. Ve výchozím nastavení je jeden soubor na oddíl ve formátu part-#####-tid-<guid>. ne Vzor: Řetězec
Na oddíl: String[]
Jako data ve sloupci: Řetězec
Výstup do jednoho souboru: ['<fileName>']
vzor souboru
partitionFileNames
rowUrlColumn
partitionFileNames

Příklad jímky

Následující obrázek je příkladem konfigurace jímky parquet v mapování toků dat.

Jímka Parquet

Přidružený skript toku dat je:

ParquetSource sink(
    format: 'parquet',
    filePattern:'output[n].parquet',
    truncate: true,
    allowSchemaDrift: true,
    validateSchema: false,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> ParquetSink

Mapování datových typů pro Parquet

Při čtení dat ze zdrojového konektoru ve formátu Parquet se používá následující mapování z datových typů Parquet na mezipaměťové datové typy, které služba interně používá.

Typ Parquet Dočasný datový typ služby
BOOLEAN logický
INT_8 SByte
INT_16 Int16
INT_32 Int32
INT_64 Int64
INT96 DateTime
UINT_8 Byte
UINT_16 UInt16
UINT_32 UInt32
UINT_64 UInt64
DESÍTKOVÁ SOUSTAVA Decimal
FLOAT Single
DVOJITÝ Double
DATE Date
TIME_MILLIS TimeSpan
TIME_MICROS Int64
TIMESTAMP_MILLIS DateTime
TIMESTAMP_MICROS Int64
STRING String
UTF8 String
ENUM Byte pole
UUID (Univerzálně unikátní identifikátor) Byte pole
JSON Byte pole
BSON Byte pole
BINARY Byte pole
FIXED_LEN_BYTE_ARRAY Byte pole

Při zápisu dat do konektoru jímky ve formátu Parquet se následující mapování používají z dočasných datových typů používaných službou interně na datové typy Parquet.

Dočasný datový typ služby Typ Parquet
logický BOOLEAN
SByte INT_8
Int16 INT_32
Int32 INT_32
Int64 INT_64
Byte INT_32
UInt16 INT_32
UInt32 INT_64
UInt64 DESÍTKOVÁ SOUSTAVA
Decimal DESÍTKOVÁ SOUSTAVA
Single FLOAT
Double DVOJITÝ
Date DATE
DateTime INT96
DateTimeOffset INT96
TimeSpan INT96
String UTF8
GUID UTF8
Byte pole BINARY

Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v tématu Mapování schématu a datového typu.

Složité datové typy Parquet (např. MAP, LIST, STRUCT) jsou v současné době podporovány pouze v datových tocích, nikoli v aktivitě kopírování. Pokud chcete použít složité typy v tocích dat, neimportujte schéma souboru v datové sadě a ponechejte schéma prázdné v datové sadě. Potom v transformaci zdroje naimportujte projekci.