Externe herkomst

Unity Catalog legt automatisch gegevenslijnage vast voor queries die uitgevoerd worden in Azure Databricks. Mogelijk hebt u echter workloads die buiten Azure Databricks worden uitgevoerd (bijvoorbeeld FIRST-mile ETL of LAST-mile BI). Met Unity Catalog kunt u externe afstammingsmetagegevens toevoegen om de Azure Databricks-gegevensherkomst die automatisch wordt vastgelegd, aan te vullen, zodat u een end-to-end herkomstweergave krijgt in Unity Catalog. Dit is handig wanneer u wilt vastleggen waar gegevens vandaan komen (bijvoorbeeld Salesforce of MySQL) voordat ze zijn opgenomen in Unity Catalog of waar gegevens buiten Unity Catalog worden gebruikt (bijvoorbeeld Tableau of Power BI).

U kunt externe herkomst op twee manieren toevoegen:

In de volgende herkomstgrafiek ziet u twee externe tabellen in MySQL en PostgreSQL die zijn opgenomen in Azure Databricks als beheerde tabel in Unity Catalog, waarbij kolommen zijn getransformeerd in een release_date kolom en vervolgens door een extern rapport zijn gebruikt.

Een herkomstgrafiek met externe upstream-tabellen en een downstreamrapport dat is verbonden met een Unity Catalog-tabel, met de knop Externe herkomst maken in de rechterbovenhoek.

Zie Herkomst in Unity Catalog voor algemene informatie over gegevensherkomst in Azure Databricks.

Behoeften

Als u externe herkomstmetagegevens wilt toevoegen in Unity Catalog, moet u de volgende bevoegdheden hebben, afhankelijk van de specifieke taak:

  • Als u een extern object voor metagegevens wilt maken dat kan worden beveiligd in Unity Catalog, moet u de CREATE EXTERNAL METADATA bevoegdheid hebben voor de metastore.
  • Als u herkomstrelaties tussen een extern metagegevensobject en een ander Unity Catalog-object wilt opgeven, moet u de MODIFY bevoegdheid hebben voor het externe metagegevensobject.
  • Als u een downstream afstammingsrelatie met een Unity Catalog-object wilt opgeven, moet u leesbevoegdheden hebben voor het object (bijvoorbeeld SELECT op een tabel).
  • Als u een upstream-herkomstrelatie met een Unity Catalog-object wilt opgeven, moet u schrijfbevoegdheden hebben voor het object (bijvoorbeeld MODIFY in een tabel).

Externe herkomstmetagegevens toevoegen

Ga als volgende te werk om externe herkomstmetagegevens toe te voegen:

  1. Maak een beveiligbaar object voor externe metagegevens in Unity Catalog.

    Dit object vertegenwoordigt een entiteit in een extern systeem, zoals een dashboard in Tableau.

  2. Configureer een herkomstrelatie tussen het externe metagegevensobject en een ander Unity Catalog-object, zoals een tabel, model, pad of ander extern metagegevensobject.

    Wanneer u herkomstrelaties hebt gemaakt, wordt het externe metagegevensobject weergegeven in de weergave van de herkomstgrafiek.

U kunt externe metagegevensobjecten maken en herkomstrelaties configureren met behulp van de gebruikersinterface van Catalog Explorer. Als u wilt beginnen met een bestaande herkomstgrafiek, klikt u op Externe herkomst maken in de rechterbovenhoek van de grafiek. U kunt ook beginnen vanuit de sectie Externe gegevens in Catalog Explorer, zoals beschreven in de volgende secties.

Een extern metagegevensobject maken

Je kunt een extern metadata-object maken met Catalog Explorer, de External Metadata API of de Databricks SDK voor Python.

