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.
Fontos
Ez a funkció nyilvános előzetes verzióban érhető el, és jelenleg csak a résztvevő ügyfelek számára érhető el. Az előzetes verzióban való részvételhez töltse ki ezt az űrlapot. Ez a funkció csak a HMS és a Glue Federation használatával összevont idegen táblák konvertálását támogatja.
Ez a lap azt ismerteti, hogyan alakíthat SET MANAGED át egy idegen táblát felügyelt táblává.
- A külső táblák felügyelt táblává alakításával kapcsolatos részletekért lásd: Külső tábla átalakítása felügyelt Unity-katalógustáblává
- A külső táblázat külső táblává alakításával kapcsolatos részletekért lásd: Külső tábla átalakítása külső Unity-katalógustáblává
SET MANAGED áttekintés
SET MANAGED funkcióval egy külső táblát Unity Catalog által kezelt táblává alakíthat az Azure Databricksben.
SET MANAGED a következő előnyöket kínálja:
- Táblaelőzmények megőrzése.
- Tartsa meg ugyanazokat a táblakonfigurációkat, beleértve az azonos nevet, beállításokat, engedélyeket és nézeteket.
- A prediktív optimalizálás előnyei. Ha egy táblát menedzselté alakít át, a prediktív optimalizálás értéke a séma vagy a katalógus szintjén örökli
INHERITbeállítást. Alapértelmezés szerint ez jelenleg le van tiltva. A konvertált táblán a prediktív optimalizálás engedélyezéséhez futtassa aALTER TABLE <table_name> ENABLE PREDICTIVE OPTIMIZATION, amely beállítjaENABLED-raINHERIThelyett.
Előfeltételek
- Adatformátum: Az idegen tábla adatformátumának Delta Lake-nek kell lennie. A Parquet egyszeri konvertálásának végrehajtásához tekintse meg a Konvertálás Delta Lake-vé című témakört.
- Táblázat típusa: A HMS-táblatípusnak külső HMS-táblának kell lennie. A parancs meghiúsul, ha a tábla felügyelt HMS-tábla.
- Futtatókörnyezet: Databricks Runtime 17.3 vagy újabb
-
Engedélyek:
OWNERvagyMANAGEengedélyek a táblázatra ésCREATEengedély aEXTERNAL LOCATION
Szemantika
Ha a Unity Catalog idegen tábláját Unity Catalog-ra szeretné konvertálni, futtassa a következő parancsot:
ALTER TABLE source_table SET MANAGED {MOVE | COPY}
Paraméterek
forrás_tábla
Egy meglévő idegen tábla a Unity Catalogban. A külső táblák külső katalógus által kezelt adatokat és metaadatokat tartalmaznak. Konvertálás előtt, ha a forrástáblát a külső katalógusból eltávolítja, a rendszer a Unity Catalogban is eltávolítja az idegen táblát. A táblát kezelté alakítása után a forrástábla külső katalógusban való törlése nem érinti a Unity Catalog kezelt tábláját.
MOVEA táblát felügyeltsé alakítja, és letiltja a külső katalógus forrástáblához való hozzáférését.
A külső katalóguson vagy elérésiút-alapú hozzáférésen keresztüli hozzáférés a tábla konvertálása után meghiúsul. A táblázat összes olvasójának és írójának a Unity Catalog névterét kell használnia a hozzáféréshez.
Minden olvasónak és írónak névalapú hozzáférést kell használnia. Például:
SELECT * FROM catalog_name.schema_name.table_name;Az elérési útalapú hozzáférés nem támogatott, és a tábla konvertálása után meghiúsul. Például:
SELECT * FROM delta.`protocol://path/to/table`;A külső (nem Azure Databricks-) ügyfeleknek támogatniuk kell a Unity Catalog által felügyelt táblák olvasását. Lásd : Kompatibilitási mód.
Az Access Insights irányítópult használatával megállapíthatja, hogy a táblákhoz hozzáférő olvasók és írók Databricks Runtime vagy külső, nem Azure Databricks-ügyfelek-e.
Az Azure Databricks-olvasóknak és -íróknak a Databricks Runtime 15.4 LTS vagy újabb verzióját kell használniuk. Ha az olvasók vagy írók a Databricks Runtime 14.3 LTS vagy annál kisebb verziót használják, tekintsék meg az alternatív lehetőséget a Databricks Runtime 14.3 LTS vagy annál kisebb verziót használó olvasók és írók számára.
Leállás akkor fordulhat elő, amikor az olvasók vagy írók a táblához hozzáférnek az átalakítás során. További információ: Külső tábla átalakítása felügyelt Unity-katalógustáblává.
Ha a parancs megszakad, előfordulhat, hogy a tábla külső táblaként marad, mivel a felügyeltre való konvertálás nem fejeződött be. A parancs végrehajtásához futtassa újra a
SET MANAGEDparancsot a külső táblán.A prediktív optimalizálás alapértelmezetten
INHERITbeállítva van, hacsak nem konfigurálta manuálisan. Annak ellenőrzéséhez, hogy engedélyezve van-e a prediktív optimalizálás, olvassa el annak ellenőrzéséhez, hogy engedélyezve van-e a prediktív optimalizálás.Visszaállítás: A tábla áttelepítésének visszaállításához és a külső katalógus forrástáblájához való hozzáférés helyreállításához futtassa a
UNSET MANAGEDparancsot. A tábla a parancs futtatása után külső táblává válik. Ha vissza szeretné adni a táblát egy idegen táblának, ejtse el a táblát, és a következő katalógusszinkronizálás során újra összevonja azt idegenként.ALTER TABLE catalog.schema.my_managed_table UNSET MANAGEDFigyelmeztetés
A táblázat elvetése előtt futtatnia
UNSET MANAGEDkell. A tábla eldobása aUNSET MANAGEDlefuttatása előtt rossz állapotban hagyhatja a rendszert, és adatvesztést vagy következetlenségeket okozhat.Ha visszagördül, a konvertálás és a visszaállítás közötti külső helyre tett véglegesítések verzió szerint időzíthetők, időbélyegek szerint azonban nem. A visszaállítás után hét nappal a rendszer törli a felügyelt helyen lévő adatokat. A Databricks Runtime 15.4 LTS-es vagy újabb verzióinak olvasói és írói számára a konvertálás után, de a visszaállítás előtt végrehajtott véglegesítések táblaelőzményei verzió szerint, időbélyeg nélkül időzíthetők.
A táblaátalakítás után a következőt kell elvégeznie:
- Indítsa újra a streamelési feladatokat (olvasási vagy írási) az idegen táblával
- Győződjön meg arról, hogy az olvasók és az írók a kezelt táblával dolgoznak.
COPYA táblát felügyelté alakítja anélkül, hogy módosítaná vagy letiltaná a külső katalógus forrástáblához való hozzáférését.
- A felügyelté való átalakítás során a forrástáblából származó adatok át lesznek másolva a felügyelt tárolási helyhez, amely a külső táblához van rendelve, így két másolat jön létre: az új felügyelt tábla és a forrástábla a külső katalógusban.
- Az
MOVEhasználatával ellentétben, amelynél az olvasási és írási műveletek sikertelenek,COPYhasználata során ön a felelős az olvasások és írások külső katalógusban található forrástáblán való megfelelő letiltásáért, valamint annak biztosításáért, hogy a számítási feladatok átkerüljenek az új katalógusba. -
Visszaállítás: A tábla áttelepítésének visszaállításához nem kell futtatnia a
UNSET MANAGEDparancsot, mivel a forrástábla nem szakadt meg a külső katalógusban. Távolítsa el a táblát, és a következő katalógusszinkronizálás során újrakapcsolják külföldiként.
Átalakítás ellenőrzése
Ellenőrizheti, hogy a külső tábla felügyelt táblává lett-e konvertálva:
DESCRIBE EXTENDED catalog_name.schema_name.table_name
Ha a táblázat konvertálva lett, a Type a col_name alatt MANAGED -ként jelenik meg a data_type alatt.
Ismert korlátozások
Az idegen táblák felügyelt táblákká konvertálása a következő korlátozásokkal rendelkezik:
Streamelési ügyfelek: Az átalakítás után újra kell indítania a streamelési feladatokat.
Több felhőrégió: Ha a Unity Catalog metaadattárának, katalógusának vagy sémájának alapértelmezett felügyelt helye a konvertált idegen tábla tárolási helyétől eltérő felhőrégióban található, további régiók közötti adatátviteli költségek merülhetnek fel. A felhőszolgáltató ezeket a díjakat az Azure Databricks vezérlésén kívül számítja fel. A séma, katalógus és metaadattár helyének ellenőrzéséhez használja az alábbi parancsokat:
-- Check schema location DESCRIBE SCHEMA EXTENDED catalog_name.schema_name; -- Check catalog location DESCRIBE CATALOG EXTENDED catalog_name; -- Check metastore location DESCRIBE METASTORE;
GYIK
Létrehozhatok táblákat, és átalakíthatok táblákat egy idegen katalógusban?
Igen, külső vagy felügyelt táblákat is létrehozhat egy idegen katalógusban. A viselkedés a séma konfigurációjától függ:
-
Ragasztó- vagy eHMS-sémákhoz, illetve a Unity Katalógusban beállított felügyelt helyű sémákhoz: Ha
CREATE TABLE foreign_catalog.schema.table-t futtat, ez létrehoz egy felügyelt vagy külső táblát a Unity Katalógusban. A rendszer nem küldi le vagy szinkronizálja a táblát a külső katalógusba. -
Belső Hive-metaadattár-kapcsolatokból származó sémák esetén: Ha egy táblát próbál létrehozni egy másik sémában, akkor is létrehoz egy táblát az adott idegen sémában, valamint egy táblát a
hive_metastorehelyen. - Régi Hive-munkaterület metaadattára: Mivel olvasási és írási összevonásról van szó, ha egy táblát hoz létre a külső katalógusban, a belső Hive metaadattárban is létrehoz egy táblát.
Mi a teendő, ha a külső táblák DBFS-alapúak?
DBFS-alapú tábla konvertálásakor a DBFS-elérési út aktuális leképezését a felhő elérési útjának külső tábla felhőbeli elérési útjaként tároljuk.
Átalakíthatom a sémát vagy a katalógust?
A sémákban lévő táblákon végigvezetve egyenként konvertálhat, vagy a Discoverx Labs projekt segítségével egyszerre teljes sémákat vagy katalógusokat konvertálhat:
df = (dx.from_tables("prod.*.*")
.with_sql("ALTER TABLE {full_table_name} SET MANAGED;")
.apply())