Čtení dat sdílených pomocí Sdílení Databricks-to-Databricks Delta (pro příjemce)

Tento článek popisuje, jak číst data, která s vámi někdo sdílí, pomocí protokolu Databricks-to-Databricks Delta Sharing, ve kterém Databricks spravuje zabezpečené připojení ke sdílení dat. Na rozdíl od otevřeného protokolu sdílení delta nevyžaduje protokol Databricks-to-Databricks soubor přihlašovacích údajů (zabezpečení založené na tokenech).

Sdílení Databricks-to-Databricks vyžaduje, abyste jako příjemce měli přístup k pracovnímu prostoru Databricks, který je povolený pro katalog Unity.

Pokud nemáte pracovní prostor Databricks, který je povolený pro Katalog Unity, musí se s vámi data sdílet pomocí otevřeného protokolu pro sdílení delta a tento článek se na vás nevztahuje. Viz Čtení dat sdílených pomocí otevřeného sdílení rozdílového sdílení (pro příjemce).

Návody zpřístupnit sdílená data mému týmu?

Pokud chcete číst data a poznámkové bloky, které s vámi někdo sdílí pomocí protokolu Databricks-to-Databricks, musíte být uživatelem v pracovním prostoru Databricks, který je povolený pro Katalog Unity. Člen vašeho týmu poskytuje poskytovateli dat jedinečný identifikátor metastoru katalogu Unity a zprostředkovatel dat tento identifikátor používá k vytvoření zabezpečeného připojení ke sdílení s vaší organizací. Sdílená data pak budou dostupná pro přístup pro čtení v pracovním prostoru a všechny aktualizace, které poskytovatel dat zpřístupňuje sdíleným tabulkám, zobrazením, svazkům a oddílům, se projeví v pracovním prostoru téměř v reálném čase.

Poznámka:

Aktualizace sdílených datových tabulek, zobrazení a svazků se v pracovním prostoru zobrazují téměř v reálném čase. Změny sloupců (přidání, přejmenování, odstranění) se ale v Průzkumníku katalogu nemusí zobrazovat až jednu minutu. Stejně tak se nové sdílené složky a aktualizace sdílených složek (například přidání nových tabulek do sdílené složky) ukládají do mezipaměti po dobu jedné minuty, než budou k dispozici k zobrazení a dotazování.

Čtení dat, která s vámi někdo sdílí:

  1. Uživatel ve vašem týmu najde sdílenou složku – kontejner pro tabulky, zobrazení, svazky a poznámkové bloky, které s vámi někdo sdílí – a používá tuto sdílenou složku k vytvoření katalogu – kontejner nejvyšší úrovně pro všechna data v Katalogu Unity Databricks.
  2. Uživatel ve vašem týmu udělí nebo odmítne přístup k katalogu a objektům v katalogu (schémata, tabulky, zobrazení a svazky) ostatním členům vašeho týmu.
  3. Data v tabulkách, zobrazeních a svazcích, ke kterým jste získali udělený přístup, si můžete přečíst stejně jako jakýkoli jiný datový prostředek v Databricks, ke kterému máte přístup jen pro čtení (SELECT nebo READ VOLUME).
  4. Náhled a klonování poznámkových bloků ve sdílené složce, pokud máte USE CATALOG oprávnění k katalogu.

Požadovaná oprávnění

Abyste mohli zobrazit a zobrazit podrobnosti o všech poskytovatelích a sdílených složkách zprostředkovatele, musíte být správcem metastoru nebo mít oprávnění USE PROVIDER . Jiní uživatelé mají přístup pouze k poskytovatelům a sdílejí, které vlastní.

Pokud chcete vytvořit katalog ze sdílené složky zprostředkovatele, musíte být správcem metastoru, uživatelem, který má oprávnění CREATE_CATALOG i USE PROVIDER oprávnění pro metastore katalogu Unity, nebo uživatelem, který má CREATE_CATALOG oprávnění i vlastnictví objektu zprostředkovatele.

