Udostępnij za pośrednictwem


Odczytywanie tabel Delta Lake (w Synapse lub lokalizacji zewnętrznej)

Ważny

Usługa Azure HDInsight w usłudze AKS została wycofana 31 stycznia 2025 r. Dowiedz się więcej dzięki temu ogłoszeniu.

Aby uniknąć nagłego kończenia obciążeń, należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure.

Ważny

Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Dodatkowe warunki użytkowania platformy Microsoft Azure zawierają więcej warunków prawnych, które dotyczą funkcji platformy Azure w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje na temat tej konkretnej wersji zapoznawczej, zobacz informację o wersji zapoznawczej Azure HDInsight na AKS. W przypadku pytań lub sugestii dotyczących funkcji, prześlij żądanie na AskHDInsight ze szczegółami i śledź nas po więcej aktualizacji na Azure HDInsight Community.

Ten artykuł zawiera omówienie sposobu odczytywania tabeli Delta Lake bez konieczności posiadania dostępu do magazynu metadanych (Synapse lub inne magazyny metadanych bez dostępu publicznego).

Następujące operacje można wykonać w tabelach przy użyciu rozwiązania Trino z usługą HDInsight w usłudze AKS.

  • USUNĄĆ
  • AKTUALIZACJA
  • WSTAWIAĆ
  • POŁĄCZYĆ

Warunki wstępne

Tworzenie schematów i tabel usługi Delta Lake

W tej sekcji pokazano, jak utworzyć tabelę Delta w wstępnie istniejącej lokalizacji, zakładając, że masz już skonfigurowany katalog Delta Lake.

  1. Przeglądaj konto magazynu w portalu Azure, używając Storage browser, do lokalizacji, gdzie znajduje się katalog podstawowy twojej tabeli. Jeśli ta tabela pochodzi z usługi Synapse, prawdopodobnie znajduje się na ścieżce synapse/workspaces/.../warehouse/, będzie nazwana na podstawie twojej tabeli i zawiera katalog _delta_log. Wybierz Copy URL z trzech kropek znajdujących się obok folderu.

    Musisz przekonwertować tę ścieżkę http na ścieżkę ABFS (system plików Blob w platformie Azure):

    Ścieżka http magazynu ma następującą strukturę: https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    Ścieżki ABFS muszą wyglądać następująco: abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    Przykład: abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/

  2. Utwórz schemat Delta Lake w Trino.

    CREATE SCHEMA delta.default;
    

    Alternatywnie można również utworzyć schemat w określonym koncie przechowywania.

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. Użyj procedury register_table, aby utworzyć tabelę.

    CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
    
  4. Wykonaj zapytanie względem tabeli, aby zweryfikować.

    SELECT * FROM delta.default.table_name
    

Pisanie tabel w Delta Lake w Synapse Spark

Użyj format("delta"), aby zapisać ramkę danych jako tabelę Delta, a potem użyj ścieżki, w której zapisano ramkę danych w formacie Delta, aby zarejestrować tabelę w Trino.

my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")

Następne kroki

Jak skonfigurować buforowanie w Trino