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:

Aby uzyskać listę obsługiwanych funkcji dla wszystkich dostępnych łączników, odwiedź artykuł Omówienie Połączenie ors.

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 nie kopiujesz plików Parquet w taki sposób, musisz zainstalować 64-bitowe środowisko JRE 8 (Środowisko uruchomieniowe Java) 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 OpenJDK: jest obsługiwany od czasu środowiska IR w wersji 3.13. Spakuj plik 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.

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.

Set JVM heap size on Self-hosted 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
type 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
type Właściwość type źródła działania kopiowania musi być ustawiona na ParquetSource. Tak
store Ustawienia 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
type Właściwość type ujścia działania kopiowania musi być ustawiona na ParquetSink. Tak
format Ustawienia Grupa właściwości. Zapoznaj się z poniższą tabelą ustawień zapisu Parquet. Nie.
store Ustawienia 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
type Typ formatu Ustawienia musi być ustawiony na ParquetWrite Ustawienia. 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
Przenieść: [<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.

Parquet source

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 truncate
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.

Parquet sink

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

Obsługa typów 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ę.