Odczytywanie tabel usługi Delta Lake (usługa Synapse lub lokalizacja zewnętrzna)

Ważne

Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi Azure HDInsight.

Ten artykuł zawiera omówienie sposobu odczytywania tabeli usługi Delta Lake bez dostępu publicznego do magazynu metadanych (Synapse lub innych magazynów metadanych).

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

  • DELETE
  • UPDATE
  • INSERT
  • SCALANIA

Wymagania wstępne

Tworzenie schematów i tabel usługi Delta Lake

W tej sekcji pokazano, jak utworzyć tabelę delty w istniejącej lokalizacji, jeśli masz już skonfigurowany wykaz usługi Delta Lake.

  1. Przeglądaj konto magazynu przy użyciu witryny Storage browser Azure Portal, w której znajduje się katalog podstawowy tabeli. Jeśli ta tabela pochodzi z usługi Synapse, prawdopodobnie znajduje się ona w synapse/workspaces/.../warehouse/ ścieżce i będzie mieć nazwę po tabeli i zawiera _delta_log katalog. Wybierz Copy URL z trzech kropek znajdujących się obok folderu.

    Musisz przekonwertować tę ścieżkę http na ścieżkę ABFS (system plików obiektów blob platformy 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 usługi Delta Lake w trino.

    CREATE SCHEMA delta.default;
    

    Alternatywnie można również utworzyć schemat na określonym koncie magazynu:

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. register_table Użyj procedury , 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 usługi Delta Lake na platformie Synapse Spark

Służy format("delta") do zapisywania ramki danych jako tabeli delty, a następnie możesz użyć ścieżki, w której zapisano ramkę danych jako format różnicowy, 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