SYNC
Csak a Következőre vonatkozik: Databricks SQL Databricks Runtime Unity Catalog
A parancs használatával frissítheti a SYNC
Hive Metastore külső tábláinak frissítését külső táblákra a Unity Catalogban. A Databricks-munkaterületen (más néven DBFS-gyökér) kívül tárolt Hive felügyelt táblákat is SYNC
frissítheti a Unity Katalógus külső tábláira. Nem használhatja a munkaterület-tárolóban tárolt Hive felügyelt táblák frissítésére. A táblák frissítéséhez használja a CREATE TABLE CLONE parancsot.
Új táblákat hozhat létre a Unity Katalógusban meglévő Hive Metastore-táblákból, valamint frissítheti SYNC
a Unity-katalógus tábláinak frissítését a Hive Metastore forrástábláinak módosításakor.
A SYNC
parancs sémaszinten futtatható a SYNC SCHEMA
szintaxissal, vagy egy adott táblához a SYNC TABLE
szintaxis használatával.
A parancs egy írási műveletet (ALTER TABLE
) hajt végre minden frissített forrástáblához, hogy további táblázattulajdonságokat adjon hozzá a könyveléséhez.
Delta-táblák esetén az írási művelet végrehajtásához a parancsot futtató fürtnek vagy SQL Warehouse-nak írási hozzáféréssel kell rendelkeznie a tábla helyéhez.
A Databricks Runtime 12.2 LTS vagy újabb verziójában ez a viselkedés kikapcsolható a Spark-konfiguráció spark.databricks.sync.command.disableSourceTableWrites
true
beállításával a SYNC
parancs futtatása előtt. Ha be van true
állítva, SYNC
nem ad hozzá új táblatulajdonságokat, ezért előfordulhat, hogy nem észleli, hogy a táblát korábban frissítették-e a Unity Catalogra.
Ebben az esetben kizárólag a tábla nevére támaszkodik annak megállapításához, hogy a táblát korábban frissítették-e a Unity Catalogra.
Ha a forrástáblát az utolsó SYNC parancs óta átnevezték, a felhasználónak manuálisan kell átneveznie a céltáblát, mielőtt újra futtatja a SYNC parancsot a konfiguráció true
használatakor.
Fontos
SYNC
Parancs végrehajtásakor a SET TBLPROPERTIES
művelet hozzáad egy táblatulajdonságot, amely a cél Unity Catalog külső táblahivatkozását jelzi. Ez a művelet kiszámít egy új Delta-pillanatképet, és új bejegyzést ad hozzá a Delta-napló táblához, és a felhőalapú tároló céltáblájának elérési útjára ír.
Syntax
SYNC { SCHEMA target_schema [AS EXTERNAL] FROM source_schema |
TABLE target_table [AS EXTERNAL] FROM source_table }
[SET OWNER principal]
[DRY RUN]
Paraméterek
SCHEMA
SYNC
a séma összes táblája.-
Egy meglévő séma a Unity Katalógusban, amelyen belül a felhasználó jogosult táblák létrehozására.
-
Egy meglévő séma a
hive_metastore
katalógusban, amely a felhasználó tulajdonában van.
-
TABLE
SYNC
egy különálló táblát.-
Egy új vagy meglévő tábla a Unity Catalogban egy olyan sémában, amelyen belül a felhasználó jogosult táblák létrehozására. Ha a tábla már létezik, az egyezésre
source_table
cserélődik, és a felhasználónak is rendelkeznie kell a táblával. Ha a tábla nem létezik, létrejön. -
Egy meglévő tábla, amelyben
hive_metastore
a felhasználó rendelkezik.
-
-
Ha szeretné, állítsa a unity katalógus frissített tábláinak tulajdonosát a következőre
principal
: . Az alapértelmezett tulajdonos az aktuális felhasználó. AS EXTERNAL
SYNC
a Databricks-munkaterületen kívül tárolt Hive-felügyelt tábla vagy séma (más néven DBFS-gyökér) a Unity Catalog külső tábláiba. AAS EXTERNAL
munkaterület-tárolóban tárolt Hive-felügyelt táblák nem frissíthetők.DRY RUN
Ha megadott, ellenőrzi, hogy a
source_table
céltáblák létrehozása vagy frissítése nélkül frissíthető-e a benne lévő vagy a benne lévősource_schema
táblák. A parancs visszaadja,DRY_RUN_SUCCESS
ha egy tábla frissíthető.AS EXTERNAL
A Databricks Runtime 13.2-s vagy újabb verziójától kezdve ez az opcionális záradék hozzáadható annak megadásához, hogy a Hive metaadattárban lévő felügyelt táblák külső táblákként frissüljenek a Unity Katalógusban. A használat soránSYNC SCHEMA
az összes táblára vonatkozik, beleértve a felügyelt táblákat is asource_schema.
Válaszok
Jelentés a következő oszlopokkal:
source_schema STRING
A forrásséma neve. A séma az,
NULL
ha a forrás nem támogatott ideiglenes nézet.source_name STRING NOT NULL
A forrástábla neve.
source_type STRING NOT NULL
A táblázat típusa:
MANAGED
vagyEXTERNAL
target_catalog STRING NOT NULL
A Célkatalógus a Unity Katalógusban, ahol a tábla szinkronizálva van.
target_schema STRING NOT NULL
A célséma a Unity Catalogban, ahol a tábla szinkronizálva van.
target_name STRING NOT NULL
Annak a táblának a neve a Unity Katalógusban, amelyhez a forrástábla szinkronizálva van. Ez a név megegyezik a forrástábla nevével.
status_code STRING NOT NULL
A forrástábla parancsának
SYNC
eredményéhez tartozó állapotkód.description STRING
Egy leíró üzenet a forrástábla szinkronizálási parancsának állapotáról.
Az általuk visszaadott gyakori állapotkódok SYNC
A SYNC
parancs egy egyedi status_code
mezőt biztosít a kimenetben minden olyan táblához, amely a Unity Katalógusra frissít, amely a frissítés állapotát jelöli.
Néhány gyakori állapotkód és a hozzájuk kapcsolódó javaslatok a következők:
DRY_RUN_SUCCESS
: A száraz futtatás sikeres.A táblázat a paranccsal frissíthető Unity
SYNC
Catalog-ra.DBFS_ROOT_LOCATION
: A Databricks fájlrendszer gyökerében található tábla.A tábla a Databricks fájlrendszer gyökérhelyén található. Ez a Unity Katalógusban nem támogatott. Másolja a táblázatadatokat a Unity Catalog helyére egy CREATE TABLE paranccsal a
DEEP CLONE
beállítással.EXTERNAL_TABLE_IN_MANAGED_LOCATION
: A külső tábla elérési útja nem lehet felügyelt tárterület alatt.A külső tábla elérési útja a Unity Catalog tárolókezelésében található. Ha a táblának felügyelt tárterület alatt kell lennie, frissítse a táblát felügyelt táblaként egy CREATE TABLE paranccsal a
DEEP CLONE
beállítással, vagy helyezze át a táblázat helyét a Unity Catalog felügyelt tárolóból.HIVE_SERDE
: A tábla nem jogosult a Hive Metastore-ról a Unity Catalogra való frissítésre. Ok: Hive SerDe tábla.A Hive SerDe-táblákat a Unity Catalog nem támogatja. Módosítsa a táblákat Delta formátumra, és adja ki a
SYNC
frissíteni kívánt parancsot.INVALID_DATASOURCE_FORMAT
: Az adatforrás formátuma nincs megadva, vagy nem támogatott.A támogatott adatforrásformátumok egyikének használata: Delta, Parquet, CSV, JSON, ORC, TEXT
LOCATION_OVERLAP
: A bemeneti útvonal átfedésben van más külső táblákkal.A tábla helye átfedésben van más külső táblákkal. Használjon másik helyet a táblához, vagy távolítsa el az átfedésben lévő külső táblákat.
MULTIPLE_EXT_LOCATIONS
: A bemeneti útvonal más külső helyeket is tartalmaz.Több külső hely is van, amelyek a megadott táblaútvonal alkönyvtárai. Ellenőrizze, hogy szükség van-e a táblahelyen belüli külső helyekre.
MULTIPLE_TARGET_TABLE
: Már létezik egy másik szinkronizált tábla. Forrástáblánként csak egy céltábla engedélyezett.A forrástábla már szinkronizálva lett egy másik céltáblával, amely korábban nem engedélyezett. Ha egy másik táblára szeretné kényszeríteni a
SYNC
táblát, távolítsa el a táblatulajdonságotupgraded_to
a forrástáblából, vagy távolítsa el a korábban szinkronizált táblát a Unity Katalógusból, ha már nincs rá szükség.NOT_EXTERNAL
: A táblázat nem jogosult a Hive Metastore-ról a Unity Catalogra való frissítésre. Ok: Nem külső tábla.SYNC
parancs csak a külső táblák Unity Catalogba való migrálását támogatja. Felügyelt táblák esetén hozzon létre egy felügyelt táblát a Unity Catalogban egy CREATE TABLE paranccsal aDEEP CLONE
beállítással. Másik lehetőségként aAS EXTERNAL
záradék és aSYNC
parancs használatával hozzon létre egy külső táblát a Unity Catalogban.READ_ONLY_CATALOG
: A Delta-megosztási katalógusban lévő adatok írásvédettek, és nem módosíthatók vagy törölhetők.A kiválasztott katalógus egy csak olvasható deltamegosztási katalógus. Az írásvédett katalógusban lévő táblák nem frissíthetők a
SYNC
parancs használatával.SUCCESS
: A tábla sikeresen szinkronizálva van.TABLE_ALREADY_EXISTS
: A céltábla már létezik.A kiválasztott táblával azonos nevű tábla már létezik a Unity Katalógusban. Nevezze át vagy távolítsa el a meglévő táblát a Unity Catalogban, és futtassa újra a
SYNC
parancsot.TEMP_TABLE_NOT_SUPPORTED
: Az ideiglenes táblák vagy nézetek nem támogatottak.Az ideiglenes táblák vagy nézetek nem frissíthetők Unity-katalógusra. Ha ideiglenes táblákat vagy nézeteket szeretne használni, hozza létre őket a Unity Katalógusban a CREATE TABLE megjelenítése paranccsal a Unity Catalogban.
TIMEOUT
: A szinkronizálási feladat túllépte az időkorlátot.A szinkronizálási parancsfeladat befejezése több mint 300 másodpercet vett igénybe. Növelje
spark.databricks.sync.command.task.timeout
másodpercben nagyobb értékre. Az alapértelmezett érték 300. Ha a hiba továbbra is fennáll, forduljon az ügyfélszolgálathoz.VIEWS_NOT_SUPPORTED
: A nézetek nem támogatottak.Hozza létre manuálisan a nézeteket a CREATE TABLE megjelenítése paranccsal a Unity Catalogban.
Példák
-- Sync an existing hive metastore table hive_metastore.default.my_tbl to a Unity Catalog
-- table named main.default.my_tbl.
> SYNC TABLE main.default.my_tbl FROM hive_metastore.default.my_tbl;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
default my_tbl external main default my_tbl SUCCESS Table main.default.my_tbl synced.
-- Sync an existing managed hive metastore table hive_metastore.default.my_tbl to an external table named main.default.my_tbl in Unity Catalog.
> SYNC TABLE main.default.my_tbl AS EXTERNAL FROM hive_metastore.default.my_tbl;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
default my_tbl managed main default my_tbl SUCCESS Table main.default.my_tbl synced.
-- SYNC a table in DRY RUN mode to evaluate the upgradability of the hive metastore table.
> SYNC TABLE main.default.my_tbl FROM hive_metastore.default.my_tbl DRY RUN;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- --------------- ---------------------------------
default my_tbl external main default my_tbl DRY_RUN_SUCCESS
-- SYNC all the eligible tables in schema hive_metastore.mydb to a Unity Catalog schema main.my_db_uc.
-- The upgraded tables in main.my_db_uc will be owned by alf@melmak.et
> SYNC SCHEMA main.my_db_uc FROM hive_metastore.my_db SET OWNER `alf@melmak.et`;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...
-- DRY RUN mode of SYNC SCHEMA to evaluate all the tables in a schema
-- hive_metastore.mydb for upgrading to Unity Catalog.
> SYNC SCHEMA main.my_db_uc FROM hive_metastore.my_db DRY RUN;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...
-- Sync all tables including managed tables in a schema hive_metastore.mydb
-- as external tables in Unity Catalog.
> SYNC SCHEMA main.my_db_uc AS EXTERNAL FROM hive_metastore.my_db;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...
Kapcsolódó cikkek
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: