Delen via


Gegevensherkomst weergeven met behulp van Unity Catalog

Op deze pagina wordt beschreven hoe u gegevensherkomst kunt visualiseren met behulp van Catalog Explorer, de tabellen van het gegevensherkomstsysteem en de REST API.

Overzicht van gegevensherkomst

Unity Catalog legt runtimegegevensherkomst vast voor query's die worden uitgevoerd in Azure Databricks. Afstamming wordt ondersteund voor alle talen en wordt vastgelegd tot op kolomniveau. Gegevens over afstamming omvatten notebooks, taken en dashboards die verband houden met de query. Herkomst kan in bijna real-time worden gevisualiseerd in de catalogusverkenner en programmatisch worden opgevraagd met behulp van de herkomstsysteemtabellen en de Databricks REST API.

Herkomst kan ook externe assets en werkstromen bevatten die buiten Azure Databricks worden uitgevoerd. Deze functie voor externe herkomstmetagegevens bevindt zich in openbare preview. Zie Bring Your Own Data-afstamming.

Herkomst wordt verzameld over alle werkruimtes die zijn gekoppeld aan een Unity Catalog-metastore. Dit betekent dat afstamming die in één werkruimte is vastgelegd, zichtbaar is in elke andere werkruimte die diezelfde metastore deelt. Tabellen en andere gegevensobjecten die zijn geregistreerd in de metastore, zijn met name zichtbaar voor gebruikers met ten minste BROWSE machtigingen voor deze objecten, in alle werkruimten die zijn gekoppeld aan de metastore. Gedetailleerde informatie over objecten op werkruimteniveau, zoals notebooks en dashboards in andere werkruimten, wordt echter verborgen (zie Lineagebeperkingen en Lineagemachtigingen).

Herkomstgegevens worden één jaar opgeslagen.

De volgende afbeelding is een stamboomdiagram.

Overzicht van stamboom.

Voor een demo over het weergeven van gegevensherkomst, zie Unity Catalog - Gegevensherkomst.

Zie De gegevensherkomst van een model bijhouden in Unity Catalog voor meer informatie over het bijhouden van de herkomst van een machine learning-model.

Vereisten

Gegevensherkomst vastleggen met behulp van Unity Catalog:

  • Tabellen moeten worden geregistreerd in een Unity Catalog-metastore.
  • Externe assets (die niet zijn geregistreerd in de Unity Catalog-metastore) moeten worden toegevoegd als externe metagegevensobjecten in Unity Catalog, geconfigureerd om relaties te hebben met andere beveiligbare objecten die zijn geregistreerd in uw Unity Catalog-metastore. Zie Bring Your Own Data-afstamming.
  • Query's moeten gebruikmaken van het Spark DataFrame (bijvoorbeeld Spark SQL-functies die een DataFrame retourneren) of Databricks SQL-interfaces, zoals notebooks of de SQL-query-editor.

Gegevensherkomst weergeven:

  • U moet minimaal de BROWSE bevoegdheid hebben voor de hoofdcatalogus van de tabel of weergave. De oudercatalogus moet ook toegankelijk zijn vanuit de werkruimte. Zie Catalogustoegang beperken tot specifieke werkruimten.
  • Voor notebooks, taken of dashboards moet u machtigingen hebben voor deze objecten, zoals gedefinieerd door de instellingen voor toegangsbeheer in de werkruimte. Zie Herkomstmachtigingen voor meer informatie.
  • Voor een Unity Catalog-pijplijn moet u de machtiging CAN VIEW voor de pijplijn hebben.

Rekenvereisten:

  • Voor het bijhouden van de gegevensstamboom tussen Delta-tabellen is Databricks Runtime 11.3 LTS of hoger vereist.
  • Voor het bijhouden van kolomafstamming voor Lakeflow Spark Declarative Pipelines is Databricks Runtime 13.3 LTS of hoger vereist.

Netwerkvereisten:

Gegevensafstamming bekijken met behulp van Catalog Explorer