Možnost udělit přístup jen pro čtení ke schématům (databázím), tabulkám, zobrazením a svazkům v katalogu vytvořenému ze sdílené složky se řídí typickou hierarchií oprávnění katalogu Unity. Možnost zobrazit poznámkové bloky v katalogu vytvořeném ze sdílené složky vyžaduje USE CATALOG oprávnění k katalogu. Viz Správa oprávnění pro schémata, tabulky a svazky v katalogu rozdílového sdílení.

Zobrazení poskytovatelů a sdílených složek

Pokud chcete začít číst data, která s vámi někdo sdílí, musíte znát název poskytovatele a sdílet objekty uložené v metastoru katalogu Unity, jakmile s vámi poskytovatel sdílí data.

Objekt poskytovatele představuje metastore katalogu Unity, cloudovou platformu a oblast organizace, která s vámi sdílí data.

Objekt sdílené složky představuje tabulky, svazky a zobrazení, které s vámi sdílel poskytovatel.

Zobrazit všechny poskytovatele, kteří s vámi sdíleli data

Pokud chcete zobrazit seznam dostupných poskytovatelů dat, můžete použít Průzkumníka katalogu, Rozhraní příkazového řádku katalogu Databricks Unity nebo SHOW PROVIDERS příkaz SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL Databricks.

Požadovaná oprávnění: Musíte být správcem metastoru USE PROVIDER nebo mít oprávnění. Jiní uživatelé mají přístup pouze k poskytovatelům a sdíleným složkám zprostředkovatele, které vlastní.

Podrobnosti najdete v tématu Zobrazení zprostředkovatelů.

Zobrazení podrobností o poskytovateli

Pokud chcete zobrazit podrobnosti o poskytovateli, můžete použít Průzkumníka katalogu, rozhraní příkazového řádku katalogu Databricks Unity nebo DESCRIBE PROVIDER příkaz SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL Databricks.

Požadovaná oprávnění: Musíte být správcem metastoru USE PROVIDER , mít oprávnění nebo vlastnit objekt zprostředkovatele.

Podrobnosti najdete v tématu Zobrazení podrobností o poskytovateli.

Zobrazení sdílených složek

Pokud chcete zobrazit sdílené složky, které s vámi sdílí poskytovatel, můžete použít Průzkumníka katalogu, rozhraní příkazového řádku katalogu Databricks Unity nebo SHOW SHARES IN PROVIDER příkaz SQL v poznámkovém bloku Azure Databricks nebo editoru dotazů SQL Databricks.

Požadovaná oprávnění: Musíte být správcem metastoru USE PROVIDER , mít oprávnění nebo vlastnit objekt zprostředkovatele.

Podrobnosti najdete v tématu Zobrazení sdílených složek, které s vámi sdílel poskytovatel.

Přístup k datům ve sdílené tabulce nebo svazku

Čtení dat ve sdílené tabulce nebo svazku:

  1. Privilegovaný uživatel musí vytvořit katalog ze sdílené složky, která obsahuje tabulku nebo svazek. Může to být správce metastoru, uživatel, který má oprávnění CREATE_CATALOG USE PROVIDER k metastoru katalogu Unity nebo uživatel, který má CREATE_CATALOG oprávnění i vlastnictví objektu zprostředkovatele.
  2. Tento uživatel nebo uživatel se stejnými oprávněními musí udělit přístup ke sdílené tabulce nebo svazku.
  3. K tabulce nebo svazku můžete přistupovat stejně jako k jakémukoli jinému datovému assetu registrovanému v metastore katalogu Unity.

Vytvoření katalogu ze sdílené složky

Pokud chcete, aby data ve sdílené složce byla přístupná vašemu týmu, musíte vytvořit katalog ze sdílené složky. Pokud chcete vytvořit katalog ze sdílené složky, můžete použít Průzkumníka katalogu, rozhraní příkazového řádku katalogu Databricks Unity nebo příkazy SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL Databricks.

Požadovaná oprávnění: Správce metastoru, uživatel, který má oprávnění CREATE_CATALOG k USE PROVIDER metastoru katalogu Unity, nebo uživatel, který má CREATE_CATALOG oprávnění i vlastnictví objektu zprostředkovatele.

Poznámka:

