A Databricks-to-Databricks deltamegosztással megosztott adatok olvasása (címzettek számára)
Ez a cikk bemutatja, hogyan olvashatja be az Önnel megosztott adatokat a Databricks-to-Databricks Delta Sharing protokoll használatával, amelyben a Databricks biztonságos kapcsolatot kezel az adatmegosztáshoz. A Delta Sharing nyílt megosztási protokolltól eltérően a Databricks-to-Databricks protokollhoz nem szükséges hitelesítő fájl (jogkivonatalapú biztonság).
A Databricks-to-Databricks megosztásához címzettként hozzá kell férnie a Unity Cataloghoz engedélyezett Databricks-munkaterülethez.
Ha nem rendelkezik a Unity Cataloghoz engedélyezett Databricks-munkaterülettel, akkor az adatokat meg kell osztani Önnel a Delta Sharing nyílt megosztási protokollal, és ez a cikk nem vonatkozik Önre. Lásd: Megosztott adatok olvasása a Delta Sharing nyílt megosztásával (címzettek számára).
Hogyan elérhetővé tenni a megosztott adatokat a csapatom számára?
A Databricks-to-Databricks protokollal megosztott adatok és jegyzetfüzetek olvasásához felhasználónak kell lennie a Unity Cataloghoz engedélyezett Databricks-munkaterületen. A csapat egy tagja egyedi azonosítót biztosít az adatszolgáltatónak a Unity Catalog-metaadattárhoz, és az adatszolgáltató ezt az azonosítót használja a szervezettel való biztonságos megosztási kapcsolat létrehozásához. A megosztott adatok ezután elérhetővé válnak a munkaterület olvasási hozzáféréséhez, és az adatszolgáltató által a megosztott táblákon, nézeteken, köteteken és partíciókon végzett frissítések szinte valós időben megjelennek a munkaterületen.
Feljegyzés
Frissítések megosztott adattáblák, nézetek és kötetek közel valós időben jelennek meg a munkaterületen. Előfordulhat azonban, hogy az oszlopmódosítások (hozzáadás, átnevezés, törlés) legfeljebb egy percig nem jelennek meg a Katalóguskezelőben. Hasonlóképpen, az új megosztások és a megosztások frissítései (például új táblák hozzáadása egy megosztáshoz) egy percig gyorsítótárazva lesznek, mielőtt azok megtekinthetők és lekérdezhetők lennének.
Az Önnel megosztott adatok olvasása:
- A csapat egyik felhasználója megkeresi a megosztást – az Önnel megosztott táblák, nézetek, kötetek és jegyzetfüzetek tárolóját –, és a megosztás használatával létrehoz egy katalógust– a Databricks Unity-katalógus összes adatának legfelső szintű tárolóját.
- A csapat egy felhasználója hozzáférést biztosít vagy tagad a katalógusban lévő objektumokhoz (sémák, táblázatok, nézetek és kötetek) a csapat többi tagjának.
- Azokban a táblákban, nézetekben és kötetekben lévő adatokat olvassa el, amelyekhez hozzáférést kapott, ugyanúgy, mint a Databricks bármely más adategységéhez, amelyhez írásvédett (
SELECT
vagyREAD VOLUME
) hozzáféréssel rendelkezik. - A megosztásban megtekintheti és klónozza a jegyzetfüzeteket, amennyiben rendelkezik a katalógusban szereplő
USE CATALOG
jogosultsággal.
Engedélyek szükségesek
Ahhoz, hogy az összes szolgáltató és szolgáltatómegosztás adatait listázhassa és megtekinthesse, metaadattár-rendszergazdának vagy jogosultsággal kell rendelkeznie USE PROVIDER
. Más felhasználók csak a tulajdonában lévő szolgáltatókhoz és megosztásokhoz férhetnek hozzá.
Ha szolgáltatói megosztásból szeretne katalógust létrehozni, metaadattár-rendszergazdának kell lennie, olyan felhasználónak, aki rendelkezik a CREATE_CATALOG
Unity Catalog-metaadattárhoz tartozó jogosultságokkal és USE PROVIDER
jogosultságokkal, vagy olyan felhasználónak, aki rendelkezik a CREATE_CATALOG
szolgáltatói objektum jogosultságával és tulajdonjogával.
A megosztásból létrehozott katalógus sémáihoz (adatbázisaihoz, tábláihoz, nézeteihez és köteteihez) csak olvasási hozzáférés biztosítása a Unity Catalog jellemző jogosultsági hierarchiáját követi. A megosztásból létrehozott katalógusban lévő jegyzetfüzetek megtekintéséhez a USE CATALOG
katalógusban lévő jogosultság szükséges. Lásd: A deltamegosztási katalógus sémáinak, tábláinak és köteteinek engedélyeinek kezelése.
Szolgáltatók és megosztások megtekintése
Az adatszolgáltató által Önnel megosztott adatok olvasásához ismernie kell a szolgáltató nevét, és meg kell osztania a Unity Catalog metaadattárában tárolt objektumokat, miután a szolgáltató megosztotta Önnel az adatokat.
A szolgáltató objektum a Unity Catalog metaadattárát, a felhőplatformot és az adatokat Önnel megosztó szervezet régióját jelöli.
A megosztási objektum azokat a táblákat, köteteket és nézeteket jelöli, amelyeket a szolgáltató megosztott Önnel.
Az összes olyan szolgáltató megtekintése, aki megosztotta Önnel az adatokat
Az elérhető adatszolgáltatók listájának megtekintéséhez használhatja a Catalog Explorert, a Databricks Unity Catalog CLI-t, vagy egy SHOW PROVIDERS
Azure Databricks-jegyzetfüzet vagy a Databricks SQL-lekérdezésszerkesztő SQL-parancsát.
Szükséges engedélyek: Metaadattár-rendszergazdának kell lennie, vagy jogosultsággal kell rendelkeznie USE PROVIDER
. Más felhasználók csak a tulajdonában lévő szolgáltatókhoz és szolgáltatói megosztásokhoz férhetnek hozzá.
További részletekért lásd: Szolgáltatók megtekintése.
Szolgáltató adatainak megtekintése
A szolgáltató részleteinek megtekintéséhez használhatja a Catalog Explorert, a Databricks Unity Catalog CLI-t, vagy az DESCRIBE PROVIDER
SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
Szükséges engedélyek: Metaadattár-rendszergazdának kell lennie, rendelkeznie kell a USE PROVIDER
jogosultsággal, vagy rendelkeznie kell a szolgáltató objektumával.
További részletekért lásd: Szolgáltató adatainak megtekintése.
Megosztások megtekintése
A szolgáltató által Önnel megosztott megosztások megtekintéséhez használhatja a Catalog Explorert, a Databricks Unity Catalog parancssori felületét, vagy az SHOW SHARES IN PROVIDER
SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
Szükséges engedélyek: Metaadattár-rendszergazdának kell lennie, rendelkeznie kell a USE PROVIDER
jogosultsággal, vagy rendelkeznie kell a szolgáltató objektumával.
További részletekért tekintse meg a szolgáltató által Önnel megosztott megosztások megtekintése című témakört.
Adatok elérése megosztott táblában vagy kötetben
Adatok olvasása megosztott táblában vagy kötetben:
- A kiemelt felhasználóknak katalógust kell létrehozniuk a táblát vagy kötetet tartalmazó megosztásból. Ez lehet metaadattár-rendszergazda, olyan felhasználó, aki rendelkezik a
CREATE_CATALOG
Unity Catalog-metaadattárhoz tartozó jogosultságokkal ésUSE PROVIDER
jogosultságokkal, vagy olyan felhasználó, aki aCREATE_CATALOG
szolgáltató objektum jogosultságával és tulajdonjogával is rendelkezik. - Ennek a felhasználónak vagy az azonos jogosultságokkal rendelkező felhasználónak hozzáférést kell adnia a megosztott táblához vagy kötethez.
- A táblát vagy kötetet ugyanúgy érheti el, mint bármely más, a Unity Catalog metaadattárában regisztrált adategységet.
Katalógus létrehozása megosztásból
Ha elérhetővé szeretné tenni egy megosztás adatait a csapat számára, létre kell hoznia egy katalógust a megosztásból. Ha katalógust szeretne létrehozni egy megosztásból, használhatja a Catalog Explorert, a Databricks Unity Catalog CLI-t vagy az SQL-parancsokat egy Azure Databricks-jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
Szükséges engedélyek: Metaadattár-rendszergazda, a Unity Catalog-metaadattárhoz tartozó jogosultságokkal és USE PROVIDER
jogosultságokkal rendelkező CREATE_CATALOG
felhasználó, vagy olyan felhasználó, aki rendelkezik a CREATE_CATALOG
szolgáltatói objektum jogosultságával és tulajdonjogával.
Feljegyzés
Ha a megosztás nézeteket tartalmaz, a szolgáltató metaadattárában lévő nézetet tartalmazó katalógus nevével eltérő katalógusnevet kell használnia.
Katalóguskezelő
- Az Azure Databricks-munkaterületen kattintson a Katalógus elemre.
- A bal oldali panelen bontsa ki a Delta Megosztás menüt, és válassza a Velem megosztva lehetőséget.
- A Szolgáltatók lapon válassza ki a szolgáltatót.
- A Megosztások lapon keresse meg a megosztást, és kattintson a Katalógus létrehozása elemre a megosztási sorban.
- Adja meg a katalógus nevét és az opcionális megjegyzést.
- Kattintson a Létrehozás gombra.
Sql
Futtassa a következő parancsot egy jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
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>
A megosztásból létrehozott katalógus a Delta Sharing katalógustípusával rendelkezik. A típust a Katalóguskezelő katalógusadatok lapján, illetve a DESCRIBE CATALOG SQL parancs jegyzetfüzetben vagy Databricks SQL-lekérdezésben való futtatásával tekintheti meg. Az összes megosztott katalógus a Katalóguskezelő bal oldali ablaktábláján a Megosztott katalógus csoportban > található.
A Delta Sharing-katalógusok ugyanúgy kezelhetők, mint a Unity Catalog-metaadattárak szokásos katalógusai. Megtekintheti, frissítheti és törölheti a Delta Sharing-katalógust a Catalog Explorer, a Databricks parancssori felület, valamint a , DESCRIBE CATALOG
, ALTER CATALOG
és DROP CATALOG
SQL-parancsok használatávalSHOW CATALOGS
.
A megosztásból létrehozott Delta Sharing-katalógus 3 szintű névtérstruktúrája megegyezik a Unity Catalog egy reguláris katalógusában lévővel: catalog.schema.table
vagy catalog.schema.volume
.
A megosztott katalógusban lévő tábla- és kötetadatok írásvédettek, ami azt jelenti, hogy olvasási műveleteket végezhet, például:
DESCRIBE
,SHOW
ésSELECT
táblák esetén.DESCRIBE VOLUME
,LIST <volume-path>
,SELECT * FROM <format>.'<volume_path>'
ésCOPY INTO
kötetek esetén.
A megosztott katalógusban lévő jegyzetfüzeteket bármely felhasználó USE CATALOG
megtekintheti és klónozhatja a katalógusban.
A megosztott katalógusban lévő modelleket bármely olyan felhasználó elolvashatja és betöltheti következtetésre, aki a következő jogosultságokkal rendelkezik: EXECUTE
jogosultságok a regisztrált modellen, valamint USE SCHEMA
USE CATALOG
a modellt tartalmazó séma és katalógus jogosultságai.
A deltamegosztási katalógus sémáihoz, tábláihoz és köteteihez tartozó engedélyek kezelése
Alapértelmezés szerint a katalógus létrehozója a deltamegosztási katalógusban lévő összes adatobjektum tulajdonosa, és bármelyikhez kezelheti az engedélyeket.
A jogosultságok lefelé öröklődnek, bár előfordulhat, hogy egyes munkaterületek továbbra is az örökölt biztonsági modellen vannak, amelyek nem biztosítottak öröklést. Lásd: Öröklési modell. A katalógusban jogosultsággal SELECT
rendelkező felhasználók a katalógus összes sémáján és tábláján rendelkeznek SELECT
jogosultsággal, kivéve, ha a jogosultságot visszavonják. Hasonlóképpen, a katalógusban jogosultsággal READ VOLUME
rendelkező felhasználók a katalógus összes kötetén megkapják READ VOLUME
a jogosultságot, kivéve, ha a jogosultságot visszavonják. Nem adhat meg olyan jogosultságokat, amelyek írási vagy frissítési hozzáférést biztosítanak egy Delta Sharing-katalógushoz vagy -objektumokhoz egy Delta Sharing-katalógusban.
A katalógus tulajdonosa delegálhatja az adatobjektumok tulajdonjogát más felhasználókra vagy csoportokra, így a felhasználók kezelhetik az objektumengedélyeket és az életciklusokat.
Az adatobjektumok jogosultságainak a Unity Catalog használatával történő kezelésével kapcsolatos részletes információkért lásd : Jogosultságok kezelése a Unity Catalogban.
Adatok olvasása megosztott táblában
Egy megosztott táblában az Azure Databricks-felhasználóként elérhető eszközök bármelyikével olvashat adatokat: Catalog Explorer, notebookok, SQL-lekérdezések, Databricks CLI és Databricks REST API-k. Rendelkeznie kell a SELECT
táblában szereplő jogosultsággal.
Adatok olvasása megosztott kötetben
A megosztott kötetekben az Azure Databricks-felhasználóként elérhető eszközök bármelyikével olvashatja az adatokat: Catalog Explorer, notebookok, SQL-lekérdezések, Databricks CLI és Databricks REST API-k. Jogosultsággal kell rendelkeznie a READ VOLUME
köteten.
Megosztott modell betöltése következtetés céljából
A megosztott modell betöltésével és kötegelt következtetéssel történő használatával kapcsolatos részletekért tekintse meg a modellek betöltését a következtetéshez.
Tábla előzményadatainak lekérdezése
Ha az előzményeket a táblázattal együtt osztja meg, lekérdezheti a tábla adatait verzió vagy időbélyeg alapján. A Databricks Runtime 12.2 LTS-t vagy újabb verziót igényel.
Példa:
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";
Ezenkívül ha a változásadatcsatorna (CDF) engedélyezve van a táblával, lekérdezheti a CDF-et. A verzió és az időbélyeg is támogatott:
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");
A változásadatcsatorna módosításáról további információt a Delta Lake változásadatcsatornájának használata az Azure Databricksben című témakörben talál.
Tábla lekérdezése apache Spark strukturált streameléssel
Ha egy tábla meg van osztva az előzményekkel, használhatja forrásként a Spark strukturált streameléséhez. A Databricks Runtime 12.2 LTS-t vagy újabb verziót igényel.
Támogatott lehetőségek:
ignoreDeletes
: Az adatokat törlő tranzakciók figyelmen kívül hagyása.ignoreChanges
: Újra feldolgozhatja a frissítéseket, ha a fájlokat újraírták a forrástáblában olyan adatmódosítási művelet miatt, mintUPDATE
a ,MERGE INTO
,DELETE
(partíciókon belüli) vagyOVERWRITE
. Változatlan sorok továbbra is kibocsáthatók. Ezért az alsóbb rétegbeli fogyasztóknak képesnek kell lenniük az ismétlődések kezelésére. A rendszer nem propagálja a törléseket az alsóbb rétegben.ignoreChanges
alösszegekignoreDeletes
. Ezért ha használjaignoreChanges
, a streamet nem zavarja a forrástábla törlése vagy frissítése.startingVersion
: A megosztott tábla verziója, amelyből kiindulni szeretne. Az ebből a verzióból (beleértve) kezdődő összes táblamódosítást a streamelési forrás felolvassa.startingTimestamp
: A kezdéshez megadott időbélyeg. Az időbélyegen vagy után véglegesített összes táblamódosítást (beleértve) a streamelési forrás felolvassa. Példa:"2023-01-01 00:00:00.0"
maxFilesPerTrigger
: Az összes mikrokötegben figyelembe venni kívánt új fájlok száma.maxBytesPerTrigger
: Az egyes mikro kötegekben feldolgozott adatok mennyisége. Ez a beállítás "soft max" értéket állít be, ami azt jelenti, hogy egy köteg körülbelül ennyi adatot dolgoz fel, és a korlátnál többet is feldolgozhat annak érdekében, hogy a streamelési lekérdezés előrehaladjon olyan esetekben, amikor a legkisebb bemeneti egység nagyobb ennél a korlátnál.readChangeFeed
: A stream felolvassa a megosztott tábla változásadatcsatornáját.
Nem támogatott beállítások:
Trigger.availableNow
Strukturált streamelési lekérdezések mintája
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")
Ha a táblával engedélyezve van az adatcsatorna módosítása (CDF), akkor a CDF-et is streamelheti.
spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")
Táblák olvasása engedélyezett törlési vektorokkal vagy oszlopleképezéssel
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
A törlési vektorok olyan tárolási optimalizálási funkciók, amelyeket a szolgáltató engedélyezhet a megosztott Delta-táblákon. Lásd: Mik azok a törlési vektorok?.
Az Azure Databricks a Delta-táblák oszlopleképezését is támogatja. Lásd: Oszlopok átnevezése és elvetése Delta Lake-oszlopleképezéssel.
Ha a szolgáltató engedélyezett törlési vektorokkal vagy oszlopleképezéssel osztott meg egy táblát, kötegelt beolvasásokat hajthat végre a táblán egy SQL-raktár vagy a Databricks Runtime 14.1 vagy újabb verzióját futtató fürt használatával. A CDF- és streamelési lekérdezésekhez a Databricks Runtime 14.2-s vagy újabb verziója szükséges.
A kötegelt lekérdezéseket igény szerint is végrehajthatja, mert azok automatikusan feloldhatók responseFormat
a megosztott tábla táblafunkciói alapján.
A változásadatcsatorna (CDF) olvasásához vagy a megosztott táblák streamelési lekérdezéseinek törlési vektorokkal vagy oszlopleképezéssel történő végrehajtásához be kell állítania a további beállítást responseFormat=delta
.
Az alábbi példák kötegelt, CDF- és streamelési lekérdezéseket mutatnak be:
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>)
Megosztott nézetek olvasása
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
Feljegyzés
A nézetmegosztás csak a Databricks–Databricks megosztásban támogatott.
A megosztott nézetek olvasása megegyezik a megosztott táblák olvasásával, az alábbi kivételekkel:
Számítási követelmények:
- Ha az Azure Databricks-fiókja eltér a szolgáltatóétól, a megosztott nézetek lekérdezéséhez kiszolgáló nélküli SQL-tárolót kell használnia.
- Ha a szolgáltató ugyanazon az Azure Databricks-fiókon található, bármely SQL-adattárházat használhat, és használhat megosztott hozzáférési módot használó fürtöt is.
Megtekintési korlátozások:
Megosztott nézetekre hivatkozó nézetek nem hozhatók létre.
Megosztási korlátozások megtekintése:
Nem oszthat meg megosztott táblákra vagy megosztott nézetekre hivatkozó nézeteket.
Elnevezési követelmények:
A nézetet tartalmazó megosztott katalógushoz használt katalógusnév nem lehet azonos a nézet által hivatkozott táblát tartalmazó szolgáltatókatalógussal. Ha például a megosztott nézet szerepel a test
katalógusban, és a nézetben hivatkozott szolgáltató egyik táblája szerepel a szolgáltató test
katalógusában, a lekérdezés névtérütközési hibát fog eredményezni. Lásd: Katalógus létrehozása megosztásból.
Előzmények és streamelés:
Nem kérdezhet le előzményeket, és nem használhat nézetet streamforrásként.
JDBC/ODBC:
A cikkben szereplő utasítások a megosztott adatok Azure Databricks felhasználói felületekkel való olvasására összpontosítanak, különösen a Unity Catalog szintaxisával és felületével. A megosztott nézeteket Apache Spark, Python és BI-eszközök, például Tableau és Power BI használatával is lekérdezheti a Databricks JDBC/ODBC-illesztőprogramok használatával. A Databricks JDBC/ODBC-illesztőprogramokkal való csatlakozásról a Databricks ODBC- és JDBC-illesztőprogramok című témakörben olvashat.
Megosztott jegyzetfüzetek olvasása
Megosztott jegyzetfüzetfájlok előnézetének megtekintéséhez és klónozásához használhatja a Catalog Explorert.
Szükséges engedélyek: A katalógus tulajdonosa vagy a USE CATALOG
megosztásból létrehozott katalógusban szereplő jogosultsággal rendelkező felhasználó.
Az Azure Databricks-munkaterületen kattintson a Katalógus elemre.
A bal oldali panelen bontsa ki a Katalógus menüt, keresse meg és válassza ki a megosztásból létrehozott katalógust.
Az Egyéb eszközök lapon minden megosztott jegyzetfüzetfájl megjelenik.
Kattintson egy megosztott jegyzetfüzetfájl nevére az előnézet megtekintéséhez.
(Nem kötelező) A Klónozás gombra kattintva importálhatja a megosztott jegyzetfüzetfájlt a munkaterületre.
- A Klónozás párbeszédpanelen adjon meg egy Új nevet, majd válassza ki azt a munkaterületi mappát, ahová a jegyzetfüzetfájlt klónozni szeretné.
- Kattintson a Klónozás gombra.
- A jegyzetfüzet klónozása után megjelenik egy párbeszédpanel, amelyen tudathatja, hogy sikeresen klónozta. A jegyzetfüzet-szerkesztőben kattintson a Megjelenítés gombra a párbeszédpanelen.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: