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 do udostępnionych tabel danych, widoków i woluminów wyświetlanych 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:

  1. 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.
  2. 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.
  3. 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 lub READ VOLUME).
  4. 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:

  1. 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 ma CREATE_CATALOG zarówno CREATE_CATALOG uprawnienia, jak i własność obiektu dostawcy.
  2. Ten użytkownik lub użytkownik z tymi samymi uprawnieniami musi udzielić Ci dostępu do udostępnionej tabeli lub woluminu.
  3. 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

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazuWykaz.
  2. W okienku po lewej stronie rozwiń menu Udostępnianie różnicowe i wybierz pozycję Udostępnione mi.
  3. Na karcie Dostawcy wybierz dostawcę.
  4. Na karcie Udziały znajdź udział i kliknij pozycję Utwórz wykaz w wierszu udziału.
  5. Wprowadź nazwę wykazu i opcjonalny komentarz.
  6. Kliknij pozycję Utwórz.

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 CATALOGALTER 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, SHOWi SELECT dla tabel.
  • DESCRIBE VOLUME, , LIST <volume-path>SELECT * FROM <format>.'<volume_path>'i COPY 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 CATALOGUSE 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 modeli 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 jak UPDATE, , MERGE INTODELETE (w partycjach) lub OVERWRITE. 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 obejmuje ignoreDeletes. W związku z tym, jeśli używasz ignoreChangesusł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.

Uwaga

Udostępnianie widoków jest obsługiwane tylko w przypadku udostępniania między platformami Databricks.

Odczytywanie widoków udostępnionych jest takie samo jak odczytywanie udostępnionych tabel z następującymi wyjątkami:

Wymagania dotyczące obliczeń:

  • Jeśli konto usługi Azure Databricks różni się od dostawcy, musisz użyć bezserwerowego magazynu SQL Warehouse do wykonywania zapytań dotyczących widoków udostępnionych.
  • Jeśli dostawca znajduje się na tym samym koncie usługi Azure Databricks, możesz użyć dowolnego magazynu SQL, a także użyć klastra korzystającego z trybu dostępu współdzielonego.

Ograniczenia widoku w widoku:

Nie można tworzyć widoków odwołujących się do widoków udostępnionych.

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.

JDBC/ODBC:

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, przy użyciu sterowników JDBC/ODBC usługi Databricks. Aby dowiedzieć się, jak nawiązać połączenie przy użyciu sterowników JDBC/ODBC usługi Databricks, zobacz Sterowniki ODBC i JDBC usługi Databricks.

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.

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazuWykaz.

  2. W okienku po lewej stronie rozwiń menu Wykaz , znajdź i wybierz wykaz utworzony na podstawie udziału.

  3. Na karcie Inne zasoby zobaczysz wszystkie pliki notesu udostępnionego.

  4. Kliknij nazwę udostępnionego pliku notesu, aby wyświetlić jego podgląd.

  5. (Opcjonalnie) Kliknij przycisk Klonuj, aby zaimportować plik notesu udostępnionego do obszaru roboczego.

    1. W oknie dialogowym Klonowanie do wprowadź opcjonalnie nową nazwę, a następnie wybierz folder obszaru roboczego, do którego chcesz sklonować plik notesu.
    2. Kliknij pozycję Klonuj.
    3. 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.