Odczytywanie danych udostępnionych przy użyciu Databricks-to-Databricks Delta Sharing (dla odbiorców)

Na tej stronie opisano, jak odczytywać dane udostępnione za pomocą protokołu Databricks-to-Databricks Delta Sharing, gdzie usługa Databricks zarządza bezpiecznym połączeniem, umożliwiającym udostępnianie danych. W przeciwieństwie do protokołu Delta Sharing otwartego udostępniania, protokół Databricks-to-Databricks nie wymaga pliku poświadczeń (zabezpieczenia oparte na tokenach).

Udostępnianie danych z usługi Databricks do usługi Databricks wymaga spełnienia obu następujących wymagań:

  • Masz dostęp do obszaru roboczego usługi Databricks, który jest włączony dla katalogu Unity.
  • Dostawca korzysta z protokołu Delta Sharing z Databricks do Databricks, a nie z otwartego protokołu udostępniania, który dostarcza plik poświadczeń.

Jeśli którekolwiek z wymagań nie zostanie spełnione, zobacz Odczyt danych udostępnionych przy użyciu Delta Sharing w otwartym udostępnianiu z użyciem tokenów uwierzytelnienia.

Jak mogę udostępnić udostępnione dane mojemu zespołowi?

Aby odczytać dane i notesy, które zostały Ci udostępnione przy użyciu protokołu Databricks-to-Databricks, musisz być użytkownikiem obszaru roboczego usługi Databricks, który jest skonfigurowany do używania usługi Unity Catalog. Członek zespołu przekazuje dostawcy danych unikatowy identyfikator metastore Unity Catalog, a dostawca danych wykorzystuje ten identyfikator do utworzenia bezpiecznego połączenia udostępniania z organizacją. Dane udostępnione stają się następnie dostępne do odczytu w obszarze roboczym. Aktualizacje dokonywane przez dostawcę danych w udostępnianych tabelach, widokach, woluminach i partycjach są niemal natychmiast odzwierciedlane w obszarze roboczym.

Note

Zmiany kolumn, takie jak dodawanie, zmienianie nazw lub usuwanie, mogą nie być wyświetlane w Eksploratorze wykazu przez maksymalnie jedną minutę. Podobnie nowe udziały i aktualizacje udziałów, w tym dodawanie nowych tabel, są buforowane przez minutę, zanim będą dostępne do wyświetlania i wykonywania zapytań.

Note

Tabele w information_schema z wykazu udostępnionego odzwierciedlają metadane przechowywane w Unity Catalog. Te metadane są aktualizowane od dostawcy tylko wtedy, gdy wykonujesz zapytanie o udostępnioną tabelę bezpośrednio lub uruchamiasz polecenie, takie jak DESCRIBE lub REFRESH FOREIGN. Do tego czasu information_schema może wydawać się nieaktualne w porównaniu z danymi dostawcy.

Aby odczytać dane, które zostały Ci udostępnione:

  1. Użytkownik w zespole znajduje udział— kontener na tabele, widoki, woluminy i notatniki, które zostały Ci udostępnione — i używa tego udziału do utworzenia katalogu — kontenera najwyższego poziomu dla wszystkich danych w katalogu Unity w Databricks.
  2. Użytkownik w zespole udziela lub odmawia dostępu do katalogu i obiektów w katalogu (schematów, tabel, widoków i woluminów) członkom zespołu.
  3. Dane są odczytywane w tabelach, widokach i woluminach, do których udzielono dostępu, tak jak każdy zasób danych w usłudze Databricks, do którego masz dostęp tylko do odczytu (SELECT lub READ VOLUME).
  4. Możesz wyświetlać podgląd i klonować notesy w sekcji współdzielonej, pod warunkiem posiadania USE CATALOG uprawnień do katalogu.

Wymagane uprawnienia

Aby móc wyświetlać listę i szczegółowe informacje o wszystkich dostawcach i udziałach dostawców, musisz 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ć katalog z udziału dostawcy, musisz być administratorem metastore, użytkownikiem, który ma zarówno uprawnienia CREATE CATALOG, jak i USE PROVIDER dla Unity Catalog, lub użytkownikiem, który ma zarówno uprawnienia CREATE CATALOG, jak i własność obiektu dostawcy.