Catalog Explorer gebruiken om de herkomst van tabellen te bekijken.

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.

  2. Zoek of blader naar uw tabel.

  3. Selecteer het tabblad Herkomst . Het herkomstvenster wordt weergegeven en geeft gerelateerde tabellen weer.

  4. Als u een interactieve grafiek van de gegevensherkomst wilt weergeven, klikt u op Herkomstgrafiek weergeven.

    Standaard wordt er één niveau weergegeven in de grafiek. Klik op het Plustekenpictogram pictogram op een knooppunt om meer verbindingen weer te geven als deze beschikbaar zijn.

  5. Klik op een pijl waarmee knooppunten in de herkomstgrafiek worden verbonden om het deelvenster Herkomstverbinding te openen.

    In het deelvenster Herkomstverbinding ziet u details over de verbinding, waaronder bron- en doeltabellen, notebooks en taken.

    Herkomstgrafiek.

  6. Als u een notitieblok wilt weergeven dat is gekoppeld aan een tabel, selecteert u het notitieblok in het verbindingsvenster Van herkomst of sluit u de herkomstgrafiek en klikt u op Notitieblokken.

    Als u het notitieblok op een nieuw tabblad wilt openen, klikt u op de naam van het notitieblok.

  7. Als u herkomst op kolomniveau wilt weergeven, klikt u op een kolom in de grafiek om koppelingen naar gerelateerde kolommen weer te geven. Als u bijvoorbeeld op de full_menu kolom in deze voorbeeldgrafiek klikt, worden de upstreamkolommen weergegeven waaruit de kolom is afgeleid:

    Volledige menukolomherkomst.

Taakherkomst weergeven

Als u de afstamming van taken wilt weergeven, gaat u naar het tabblad Afstamming van een tabel, selecteert u Taken en selecteert u Nederstrooms. De taaknaam wordt weergegeven onder Taaknaam als consument van de tabel.

Herkomst van dashboard weergeven

Als u de herkomst van het dashboard wilt weergeven, gaat u naar het tabblad Herkomst van een tabel en klikt u op Dashboards. Het dashboard wordt weergegeven onder Dashboardnaam als consument van de tabel.

Tabelherkomst ophalen met Behulp van Databricks Assistant

Databricks Assistant biedt gedetailleerde informatie over afstammingen van tabellen en inzichten.

Informatie over herkomst ophalen met behulp van Assistent:

  1. Klik in de zijbalk van de werkruimte op het pictogram Gegevens.Catalogus.
  2. Blader of zoek naar de catalogus, klik op de naam van de catalogus en klik vervolgens op het pictogram van de in-product helpassistent - kleur in de rechterbovenhoek.
  3. Typ bij de prompt van de assistent:
    • /getTableLineages om upstream- en downstream-afhankelijkheden weer te geven.
    • /getTableInsights voor toegang tot inzichten op basis van metagegevens, zoals gebruikersactiviteit en querypatronen.

Met deze query's kan Assistent vragen beantwoorden, zoals 'stroomafwaartse herkomsten weergeven' of 'wie deze tabel het vaakst opvraagt'.

Databricks Assistant biedt tabelherkomst en inzichten.

Gegevens over herkomst opvragen met behulp van systeemtabellen

U kunt de systeemtabellen voor herkomst gebruiken om programmatisch een query uit te voeren op herkomstgegevens. Zie Accountactiviteit bewaken met systeemtabellen en Lineage-systeemtabellenreferentie voor gedetailleerde instructies.

Als uw werkruimte zich in een regio bevindt die geen ondersteuning biedt voor lineagesysteemtabellen, kunt u in plaats daarvan de REST API voor gegevenslineage gebruiken om lineagegegevens programmatisch op te halen.

Herkomst ophalen met behulp van de REST API voor gegevensherkomst

Met de gegevensherkomst-API kunt u tabel- en kolomherkomst ophalen. Als uw werkruimte zich echter in een regio bevindt die ondersteuning biedt voor de herkomstsysteemtabellen, moet u systeemtabelquery's gebruiken in plaats van de REST API. Systeemtabellen zijn een betere optie voor het programmatisch ophalen van herkomstgegevens. De meeste regio's ondersteunen de herkomstsysteemtabellen.

Belangrijk

U moet u verifiëren voor toegang tot Databricks-REST API's.

Tabelherkomst ophalen

In dit voorbeeld worden herkomstgegevens voor de dinner tabel opgehaald.

Aanvraag

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}'

Vervang <workspace-instance>.

In dit voorbeeld wordt een .netrc-bestand gebruikt.

Respons

{
  "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
        }
      ]
    }
  ]
}

Kolomherkomst ophalen

In dit voorbeeld worden kolomgegevens voor de dinner tabel opgehaald.

Aanvraag

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"}'

Vervang <workspace-instance>.

In dit voorbeeld wordt een .netrc-bestand gebruikt.

Respons

{
  "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"
    }
  ]
}

Herkomstmachtigingen

Herkomstgrafieken delen hetzelfde toestemmingsmodel als Unity Catalog. Tabellen en andere gegevensobjecten die zijn geregistreerd in de Unity Catalog-metastore, zijn alleen zichtbaar voor gebruikers met ten minste BROWSE machtigingen voor deze objecten. Als een gebruiker niet over de BROWSE of SELECT bevoegdheid van een tabel beschikt, kan deze de herkomst ervan niet verkennen. Herkomstgrafieken geven Unity Catalog-objecten weer in alle werkruimten die zijn gekoppeld aan de metastore, zolang de gebruiker voldoende objectmachtigingen heeft.

