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.
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żcesynapse/workspaces/.../warehouse/
, będzie nazwana na podstawie twojej tabeli i zawiera katalog_delta_log
. WybierzCopy 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/
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/');
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/');
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")