Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozwiązanie Microsoft OneLake może być używane z usługą Snowflake w celu przechowywania i uzyskiwania dostępu do tabel Apache Iceberg.
Postępuj zgodnie z tym przewodnikiem, aby użyć rozwiązania Snowflake na platformie Azure, aby:
- zapisywanie tabel Iceberg bezpośrednio do OneLake
- odczytywanie wirtualnych tabel Iceberg przekonwertowanych z formatu Delta Lake
Important
Ta funkcja jest dostępna w wersji zapoznawczej.
Przed rozpoczęciem wykonaj poniższe czynności wstępne.
Prerequisite
Aby używać usługi Snowflake na platformie Azure do zapisywania lub odczytywania tabel Iceberg za pomocą usługi OneLake, tożsamość konta Snowflake w Entra ID musi być w stanie komunikować się z usługą Fabric. Włącz ustawienia na poziomie dzierżawy Fabric, które umożliwiają jednostkom usługi wywoływanie interfejsów API Fabric i wywoływanie interfejsów API OneLake.
Zapisz tabelę Iceberg do OneLake, używając Snowflake na platformie Azure.
Jeśli używasz usługi Snowflake na platformie Azure, możesz napisać tabele Góry lodowej w usłudze OneLake, wykonując następujące kroki:
Upewnij się, że pojemność sieci szkieletowej znajduje się w tej samej lokalizacji platformy Azure co wystąpienie usługi Snowflake.
Zidentyfikuj lokalizację pojemności sieci szkieletowej skojarzonej z usługą Fabric lakehouse. Otwórz ustawienia obszaru roboczego Sieć szkieletowa, który zawiera usługę Lakehouse.
W lewym dolnym rogu interfejsu konta usługi Snowflake na koncie platformy Azure sprawdź region świadczenia usługi Azure konta snowflake.
Jeśli te regiony są inne, musisz użyć innej pojemności sieci szkieletowej w tym samym regionie co konto usługi Snowflake.
Otwórz menu obszaru Pliki w usłudze Lakehouse, wybierz pozycję Właściwości i skopiuj adres URL (ścieżkę HTTPS) tego folderu.
Zidentyfikuj identyfikator dzierżawy sieci szkieletowej. Wybierz swój profil użytkownika w prawym górnym rogu interfejsu użytkownika sieci szkieletowej i umieść wskaźnik myszy na bąbelku informacji obok nazwy dzierżawy. Skopiuj Tenant ID.
W Snowflake skonfiguruj swój
EXTERNAL VOLUME, używając ścieżki do folderuFilesznajdującego się w lakehouse. Więcej informacji na temat konfigurowania woluminów zewnętrznych snowflake można znaleźć tutaj.Note
Snowflake wymaga, aby schemat adresu URL był
azure://, więc pamiętaj, aby zmienić ścieżkę zhttps://naazure://.CREATE OR REPLACE EXTERNAL VOLUME onelake_write_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_write_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_lakehouse>/Files/icebergtables' AZURE_TENANT_ID = '<Tenant_ID>' ) );W tym przykładzie wszystkie tabele utworzone przy użyciu tego woluminu zewnętrznego są przechowywane w usłudze Fabric lakehouse w folderze
Files/icebergtables.Po utworzeniu woluminu zewnętrznego uruchom następujące polecenie, aby pobrać adres URL zgody i nazwę aplikacji używanej przez usługę Snowflake do zapisu w usłudze OneLake. Ta aplikacja jest używana przez dowolny inny wolumin zewnętrzny na koncie snowflake.
DESC EXTERNAL VOLUME onelake_write_exvol;Dane wyjściowe tego polecenia zwracają
AZURE_CONSENT_URLwłaściwości iAZURE_MULTI_TENANT_APP_NAME. Zanotuj obie wartości. Nazwa aplikacji wielodostępnych platformy Azure wygląda następująco<name>_<number>: , ale wystarczy przechwycić<name>tylko część.Otwórz adres URL zgody z poprzedniego kroku na nowej karcie przeglądarki, jeśli wcześniej tego nie zrobiono. Jeśli chcesz kontynuować, wyrażasz zgodę na wymagane uprawnienia aplikacji, jeśli zostanie wyświetlony monit. Możesz zostać przekierowany do głównej witryny internetowej Snowflake.
Wróć do obszaru szkieletowego, otwórz obszar roboczy i wybierz pozycję Zarządzaj dostępem, a następnie dodaj osoby lub grupy. Udziel aplikacji używanej przez wolumin zewnętrzny Snowflake uprawnienia wymagane do zapisywania danych w magazynach typu lakehouse w obszarze roboczym. Zalecamy przyznanie roli Współautor .
Wróć do snowflake, użyj nowego woluminu zewnętrznego, aby utworzyć tabelę Góry lodowej.
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.Inventory ( InventoryId int, ItemName STRING ) EXTERNAL_VOLUME = 'onelake_write_exvol' CATALOG = 'SNOWFLAKE' BASE_LOCATION = 'Inventory/';Po uruchomieniu tej instrukcji, nowy folder tabeli Iceberg o nazwie Inventory został utworzony w ścieżce folderu określonej w woluminie zewnętrznym.
Dodaj dane do tabeli Góry Lodowej.
INSERT INTO MYDATABASE.PUBLIC.Inventory VALUES (123456,'Amatriciana');Na koniec w obszarze Tabele tego samego jeziora możesz utworzyć skrót OneLake do tabeli Góry Lodowej. Za pomocą tego skrótu tabela Iceberg jest wyświetlana jako tabela usługi Delta Lake do użycia w obciążeniach sieci szkieletowej.
Odczytywanie wirtualnej tabeli góry lodowej z usługi OneLake przy użyciu usługi Snowflake na platformie Azure
Aby użyć Snowflake na Azure do odczytania wirtualnej tabeli Iceberg na podstawie tabeli Delta Lake w Fabric, wykonaj następujące kroki.
Postępuj zgodnie z przewodnikiem, aby potwierdzić, że tabela Delta Lake została pomyślnie przekonwertowana na Iceberg, i zanotuj ścieżkę do elementu danych, który zawiera tabelę, a także najnowszy
*.metadata.jsonplik tabeli.Zidentyfikuj identyfikator dzierżawy sieci szkieletowej. Wybierz swój profil użytkownika w prawym górnym rogu interfejsu użytkownika sieci szkieletowej i umieść wskaźnik myszy na bąbelku informacji obok nazwy dzierżawy. Skopiuj Tenant ID.
W aplikacji Snowflake skonfiguruj plik
EXTERNAL VOLUMEprzy użyciu ścieżki doTablesfolderu elementu danych zawierającego tabelę. Więcej informacji na temat konfigurowania woluminów zewnętrznych snowflake można znaleźć tutaj.CREATE OR REPLACE EXTERNAL VOLUME onelake_read_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_read_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_data_item>/Tables/' AZURE_TENANT_ID = '<Tenant_ID>' ) ) ALLOW_WRITES = false;Note
Snowflake wymaga, aby schemat adresu URL był
azure://, więc pamiętaj, aby zmienić wartośćhttps://naazure://.Zastąp
<path_to_data_item>ścieżką elementu danych, na przykładhttps://onelake.dfs.fabric.microsoft.com/83896315-c5ba-4777-8d1c-e4ab3a7016bc/a95f62fa-2826-49f8-b561-a163ba537828.Po utworzeniu woluminu zewnętrznego uruchom następujące polecenie, aby pobrać adres URL zgody i nazwę aplikacji używanej przez usługę Snowflake do zapisu w usłudze OneLake. Ta aplikacja jest używana przez dowolny inny wolumin zewnętrzny na koncie snowflake.
DESC EXTERNAL VOLUME onelake_read_exvol;Dane wyjściowe tego polecenia zwracają
AZURE_CONSENT_URLwłaściwości iAZURE_MULTI_TENANT_APP_NAME. Zanotuj obie wartości. Nazwa aplikacji wielodostępnych platformy Azure wygląda następująco<name>_<number>: , ale wystarczy przechwycić<name>tylko część.Otwórz adres URL zgody z poprzedniego kroku na nowej karcie przeglądarki, jeśli wcześniej tego nie zrobiono. Jeśli chcesz kontynuować, wyrażasz zgodę na wymagane uprawnienia aplikacji, jeśli zostanie wyświetlony monit. Możesz zostać przekierowany do głównej witryny internetowej Snowflake.
Wróć do obszaru szkieletowego, otwórz obszar roboczy i wybierz pozycję Zarządzaj dostępem, a następnie dodaj osoby lub grupy. Nadaj aplikacji używanej przez zewnętrzny wolumin Snowflake uprawnienia potrzebne do odczytywania danych z elementów danych w obszarze roboczym.
Tip
Zamiast tego możesz przyznać uprawnienia na poziomie elementu danych, jeśli chcesz. Dowiedz się więcej o dostępie do danych usługi OneLake.
CATALOG INTEGRATIONUtwórz obiekt w aplikacji Snowflake, jeśli wcześniej tego nie zrobiono. Jest to wymagane przez Snowflake do odwoływania się do istniejących tabel Iceberg w pamięci masowej.CREATE CATALOG INTEGRATION onelake_catalog_integration CATALOG_SOURCE = OBJECT_STORE TABLE_FORMAT = ICEBERG ENABLED = TRUE;Wróć do systemu Snowflake i utwórz tabelę Iceberg, która będzie się odwoływać do najnowszego pliku metadanych dla zwirtualizowanej tabeli Iceberg w usłudze OneLake.
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.<TABLE_NAME> EXTERNAL_VOLUME = 'onelake_read_exvol' CATALOG = onelake_catalog_integration METADATA_FILE_PATH = '<metadata_file_path>';Note
Zastąp
<TABLE_NAME>nazwą tabeli, a<metadata_file_path>ścieżką pliku metadanych tabeli Iceberg, taką jakdbo/MyTable/metadata/321.metadata.json.Po uruchomieniu tej instrukcji masz teraz odwołanie do zwirtualizowanej tabeli Iceberg, którą można teraz przeszukiwać przy użyciu Snowflake.
Wykonaj zapytanie względem zwirtualizowanej tabeli Iceberg, uruchamiając następującą instrukcję.
SELECT TOP 10 * FROM MYDATABASE.PUBLIC.<TABLE_NAME>;
Troubleshooting
Zapoznaj się z sekcjami dotyczącymi rozwiązywania problemów, ograniczeń oraz zagadnień w naszej dokumentacji dotyczącej wirtualizacji formatu tabel OneLake i konwersji między formatami tabel Delta Lake i Apache Iceberg.