Format ORC w usługach Azure Data Factory i 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 ORC lub zapisać dane w formacie ORC.

Format ORC jest obsługiwany dla następujących łączników: 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 i SFTP.

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

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na Orc. 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 ORC. Podczas odczytywania z plików ORC fabryki danych automatycznie określają koder-dekoder kompresji na podstawie metadanych pliku.
Obsługiwane typy to brak, zlib, snappy (wartość domyślna) i lzo. Uwaga obecnie działanie Kopiuj nie obsługuje LZO podczas odczytu/zapisu plików ORC.
Nie.

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

Należy uwzględnić następujące informacje:

  • Złożone typy danych (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ę.
  • Białe znaki w nazwie kolumny nie są obsługiwane.

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

ORC 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 OrcSource. 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.

ORC 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 OrcSink. Tak
format Ustawienia Grupa właściwości. Zapoznaj się z poniższą tabelą ustawień zapisu ORC. 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 ORC w obszarze formatSettings:

Właściwości Opis Wymagania
type Typ formatu Ustawienia musi być ustawiony na OrcWrite 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 mapowania danych można odczytywać i zapisywać w formacie ORC w następujących magazynach danych: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 i SFTP, a format ORC można odczytać w usłudze Amazon S3.

Możesz wskazać pliki ORC przy użyciu zestawu danych ORC lub wbudowanego zestawu danych.

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

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

W przypadku korzystania z wbudowanego zestawu danych zostaną wyświetlone dodatkowe ustawienia pliku, które są takie same jak właściwości opisane w sekcji właściwości zestawu danych.

Nazwa/nazwisko opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Formatuj Format musi być następujący: orc tak orc 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

Skojarzony skrypt przepływu danych konfiguracji źródła ORC to:

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

Właściwości ujścia

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

W przypadku korzystania z wbudowanego zestawu danych zostaną wyświetlone dodatkowe ustawienia pliku, które są takie same jak właściwości opisane w sekcji właściwości zestawu danych.

Nazwa/nazwisko opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Formatuj Format musi być następujący: orc tak orc 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

Skojarzony skrypt przepływu danych konfiguracji ujścia ORC to:

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

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 ORC w taki sposób, musisz zainstalować 64-bitowe środowisko JRE 8 (Środowisko uruchomieniowe Java) lub Pakiet Redystrybucyjny Microsoft Visual C++ 2010 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 ORC 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.
  • Aby zainstalować pakiet redystrybucyjny Visual C++ 2010: Pakiet redystrybucyjny Visual C++ 2010 nie jest zainstalowany z instalacjami własnego środowiska IR. Możesz go znaleźć tutaj.

Napiwek

Jeśli skopiujesz dane do/z formatu ORC 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 wirtualnej 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.