Odczytywanie danych udostępnionych przy użyciu funkcji Udostępniania różnicowego usługi Databricks w usłudze Databricks (dla adresatów)
W tym artykule opisano sposób odczytywania danych, które zostały Ci udostępnione przy użyciu protokołu udostępniania różnicowego usługi Databricks do usługi Databricks, w którym usługa Databricks zarządza bezpiecznym połączeniem do udostępniania danych. W przeciwieństwie do protokołu udostępniania otwartego udostępniania usługi Delta protokół databricks-to-Databricks nie wymaga pliku poświadczeń (zabezpieczenia opartego na tokenach).
Udostępnianie usługi Databricks-to-Databricks wymaga od Ciebie, jako odbiorcy, dostępu do obszaru roboczego usługi Databricks włączonego dla wykazu aparatu Unity.
Jeśli nie masz obszaru roboczego usługi Databricks, który jest włączony dla wykazu aparatu Unity, dane muszą być udostępniane Tobie przy użyciu protokołu udostępniania otwartego udostępniania różnicowego, a ten artykuł nie ma zastosowania do Ciebie. Zobacz Odczytywanie danych udostępnionych przy użyciu udostępniania otwartego udostępniania różnicowego (dla adresatów).
Jak mogę udostępnić udostępnione dane mojemu zespołowi?
Aby odczytywać dane i notesy, które zostały Ci udostępnione przy użyciu protokołu Databricks-to-Databricks, musisz być użytkownikiem w obszarze roboczym usługi Databricks, który jest włączony dla wykazu aparatu Unity. Członek zespołu udostępnia dostawcy danych unikatowy identyfikator magazynu metadanych wykazu aparatu Unity, a dostawca danych używa tego identyfikatora do utworzenia bezpiecznego połączenia udostępniania z organizacją. Dane udostępnione stają się następnie dostępne do odczytu w obszarze roboczym oraz wszelkie aktualizacje udostępniane przez dostawcę danych do udostępnionych tabel, widoków, woluminów i partycji są odzwierciedlane w obszarze roboczym niemal w czasie rzeczywistym.
Uwaga
Aktualizacje udostępnionych tabel danych, widoków i woluminów są wyświetlane w obszarze roboczym niemal w czasie rzeczywistym. Jednak zmiany w kolumnie (dodawanie, zmienianie nazw i usuwanie) mogą nie pojawić się w Eksploratorze wykazu przez maksymalnie jedną minutę. Podobnie nowe udziały i aktualizacje udziałów (takie jak dodawanie nowych tabel do udziału) są buforowane przez minutę, zanim będą dostępne do wyświetlania i wykonywania zapytań.
Aby odczytać dane, które zostały Ci udostępnione:
- Użytkownik w zespole znajduje udział — kontener tabel, widoków, woluminów i notesów, które zostały Ci udostępnione — i używa tego udziału do utworzenia wykazu — kontenera najwyższego poziomu dla wszystkich danych w wykazie aparatu Unity usługi Databricks.
- Użytkownik w zespole udziela lub odmawia dostępu do katalogu oraz obiektów w wykazie (schematach, tabelach, widokach i woluminach) innym członkom zespołu.
- Dane są odczytywane w tabelach, widokach i woluminach, do których udzielono ci dostępu, podobnie jak w przypadku każdego innego zasobu danych w usłudze Databricks, do którego masz dostęp tylko do odczytu (
SELECT
lubREAD VOLUME
). - Podgląd i klonowanie notesów w udziale, o ile masz
USE CATALOG
uprawnienia do katalogu.
Wymagane uprawnienia
Aby móc wyświetlać i wyświetlać szczegółowe informacje o wszystkich dostawcach i udziałach dostawców, musisz być administratorem magazynu metadanych lub mieć USE PROVIDER
uprawnienia. Inni użytkownicy mają dostęp tylko do dostawców i udziałów, których są właścicielami.
Aby utworzyć wykaz na podstawie udziału dostawcy, musisz być administratorem magazynu metadanych, użytkownikiem, który ma zarówno uprawnienia, jak CREATE_CATALOG
i USE PROVIDER
dla magazynu metadanych wykazu aparatu Unity, albo użytkownika, który ma zarówno CREATE_CATALOG
uprawnienia, jak i własność obiektu dostawcy.
Możliwość udzielania dostępu tylko do odczytu schematom (bazom danych), tabelom, widokom i woluminom w wykazie utworzonym na podstawie udziału jest zgodna z typową hierarchią uprawnień wykazu aparatu Unity. Możliwość wyświetlania notesów w wykazie utworzonym na podstawie udziału wymaga USE CATALOG
uprawnień w wykazie. Zobacz Zarządzanie uprawnieniami dla schematów, tabel i woluminów w wykazie udostępniania różnicowego.
Wyświetlanie dostawców i udziałów
Aby rozpocząć odczytywanie danych, które zostały Ci udostępnione przez dostawcę danych, musisz znać nazwę dostawcy i udostępnić obiekty przechowywane w magazynie metadanych wykazu aparatu Unity, gdy dostawca udostępnił Ci dane.
Obiekt dostawcy reprezentuje magazyn metadanych wykazu aparatu Unity, platformę w chmurze i region organizacji, który udostępnił Ci dane.
Obiekt udostępniania reprezentuje tabele, woluminy i widoki udostępnione Tobie przez dostawcę.
Wyświetl wszystkich dostawców, którzy udostępnili Ci dane
Aby wyświetlić listę dostępnych dostawców danych, możesz użyć Eksploratora katalogów, interfejsu wiersza polecenia wykazu aparatu Unity usługi Databricks lub SHOW PROVIDERS
polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Wymagane uprawnienia: musisz być administratorem magazynu metadanych lub mieć USE PROVIDER
uprawnienia. Inni użytkownicy mają dostęp tylko do dostawców i udziałów dostawców, których są właścicielami.
Aby uzyskać szczegółowe informacje, zobacz Wyświetlanie dostawców.
Wyświetlanie szczegółów dostawcy
Aby wyświetlić szczegółowe informacje o dostawcy, możesz użyć Eksploratora wykazu katalogów, interfejsu wiersza polecenia wykazu usługi Databricks lub DESCRIBE PROVIDER
polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Wymagane uprawnienia: musisz być administratorem magazynu metadanych, mieć USE PROVIDER
uprawnienia lub być właścicielem obiektu dostawcy.
Aby uzyskać szczegółowe informacje, zobacz Wyświetlanie szczegółów dostawcy.
Wyświetlanie udziałów
Aby wyświetlić udziały udostępnione Przez dostawcę, możesz użyć Eksploratora katalogów, interfejsu wiersza polecenia wykazu aparatu Unity usługi Databricks lub SHOW SHARES IN PROVIDER
polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Wymagane uprawnienia: musisz być administratorem magazynu metadanych, mieć USE PROVIDER
uprawnienia lub być właścicielem obiektu dostawcy.
Aby uzyskać szczegółowe informacje, zobacz Wyświetlanie udziałów udostępnionych przez dostawcę.
Uzyskiwanie dostępu do danych w udostępnionej tabeli lub woluminie
Aby odczytać dane w udostępnionej tabeli lub woluminie:
- Użytkownik uprzywilejowany musi utworzyć wykaz z udziału zawierającego tabelę lub wolumin. Może to być administrator magazynu metadanych, użytkownik, który ma zarówno uprawnienia, jak i
USE PROVIDER
dla magazynu metadanych wykazu aparatu Unity, albo użytkownika, który maCREATE_CATALOG
zarównoCREATE_CATALOG
uprawnienia, jak i własność obiektu dostawcy. - Ten użytkownik lub użytkownik z tymi samymi uprawnieniami musi udzielić Ci dostępu do udostępnionej tabeli lub woluminu.
- Dostęp do tabeli lub woluminu można uzyskać tak samo jak każdy inny zasób danych zarejestrowany w magazynie metadanych wykazu aparatu Unity.
Tworzenie wykazu na podstawie udziału
Aby dane w udziale były dostępne dla twojego zespołu, musisz utworzyć wykaz na podstawie udziału. Aby utworzyć wykaz na podstawie udziału, możesz użyć Eksploratora wykazu, interfejsu wiersza polecenia wykazu usługi Databricks lub poleceń SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Wymagane uprawnienia: administrator magazynu metadanych, użytkownik, który ma uprawnienia i USE PROVIDER
dla magazynu metadanych wykazu aparatu Unity, lub użytkownik, który ma CREATE_CATALOG
zarówno CREATE_CATALOG
uprawnienia, jak i własność obiektu dostawcy.
Uwaga
Jeśli udział zawiera widoki, należy użyć nazwy wykazu innej niż nazwa wykazu zawierającego widok w magazynie metadanych dostawcy.
Eksplorator wykazu
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz , aby otworzyć Eksploratora wykazu.
W górnej części okienka Wykaz kliknij ikonę koła zębatego i wybierz pozycję Udostępnianie różnicowe.
Alternatywnie na stronie Szybki dostęp kliknij przycisk Udostępnianie > różnicowe.
Na karcie Udostępnione mi znajdź i wybierz dostawcę.
Na karcie Udziały znajdź udział i kliknij pozycję Utwórz wykaz w wierszu udziału.
Wprowadź nazwę wykazu i opcjonalny komentarz.
Kliknij pozycję Utwórz.
Alternatywnie po otwarciu Eksploratora wykazu możesz kliknąć pozycję Utwórz wykaz w prawym górnym rogu, aby utworzyć wykaz udostępniony. Zobacz Tworzenie katalogów.
SQL
Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks.
CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;
CLI
databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>
Wykaz utworzony na podstawie udziału ma typ wykazu udostępniania różnicowego. Typ można wyświetlić na stronie szczegółów wykazu w Eksploratorze wykazu lub uruchamiając polecenie DESCRIBE CATALOG SQL w notesie lub zapytaniu SQL usługi Databricks. Wszystkie wykazy udostępnione są wyświetlane w obszarze Wykaz > udostępniony w okienku po lewej stronie Eksploratora wykazu.
Wykaz udostępniania różnicowego można zarządzać w taki sam sposób, jak zwykłe wykazy w magazynie metadanych wykazu aparatu Unity. Katalog udostępniania różnicowego można wyświetlać, aktualizować i usuwać przy użyciu Eksploratora wykazu, interfejsu wiersza polecenia usługi Databricks oraz poleceń SHOW CATALOGS
, DESCRIBE CATALOG
ALTER CATALOG
, i DROP CATALOG
SQL.
Struktura przestrzeni nazw na poziomie 3 w katalogu udostępniania różnicowego utworzonego na podstawie udziału jest taka sama jak w ramach zwykłego wykazu w katalogu aparatu Unity: catalog.schema.table
lub catalog.schema.volume
.
Dane tabeli i woluminu w katalogu udostępnionym są tylko do odczytu, co oznacza, że można wykonywać operacje odczytu, takie jak:
DESCRIBE
,SHOW
iSELECT
dla tabel.DESCRIBE VOLUME
, ,LIST <volume-path>
SELECT * FROM <format>.'<volume_path>'
iCOPY INTO
dla woluminów.
Notesy w wykazie udostępnionym mogą być w wersji zapoznawczej i klonowane przez dowolnego użytkownika z USE CATALOG
katalogiem.
Modele w wykazie udostępnionym można odczytywać i ładować do wnioskowania przez dowolnego użytkownika z następującymi uprawnieniami: EXECUTE
uprawnienia do zarejestrowanego modelu oraz USE CATALOG
USE SCHEMA
uprawnienia w schemacie i wykazie zawierającym model.
Zarządzanie uprawnieniami dla schematów, tabel i woluminów w wykazie udostępniania różnicowego
Domyślnie twórca wykazu jest właścicielem wszystkich obiektów danych w katalogu udostępniania różnicowego i może zarządzać uprawnieniami dla dowolnego z nich.
Uprawnienia są dziedziczone w dół, chociaż niektóre obszary robocze mogą nadal znajdować się w starszym modelu zabezpieczeń, który nie dostarczył dziedziczenia. Zobacz Model dziedziczenia. Każdy użytkownik, któremu udzielono SELECT
uprawnień w wykazie, będzie miał SELECT
uprawnienie do wszystkich schematów i tabel w wykazie, chyba że to uprawnienie zostanie odwołane. Podobnie każdy użytkownik, któremu udzielono READ VOLUME
uprawnień do katalogu, będzie miał READ VOLUME
uprawnienie do wszystkich woluminów w wykazie, chyba że to uprawnienie zostanie odwołane. Nie można przyznać uprawnień, które zapewniają dostęp do zapisu lub aktualizacji wykazu udostępniania różnicowego lub obiektów w wykazie udostępniania różnicowego.
Właściciel wykazu może delegować własność obiektów danych innym użytkownikom lub grupom, co pozwala tym użytkownikom zarządzać uprawnieniami obiektów i cyklami życia.
Aby uzyskać szczegółowe informacje na temat zarządzania uprawnieniami do obiektów danych przy użyciu wykazu aparatu Unity, zobacz Zarządzanie uprawnieniami w wykazie aparatu Unity.
Odczytywanie danych w udostępnionej tabeli
Dane w tabeli udostępnionej można odczytywać przy użyciu dowolnego z dostępnych narzędzi jako użytkownik usługi Azure Databricks: Eksplorator wykazu, notesy, zapytania SQL, interfejs wiersza polecenia usługi Databricks i interfejsy API REST usługi Databricks. Musisz mieć SELECT
uprawnienia w tabeli.
Odczytywanie danych w udostępnionym woluminie
Dane w udostępnionym woluminie można odczytywać przy użyciu dowolnego z dostępnych narzędzi jako użytkownik usługi Azure Databricks: Eksplorator wykazu, notesy, zapytania SQL, interfejs wiersza polecenia usługi Databricks i interfejsy API REST usługi Databricks. Musisz mieć READ VOLUME
uprawnienia do woluminu.
Ładowanie modelu udostępnionego na potrzeby wnioskowania
Aby uzyskać szczegółowe informacje na temat ładowania modelu udostępnionego i używania go do wnioskowania wsadowego, zobacz Ładowanie wersji modelu według aliasu dla obciążeń wnioskowania.
Wykonywanie zapytań dotyczących danych historii tabeli
Jeśli historia jest udostępniana wraz z tabelą, możesz wykonać zapytanie o dane tabeli jako wersję lub znacznik czasu. Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.
Na przykład:
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution VERSION AS OF 3;
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution TIMESTAMP AS OF "2023-01-01 00:00:00";
Ponadto, jeśli źródło danych zmian (CDF) jest włączone w tabeli, możesz wykonać zapytanie dotyczące usługi CDF. Obsługiwane są zarówno wersje, jak i znacznik czasu:
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', 0, 3);
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', "2023-01-01 00:00:00", "2022-02-01 00:00:00");
Aby uzyskać więcej informacji na temat zestawienia zmian danych, zobacz Use Delta Lake change data feed on Azure Databricks (Używanie zestawienia zmian usługi Delta Lake w usłudze Azure Databricks).
Wykonywanie zapytań względem tabeli przy użyciu przesyłania strumieniowego ze strukturą platformy Apache Spark
Jeśli tabela jest udostępniana historii, możesz użyć jej jako źródła przesyłania strumieniowego ze strukturą platformy Spark. Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.
Obsługiwane opcje:
ignoreDeletes
: Ignoruj transakcje, które usuwają dane.ignoreChanges
: Ponowne przetwarzanie aktualizacji, jeśli pliki zostały przepisane w tabeli źródłowej z powodu operacji zmiany danych, takiej jakUPDATE
, ,MERGE INTO
DELETE
(w partycjach) lubOVERWRITE
. Nadal można emitować niezmienione wiersze. W związku z tym odbiorcy podrzędni powinni mieć możliwość obsługi duplikatów. Usunięcia nie są propagowane w dół.ignoreChanges
obejmujeignoreDeletes
. W związku z tym, jeśli używaszignoreChanges
usługi , strumień nie zostanie zakłócony przez usunięcia lub aktualizacje tabeli źródłowej.startingVersion
: udostępniona wersja tabeli do uruchomienia. Wszystkie zmiany tabeli rozpoczynające się od tej wersji (włącznie) będą odczytywane przez źródło przesyłania strumieniowego.startingTimestamp
: znacznik czasu do rozpoczęcia od. Wszystkie zmiany tabeli zatwierdzone w godzinie lub po znaczniku czasu (włącznie) będą odczytywane przez źródło przesyłania strumieniowego. Przykład:"2023-01-01 00:00:00.0"
maxFilesPerTrigger
: liczba nowych plików, które mają być uwzględniane w każdej mikrosadowej partii.maxBytesPerTrigger
: ilość danych przetwarzanych w każdej mikrosadowej partii. Ta opcja ustawia wartość "nietrwałą maksymalną", co oznacza, że partia przetwarza w przybliżeniu tę ilość danych i może przetwarzać więcej niż limit, aby zapytanie przesyłane strumieniowo przechodziło do przodu w przypadkach, gdy najmniejsza jednostka wejściowa jest większa niż ten limit.readChangeFeed
: Strumień odczytuje zestawienie danych zmian w udostępnionej tabeli.
Nieobsługiwane opcje:
Trigger.availableNow
Przykładowe zapytania przesyłania strumieniowego ze strukturą
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.table("vaccine.vaccine_us.vaccine_us_distribution")
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.table("vaccine.vaccine_us.vaccine_us_distribution")
Jeśli źródło danych zmian (CDF) jest włączone w tabeli, możesz przesłać strumieniowo odczyt cdF.
spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")
Odczytywanie tabel z włączonymi wektorami usuwania lub mapowaniem kolumn
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Wektory usuwania to funkcja optymalizacji magazynu, którą dostawca może włączyć w udostępnionych tabelach delty. Zobacz Co to są wektory usuwania?.
Usługa Azure Databricks obsługuje również mapowanie kolumn dla tabel delty. Zobacz Zmienianie nazwy i usuwanie kolumn za pomocą mapowania kolumn usługi Delta Lake.
Jeśli dostawca udostępnił tabelę z włączonymi wektorami usuwania lub mapowaniem kolumn, możesz wykonać operacje odczytu wsadowego w tabeli przy użyciu usługi SQL Warehouse lub klastra z uruchomionym środowiskiem Databricks Runtime 14.1 lub nowszym. Zapytania CDF i przesyłania strumieniowego wymagają środowiska Databricks Runtime 14.2 lub nowszego.
Zapytania wsadowe można wykonywać w stanie rzeczywistym, ponieważ mogą one automatycznie rozwiązywać problemy responseFormat
na podstawie funkcji tabeli udostępnionej tabeli.
Aby odczytać zestawienie danych zmian (CDF) lub wykonać zapytania przesyłane strumieniowo na udostępnionych tabelach z włączonymi wektorami usuwania lub mapowaniem kolumn, należy ustawić dodatkową opcję responseFormat=delta
.
W poniższych przykładach pokazano zapytania wsadowe, CDF i streamingowe:
import org.apache.spark.sql.SparkSession
// Batch query
spark.read.format("deltaSharing").table(<tableName>)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.table(<tableName>)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").table(<tableName>)
Odczytywanie widoków udostępnionych
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Odczytywanie widoków udostępnionych jest takie samo jak odczytywanie udostępnionych tabel z następującymi wyjątkami:
Wyświetlanie ograniczeń udostępniania:
Nie można udostępniać widoków odwołujących się do udostępnionych tabel ani widoków udostępnionych.
Wymagania dotyczące nazewnictwa:
Nazwa wykazu używana dla wykazu udostępnionego, która zawiera widok, nie może być taka sama jak wykaz dostawców, który zawiera tabelę, do której odwołuje się widok. Jeśli na przykład widok udostępniony znajduje się w test
katalogu, a jedna z tabel dostawcy, do której odwołuje się ten widok, znajduje się w wykazie dostawcy test
, zapytanie spowoduje błąd konfliktu przestrzeni nazw. Zobacz Tworzenie wykazu na podstawie udziału.
Historia i przesyłanie strumieniowe:
Nie można wykonywać zapytań dotyczących historii ani używać widoku jako źródła przesyłania strumieniowego.
Wyświetl obsługę otwierania udostępniania:
Instrukcje w tym artykule koncentrują się na odczytywaniu udostępnionych danych przy użyciu interfejsów użytkownika usługi Azure Databricks, w szczególności składni i interfejsów wykazu aparatu Unity. Możesz również wykonywać zapytania dotyczące widoków udostępnionych przy użyciu narzędzi Apache Spark, Python i BI, takich jak Tableau i Power BI.
Koszty:
Istnieją dwa potencjalne źródła kosztów udostępniania widoku:
- Koszt obliczeń naliczany przez usługę Databricks.
- Koszt transferu magazynu i sieci (ruchu wychodzącego) naliczany przez dostawcę magazynu.
Koszt obliczeniowy jest oparty na typie zasobu obliczeniowego odbiorcy:
Obliczenia adresata | Kto płaci? | SKU |
---|---|---|
Usługa Databricks bez użycia serwera | Adresat | Bezserwerowa jednostka SKU używana przez adresata |
Databricks Classic | Adresat | Interakcyjny bezserwerowy |
Otwieranie łączników udostępniania różnicowego | Dostawca | Interakcyjny bezserwerowy |
Odczytywanie notesów udostępnionych
Aby wyświetlić podgląd i sklonować pliki udostępnionego notesu, możesz użyć Eksploratora wykazu.
Wymagane uprawnienia: właściciel wykazu lub użytkownik z uprawnieniami USE CATALOG
do wykazu utworzonego na podstawie udziału.
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz.
W okienku po lewej stronie rozwiń menu Wykaz , znajdź i wybierz wykaz utworzony na podstawie udziału.
Na karcie Inne zasoby zobaczysz wszystkie pliki notesu udostępnionego.
Kliknij nazwę udostępnionego pliku notesu, aby wyświetlić jego podgląd.
(Opcjonalnie) Kliknij przycisk Klonuj, aby zaimportować plik notesu udostępnionego do obszaru roboczego.
- W oknie dialogowym Klonowanie do wprowadź opcjonalnie nową nazwę, a następnie wybierz folder obszaru roboczego, do którego chcesz sklonować plik notesu.
- Kliknij pozycję Klonuj.
- Po sklonowanym notesie zostanie wyświetlone okno dialogowe z informacją, że został pomyślnie sklonowany. Kliknij przycisk ujawnić w edytorze notesów w oknie dialogowym, aby wyświetlić go w edytorze notesów.
Zobacz Wprowadzenie do notesów usługi Databricks.