Voer bijvoorbeeld de volgende opdrachten uit voor userA:

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

Wanneer userA de herkomstgrafiek voor de lineage_data.lineagedemo.menu tabel bekijkt, zien ze de menu tabel. Ze kunnen geen informatie zien over gekoppelde tabellen, zoals de downstreamtabel lineage_data.lineagedemo.dinner . De dinner tabel wordt weergegeven als een masked knooppunt in de weergave en userAuserA kan de grafiek niet uitbreiden om downstreamtabellen weer te geven uit tabellen waarvoor ze geen toegang hebben.

Als u de volgende opdracht uitvoert om de BROWSE machtiging te userBverlenen, kan die gebruiker de herkomstgrafiek voor elke tabel in het lineage_data schema bekijken:

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

Op dezelfde manier moeten gebruikers met afstammingen specifieke machtigingen hebben om objecten in de werkruimte, zoals notebooks, taken en dashboards, weer te geven. Daarnaast kunnen ze alleen gedetailleerde informatie over werkruimteobjecten zien wanneer ze zijn aangemeld bij de werkruimte waarin deze objecten zijn gemaakt. Gedetailleerde informatie over objecten op werkruimteniveau in andere werkruimten wordt gemaskeerd in de lijnengrafiek.

Zie Bevoegdheden beheren in Unity Catalog voor meer informatie over het beheren van toegang tot beveiligbare objecten in Unity Catalog. Zie Toegangsbeheerlijsten voor meer informatie over het beheren van toegang tot werkruimteobjecten, zoals notebooks, taken en dashboards.

Beperkingen voor afstamming

Gegevensherkomst heeft de volgende beperkingen. Deze beperkingen zijn ook van toepassing op herkomstsysteemtabellen:

  • Hoewel afstamming wordt geïnformeerd voor alle werkruimten die aan dezelfde Unity Catalog-metastore zijn gekoppeld, zijn de details van werkruimteobjecten zoals notebooks en dashboards alleen zichtbaar in de werkruimte waarin ze zijn gemaakt.

  • Omdat herkomst wordt berekend in een doorlopend venster van 1 jaar, wordt herkomst die meer dan 1 jaar geleden is verzameld, niet weergegeven. Als een taak of query bijvoorbeeld gegevens uit tabel A leest en naar tabel B schrijft, wordt de koppeling tussen tabel A en tabel B slechts 1 jaar weergegeven. U kunt herkomstgegevens filteren op tijdsbestek binnen het venster van één jaar.

  • Banen die gebruikmaken van het Jobs API-verzoek runs submit of het spark submit taaktype zijn niet beschikbaar in afstammingsweergaven. Gegevensherkomst op tabel- en kolomniveau wordt nog steeds vastgelegd voor deze werkstromen, maar de koppeling naar de taakuitvoering wordt niet vastgelegd.

  • Herkomst blijft niet behouden voor hernoemde objecten. Dit geldt voor catalogi, schema's, tabellen, weergaven en kolommen.

  • Als u checkpointing van datasets in Spark SQL gebruikt, wordt de afstamming niet vastgelegd.

  • Unity Catalog traceert meestal de herkomst van Lakeflow Spark Declarative Pipelines. In sommige gevallen kan echter niet worden gegarandeerd dat volledige traceerbaarheid aanwezig is, bijvoorbeeld wanneer pijplijnen PRIVÉ-tabellen gebruiken.

  • Resilient Distributed Datasets (RDDs) zijn niet opgenomen in lijnvoering.

  • Globale tijdelijke weergaven worden niet vastgelegd in afstamming.

  • Tabellen onder system.information_schema worden niet vastgelegd in gegevenslijn.

  • Unity Catalog legt gegevensherkomst zo veel mogelijk op kolomniveau vast. Er zijn echter enkele gevallen waarin herkomst op kolomniveau niet kan worden vastgelegd. Deze omvatten:

    • Kolomafstamming kan niet worden vastgelegd als naar de bron of naar het doel wordt verwezen met een pad (voorbeeld: select * from delta."s3://<bucket>/<path>"). Kolomherkomst wordt alleen ondersteund wanneer zowel naar de bron als het doel wordt verwezen met de tabelnaam (voorbeeld: select * from <catalog>.<schema>.<table>).

    • Gebruik van door de gebruiker gedefinieerde functies (UDF's), die de toewijzing tussen bron- en doelkolommen kunnen verbergen.