Catalog Explorer gebruiken om een extern metagegevensobject te maken:

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

  2. Klik op de knop Externe gegevens > , ga naar het tabblad Externe metagegevens en klik op Externe metagegevens maken.

  3. Geef de details van de metagegevens op.

    Vereist:

    • Naam: Voer een door mensen leesbare naam in waarmee Azure Databricks gebruikers begrijpen wat ze zien in herkomst. Externe metagegevensobjecten zijn beveiligbare objecten van Unity Catalog, dus de naam moet voldoen aan de naamgevingsregels voor Unity Catalog-objecten. Zie Vereisten voor naamgeving van beveiligbare objecten.
    • Systeemtype: Selecteer in de lijst met algemene externe gegevens en BI-systemen. Als u de uwe niet kunt vinden, selecteert u Aangepast.
    • Entiteitstype: Voer het type object in, zoals 'tabel' of 'dashboard'.

    Optioneel:

    • URL: Voer de URL van het object in als u wilt dat de kijkers van herkomstgrafieken kunnen doorklikken naar de externe asset (bijvoorbeeld een Tableau-dashboard).
    • Beschrijving

    Geavanceerd:

    • Kolommen: Als u toewijzing op kolomniveau van dit externe object wilt uitvoeren aan een ander Unity Catalog-object, voert u kolomnamen in. Selecteer de gebruikersinterface om deze één voor één in te voeren of tekstinvoer om een door komma's gescheiden lijst in één tekstvak in te voeren.
    • Eigenschappen: Als er andere eigenschappen zijn die u wilt bijhouden in de gegevenslijn, voert u deze in als JSON-sleutel-waardeparen. U kunt de gebruikersinterface gebruiken om elk sleutel-waardepaar in te voeren of een volledig JSON-object in te voeren.
  4. Klik op Create.

    Een dialoogvenster biedt u de mogelijkheid om het externe metagegevensobject weer te geven of om herkomstrelaties voor het object te maken.

Om programmatisch een extern metadata-object te maken, gebruik je de Databricks SDK voor Python of de REST API. De volgende voorbeelden creëren een extern metadata-object dat een Salesforce-tabel vertegenwoordigt.

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import ExternalMetadata, SystemType

w = WorkspaceClient()

external_metadata = w.external_metadata.create_external_metadata(
    external_metadata=ExternalMetadata(
        name="salesforce_accounts",
        system_type=SystemType.SALESFORCE,
        entity_type="table",
        url="https://my-org.salesforce.com/lightning/o/Account/list",
        description="Salesforce Account records ingested into Databricks.",
    )
)

Voor de volledige lijst met parameters, zie de External Metadata API.

REST API

Vervang door <workspace-url> de URL van uw werkruimte. Dit voorbeeld gaat ervan uit dat de DATABRICKS_TOKEN omgevingsvariabele wordt ingesteld op een Databricks persoonlijke toegangstoken.

curl -X POST \
  https://<workspace-url>/api/2.0/lineage-tracking/external-metadata \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "salesforce_accounts",
    "system_type": "SALESFORCE",
    "entity_type": "table",
    "url": "https://my-org.salesforce.com/lightning/o/Account/list",
    "description": "Salesforce Account records ingested into Databricks."
  }'

Voor de volledige lijst van verzoekvelden, zie de External Metadata API.

Herkomstrelaties maken

U kunt herkomstrelaties maken met Catalog Explorer, de externe herkomst-API of de Databricks SDK voor Python.

Relaties toevoegen tussen een extern metagegevensobject en andere Unity Catalog-objecten:

  1. Volg de bovenstaande prompt of zoek het bestaande externe metagegevensobject in Catalog Explorer:

    1. Klik op het gegevenspictogramData icon.Catalogus
    2. Klik op de knop Externe gegevens >
    3. Ga naar het tabblad Externe metagegevens en selecteer het externe metagegevensobject.
  2. Klik op Herkomstrelatie maken.

  3. Selecteer of u een upstream- of downstreamrelatie wilt maken.

  4. Voer het objecttype in waarmee u de relatie wilt maken:

    • Tabel: Selecteer de tabel met behulp van het zoekdialoogvenster.
    • Model: Selecteer het model met behulp van het zoekdialoogvenster en selecteer vervolgens de modelversie.
    • Pad: Voer het pad in voor volumes of externe locaties.
    • Externe metagegevens: selecteer het externe metagegevensobject in de vervolgkeuzelijst.
  5. (Optioneel) Klik op Geavanceerd om toe te voegen:

    • Kolomtoewijzingen tussen het externe metagegevensobject en het bron- of doelobject.
    • Andere metagegevens als JSON-sleutel-waardeparen. U kunt deze bijvoorbeeld gebruiken om de tekst van de query in te voeren die een tabel heeft gemaakt op basis van het externe metagegevensobject of aantekeningen die de externe werkstroom uitleggen die de relatie heeft gegenereerd.
  6. Klik op Create.