Możliwość udzielania dostępu w trybie tylko do odczytu do schematów (baz danych), tabel, widoków i woluminów w katalogu utworzonym z udziału jest zgodna z typową hierarchią uprawnień Unity Catalog. Możliwość wyświetlania notatników w katalogu utworzonym z udostępnienia wymaga uprawnień USE CATALOG w katalogu. Zobacz Zarządź uprawnieniami dla schematów, tabel i woluminów w Delta Sharing katalogu.

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 oraz współdzielić obiekty przechowywane w magazynie metadanych Unity Catalog, gdy dostawca już Ci udostępnił dane.

Obiekt dostawcy reprezentuje metamagazyn wykazu Unity, platformę w chmurze i region organizacji, która udostępniła 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ć Catalog Explorer, Databricks Unity Catalog CLI lub polecenia SHOW PROVIDERS SQL w notesie Azure Databricks lub edytorze zapytań SQL usługi Databricks.

Wymagane uprawnienia: Musisz 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świetl dostawców.

Wyświetlanie szczegółów dostawcy

Aby wyświetlić szczegółowe informacje o dostawcy, możesz użyć Eksploratora Katalogów, wiersza poleceń Databricks Unity Catalog CLI lub polecenia DESCRIBE PROVIDER SQL w notesie Azure Databricks albo edytorze zapytań SQL 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 Zobacz szczegóły dostawcy.

Wyświetlanie udziałów

Aby wyświetlić udziały udostępnione przez dostawcę, możesz użyć Eksploratora katalogów, interfejsu wiersza polecenia Unity Catalog usługi Databricks lub polecenia SHOW SHARES IN PROVIDER SQL w notesie 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 Udostępnienia, które dostawca udostępnił Tobie.

dostęp do danych w udostępnionej tabeli lub woluminie

Aby odczytać dane w udostępnionej tabeli lub woluminie:

  1. Użytkownik uprzywilejowany musi utworzyć katalog na podstawie udziału zawierającego tabelę lub wolumin. Może to być administrator magazynu metadanych, użytkownik, który ma zarówno uprawnienia CREATE CATALOG, jak i USE PROVIDER dla Unity Catalog, lub użytkownik, który ma zarówno uprawnienia CREATE CATALOG, 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 objętości można uzyskać tak samo, jak do każdego innego zasobu danych zarejestrowanego w Katalogu Unity.

Utwórz katalog z udostępnienia

Aby dane w udziale były dostępne dla twojego zespołu, należy utworzyć katalog z udziału lub zamontować udział w istniejącym katalogu udostępnionym. Aby utworzyć katalog z udziału, możesz użyć Catalog Explorer, Databricks Unity Catalog CLI lub poleceń SQL w notesie Azure Databricks albo w edytorze zapytań SQL Databricks. Aby zainstalować udział w istniejącym wykazie udostępnionym, możesz użyć Eksploratora wykazu.

Uprawnienia wymagane do utworzenia katalogu: administrator metadanych Unity Catalog, użytkownik, który ma zarówno uprawnienia CREATE CATALOG, jak i USE PROVIDER dla metadanych Unity Catalog, lub użytkownik, który ma zarówno uprawnienia CREATE CATALOG, jak i własność obiektu dostawcy.

Uprawnienia wymagane do zamontowania udziału do istniejącego katalogu: użytkownik musi mieć USE PROVIDER przywilej lub być właścicielem obiektu dostawcy, a także być właścicielem istniejącego katalogu udostępnionego lub mieć przywileje MANAGE i USE CATALOG w istniejącym katalogu udostępnionym.

Note

Jeśli tworzysz katalog na podstawie udostępnienia SAP BDC, metadane semantyczne SAP (komentarze tabel i kolumn, klucze podstawowe, klucze obce i tagi zarządzania) są automatycznie synchronizowane z katalogiem. Nie jest wymagana żadna dodatkowa akcja. Aby uzyskać szczegółowe informacje, zobacz metadane semantyczne usługi SAP BDC.

Note

Jeśli zasób zawiera widoki, należy użyć nazwy katalogu innej niż nazwa katalogu zawierającego widok w magazynie metadanych dostawcy.