Pokud sdílená složka obsahuje zobrazení, musíte použít název katalogu, který se liší od názvu katalogu, který obsahuje zobrazení v metastoru poskytovatele.

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks kliknutím na Ikona katalogu Katalog otevřete Průzkumníka katalogu.

  2. V horní části podokna Katalog klikněte naIkona ozubeného kolečka ikonu ozubeného kola a vyberte Rozdílové sdílení.

    Případně na stránce Rychlý přístup klikněte na tlačítko Rozdílové sdílení>.

  3. Na kartě Sdílí se se mnou vyhledejte a vyberte poskytovatele.

  4. Na kartě Sdílené složky najděte sdílenou složku a na řádku sdílené složky klikněte na Vytvořit katalog.

  5. Zadejte název katalogu a volitelný komentář.

  6. Klikněte na Vytvořit.

Pokud otevřete Průzkumníka katalogu, můžete také kliknout na Vytvořit katalog v pravém horním rohu a vytvořit sdílený katalog. Viz Vytváření katalogů.

SQL

V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz.

CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;

Rozhraní příkazového řádku

databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>

Katalog vytvořený ze sdílené složky má typ katalogu rozdílového sdílení. Typ můžete zobrazit na stránce s podrobnostmi katalogu v Průzkumníku katalogu nebo spuštěním příkazu DESCRIBE CATALOG SQL v poznámkovém bloku nebo dotazu SQL Databricks. Všechny sdílené katalogy jsou uvedené v části Katalog > sdílené v levém podokně Průzkumník katalogu.

Katalog Delta Sharing je možné spravovat stejným způsobem jako běžné katalogy v metastoru katalogu Unity. Katalog sdílení delta můžete zobrazit, aktualizovat a odstranit pomocí Průzkumníka katalogu, rozhraní příkazového řádku Databricks a pomocí SHOW CATALOGSpříkazů , DESCRIBE CATALOGALTER CATALOG, a DROP CATALOG SQL.

Struktura oboru názvů na úrovni 3 pod katalogem Delta Sharing vytvořeným ze sdílené složky je stejná jako struktura v běžném katalogu v katalogu Unity: catalog.schema.table nebo catalog.schema.volume.

Data tabulek a svazků ve sdíleném katalogu jsou jen pro čtení, což znamená, že můžete provádět operace čtení, jako jsou:

  • DESCRIBE, SHOWa SELECT pro tabulky.
  • DESCRIBE VOLUME, LIST <volume-path>, SELECT * FROM <format>.'<volume_path>'a COPY INTO pro svazky.

Poznámkové bloky ve sdíleném katalogu můžou zobrazit náhled a naklonovat libovolný uživatel USE CATALOG v katalogu.

Modely ve sdíleném katalogu lze číst a načítat pro odvozování libovolným uživatelem s následujícími oprávněními: EXECUTE oprávnění k registrovanému modelu USE SCHEMA a USE CATALOG oprávnění ke schématu a katalogu obsahujícímu tento model.

Správa oprávnění pro schémata, tabulky a svazky v katalogu sdílení delta

Ve výchozím nastavení je tvůrce katalogu vlastníkem všech datových objektů v katalogu Delta Sharing a může spravovat oprávnění pro kterýkoli z nich.

Oprávnění se dědí směrem dolů, i když některé pracovní prostory můžou být stále ve starším modelu zabezpečení, který neposkytl dědičnost. Viz model dědičnosti. Každý uživatel, kterému bylo uděleno SELECT oprávnění v katalogu, bude mít SELECT oprávnění pro všechna schémata a tabulky v katalogu, pokud se toto oprávnění neodvolá. Stejně tak bude mít READ VOLUME každý uživatel udělené READ VOLUME oprávnění v katalogu oprávnění ke všem svazkům v katalogu, pokud toto oprávnění neodvoláte. Nemůžete udělit oprávnění, která umožňují zápis nebo aktualizaci přístupu k katalogu nebo objektům rozdílového sdílení v katalogu sdílení delta.

Vlastník katalogu může delegovat vlastnictví datových objektů jiným uživatelům nebo skupinám a tím udělit těmto uživatelům možnost spravovat oprávnění objektu a životní cykly.

Podrobné informace o správě oprávnění k datovým objektům pomocí katalogu Unity najdete v tématu Správa oprávnění v katalogu Unity.

Čtení dat ve sdílené tabulce

