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


Adatsor rögzítése és megtekintése a Unity Catalog használatával

Ez a cikk azt ismerteti, hogyan rögzítheti és vizualizálhatja az adatsorokat a Catalog Explorer, az adatsorrendszer-táblák és a REST API használatával.

A Unity Catalog használatával rögzítheti a futtatókörnyezeti adatsorokat az Azure Databricksen futtatott lekérdezések között. A vonalasság minden nyelv esetében támogatott, és az oszlopszintig rögzítve van. Az életútadatok közé tartoznak a lekérdezéshez kapcsolódó jegyzetfüzetek, feladatok és irányítópultok. A lineage közel valós időben vizualizálható a Catalog Explorerben, és programozott módon lekérhető a lineage rendszertáblákkal és a Databricks REST API-val.

A rendszer a Unity Catalog-metaadattárhoz csatolt összes munkaterületen összesíti az adatsorokat. Ez azt jelenti, hogy az egyik munkaterületen rögzített vonal minden más munkaterületen látható, amely a metaadattárat osztja meg. A felhasználóknak a megfelelő engedélyekkel kell rendelkezniük az életútadatok megtekintéséhez. Az életútadatok 1 évig maradnak meg.

Az alábbi kép egy minta életútdiagram. A cikk későbbi részében konkrét adatkisorolási funkciókkal és példákkal foglalkozunk.

Az életút áttekintése

A gépi tanulási modellek életútjának nyomon követésével kapcsolatos információkért tekintse meg a modell adatsorának nyomon követését a Unity Katalógusban.

Követelmények

Az adatéletút Unity katalógus használatával történő rögzítéséhez a következőkre van szükség:

  • A munkaterületen engedélyezve kell lennie a Unity-katalógusnak.

  • A táblákat egy Unity katalógus metaadattárban kell regisztrálni.

  • A lekérdezéseknek a Spark DataFrame-et (például DataFrame-et visszaadó Spark SQL-függvényeket) vagy Databricks SQL-interfészeket kell használniuk. Példák a Databricks SQL- és PySpark-lekérdezésekre: Példák.

  • Egy tábla vagy nézet származásának megtekintéséhez a felhasználóknak rendelkezniük kell legalább a BROWSE tábla vagy nézet szülőkatalógusának jogosultságával. A szülőkatalógusnak a munkaterületről is elérhetőnek kell lennie. Lásd: Katalógushozzáférés korlátozása adott munkaterületekhez.

  • A jegyzetfüzetek, feladatok vagy irányítópultok életútadatainak megtekintéséhez a felhasználóknak engedélyekkel kell rendelkezniük ezekhez az objektumokhoz a munkaterület hozzáférés-vezérlési beállításainak megfelelően. Lásd: Életútengedélyek.

  • A Unity-katalógusban engedélyezett folyamatokhoz tartozó leállás megtekintéséhez engedélyekkel kell rendelkeznie CAN_VIEW a folyamathoz.

  • A Delta-táblák közötti streamelés nyomon követéséhez a Databricks Runtime 11.3 LTS vagy újabb verziójára van szükség.

  • A Delta Live Tables számítási feladatainak oszlopsorkövetéséhez a Databricks Runtime 13.3 LTS-es vagy újabb verziója szükséges.

  • Előfordulhat, hogy frissítenie kell a kimenő tűzfalszabályokat, hogy lehetővé tegye az Event Hubs-végponthoz való kapcsolódást az Azure Databricks vezérlősíkon. Ez általában akkor érvényes, ha az Azure Databricks-munkaterület a saját virtuális hálózatában van üzembe helyezve (más néven VNet-injektálás). A munkaterület régiójához tartozó Event Hubs-végpont lekéréséhez lásd : Metastore, artifact Blob Storage, system tables storage, log Blob Storage és Event Hubs endpoint IP-címek. Az Azure Databricks felhasználó által definiált útvonalainak (UDR) beállításával kapcsolatos információkért lásd: az Azure Databricks felhasználó által definiált útvonalbeállítások.

Példák

Feljegyzés

  • Az alábbi példák a katalógus nevét lineage_data és a sémanevet lineagedemohasználják. Ha másik katalógust és sémát szeretne használni, módosítsa a példákban használt neveket.

  • A példa végrehajtásához rendelkeznie CREATE kell egy sémán lévő jogosultságokkal és USE SCHEMA jogosultságokkal. A metaadattár rendszergazdája, katalógustulajdonosa vagy sématulajdonosa engedélyezheti ezeket a jogosultságokat. Ha például a csoport összes felhasználójának "data_engineers" engedélyt szeretne adni táblák létrehozására a lineagedemo lineage_data katalógus sémájában, a fenti jogosultságok vagy szerepkörök egyikével rendelkező felhasználó a következő lekérdezéseket futtathatja:

    CREATE SCHEMA lineage_data.lineagedemo;
    GRANT USE SCHEMA, CREATE on SCHEMA lineage_data.lineagedemo to `data_engineers`;
    

Az életút rögzítése és felfedezése

Az életútadatok rögzítése:

  1. Nyissa meg az Azure Databricks kezdőlapját, kattintson az Oldalsáv Új gombjára Új ikon , és válassza a Jegyzetfüzet lehetőséget a menüben.

  2. Adja meg a jegyzetfüzet nevét, és válassza az SQL-t az alapértelmezett nyelven.

  3. A fürtben válasszon ki egy, a Unity Katalógushoz hozzáféréssel rendelkező fürtöt.

  4. Kattintson a Létrehozás gombra.

  5. Az első jegyzetfüzetcellában adja meg a következő lekérdezéseket:

    CREATE TABLE IF NOT EXISTS
      lineage_data.lineagedemo.menu (
        recipe_id INT,
        app string,
        main string,
        dessert string
      );
    
    INSERT INTO lineage_data.lineagedemo.menu
        (recipe_id, app, main, dessert)
    VALUES
        (1,"Ceviche", "Tacos", "Flan"),
        (2,"Tomato Soup", "Souffle", "Creme Brulee"),
        (3,"Chips","Grilled Cheese","Cheesecake");
    
    CREATE TABLE
      lineage_data.lineagedemo.dinner
    AS SELECT
      recipe_id, concat(app," + ", main," + ",dessert)
    AS
      full_menu
    FROM
      lineage_data.lineagedemo.menu
    
  6. A lekérdezések futtatásához kattintson a cellára, és nyomja le a Shift+Enter billentyűkombinációt, vagy kattintson Futtatási menü a Cella futtatása parancsra.

A Katalóguskezelő használata az alábbi lekérdezések által létrehozott életút megtekintéséhez:

  1. Az Azure Databricks-munkaterület felső sávjának Keresőmezőjében keresse meg a táblátlineage_data.lineagedemo.dinner, és jelölje ki.

  2. Válassza a Lineage (Életút ) lapot. Megjelenik a fogazatpanel, és megjeleníti a kapcsolódó táblákat (ebben a példában ez a menu tábla).

  3. Az adatsor interaktív gráfjának megtekintéséhez kattintson a Lineage Graph megtekintése gombra. Alapértelmezés szerint egy szint jelenik meg a grafikonon. Pluszjel ikon A csomópont ikonra kattintva további kapcsolatokat jeleníthet meg, ha elérhetők.

  4. Kattintson egy nyílra, amely csomópontokat köt össze a vonaldiagramon a Vonalkapcsolat panel megnyitásához. A Kapcsolat panelen a kapcsolat részletei láthatók, beleértve a forrás- és céltáblákat, a jegyzetfüzeteket és a feladatokat.

    Vonalas gráf

  5. A táblázathoz dinner társított jegyzetfüzet megjelenítéséhez jelölje ki a jegyzetfüzetet a Vonalas kapcsolat panelen, vagy zárja be a vonalas gráfot, és kattintson a Jegyzetfüzetek elemre. A jegyzetfüzet új lapon való megnyitásához kattintson a jegyzetfüzet nevére.

  6. Az oszlopszintű vonal megtekintéséhez kattintson a diagram egyik oszlopára a kapcsolódó oszlopokra mutató hivatkozások megjelenítéséhez. Ha például a "full_menu" oszlopra kattint, az az oszlopból származtatott felsőbb rétegbeli oszlopokat jeleníti meg:

    Teljes menü oszlopsor

Ha más nyelv használatával szeretné megtekinteni az életútot, például a Pythont:

  1. Nyissa meg a korábban létrehozott jegyzetfüzetet, hozzon létre egy új cellát, és írja be a következő Python-kódot:

    %python
    from pyspark.sql.functions import rand, round
    df = spark.range(3).withColumn("price", round(10*rand(seed=42),2)).withColumnRenamed("id","recipe_id")
    
    df.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.price")
    
    dinner = spark.read.table("lineage_data.lineagedemo.dinner")
    price = spark.read.table("lineage_data.lineagedemo.price")
    
    dinner_price = dinner.join(price, on="recipe_id")
    dinner_price.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.dinner_price")
    
  2. Futtassa a cellát a cellára kattintva, majd nyomja le a Shift+Enter billentyűkombinációt, vagy kattintson Futtatási menü a Cella futtatása parancsra.

  3. Az Azure Databricks-munkaterület felső sávjának Keresőmezőjében keresse meg a táblátlineage_data.lineagedemo.price, és jelölje ki.

  4. Lépjen a Vonalasság lapra, és kattintson a Vonalas diagram megtekintése elemre. Kattintson az Pluszjel ikon ikonokra a lekérdezések által létrehozott adatsor megismeréséhez.

    Bővített vonaldiagram

  5. Kattintson egy nyílra, amely csomópontokat köt össze a vonaldiagramon a Vonalkapcsolat panel megnyitásához. A Kapcsolat panelen a kapcsolat részletei láthatók, beleértve a forrás- és céltáblákat, a jegyzetfüzeteket és a feladatokat.

Munkafolyamat-életút rögzítése és megtekintése

A rendszer minden olyan munkafolyamathoz is rögzítve lesz, amely a Unity Katalógusba olvas vagy ír. Az Azure Databricks-munkafolyamatok sorának megtekintése:

  1. Kattintson Új ikon az Oldalsáv Új elemére, és válassza a Jegyzetfüzet lehetőséget a menüből.

  2. Adja meg a jegyzetfüzet nevét, és válassza az SQL-t az alapértelmezett nyelven.

  3. Kattintson a Létrehozás gombra.

  4. Az első jegyzetfüzetcellában adja meg a következő lekérdezést:

    SELECT * FROM lineage_data.lineagedemo.menu
    
  5. Kattintson az Ütemezés gombra a felső sávon. Az ütemezési párbeszédpanelen válassza a Manuális lehetőséget, válasszon ki egy, a Unity Katalógushoz hozzáféréssel rendelkező fürtöt, és kattintson a Létrehozás gombra.

  6. Kattintson a Futtatás most parancsra.

  7. Az Azure Databricks-munkaterület felső sávjának Keresőmezőjében keresse meg a táblátlineage_data.lineagedemo.menu, és jelölje ki.

  8. A Vonalasság lapon kattintson a Munkafolyamatok elemre, és válassza az Alsóbb réteg fület. A feladat neve a feladat neve alatt jelenik meg a menu tábla fogyasztójaként.

Irányítópult-életút rögzítése és megtekintése

Irányítópult létrehozása és az adatsor megtekintése:

  1. Nyissa meg az Azure Databricks kezdőlapját, és nyissa meg a Katalóguskezelőt az oldalsáv Katalógus gombjára kattintva.

  2. Kattintson a katalógus nevére, kattintson a lineagedemo elemre, és válassza ki a táblát menu . A tábla kereséséhez menu a felső sáv Keresőmezője is használható.

  3. Kattintson a Megnyitás gombra egy irányítópulton.

  4. Jelölje ki az irányítópulthoz hozzáadni kívánt oszlopokat, és kattintson a Létrehozás gombra.

  5. Tegye közzé az irányítópultot.

    A rendszer csak a közzétett irányítópultokat követi nyomon az adatsorokban.

  6. A felső sáv Keresőmezőjében keresse meg a táblátlineage_data.lineagedemo.menu, és jelölje ki.

  7. A Vonalasság lapon kattintson az Irányítópultok elemre. Az irányítópult az Irányítópult neve területen jelenik meg a menütábla fogyasztójaként.

Életútengedélyek

A vonaldiagramok ugyanazzal az engedélymodellel rendelkeznek, mint a Unity Catalog. Ha egy felhasználó nem rendelkezik a BROWSE táblán lévő jogosultsággal vagy SELECT jogosultsággal, nem tudja felderíteni az életútot. Emellett a felhasználók csak olyan jegyzetfüzeteket, feladatokat és irányítópultokat láthatnak, amelyek megtekintéséhez engedéllyel rendelkeznek. Ha például a következő parancsokat futtatja egy nem rendszergazda userAfelhasználó számára:

GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;

Amikor userA megtekinti a lineage_data.lineagedemo.menu táblázathoz tartozó életútdiagramot, látni fogják a táblát menu . Nem fognak tudni információkat látni a társított táblákról, például az alsóbb rétegbeli lineage_data.lineagedemo.dinner tábláról. A dinner tábla csomópontként masked jelenik meg a megjelenítési userAterületen, és userA nem tudja kibontani a diagramot, hogy az alsóbb rétegbeli táblákat olyan táblákból jelenítse meg, amelyekhez nincs hozzáférésük.

Ha a következő parancsot futtatja, hogy engedélyt adjon egy BROWSE nem rendszergazda felhasználónak userB:

GRANT BROWSE on lineage_data to `userA@company.com`;

userB mostantól megtekintheti a séma bármely táblázatának életúti gráfját lineage_data .

A Biztonságos objektumokhoz való hozzáférés a Unity Katalógusban való kezelésével kapcsolatos további információkért tekintse meg a Jogosultságok kezelése a Unity Katalógusban című témakört. A munkaterületi objektumokhoz, például jegyzetfüzetekhez, feladatokhoz és irányítópultokhoz való hozzáférés kezeléséről további információt a Hozzáférés-vezérlési listák című témakörben talál.

Az életút adatainak törlése

Figyelmeztetés

Az alábbi utasítások törlik a Unity Catalogban tárolt összes objektumot. Ezeket az utasításokat csak akkor használja, ha szükséges. Például a megfelelőségi követelmények teljesítéséhez.

Az életútadatok törléséhez törölnie kell a Unity-katalógus objektumait kezelő metaadattárat. A metaadattár törléséről további információt a Metaadattár törlése című témakörben talál. Az adatok 90 napon belül törlődnek.

Életútadatok lekérdezése rendszertáblák használatával

A fogazatrendszertáblák segítségével programozott módon kérdezheti le az életútadatokat. Részletes útmutatásért tekintse meg a használat figyelése rendszertáblákkal és a lineage rendszertáblákkal kapcsolatos referenciákat.

Ha a munkaterület olyan régióban található, amely nem támogatja a sorrendszertáblákat, a Data Lineage REST API-val programozott módon is lekérheti a leendő életútadatokat.

A data lineage REST API használatával lekérheti az életútot

Az adatéletre vonatkozó API lehetővé teszi a tábla- és oszlopsorok lekérését. Ha azonban a munkaterület olyan régióban található, amely támogatja a leendő rendszertáblákat, a REST API helyett rendszertábla-lekérdezéseket kell használnia. A rendszertáblák jobb megoldást jelentenek az életútadatok programozott lekérésére. A legtöbb régió támogatja az életútrendszer-táblákat.

Fontos

A Databricks REST API-k eléréséhez hitelesítenie kell.

Táblasor lekérése

Ez a példa lekéri a tábla életútadatait dinner .

Kérés

curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/table-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "include_entity_lineage": true}'

Cserélje le a elemet <workspace-instance>.

Ez a példa egy .netrc-fájlt használ.

Válasz

{
  "upstreams": [
    {
      "tableInfo": {
        "name": "menu",
        "catalog_name": "lineage_data",
        "schema_name": "lineagedemo",
        "table_type": "TABLE"
      },
      "notebookInfos": [
        {
          "workspace_id": 4169371664718798,
          "notebook_id": 1111169262439324
        }
      ]
    }
  ],
  "downstreams": [
    {
      "notebookInfos": [
        {
          "workspace_id": 4169371664718798,
          "notebook_id": 1111169262439324
        }
      ]
    },
    {
      "tableInfo": {
        "name": "dinner_price",
        "catalog_name": "lineage_data",
        "schema_name": "lineagedemo",
        "table_type": "TABLE"
      },
      "notebookInfos": [
        {
          "workspace_id": 4169371664718798,
          "notebook_id": 1111169262439324
        }
      ]
    }
  ]
}

Oszlopsor lekérése

Ez a példa a tábla oszlopadatait dinner kéri le.

Kérés

curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/column-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "column_name": "dessert"}'

Cserélje le a elemet <workspace-instance>.

Ez a példa egy .netrc-fájlt használ.

Válasz

{
  "upstream_cols": [
    {
      "name": "dessert",
      "catalog_name": "lineage_data",
      "schema_name": "lineagedemo",
      "table_name": "menu",
      "table_type": "TABLE"
    },
    {
      "name": "main",
      "catalog_name": "lineage_data",
      "schema_name": "lineagedemo",
      "table_name": "menu",
      "table_type": "TABLE"
    },
    {
      "name": "app",
      "catalog_name": "lineage_data",
      "schema_name": "lineagedemo",
      "table_name": "menu",
      "table_type": "TABLE"
    }
  ],
  "downstream_cols": [
    {
      "name": "full_menu",
      "catalog_name": "lineage_data",
      "schema_name": "lineagedemo",
      "table_name": "dinner_price",
      "table_type": "TABLE"
    }
  ]
}

Korlátozások

  • Mivel az életút egyéves gördülő időszakon van kiszámítva, a több mint egy évvel ezelőtt gyűjtött életút nem jelenik meg. Ha például egy feladat vagy lekérdezés adatokat olvas be az A táblából, és a B táblába ír, az A és a B tábla közötti kapcsolat csak egy évig jelenik meg. Az egyéves időszakon belül időkeret szerint szűrheti az életútadatokat.
  • A Jobs API-kérést runs submit használó feladatok nem érhetők el a leállás megtekintésekor. A rendszer továbbra is rögzíti a tábla- és oszlopszintű leválasztást a runs submit kérelem használatakor, de a futtatásra mutató hivatkozást nem rögzíti a rendszer.
  • A Unity Catalog, amennyire csak lehet, oszlopszinten rögzíti az életutat. Vannak azonban olyan esetek, amelyekben nem rögzíthető oszlopszintű életút.
  • Az oszlopleválasztás csak akkor támogatott, ha a forrásra és a célra táblanév hivatkozik (példa: select * from <catalog>.<schema>.<table>). Az oszlopsor nem rögzíthető, ha a forrás vagy a cél elérési útja (példa: select * from delta."s3://<bucket>/<path>").
  • Ha egy táblát vagy nézetet átneveznek, a rendszer nem rögzíti az átnevezett táblát vagy nézetet.
  • Ha egy sémát vagy katalógust átneveznek, a rendszer nem rögzíti a sorokat az átnevezett katalógus vagy séma alatti táblákhoz és nézetekhez.
  • Ha Spark SQL-adathalmaz-ellenőrzőpont-készítést használ, a rendszer nem rögzíti az életutat.
  • A Unity katalógus a legtöbb esetben a Delta Live Tables feldolgozási sorokból rögzíti az életutat. Bizonyos esetekben azonban nem garantálható a teljes leállás, például amikor a folyamatok az APPLY CHANGES API-t vagy az IDEIGLENES táblákat használják.
  • A Lineage nem rögzíti a Stack-függvényeket.
  • A globális ideiglenes nézetek nem lesznek rögzítve az életútban.
  • Az alatta lévő system.information_schema táblák nem lesznek rögzítve az életútban.