Eksplorator wykazu

  1. W obszarze roboczym Azure Databricks kliknij pozycję Ikona Danych.Katalog aby otworzyć Eksplorator Katalogu.

  2. Na górze okienka Wykaz kliknij ikonę koła zębatego i wybierz pozycję Delta Sharing.

    Alternatywnie w prawym górnym rogu kliknij Udostępnij > Delta Sharing.

  3. Na karcie Udostępnione mi znajdź i wybierz usługodawcę.

  4. Znajdź żądany udział i kliknij Zamontuj do katalogu w wierszu udziału.

  5. Wybierz Utwórz nowy katalog lub Dołącz do istniejącego katalogu, aby dodać zasób danych do istniejącego katalogu.

  6. Wprowadź nazwę nowego wykazu lub wybierz istniejący wykaz, do którego chcesz dodać udział.

  7. Kliknij Utwórz lub Zamontuj.

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>

Katalog utworzony na podstawie współdzielenia ma typ katalogu Delta Sharing. 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 udostępnione katalogi są wymienione w Katalog > Shared w okienku po lewej stronie Eksploratora katalogu.

Katalogiem Delta Sharing można zarządzać w taki sam sposób, jak zwykłymi katalogami w metastore Unity Catalogu. Katalog Delta Sharing można wyświetlać, aktualizować i usuwać przy użyciu Catalog Explorer, Databricks CLI oraz poleceń SQL SHOW CATALOGS, DESCRIBE CATALOG, ALTER CATALOGi DROP CATALOG.

Struktura 3-poziomowej przestrzeni nazw w katalogu Delta Sharing utworzonym na podstawie udziału jest taka sama jak w ramach zwykłego katalogu w Unity Catalog: 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.

Notatniki w katalogu udostępnionym mogą być przeglądane i klonowane przez dowolnego użytkownika z USE CATALOG w katalogu.

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 uprawnienia USE SCHEMA i USE CATALOG w schemacie i wykazie zawierającym model.

Zarządzanie uprawnieniami dla schematów, tabel i woluminów w katalogu Delta Sharing

Domyślnie twórca wykazu jest właścicielem wszystkich obiektów danych w katalogu Delta Sharing 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 umożliwia dziedziczenia. Zobacz Model dziedziczenia. Każdy użytkownik, któremu udzielono uprawnień SELECT w wykazie, będzie miał uprawnienia SELECT dla wszystkich schematów i tabel w wykazie, chyba że to uprawnienie zostanie odwołane. Podobnie każdy użytkownik, któremu udzielono uprawnień READ VOLUME w wykazie, będzie miał uprawnienia READ VOLUME dla 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 katalogu Delta Sharing lub obiektów w katalogu Delta Sharing.

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 katalogu Unity, zobacz Zarządzanie uprawnieniami w katalogu Unity.

Odczytywanie danych w udostępnionej tabeli

Dane w tabeli udostępnionej można odczytywać przy użyciu dowolnego narzędzia dostępnego dla Ciebie jako użytkownik Azure Databricks: Eksplorator wykazu, notesy, zapytania SQL, interfejs wiersza polecenia usługi Databricks i interfejsy API REST usługi Databricks. Musisz mieć uprawnienia SELECT w tabeli.

Jeśli dostawca udostępnił tabelę WITH HISTORY, możesz uruchamiać transakcje w tabeli. Aby uzyskać więcej informacji na temat wymagań i ograniczeń transakcji, zobacz Transakcje.

Odczytywanie danych w udostępnionej tabeli obcej lub schematu obcego

Important

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie podglądami Azure Databricks.

Dane można odczytywać w udostępnionej tabeli obcej lub schemacie obcym przy użyciu dowolnego z dostępnych narzędzi jako użytkownik platformy Azure Databricks: Eksplorator Katalogu, notatniki, zapytania SQL, interfejs wiersza polecenia usługi Databricks i interfejsy API REST usługi Databricks. Musisz mieć SELECT uprawnienia do udostępnionej tabeli obcej lub schematu obcego.

Transakcje można uruchamiać w udostępnionych tabelach obcych. Zobacz wymagania i ograniczenia transakcji.

Podczas uzyskiwania dostępu do udostępnionej tabeli obcej lub schematu obcego są dodatkowe koszty. Aby uzyskać informacje na temat sposobu obliczania kosztów związanych z Delta Sharing, zobacz Jak naliczane są koszty i jak sprawdzić koszty Delta Sharing?.

Ograniczenia: nie można pominąć ograniczeń klastra w celu odczytu udostępnionych tabel obcych, nawet jeśli dostawca na to zezwoli.

Odczytywanie danych w udostępnionej obcej tabeli Iceberg

Important

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Dane można odczytywać w udostępnionej zewnętrznej tabeli Iceberg przy użyciu dowolnego z narzędzi dostępnych jako użytkownik Azure Databricks: Eksploratora katalogu, notesów, zapytań SQL, interfejsu wiersza poleceń Databricks i interfejsów API REST Databricks. W Eksploratorze katalogów udostępniona obca tabela Iceberg jest wyświetlana z typem tabeli Foreign i formatem źródła danych Iceberg.

Masz dostęp do źródłowej lokalizacji Góry Lodowej, ale może wykonywać tylko następujące typy zapytań:

  • Zapytania migawki
  • Zapytania przesyłane strumieniowo

Wymagania:

  • Musisz mieć SELECT uprawnienia dla udostępnionej zewnętrznej tabeli Iceberg.
  • Musisz użyć środowiska Databricks Runtime 15.4 LTS lub nowszego.

Odczytywanie danych w udostępnionym woluminie

Dane w udostępnionym woluminie można odczytywać przy użyciu dowolnego narzędzia dostępnego dla Ciebie jako użytkownik Azure Databricks: Eksplorator wykazu, notesy, zapytania SQL, interfejs wiersza polecenia usługi Databricks i interfejsy API REST usługi Databricks. Musisz mieć uprawnienie READ VOLUME na woluminie.

Odczytywanie danych zabezpieczonych ABAC i stosowanie zasad ABAC

Important

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Attribute-based access control (ABAC) to model zarządzania danymi, który oferuje elastyczną, skalowalną i scentralizowaną kontrolę dostępu w Azure Databricks.

Administratorzy konta po stronie adresata muszą włączyć Kontrolę Dostępu Opartą na Atrybutach dla Delta Sharing w wersji zapoznawczej konsoli konta, aby odczytać tabele udostępnione zabezpieczone przez zasady ABAC. Dzięki temu wyniki zapytania są poprawne. W przeciwnym razie istnieje ryzyko, że dane nie są prawidłowo zarządzane.

Utwórz zasady ABAC dla udostępnianych tabel, schematów i katalogów utworzonych na podstawie udostępniania. Zmaterializowane widoki są obsługiwane z ograniczeniami. Nie można utworzyć zasad ABAC dla udostępnionych tabel przesyłania strumieniowego ani zmaterializowanych widoków. Aby skonfigurować zasady ABAC, zobacz Tworzenie zasad kontroli dostępu opartej na atrybutach (ABAC) i zarządzanie nimi.

Odczytywanie kolumn śledzenia wierszy w tabelach udostępnionych

Jeśli dostawca danych włączył śledzenie wierszy w udostępnionej tabeli, możesz wykonać zapytanie dotyczące kolumn metadanych śledzenia wierszy. Aby uzyskać listę dostępnych kolumn, zobacz Śledzenie wierszy w usłudze Databricks .

Sposób uzyskiwania dostępu do tych kolumn zależy od typu udostępnionej tabeli:

  • Tabele współużytkowane z historią i bez filtrów partycji: możesz wykonywać zapytania dotyczące kolumn śledzenia wierszy bez ograniczeń.

  • Tabele z filtrami partycji lub tabelami udostępnionymi bez historii: musisz użyć platformy Scala Spark i jawnie ustawić responseFormat opcję na delta.

    spark.read.option(“responseformat”, “delta”).table(“shared_table”).select(“_metadata.row_id”).show()
    

Ładowanie modelu udostępnionego na potrzeby wnioskowania

