Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Unity Catalog által felügyelt táblák a Delta Lake és az Apache Iceberg Azure Databricks alapértelmezett és ajánlott táblázattípusai. A Unity Catalog kezeli az olvasási, írási, tárolási és optimalizálási feladatokat. Lásd: Külső vagy külföldi Delta Lake-táblák konvertálása Unity Catalog által felügyelt táblákká.
A felügyelt táblák adatfájljait a rendszer az őket tartalmazó sémában vagy katalógusban tárolja. Lásd, Felügyelt tárolóhely megadása a Unity Katalógusban.
A külső és idegen táblákhoz képest a kezelt táblák tárolása és lekérdezése olcsóbb, automatikusan karbantartják és optimalizálják magukat, és nyílt API-kon keresztül a külső ügyfelek számára is elérhetők maradnak.
Felügyelt táblákkal dolgozhat az Azure Databricksben támogatott összes nyelv és termék esetében. Felügyelt táblák létrehozásához, frissítéséhez, törléséhez vagy lekérdezéséhez bizonyos jogosultságokra van szüksége. Lásd: Jogosultságok kezelése a Unity Catalogban.
Note
Ez a lap csak a Unity Catalog által felügyelt táblákat ismerteti. Az örökölt Hive-metaadattár felügyelt tábláiért lásd : Adatbázis-objektumok az örökölt Hive metaadattárban.
A Unity Catalog által felügyelt táblák előnyei
A Unity Catalog által felügyelt táblák optimalizálják a tárolási költségeket és a lekérdezési sebességet, és lehetővé teszik a Delta Lake és az Apache Iceberg harmadik féltől származó eszközeivel való együttműködést. Az adatkezelés és a teljesítmény egyszerűsítése érdekében ezek a felügyelt táblák AI-alapú technológiákat használnak, például a fájlméret tömörítését és az intelligens statisztikák gyűjtését.
A felügyelt táblák a Delta Lake- és Apache Iceberg-ügyfelekről való hozzáférés engedélyezésével támogatják az együttműködést. Lásd: Databricks-adatok elérése külső rendszerekkel.
A következő funkciók csak a Unity Catalog által felügyelt táblák esetében érhetők el, és nem állnak rendelkezésre a külső és az idegen táblák esetében:
| Feature | Benefits | Konfiguráció |
|---|---|---|
| Katalógus véglegesítései | Lehetővé teszi a többmondatos tranzakciókat táblák között, gyorsabb lekérdezéstervezést, végrehajtható séma- és korlátozásváltozásokat, valamint biztonságos írásokat külső motorokból. | Alapértelmezés szerint ki van kapcsolva. A bekapcsoláshoz állítsa be a delta.feature.catalogManaged táblatulajdonságot. Lásd: Katalógus véglegesítéseinek engedélyezése. |
| Prediktív optimalizálás | Automatikusan optimalizálja az adatelrendezést és a számítást mesterséges intelligencia segítségével, manuális karbantartás nélkül. A Databricks azt javasolja, hogy minden felügyelt tábla esetében engedélyezze a prediktív optimalizálást a tárolási és számítási költségek csökkentése érdekében. | Alapértelmezés szerint engedélyezve azoknál a fiókoknál, amelyeket 2024. november 11-én vagy azt követően hoztak létre. Az Azure Databricks fokozatosan engedélyezi a meglévő fiókok számára. A konfigurálásról további információt a prediktív optimalizálás engedélyezése című témakörben talál. |
| Többutas tranzakciók | Több SQL utasítást futtass be egy vagy több táblán egyetlen atomikus commitként, ACID garanciákkal. Minden módosítás együtt sikeres, vagy együtt visszaállítva. Használat tárolt eljárásokhoz és SQL szkriptekhez. | Alapértelmezés szerint ki van kapcsolva. A tranzakciós mód kiválasztásához lásd: Tranzakciós módok. A felügyelt Apache Iceberg-táblákba történő írási műveletek privát előzetesben érhetők el. |
| Automatikus folyadék klaszterezés | A prediktív optimalizálású táblák esetén automatikusan kiválasztja és frissíti a klaszterkulcsokat, ahogy a lekérdezési minták változnak, hogy javítsa a teljesítményt és csökkentse a költségeket. | Alapértelmezés szerint ki van kapcsolva. A konfigurálásról lásd: Liquid clustering engedélyezése. |
| Metaadatok gyorsítótárazása | A tranzakciós metaadatok memórián belüli gyorsítótárázása javítja a lekérdezések teljesítményét azáltal, hogy minimalizálja a felhőben tárolt tranzakciónaplóra irányuló kéréseket. | Alapértelmezés szerint engedélyezve van. Nem konfigurálható. |
| Teljes szöveges keresési indexek | Felgyorsítja a szövegoszlopokban végzett részsztring- és kulcsszókeresést a search és isearch függvények használatával. Az Azure Databricks kihagyja azokat a fájlokat, amelyek nem tartalmazhatnak megfelelő sorokat, így csökkentve a beolvasható adat mennyiségét. |
Alapértelmezés szerint ki van kapcsolva. Hozzon létre CREATE SEARCH INDEX-val.Béta-fázisban. Databricks Runtime 18.2 vagy annál magasabb verziót igényel. |
Automatikus fájltörlés parancs DROP TABLE után |
Amikor eltávolítasz egy kezelt táblát, az Azure Databricks törli az adatfájlokat a felhőtárolóból a helyreállítási időszak lejárta után (alapértelmezett 7 nap), így csökkentve a tárolási költségeket. Külső táblák esetében manuálisan kell törölnie a fájlokat a tárolási vödörből. | Alapértelmezés szerint engedélyezve van. A helyreállítási időszakot a katalógus vagy séma szintjén konfigurálhatja. Lásd: Kezelt tábla törlése. |
Databricks-adatok elérése külső rendszerekkel
A felügyelt táblák a Delta Lake- és Apache Iceberg-ügyfelekről való hozzáférés engedélyezésével támogatják az együttműködést .
A Unity Catalog nyílt API-kon és hitelesítő adatok kiadásán keresztül lehetővé teszi, hogy a külső motorok, például a Trino, a DuckDB, az Apache Spark, a Daft, valamint az Iceberg REST-katalógusba integrált motorok, például a Dremio, hozzáférjenek a felügyelt táblákhoz. A nyitott API-kat nem támogató külső ügyfelek esetében a kompatibilitási móddal bármely Delta Lake- vagy Apache Iceberg-ügyfél használatával olvashat felügyelt táblákat. A nyílt forráskód protokoll, az OpenSharing lehetővé teszi a külső partnerekkel és platformokkal való biztonságos, szabályozott adatmegosztást.
Tekintse meg a támogatott külső motorok listáját, vagy ellenőrizze a motor dokumentációját, ha az nem szerepel a listában.
A következő nyílt API-k lehetővé teszik a külső rendszerek számára, hogy hozzáférjenek a Unity Catalog által felügyelt táblákhoz:
- A Unity REST API olvasási, írási és létrehozási hozzáférést biztosít a Delta Lake-ügyfelek számára a felügyelt Delta Lake-táblákhoz.
- Az Iceberg REST Catalog (IRC) olvasási, írási és létrehozási hozzáférést biztosít az Apache Iceberg-kliensek számára a felügyelt Apache Iceberg-táblákhoz, valamint csak olvasási hozzáférést biztosít azokhoz a Delta Lake-táblákhoz, amelyeknél engedélyezve van az Apache Iceberg-alapú olvasás.
Mindkét API támogatja a hitelesítő adatok megadását, amely ideiglenes, hatókörön belüli hitelesítő adatokat biztosít, amelyek öröklik a kérést kérő Azure Databricks-tag jogosultságait, fenntartva az irányítási és biztonsági vezérlőket.
Az OpenSharing egy nyílt forráskód protokoll, amely lehetővé teszi a külső partnerek és platformok biztonságos és szabályozott adathozzáférését. Az OpenSharinggel ideiglenes, csak olvasható hozzáférést biztosíthat a partnereknek.
A felügyelt táblákba történő olvasásoknak és írásoknak táblaneveket, katalógus- és sémaneveket kell használniuk, ahol léteznek. Például: catalog_name.schema_name.table_name. A Unity Catalog által felügyelt táblák elérési útja nem támogatott (kivéve kompatibilitási módban), mert áthalad a Unity Catalog hozzáférési vezérlőin, és megakadályozza a felügyelt táblafunkciók megfelelő működését.
Felügyelt tábla létrehozása
Felügyelt tábla létrehozásához a következőkre van szüksége:
-
USE SCHEMAa tábla szülősémáján. -
USE CATALOGa tábla szülő katalógusában. -
CREATE TABLEa tábla szülősémáján.
Az alábbi szintaxis használatával hozzon létre egy üres felügyelt táblát. Cserélje le a helykitöltő értékeket.
-
<catalog-name>: A táblát tartalmazó katalógus neve. -
<schema-name>: A táblát tartalmazó séma neve. -
<table-name>: A tábla neve. -
<column-specification>: Minden oszlop neve és adattípusa.
SQL
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Python
Hozzon létre egy felügyelt Delta Lake-táblát a saveAsTable() használatával:
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("<column-name>", StringType())])
spark.createDataFrame([], schema).write \
.saveAsTable("<catalog-name>.<schema-name>.<table-name>")
Másik lehetőségként használja az API-t a DeltaTableBuilder Delta-specifikus beállításokhoz, például a létrehozott oszlopokhoz és a táblatulajdonságokhoz:
from delta.tables import DeltaTable
DeltaTable.create(spark) \
.tableName("<catalog-name>.<schema-name>.<table-name>") \
.addColumn("<column-name>", "<data-type>") \
.property("<key>", "<value>") \
.execute()
Felügyelt Apache Iceberg-tábla létrehozása:
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("<column-name>", StringType())])
spark.createDataFrame([], schema).write \
.format("iceberg") \
.saveAsTable("<catalog-name>.<schema-name>.<table-name>")
Az olvasási és írási teljesítmény fenntartása érdekében Azure Databricks rendszeresen futtat műveleteket a felügyelt Apache Iceberg-tábla metaadatainak optimalizálása érdekében. Ezt a feladatot kiszolgáló nélküli számítással hajtja végre, amely rendelkezik MODIFY az Apache Iceberg táblára vonatkozó engedélyekkel. Ez a művelet csak a tábla metaadataira ír, és a számítás csak a feladat időtartama alatt tart fenn engedélyeket a táblához.
Note
Apache Iceberg-tábla létrehozásához explicit módon adja meg USING iceberg. Ellenkező esetben az Azure Databricks alapértelmezés szerint létrehoz egy Delta Lake-táblát.
Felügyelt táblákat lekérdezési eredményekből vagy DataFrame írási műveletekből hozhat létre. Az alábbi cikkek a felügyelt táblák Azure Databricksen való létrehozásához használható számos minta közül mutatnak be néhányat:
Meglévő felügyelt tábla másolatának létrehozásához használja a klónozást. A felügyelt Delta Lake-táblák támogatják a mély és sekély klónozást. A felügyelt Apache Iceberg-táblák csak a mély klónozást támogatják. Lásd: Tábla klónozása az Azure Databricksben és Felügyelt Iceberg-tábla klónozása.
Felügyelt tábla törlése
Felügyelt tábla törléséhez Önnek a következőkkel kell rendelkeznie:
-
MANAGEa táblában, vagy Önnek kell a tábla tulajdonosának lennie. -
USE SCHEMAa tábla szülősémáján. -
USE CATALOGa tábla szülő katalógusában.
Felügyelt tábla elvetéséhez futtassa a következő parancsot:
SQL
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Python
spark.sql("DROP TABLE IF EXISTS catalog_name.schema_name.table_name")
Másik lehetőségként a Databricks Runtime 18.2-ben és újabb verziókban használja a következőt spark.catalog.dropTable():
spark.catalog.dropTable("catalog_name.schema_name.table_name", ifExists=True)
A Unity Catalog támogatja a UNDROP TABLE véletlenül elvetett felügyelt táblák helyreállítására vonatkozó parancsot. Alapértelmezés szerint a táblák az elvetés után 7 napig helyreállíthatók. A helyreállítási időszak lejárta után Azure Databricks 48 órán belül törli a mögöttes adatfájlokat a felhőbeli bérlőből.
A helyreállítási időszak konfigurálása
Important
A konfigurálható helyreállítási időszak nyilvános előzetes verzióban érhető el.
Konfigurálhatja, hogy az elvetett felügyelt táblák mennyi ideig maradnak helyreállíthatók a katalógus vagy a séma szintjén. Ha a helyreállítási időszakok mindkét szinten vannak beállítva, a sémaszintű beállítás elsőbbséget élvez a sémában lévő tábláknál.
A helyreállítási időszak konfigurálásához jogosultsággal vagy tulajdonjoggal kell rendelkeznie MANAGE a katalógusban vagy a sémában. Ez a beállítás csak a konfigurálás után elvetett táblákra vonatkozik. Ez nem érinti a már törölt táblákat.
A felépülési idő lehet 0 óra, ami letiltja a felépülést, vagy 7-30 nap. A hosszabb időszak védelmet nyújt a kritikus adatok véletlen törlésével szemben, míg a rövidebb időszak gyorsabban törli a törölt adatokat, így csökkentve a tárolási költségeket azokban az ETL-folyamatokban, amelyek gyakran hoznak létre és törölnek táblákat. Ha 0-ra van állítva, a törölt táblákat nem lehet helyreállítani a(z) UNDROP használatával. Az Azure Databricks 48 órán belül törli az adatfájlokat a felhőtárolóból.
A helyreállítási időszak beállításához használja a ALTER CATALOG vagy ALTER SCHEMA elemet a RETAIN DROPPED TO záradékkal:
SQL
-- Set a 30-day recovery period on a catalog
ALTER CATALOG my_catalog RETAIN DROPPED TO 30 DAYS;
-- Set a 7-day recovery period on a schema (overrides the catalog setting)
ALTER SCHEMA my_catalog.my_schema RETAIN DROPPED TO 7 DAYS;
Python
spark.sql("ALTER CATALOG my_catalog RETAIN DROPPED TO 30 DAYS")
spark.sql("ALTER SCHEMA my_catalog.my_schema RETAIN DROPPED TO 7 DAYS")
A helyreállítási időszakot katalógus vagy séma létrehozásakor is beállíthatja a RETAIN DROPPED FOR záradékkal:
SQL
CREATE CATALOG my_catalog RETAIN DROPPED FOR 30 DAYS;
CREATE SCHEMA my_catalog.my_schema RETAIN DROPPED FOR 7 DAYS;
Python
spark.sql("CREATE CATALOG my_catalog RETAIN DROPPED FOR 30 DAYS")
spark.sql("CREATE SCHEMA my_catalog.my_schema RETAIN DROPPED FOR 7 DAYS")
Az aktuális helyreállítási időszak ellenőrzéséhez futtassa a következőt DESCRIBE EXTENDED: . A kimenet egy Recovery Period Hours sort tartalmaz:
SQL
DESCRIBE CATALOG EXTENDED my_catalog;
DESCRIBE SCHEMA EXTENDED my_catalog.my_schema;
Python
spark.sql("DESCRIBE CATALOG EXTENDED my_catalog").show()
spark.sql("DESCRIBE SCHEMA EXTENDED my_catalog.my_schema").show()