Udostępnij przez


Format Parquet w usługach Azure Data Factory i Azure Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Postępuj zgodnie z tym artykułem, gdy chcesz przeanalizować pliki Parquet lub zapisać dane w formacie Parquet.

Format Parquet jest obsługiwany dla następujących łączników:

Listę obsługiwanych funkcji dla wszystkich dostępnych łączników można znaleźć w artykule Omówienie łączników.

Korzystanie z własnego środowiska Integration Runtime

Ważne

W przypadku kopiowania z uprawnieniami własnego środowiska Integration Runtime, np. między lokalnymi i w chmurze magazynami danych, jeśli pliki Parquet nie są kopiowane, musisz zainstalować 64-bitowe środowisko JRE 8 (Java Runtime Environment), zestaw JDK 23 (Java Development Kit) lub zestaw OpenJDK na maszynie IR. Zapoznaj się z poniższym akapitem, aby uzyskać więcej szczegółów.

W przypadku kopiowania działającego na własnym środowisku IR z serializacji/deserializacji plików Parquet usługa lokalizuje środowisko uruchomieniowe Języka Java, sprawdzając najpierw rejestr (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) środowiska JRE, jeśli nie zostanie znaleziony, po drugie sprawdzając zmienną systemową JAVA_HOME dla zestawu OpenJDK.

  • Aby użyć środowiska JRE: 64-bitowe środowisko IR wymaga 64-bitowego środowiska JRE. Możesz go znaleźć tutaj.
  • Aby użyć zestawu JDK: 64-bitowe środowisko IR wymaga 64-bitowego zestawu JDK 23. Możesz go znaleźć tutaj. Pamiętaj, aby zaktualizować zmienną JAVA_HOME systemową do folderu głównego instalacji zestawu JDK 23, tj. C:\Program Files\Java\jdk-23, i dodać ścieżkę do C:\Program Files\Java\jdk-23\bin folderu i C:\Program Files\Java\jdk-23\bin\server do zmiennej Path systemowej.
  • Aby użyć zestawu OpenJDK: jest obsługiwany od czasu środowiska IR w wersji 3.13. Spakuj jvm.dll ze wszystkimi innymi wymaganymi zestawami zestawu OpenJDK na maszynę własnego środowiska IR i ustaw odpowiednio zmienną środowiskową systemu JAVA_HOME, a następnie uruchom ponownie własne środowisko IR, aby natychmiast rozpocząć działanie. Aby pobrać zestaw Microsoft Build of OpenJDK, zobacz Microsoft Build of OpenJDK (Kompilacja Microsoft Build zestawu OpenJDK™).

Napiwek

Jeśli skopiujesz dane do/z formatu Parquet przy użyciu własnego środowiska Integration Runtime i wystąpi błąd informujący o błędzie "Wystąpił błąd podczas wywoływania języka Java, komunikat: java.lang.OutOfMemoryError: Przestrzeń sterty Java", możesz dodać zmienną środowiskową _JAVA_OPTIONS na maszynie, która hostuje własne środowisko IR, aby dostosować minimalny/maksymalny rozmiar sterty dla maszyny JVM w celu wzmocnienia takiej możliwości kopiowania, a następnie ponownie uruchomić potok.

Ustawianie rozmiaru sterty JVM na własnym środowisku IR

Przykład: ustaw zmienną _JAVA_OPTIONS z wartością -Xms256m -Xmx16g. Flaga Xms określa początkową pulę alokacji pamięci dla maszyny wirtualnej Java (JVM), podczas gdy Xmx określa maksymalną pulę alokacji pamięci. Oznacza to, że maszyny JVM zostaną uruchomione z ilością Xms pamięci i będą mogły korzystać z maksymalnej Xmx ilości pamięci. Domyślnie usługa używa min 64 MB i maksymalnej liczby 1G.

Właściwości zestawu danych

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych Parquet.

Właściwości Opis Wymagania
typ Właściwość type zestawu danych musi być ustawiona na Parquet. Tak
lokalizacja Ustawienia lokalizacji plików. Każdy łącznik oparty na plikach ma własny typ lokalizacji i obsługiwane właściwości w obszarze location. Zobacz szczegóły w artykule dotyczącym łącznika —> sekcja Właściwości zestawu danych. Tak
compressionCodec Koder koder-dekoder kompresji używany podczas zapisywania w plikach Parquet. Podczas odczytywania z plików Parquet fabryki danych automatycznie określają koder-dekoder kompresji na podstawie metadanych pliku.
Obsługiwane typy to "none", "gzip", "snappy" (ustawienie domyślne) i "lzo". Uwaga obecnie działanie Kopiuj nie obsługuje LZO podczas odczytu/zapisu plików Parquet.
Nie.

Uwaga

Białe znaki w nazwie kolumny nie są obsługiwane w przypadku plików Parquet.

Poniżej przedstawiono przykład zestawu danych Parquet w usłudze 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"
        }
    }
}

Właściwości działania kopiowania

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło i ujście Parquet.

Parquet jako źródło

Następujące właściwości są obsługiwane w sekcji działanie kopiowania *źródło* .

Właściwości Opis Wymagania
typ Właściwość type źródła działania kopiowania musi być ustawiona na ParquetSource. Tak
storeSettings Grupa właściwości dotyczących odczytywania danych z magazynu danych. Każdy łącznik oparty na plikach ma własne obsługiwane ustawienia odczytu w obszarze storeSettings. Zobacz szczegóły w artykule dotyczącym łącznika —> sekcja właściwości działanie Kopiuj. Nie.

Parquet jako ujście

Następujące właściwości są obsługiwane w sekcji działanie kopiowania *ujście*.

Właściwości Opis Wymagania
typ Właściwość type ujścia działania kopiowania musi być ustawiona na ParquetSink. Tak
formatUstawienia Grupa właściwości. Zapoznaj się z poniższą tabelą ustawień zapisu Parquet. Nie.
storeSettings Grupa właściwości dotyczących sposobu zapisywania danych w magazynie danych. Każdy łącznik oparty na plikach ma własne obsługiwane ustawienia zapisu w obszarze storeSettings. Zobacz szczegóły w artykule dotyczącym łącznika —> sekcja właściwości działanie Kopiuj. Nie.

Obsługiwane ustawienia zapisu Parquet w obszarze formatSettings:

Właściwości Opis Wymagania
typ Typ formatUstawienia musi być ustawiony na ParquetWriteSettings. Tak
maxRowsPerFile Podczas zapisywania danych w folderze można wybrać zapisywanie w wielu plikach i określić maksymalną liczbę wierszy na plik. Nie.
fileNamePrefix Dotyczy konfiguracji maxRowsPerFile .
Określ prefiks nazwy pliku podczas zapisywania danych w wielu plikach, co spowodowało następujący wzorzec: <fileNamePrefix>_00000.<fileExtension>. Jeśli nie zostanie określony, prefiks nazwy pliku zostanie wygenerowany automatycznie. Ta właściwość nie ma zastosowania, gdy źródło jest magazynem opartym na plikach lub magazynem danych z włączoną opcją partycji.
Nie.

Właściwości przepływu mapowania danych

W przepływach danych mapowania można odczytywać i zapisywać w formacie parquet w następujących magazynach danych: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 i SFTP, a format parquet można odczytywać w usłudze Amazon S3.

Właściwości źródła

W poniższej tabeli wymieniono właściwości obsługiwane przez źródło parquet. Te właściwości można edytować na karcie Opcje źródła.

Nazwa/nazwisko Opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Formatuj Format musi być następujący: parquet tak parquet format
Ścieżki z symbolami wieloznacznymi Wszystkie pliki pasujące do ścieżki wieloznacznej zostaną przetworzone. Zastępuje folder i ścieżkę pliku ustawioną w zestawie danych. nie Ciąg[] symbole wieloznacznePaths
Ścieżka główna partycji W przypadku danych plików podzielonych na partycje można wprowadzić ścieżkę katalogu głównego partycji, aby odczytywać foldery podzielone na partycje jako kolumny nie String partitionRootPath
Lista plików Czy źródło wskazuje plik tekstowy, który wyświetla listę plików do przetworzenia nie true lub false fileList
Kolumna do przechowywania nazwy pliku Utwórz nową kolumnę z nazwą pliku źródłowego i ścieżką nie String rowUrlColumn
Po zakończeniu Usuń lub przenieś pliki po przetworzeniu. Ścieżka pliku rozpoczyna się od katalogu głównego kontenera nie Usuń: true lub false
Ruszać: [<from>, <to>]
przeczyszczanie plików
moveFiles
Filtruj według ostatniej modyfikacji Wybierz filtrowanie plików w oparciu o czas ich ostatniej zmiany nie Sygnatura czasowa modifiedAfter
modifiedBefore
Zezwalaj na brak znalezionych plików Jeśli wartość true, błąd nie jest zgłaszany, jeśli nie znaleziono żadnych plików nie true lub false ignoreNoFilesFound

Przykład źródła

Na poniższej ilustracji przedstawiono przykład konfiguracji źródła parquet w przepływach danych mapowania.

Źródło Parquet

Skojarzony skrypt przepływu danych to:

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

Właściwości ujścia

W poniższej tabeli wymieniono właściwości obsługiwane przez ujście parquet. Te właściwości można edytować na karcie Ustawienia .

Nazwa/nazwisko Opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Formatuj Format musi być następujący: parquet tak parquet format
Wyczyść folder Jeśli folder docelowy zostanie wyczyszczone przed zapisem nie true lub false obcinać
Opcja Nazwa pliku Format nazewnictwa zapisanych danych. Domyślnie jeden plik na partycję w formacie part-#####-tid-<guid> nie Wzorzec: ciąg
Na partycję: Ciąg[]
Jako dane w kolumnie: Ciąg
Dane wyjściowe do pojedynczego pliku: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

Przykład ujścia

Na poniższej ilustracji przedstawiono przykład konfiguracji ujścia parquet w przepływach danych mapowania.

Zlew parquet

Skojarzony skrypt przepływu danych to:

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

Mapowanie typów danych dla Parquet

Podczas odczytywania danych z łącznika źródłowego w formacie Parquet następujące mapowania są używane z typów danych Parquet do tymczasowych typów danych używanych przez usługę wewnętrznie.

Typ Parquet Typ danych usługi tymczasowej
BOOLEAN logiczny
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
DZIESIĘTNA Decimal
FLOAT Single
Podwójny Double
DATE Date
TIME_MILLIS TimeSpan
TIME_MICROS Int64
TIMESTAMP_MILLIS DateTime
TIMESTAMP_MICROS Int64
STRING String
UTF8 String
ENUM Tablica bajtów
UUID Tablica bajtów
JSON Tablica bajtów
BSON Tablica bajtów
BINARY Tablica bajtów
FIXED_LEN_BYTE_ARRAY Tablica bajtów

Podczas zapisywania danych do łącznika ujścia w formacie Parquet następujące mapowania są używane z tymczasowych typów danych używanych przez usługę wewnętrznie do typów danych Parquet.

Typ danych usługi tymczasowej Typ Parquet
logiczny BOOLEAN
SByte INT_8
Int16 INT_32
Int32 INT_32
Int64 INT_64
Byte INT_32
UInt16 INT_32
UInt32 INT_64
UInt64 DZIESIĘTNA
Decimal DZIESIĘTNA
Single FLOAT
Double Podwójny
Date DATE
DateTime INT96
DateTimeOffset INT96
TimeSpan INT96
String UTF8
GUID UTF8
Tablica bajtów BINARY

Aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na docelowy, zobacz Mapowanie schematu i typu danych.

Złożone typy danych Parquet (np. MAP, LIST, STRUCT) są obecnie obsługiwane tylko w Przepływ danych, a nie w działaniu kopiowania. Aby używać złożonych typów w przepływach danych, nie importuj schematu pliku w zestawie danych, pozostawiając schemat pusty w zestawie danych. Następnie w transformacji Źródło zaimportuj projekcję.