Megosztás a következőn keresztül:


SYNC

Csak a Következőre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime jelölje be az igennel jelölt jelölőnégyzetet 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.disableSourceTableWritestrue 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ó truehaszná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.

    • target_schema

      Egy meglévő séma a Unity Katalógusban, amelyen belül a felhasználó jogosult táblák létrehozására.

    • source_schema

      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.

    • target_table

      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_tablecserélődik, és a felhasználónak is rendelkeznie kell a táblával. Ha a tábla nem létezik, létrejön.

    • source_table

      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. A AS 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án SYNC SCHEMAaz összes táblára vonatkozik, beleértve a felügyelt táblákat is a source_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 vagy EXTERNAL

  • 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ágot upgraded_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 a DEEP CLONE beállítással. Másik lehetőségként a AS EXTERNAL záradék és a SYNC 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
  ------------- ----------- ----------- -------------- ------------- ----------- -----------     ---------------------------------
  ...