Aby uzyskać szczegółowe informacje na temat ładowania modelu współdzielonego 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 dla wersji lub znacznika czasu. Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.

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 dla tabeli, możesz wykonać zapytanie dotyczące 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 danych zmian, zobacz Use Delta Lake change data feed on Azure Databricks (Użycie zestawienia danych zmian usługi Delta Lake w witrynie Azure Databricks.

Kierowanie zapytań do tabeli przy użyciu Apache Spark Structured Streaming

Jeśli tabela jest udostępniana z historią, możesz użyć jej jako źródła dla strumieniowego przesyłania danych Spark Structured Streaming. 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 INTO, DELETE (w ramach partycji) lub OVERWRITE. Nadal można przesyłać 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 ignoreChanges, strumień nie będzie zakłócany przez usunięcia lub aktualizacje tabeli źródłowej.
  • startingVersion: wersja tabeli, od której należy rozpocząć. Wszystkie zmiany tabeli rozpoczynające się od tej wersji (włącznie) będą odczytywane przez źródło przesyłania strumieniowego.
  • startingTimestamp: znacznik czasu, od którego należy rozpocząć. Wszystkie zmiany tabeli zatwierdzone w danym lub późniejszym momencie (włącznie) będą odczytywane przez źródło strumieniowe. Przykład: "2023-01-01 00:00:00.0"
  • maxFilesPerTrigger: liczba nowych plików do uwzględnienia w każdej mikro-partii.
  • maxBytesPerTrigger: Ilość danych, które są przetwarzane w każdej mikroserii. Ta opcja ustawia "miękki pułap", co oznacza, że partia przetwarza około tej ilości danych i może przetwarzać więcej niż limit, aby zapytanie strumieniowe mogło kontynuować, gdy najmniejsza jednostka danych wejściowych przekracza ten limit.
  • readChangeFeed: Stream odczytuje strumień danych o zmianach w udostępnionej tabeli.

Nieobsługiwane opcje:

  • Trigger.availableNow

Przykładowe zapytania strukturalnego przesyłania strumieniowego

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 odczytywać strumieniowo dane ze źródła CDF.

spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")

Stosowanie filtrów wierszy i masek kolumn

Aby zastosować filtry wierszy i maski kolumn w tabelach i tabelach obcych udostępnionych przez dostawcę danych, zobacz Ręczne stosowanie filtrów wierszy i masek kolumn. Nie można stosować masek kolumn do tabel przesyłania strumieniowego ani zmaterializowanych widoków.

Odczyt tabel z włączonymi wektorami usuwania lub mapowaniem kolumn

Important

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Wektory usuwania to funkcja optymalizacji magazynu, którą dostawca może włączyć w tabelach Delta współdzielonych. Zobacz Wektory usuwania w usłudze Databricks.

Azure Databricks obsługuje również mapowanie kolumn dla tabel delty. Zobacz Zmień nazwę i usuń kolumny poprzez mapowanie kolumn Delta Lake.

Jeśli dostawca udostępnił tabelę z włączonymi wektorami usuwania lub mapowaniem kolumn, możesz wykonać odczyty wsadowe w tabeli za pomocą magazynu SQL lub klastra z uruchomionym środowiskiem Databricks Runtime 14.1 lub nowszym. Dla zapytań CDF i przesyłania strumieniowego wymagane jest zastosowanie środowiska Databricks Runtime 14.2 lub nowszego.

Możesz wykonywać zapytania wsadowe as-is, ponieważ mogą one automatycznie rozwiązywać responseFormat na podstawie właściwości współdzielonej tabeli.

Aby odczytać strumień danych o zmianach (CDF) lub wykonać zapytania przesyłane strumieniowo w udostępnionych tabelach, w których włączono wektory usuwania lub mapowanie kolumn, należy ustawić dodatkową opcję responseFormat=delta.

W poniższych przykładach pokazano zapytania wsadowe, typu CDF oraz strumieniowe.

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 udostępnianych zarządzanych tabel Iceberg

Important

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

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

Wsparcie w otwartym udostępnianiu:

Instrukcje w tym artykule koncentrują się na odczytywaniu udostępnionych danych przy użyciu interfejsów użytkownika Azure Databricks, w szczególności składni i interfejsów Unity Catalog. Ze względu na ograniczenie obsługi zaawansowanych funkcji łączników Delta Sharing, zapytania dotyczące udostępnionych zarządzanych tabel Iceberg przy użyciu Pythona, Tableau i Power BI nie są obsługiwane.

Zmień źródło danych:

Strumień danych zmian nie jest obsługiwany dla zarządzanych tabel Iceberg.

Ograniczenia Azure Databricks Iceberg:

Ograniczenia dotyczą zarówno tabel Iceberg, jak i zarządzanych tabel Iceberg. Zobacz Ograniczenia tabeli Iceberg.

Odczytywanie widoków udostępnionych

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

Ograniczenia widoków udostępnionych:

  • Udostępnione widoki obsługują tylko podzbiór wbudowanych funkcji i operatorów na platformie Databricks. Zobacz Funkcje obsługiwane w udostępnionych widokach usługi Databricks-to-Databricks.
  • Adresaci nie mogą wykonywać zapytań o więcej niż 20 widoków udostępnionych w zapytaniu w udostępnianiu usługi Databricks-to-Databricks. Widoki udostępnione nie mogą pochodzić z więcej niż pięciu różnych udziałów dostawcy.
  • Jeśli dostawca pochodzi z tego samego konta lub gdy używasz bezserwerowych obliczeń na innym koncie, nie można wykonywać zapytań dotyczących wielu widoków zależnych od tego samego dostawcy w jednym zapytaniu. Jeśli na przykład view1 zależy od view2 po stronie dostawcy i oba widoki są Ci udostępniane, nie możesz odwoływać się zarówno do view1, jak i do view2 w tym samym zapytaniu.
  • Transakcje można uruchamiać w widokach udostępnionych. Zobacz wymagania i ograniczenia transakcji.

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.

Limit czasu wyniku zapytania:

Jeśli nie masz bezpośredniego dostępu do danych bazowych, Azure Databricks wykonuje materializację na bieżąco podczas zapytań do widoku. Gdy ta materializacja trwa dłużej niż 5 minut, zapytanie zostaje przerwane z powodu upływu limitu czasu. Przełącz się na bezserwerowe zasoby obliczeniowe, aby uniknąć tego ograniczenia.

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 wsparcie w otwartym udostępnianiu:

Instrukcje w tym artykule koncentrują się na odczytywaniu udostępnionych danych przy użyciu interfejsów użytkownika Azure Databricks, w szczególności składni i interfejsów Unity Catalog. Możesz również wykonywać zapytania dotyczące widoków udostępnionych przy użyciu platformy Apache Spark, Python i narzędzi analizy biznesowej, takich jak Tableau i Power BI.

Costs:

Aby uzyskać informacje na temat sposobu obliczania kosztów związanych z Delta Sharing, zobacz Jak naliczane są koszty i jak sprawdzić koszty Delta Sharing?.

Odczytywanie udostępnionych tabel przesyłania strumieniowego i zmaterializowanych widoków

Odczytywanie udostępnionych tabel przesyłania strumieniowego i zmaterializowanych widoków jest takie samo jak odczytywanie udostępnionych tabel z następującymi wyjątkami:

Wsparcie w otwartym udostępnianiu:

Instrukcje na tej stronie koncentrują się na odczytywaniu danych współdzielonych przy użyciu interfejsów użytkownika Azure Databricks, w szczególności składni i interfejsów użytkownika Unity Catalog. Możesz również wykonywać zapytania dotyczące udostępnionych tabel przesyłania strumieniowego i zmaterializowanych widoków przy użyciu platformy Apache Spark, Python i narzędzi analizy biznesowej, takich jak Tableau i Power BI. Zobacz Odczytywanie danych udostępnionych przy użyciu funkcji Delta Sharing w trybie otwartym z użyciem tokenów uwierzytelniających.

Transakcji:

Ograniczenia sql:

  • Funkcja current_recipient nie jest obsługiwana.
  • Polecenie DESCRIBE EXTENDED nie jest obsługiwane.

Mapowanie kolumn:

Jeśli używasz klasycznych obliczeń podczas odbierania udziału z innego konta Azure Databricks, należy określić responseFormat, jak poniżej podczas wykonywania zapytań dotyczących zmaterializowanego widoku lub tabel przesyłania strumieniowego z mapowaniem kolumn.

spark.read.option("responseFormat", "delta").table("catalog_name.schema_name.mv_name")

Jeśli używasz klasycznej mocy obliczeniowej przy udostępnianiu w ramach tego samego konta Azure Databricks lub mocy obliczeniowej bez serwera w dowolnym scenariuszu, możesz wykonywać zapytania bez ograniczeń.

Costs:

Aby uzyskać informacje na temat sposobu obliczania kosztów związanych z Delta Sharing, zobacz Jak naliczane są koszty i jak sprawdzić koszty Delta Sharing?.

Wyjątki specyficzne dla zmaterializowanego widoku

History:

Nie można wykonywać zapytań dotyczących historii.

Refresh:

Nie można uzyskać dostępu do stanu odświeżania i harmonogramu odświeżania zmaterializowanego widoku.

Tworzenie widoku i tabeli strumieniowej:

Nie można tworzyć tabel strumieniowych na udostępnionych zmaterializowanych widokach.

Wyjątki dotyczące tabeli streamingu

History:

Historia zapytań jest dostępna w następujących okolicznościach udostępniania usługi Databricks-to-Databricks:

  • Używasz bezserwerowych obliczeń podczas współdzielenia z innym kontem Azure Databricks.

  • Używasz zasobów obliczeniowych bezserwerowych lub klasycznych podczas udostępniania w ramach tego samego konta Azure Databricks.

Aby uzyskać więcej informacji na temat różnych obliczeń, zobacz Obliczenia.

Refresh:

Nie można uzyskać dostępu do stanu odświeżania i harmonogramu odświeżania tabeli przesyłania strumieniowego.

Przeczytaj Udostępnione Funkcje Zdefiniowane Przez Użytkownika Python

Odczytywanie udostępnionych funkcji zdefiniowanych przez użytkownika w Pythonie jest takie samo jak czytanie udostępnionych tabel. Po utworzeniu nowego katalogu dla udziału lub zamontowaniu udziału w istniejącym katalogu, możesz uzyskać dostęp do funkcji UDF w Pythonie i korzystać z niej.

Odczyt udostępniony FeatureSpecs

Odczyt udostępniony FeatureSpecs jest taki sam jak odczyt tabel udostępnionych. Po utworzeniu nowego wykazu dla udziału lub zamontowaniu udziału w istniejącym wykazie można wdrożyć FeatureSpec do żądanego punktu końcowego obsługi. Aby dowiedzieć się, jak utworzyć punkt końcowy, zobacz Tworzenie punktu końcowego.

Jeśli dostawca aktualizuje FeatureSpec nową zależnością, ale nie dzieli się tą zależnością z Tobą, Twój model przestanie działać. Skontaktuj się z dostawcą danych, aby sprawdzić dostępność nowych zależności.

Przed obsługą FeatureSpecprogramu należy utworzyć sklep online i opublikować tabele zależne w obszarze roboczym. Aby dowiedzieć się, jak tworzyć sklepy online i publikować tabelę, zobacz Magazyny funkcji online usługi Databricks.

Odczytywanie notesów udostępnionych

Aby wyświetlić podgląd i sklonować pliki udostępnionego notesu, możesz użyć Eksploratora Katalogu.

Ograniczenie przechowywania: Jeśli pamięć korzysta z prywatnych punktów końcowych, nie można odczytywać udostępnionych notatników.

Wymagane uprawnienia: właściciel katalogu lub użytkownik z uprawnieniami USE CATALOG w katalogu utworzonym na podstawie udostępnienia.

  1. W obszarze roboczym Azure Databricks kliknij pozycję Ikona danych.Catalog.

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

  3. Na karcie Inne zasoby zobaczysz jakiekolwiek pliki notatek udostępnionych.

  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 Klonuj do opcjonalnie wprowadź Nową nazwą, a następnie wybierz folder obszaru roboczego, do którego chcesz sklonować plik notatnika.
    2. Kliknij Klonuj.
    3. Po sklonowaniu notesu pojawi się okno dialogowe informujące, że został pomyślnie sklonowany. Kliknij pokaż w edytorze notatników w oknie dialogowym, aby to wyświetlić w edytorze notatników.

    Zobacz Notesy usługi Databricks.

Odmontować udział

Odmontować udział, aby usunąć zasób danych z katalogu.

Wymagane uprawnienia: Użytkownik z uprawnieniami USE CATALOG i MANAGE w wykazie udostępnionym.

  1. W obszarze roboczym Azure Databricks kliknij pozycję Ikona Danych.Katalog aby otworzyć Eksplorator Katalogu.

  2. Na górze okienka Wykaz kliknij ikonę koła zębatego i wybierz pozycję Delta Sharing.

    Alternatywnie w prawym górnym rogu kliknij Udostępnij > Delta Sharing.

  3. Na karcie Udostępnione mi znajdź i wybierz usługodawcę.

  4. Kliknij ikonę menu Kebab. w pasku udostępniania.

  5. Kliknij Odmontuj udział.

  6. Kliknij przycisk Odinstaluj.