Data ve sdílené tabulce můžete číst pomocí libovolného nástroje, který máte k dispozici jako uživatel Azure Databricks: Průzkumník katalogu, poznámkové bloky, dotazy SQL, rozhraní příkazového řádku Databricks a rozhraní REST API Databricks. Musíte mít SELECT oprávnění k tabulce.

Čtení dat ve sdíleném svazku

Data ve sdíleném svazku můžete číst pomocí libovolného nástroje, které máte k dispozici jako uživatel Azure Databricks: Průzkumník katalogu, poznámkové bloky, dotazy SQL, rozhraní příkazového řádku Databricks a rozhraní REST API Databricks. Pro svazek musíte mít READ VOLUME oprávnění.

Načtení sdíleného modelu pro odvozování

Podrobnosti o načtení sdíleného modelu a jeho použití pro dávkové odvozování najdete v tématu Načtení verze modelu podle aliasu pro úlohy odvozování.

Dotazování na data historie tabulky

Pokud se historie sdílí společně s tabulkou, můžete se na data tabulky dotazovat jako na verzi nebo časové razítko. Vyžaduje Databricks Runtime 12.2 LTS nebo vyšší.

Příklad:

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";

Kromě toho, pokud je u tabulky povolený datový kanál změn (CDF), můžete se na CDF dotazovat. Podporují se verze i časové razítko:

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");

Další informace o změně datového kanálu najdete v tématu Použití kanálu změn Delta Lake v Azure Databricks.

Dotazování tabulky pomocí strukturovaného streamování Apache Sparku

Pokud je tabulka sdílená s historií, můžete ji použít jako zdroj strukturovaného streamování Sparku. Vyžaduje Databricks Runtime 12.2 LTS nebo vyšší.

Podporované možnosti:

  • ignoreDeletes: Ignorujte transakce, které odstraňují data.
  • ignoreChanges: Opětovné zpracování aktualizací, pokud byly soubory přepsány ve zdrojové tabulce z důvodu operace změny dat, jako UPDATEje , MERGE INTO( DELETE v rámci oddílů) nebo OVERWRITE. Nezměněné řádky je možné přesto vygenerovat. Proto by vaši podřízení spotřebitelé měli mít možnost zpracovávat duplicity. Odstranění se nešíří v podřízené části. ignoreChanges zahrnuje ignoreDeletes. Proto pokud použijete ignoreChanges, stream se nenaruší odstraněním nebo aktualizacemi zdrojové tabulky.
  • startingVersion: Verze sdílené tabulky, od které se má začít. Všechny změny tabulky od této verze (včetně) budou přečtené zdrojem streamování.
  • startingTimestamp: Časové razítko, od které se má začít. Zdroj streamování přečte všechny změny tabulky potvrzené v časovém razítku (včetně). Příklad: "2023-01-01 00:00:00.0"
  • maxFilesPerTrigger: Počet novýchsouborůch
  • maxBytesPerTrigger: Množství dat, která se zpracovávají v každé mikrodávce. Tato možnost nastaví "soft max", což znamená, že dávkové procesy zpracovávají přibližně toto množství dat a můžou zpracovávat více než limit, aby se dotaz streamování přesunul vpřed v případech, kdy je nejmenší vstupní jednotka větší než tento limit.
  • readChangeFeed: Stream čte datový kanál změn sdílené tabulky.

Nepodporované možnosti:

  • Trigger.availableNow

Ukázkové dotazy strukturovaného streamování

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")

Pokud je u tabulky povolen kanál změn (CDF), můžete streamovat čtení CDF.

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

Čtení tabulek s povolenými vektory odstranění nebo mapováním sloupců

Důležité

Tato funkce je ve verzi Public Preview.

Vektory odstranění jsou funkce optimalizace úložiště, kterou může váš poskytovatel povolit u sdílených tabulek Delta. Podívejte se, co jsou vektory odstranění?

Azure Databricks podporuje také mapování sloupců pro tabulky Delta. Viz Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake.

Pokud váš poskytovatel nasdílel tabulku s povolenými vektory odstranění nebo mapováním sloupců, můžete v tabulce provádět dávkové čtení pomocí SQL Warehouse nebo clusteru s modulem Databricks Runtime 14.1 nebo novějším. Dotazy CDF a streamování vyžadují Databricks Runtime 14.2 nebo vyšší.

