Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa OneLake może być używana z usługą Snowflake do 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
Przed rozpoczęciem postępuj zgodnie z krokami wstępnymi opisanymi w tym artykule.
Prerequisite
Aby korzystać z Snowflake w usłudze Azure do zapisywania lub odczytywania tabel Iceberg przy użyciu usługi OneLake, tożsamość konta Snowflake w Entra ID musi 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.
Ważna
Snowflake dociera do usługi OneLake za pośrednictwem sieci publicznej. Rozwiązanie Snowflake nie obsługuje jeszcze łączności z obszarami roboczymi chronionymi za pomocą łącza prywatnego ani innych ograniczeń sieci.
Zapisz tabelę Iceberg do OneLake, używając Snowflake na platformie Azure.
Jeśli używasz usługi Snowflake na platformie Azure, możesz zapisywać tabele Iceberg w usłudze OneLake, postępując zgodnie z poniższymi krokami:
Upewnij się, że pojemność usługi Fabric znajduje się w tym samym regionie Azure co wystąpienie Snowflake.
Zidentyfikuj lokalizację pojemności sieci szkieletowej skojarzonej z usługą Fabric lakehouse. Otwórz ustawienia obszaru roboczego Fabric zawierającego Twój magazyn lakehouse.
W lewym dolnym rogu interfejsu konta Snowflake w usłudze Azure sprawdź region Azure tego konta Snowflake.
Jeśli te regiony różnią się, musisz użyć innej pojemności Fabric w tym samym regionie co Twoje konto 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.
Określ identyfikator dzierżawy Fabric. Wybierz swój profil użytkownika w prawym górnym rogu interfejsu Fabric i najedź kursorem na ikonę informacji obok pozycji Nazwa 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 konfiguracji 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 jakikolwiek inny wolumin zewnętrzny na Twoim koncie Snowflake.
DESC EXTERNAL VOLUME onelake_write_exvol;Dane wyjściowe tego polecenia zawierają właściwości
AZURE_CONSENT_URLiAZURE_MULTI_TENANT_APP_NAME. Zanotuj obie wartości. Nazwa wielodostępnej aplikacji platformy Azure wygląda jak<name>_<number>, ale wystarczy przechwycić tylko część<name>.Otwórz adres URL zgody z poprzedniego kroku na nowej karcie przeglądarki, jeśli wcześniej nie wykonasz tego kroku. 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 aplikacji Fabric, otwórz obszar roboczy i wybierz 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ółtwórca.
Po powrocie do Snowflake użyj nowego woluminu zewnętrznego, aby utworzyć tabelę Iceberg.
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.Inventory ( InventoryId int, ItemName STRING ) EXTERNAL_VOLUME = 'onelake_write_exvol' CATALOG = 'SNOWFLAKE' BASE_LOCATION = 'Inventory/';Ta instrukcja tworzy nowy folder tabeli Iceberg o nazwie Inventory w ścieżce folderu zdefiniowanej w woluminie zewnętrznym.
Dodaj dane do tabeli Iceberg.
INSERT INTO MYDATABASE.PUBLIC.Inventory VALUES (123456,'Amatriciana');Na koniec w obszarze Tabele w tym samym lakehouse’ie możesz utworzyć skrót OneLake do tabeli Iceberg. Dzięki temu skrótowi tabela Iceberg jest widoczna jako tabela Delta Lake na potrzeby użycia w obciążeniach platformy Fabric.
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 instrukcjami, aby potwierdzić, że tabela Delta Lake została pomyślnie przekonwertowana na Iceberg, i zanotuj ścieżkę do danych zawierających tabelę, a także najbardziej aktualny
*.metadata.jsonplik tabeli.Określ identyfikator dzierżawy Fabric. Wybierz swój profil użytkownika w prawym górnym rogu interfejsu Fabric i najedź kursorem na ikonę informacji obok pozycji Nazwa 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 konfiguracji 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 jakikolwiek inny wolumin zewnętrzny na Twoim koncie Snowflake.
DESC EXTERNAL VOLUME onelake_read_exvol;Dane wyjściowe tego polecenia zawierają właściwości
AZURE_CONSENT_URLiAZURE_MULTI_TENANT_APP_NAME. Zanotuj obie wartości. Nazwa wielodostępnej aplikacji platformy Azure wygląda jak<name>_<number>, ale wystarczy przechwycić tylko część<name>.Otwórz adres URL zgody z poprzedniego kroku na nowej karcie przeglądarki, jeśli wcześniej nie wykonasz tego kroku. 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 aplikacji Fabric, otwórz obszar roboczy i wybierz 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
Możesz zamiast tego wybrać przyznanie uprawnień na poziomie elementów 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 nie wykonasz tego kroku. Ten krok jest wymagany przez Snowflake do odniesienia się do istniejących tabel Iceberg w przechowywaniu.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, do której możesz teraz wykonywać zapytania za pomocą usługi 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.