U kunt nu de externe herkomstrelatie zien op het tabblad Herkomst van de gerelateerde objecten.

Om programmatisch een afstammingsrelatie te creëren, gebruik je de Databricks SDK voor Python of de REST API. Specificeer de source en target objecten, waarbij elk object een Unity Catalog-tabel, pad, modelversie of extern metadata-object is. De volgende voorbeelden creëren een relatie van een Unity Catalog-tabel naar het salesforce_accounts externe metadata-object, waarbij de id kolom van de tabel wordt gekoppeld aan de external_id kolom van het externe object.

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.catalog import (
    CreateRequestExternalLineage,
    ExternalLineageObject,
    ExternalLineageTable,
    ExternalLineageExternalMetadata,
    ColumnRelationship,
)

w = WorkspaceClient()

relationship = w.external_lineage.create_external_lineage_relationship(
    external_lineage_relationship=CreateRequestExternalLineage(
        source=ExternalLineageObject(
            table=ExternalLineageTable(name="main.sales.accounts")
        ),
        target=ExternalLineageObject(
            external_metadata=ExternalLineageExternalMetadata(
                name="salesforce_accounts"
            )
        ),
        columns=[ColumnRelationship(source="id", target="external_id")],
    )
)

Voor de volledige lijst met parameters, zie de External Lineage API.

REST API

Vervang door <workspace-url> de URL van uw werkruimte. Dit voorbeeld gaat ervan uit dat de DATABRICKS_TOKEN omgevingsvariabele wordt ingesteld op een Databricks persoonlijke toegangstoken.

curl -X POST \
  https://<workspace-url>/api/2.0/lineage-tracking/external-lineage \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "table": { "name": "main.sales.accounts" } },
    "target": { "external_metadata": { "name": "salesforce_accounts" } },
    "columns": [{ "source": "id", "target": "external_id" }]
  }'

Voor de volledige lijst van verzoekvelden, zie de External Lineage API.

Externe herkomstrelaties modelleren

Wanneer u handmatig externe herkomst toevoegt, gebruikt u de volgende patronen om complexere relaties te modelleren:

  • Twee Unity Catalog-tabellen verbinden: als u een herkomstrelatie wilt opgeven tussen twee tabellen die beide zijn geregistreerd in Unity Catalog, maakt u een extern metagegevensobject tussen de tabellen. Geef één tabel op als upstream voor het externe metadataobject en de andere als downstream, zodat beide als verbonden worden weergegeven in de lineage-grafiek.
  • Voeg meerdere herkomstniveaus toe: als u aantekeningen wilt maken op gegevens die door meerdere systemen worden doorgegeven voordat deze Azure Databricks worden ingevoerd, maakt u meerdere externe metagegevensobjecten en configureert u externe herkomstrelaties tussen beide.
  • Gegevensherkomst op kolomniveau toevoegen: Geef kolomnamen op wanneer u het externe metagegevensobject maakt en wijs vervolgens de bron- en doelkolommen toe wanneer u de herkomstrelatie configureert.

Limitations

  • Externe herkomst wordt niet vastgelegd in de herkomstsysteemtabellen (system.access.table_lineage en system.access.column_lineage).
  • U kunt maximaal 10.000 externe metagegevensobjecten en 100.000 externe herkomstrelaties per metastore maken. Zie Resourcelimieten.

Aanvullende bronnen