Dávkové dotazy můžete provádět tak, jak jsou, protože se dají automaticky přeložit responseFormat na základě funkcí tabulky sdílené tabulky.

Pokud chcete číst datový kanál změn (CDF) nebo provádět streamované dotazy na sdílené tabulky s povolenými vektory odstranění nebo mapováním sloupců, musíte nastavit další možnost responseFormat=delta.

Následující příklady ukazují dávkové, CDF a streamovací dotazy:

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>)

Čtení sdílených zobrazení

Důležité

Tato funkce je ve verzi Public Preview.

Poznámka:

Sdílení zobrazení je podporováno jen ve sdílení Databricks-to-Databricks.

Čtení sdílených zobrazení je stejné jako čtení sdílených tabulek s těmito výjimkami:

Požadavky na výpočetní prostředky:

  • Pokud se váš účet Azure Databricks liší od zprostředkovatele, musíte k dotazování na sdílená zobrazení použít bezserverový SQL Warehouse .
  • Pokud je poskytovatel ve stejném účtu Azure Databricks, můžete použít libovolný SQL Warehouse a také cluster, který používá režim sdíleného přístupu.

Omezení zobrazení:

Nelze vytvořit zobrazení, která odkazují na sdílená zobrazení.

Zobrazit omezení sdílení:

Nelze sdílet zobrazení, která odkazují na sdílené tabulky nebo sdílená zobrazení.

Požadavky na pojmenování:

Název katalogu, který používáte pro sdílený katalog, který obsahuje zobrazení, nemůže být stejný jako žádný katalog zprostředkovatele, který obsahuje tabulku odkazovanou zobrazením. Pokud je například sdílené zobrazení obsaženo v test katalogu a jedna z tabulek zprostředkovatele odkazovaná v tomto zobrazení je obsažena v katalogu poskytovatele test , výsledkem dotazu bude chyba konfliktu oboru názvů. Viz Vytvoření katalogu ze sdílené složky.

Historie a streamování:

Historii dotazů nelze použít ani použít zobrazení jako zdroj streamování.

JDBC/ODBC:

Pokyny v tomto článku se zaměřují na čtení sdílených dat pomocí uživatelských rozhraní Azure Databricks, konkrétně syntaxe a rozhraní katalogu Unity. Sdílená zobrazení můžete dotazovat také pomocí nástrojů Apache Spark, Python a BI, jako jsou Tableau a Power BI, pomocí ovladačů Databricks JDBC/ODBC. Informace o připojení pomocí ovladačů JDBC/ODBC databricks najdete v tématu Ovladače ODBC a JDBC pro Databricks.

Čtení sdílených poznámkových bloků

Pokud chcete zobrazit náhled a klonovat sdílené soubory poznámkových bloků, můžete použít Průzkumníka katalogu.

Požadovaná oprávnění: Vlastník katalogu nebo uživatel s oprávněním USE CATALOG k katalogu vytvořenému ze sdílené složky.

  1. V pracovním prostoru Azure Databricks klikněte na Ikona katalogu Katalog.

  2. V levém podokně rozbalte nabídku Katalog , vyhledejte a vyberte katalog vytvořený ze sdílené složky.

  3. Na kartě Další prostředky uvidíte všechny sdílené soubory poznámkového bloku.

  4. Klikněte na název sdíleného souboru poznámkového bloku a zobrazte jeho náhled.

  5. (Volitelné) Kliknutím na tlačítko Klonovat naimportujete sdílený soubor poznámkového bloku do pracovního prostoru.

    1. V dialogovém okně Clone to (Klonovat do ) volitelně zadejte nový název a pak vyberte složku pracovního prostoru, do které chcete naklonovat soubor poznámkového bloku.
    2. Klikněte na Klonovat.
    3. Po naklonování poznámkového bloku se zobrazí dialogové okno s informacemi, že se úspěšně naklonoval. Kliknutím v editoru poznámkových bloků v dialogovém okně ho zobrazíte v editoru poznámkových bloků.

    Viz Úvod do poznámkových bloků Databricks.