ms-ai-architect/skills/ms-ai-engineering/references/data-engineering/data-cataloging-discovery.md
Kjell Tore Guttormsen ddce43d8b2 feat(ms-ai-architect): Spor 1 — Port-1-substrat migrert på 4 ikke-advisor-skills (243 Source + 327 Type + 325 TOC + stale-verified poison fjernet) [skip-docs]
Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/
infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk
(fra første ## seksjon), advisor urørt (0 endringer).

To applier-fixes oppdaget under kjøring (TDD, RED→GREEN):
- insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer
  500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor
  scan-vinduet, applierens post-write-assertion fanget + restaurerte).
- normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i
  500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var
  ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent
  utvidelse av carve-out; kun stray metadata-linjer, aldri prosa.

test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet
(fila bærer nå Source). Suite 728/728 grønn.
2026-07-04 10:19:11 +02:00

34 KiB

Data Cataloging and Discovery

Last updated: 2026-06-24 Status: GA Category: Data Engineering for AI Type: reference Source: https://learn.microsoft.com/purview/data-governance-overview


Innhold

Introduksjon

Datakatalogisering og oppdagelse er fundamentale kapabiliteter for organisasjoner som bygger AI-løsninger. Uten en systematisk tilnærming til å registrere, beskrive og finne data, risikerer AI-team å bruke uforholdsmessig mye tid på å lete etter relevante datasett, duplisere eksisterende arbeid, eller trene modeller på data av ukjent kvalitet og opprinnelse. Microsoft Purview Unified Catalog er Microsofts svar på denne utfordringen -- en sentral plattform for å organisere, oppdage og forstå data på tvers av hele dataeiendommen.

For norsk offentlig sektor er datakatalogisering spesielt viktig gitt kravene i Forvaltningsloven om dokumentasjon, Digdirs prinsipper for informasjonsforvaltning, og den nasjonale strategien for deling av data. Purview Unified Catalog støtter disse kravene gjennom governance domains, data products, business glossary og rollebasert tilgangsstyring som mapper til norske forvaltningsprinsipper.

Denne referansen dekker asset-registrering og metadata-berikelse, søk- og oppdagelsesgrensesnitt, forretningsglossarer og taksonomier, dataeier- og forvalteroppdrag, samt bruksanalyse og popularitetsmetrikker for AI-datasett i Microsoft Purview.


Asset Registration and Metadata Enrichment

Registrering av datakilder i Purview

Asset-registrering er det første steget for å gjøre data oppdagbare. Purview støtter automatisk skanning av et bredt spekter av datakilder:

Kildetype Eksempler Skanningsmetode
Microsoft Fabric Lakehouse, Warehouse, KQL DB, Notebooks, Pipelines, Power BI Automatisk ved Fabric-tenant-skanning
Azure Data SQL Database, ADLS Gen2, Cosmos DB, Synapse Registrering + planlagt skanning
On-premises SQL Server, Oracle, file shares Self-hosted Integration Runtime
SaaS Dataverse, Salesforce, SAP Registrering + connector-basert skanning
Multi-cloud AWS S3, Google BigQuery Cross-cloud connectors

Fabric-spesifikk registrering

Fabric Tenant Scanning:

1. Purview Portal > Unified Catalog > Catalog Management
2. Registrer Microsoft Fabric som datakilde
3. Konfigurer skanning:
   - Velg workspaces (alle eller spesifikke)
   - Planlegg skanningsfrekvens
   - Konfigurer autentisering (Managed Identity)
4. Etter skanning er følgende tilgjengelig:

Inventerte Fabric-elementer:
┌────────────────────────────────────────────────┐
│ Opplevelse        │ Registrerte elementer       │
├────────────────────────────────────────────────┤
│ Data Engineering   │ Lakehouse, Notebook,        │
│                    │ Spark Job Def, SQL Endpoint  │
├────────────────────────────────────────────────┤
│ Data Factory       │ Data Pipeline, Dataflow Gen2 │
├────────────────────────────────────────────────┤
│ Data Science       │ Experiment, ML Model         │
├────────────────────────────────────────────────┤
│ Data Warehouse     │ Warehouse                    │
├────────────────────────────────────────────────┤
│ Real-Time Analytics│ KQL Database, KQL Queryset   │
├────────────────────────────────────────────────┤
│ Power BI           │ Semantic Model, Report,      │
│                    │ Dashboard, Dataflow, Datamart │
└────────────────────────────────────────────────┘

Metadata-berikelse

Etter registrering kan metadata berikes manuelt eller automatisk:

# Bruk Purview REST API for å berike metadata på assets
import requests

purview_endpoint = "https://<account>.purview.azure.com"
headers = {"Authorization": f"Bearer {access_token}"}

# Hent eksisterende asset
asset_response = requests.get(
    f"{purview_endpoint}/catalog/api/atlas/v2/entity/guid/{asset_guid}",
    headers=headers
)
asset = asset_response.json()

# Legg til forretningsbeskrivelse og egendefinerte attributter
asset["entity"]["attributes"]["userDescription"] = (
    "Kundetransaksjonstabell for ML-treningsdata. "
    "Inneholder 12 måneders historikk for churn-prediksjon. "
    "Oppdateres daglig via inkrementell lasting."
)

# Oppdater asset med berikede metadata
update_response = requests.put(
    f"{purview_endpoint}/catalog/api/atlas/v2/entity",
    headers=headers,
    json={"entity": asset["entity"]}
)

Automatisk klassifisering og tagging

Purview skanner innholdet i datakolonner og tildeler automatiske klassifiseringer:

Klassifiseringstype Eksempler Handling
Norsk PII Fødselsnummer (11 siffer) Auto-merking som "Fortrolig"
Finansiell Kontonummer, IBAN Varsling til dataeier
Helse Diagnosekoder (ICD-10) Eskalering til DPO
Kontaktinfo E-post, telefonnummer Krever samtykke-validering
Autentisering API-nøkler, passord Umiddelbar sikkerhetsvarsling
# Programmatisk klassifiseringsrapport for AI-datasett
def get_classification_report(purview_endpoint, token):
    """Generer rapport over klassifiserte assets for AI-treningsdata."""
    url = f"{purview_endpoint}/catalog/api/search/query"
    headers = {"Authorization": f"Bearer {token}"}

    classifications = [
        "MICROSOFT.GOVERNMENT.NORWAY.NATIONAL.ID.NUMBER",
        "MICROSOFT.FINANCIAL.CREDIT_CARD_NUMBER",
        "MICROSOFT.PERSONAL.EMAIL",
        "MICROSOFT.PERSONAL.PHONE_NUMBER"
    ]

    report = {}
    for classification in classifications:
        body = {
            "keywords": "*",
            "filter": {
                "classification": classification,
                "assetType": "azure_datalake_gen2_path"
            },
            "limit": 100
        }
        response = requests.post(url, headers=headers, json=body)
        results = response.json()
        report[classification] = {
            "count": results.get("@search.count", 0),
            "assets": [a["name"] for a in results.get("value", [])]
        }

    return report

# Eksempel output:
# {
#   "NORWAY.NATIONAL.ID.NUMBER": {"count": 15, "assets": [...]},
#   "CREDIT_CARD_NUMBER": {"count": 3, "assets": [...]},
#   ...
# }

Search and Discovery Interfaces

Purview Unified Catalog søkegrensesnitt

Unified Catalog tilbyr flere oppdagelsesmekanismer for å finne data:

Oppdagelsesmetode Beskrivelse Beste for
Nøkkelordsøk Fritekst-søk på tvers av katalogen Kjent datasett-navn
Naturlig språk (preview) AI-drevet søk med forretningskontekst Utforskende oppdagelse
Governance domain-browsing Naviger etter forretningsdomene Organisasjonsstruktur
Data product-søk Finn kuraterte datasett-pakker AI-klare datasett
Filtreringsbasert Filtrering på attributter, eiere, labels Målrettet søk

Naturlig språk-søk

Eksempler på naturlig språk-søk (preview):

Søk: "Jeg trenger tre år med trafikkdata fra Direktoratet for digital tjenesteutvikling
       for å analysere rushtrafikk-mønstre"
Resultat: Data products med trafikktelledata, reisehastighetsmålinger

Søk: "Finn sertifiserte kundedata med kundeID, navn og adresse"
Resultat: Data products med masterdata for kunder

Søk: "Vis meg Power BI-rapporter om tilstandsdata for broer"
Resultat: Rapporter og underliggende datasett for bro-tilstand

Søk: "Jeg jobber med prediktiv vedlikehold.
       Vis sensordata fra veisensorer"
Resultat: IoT-sensordata, vedlikeholdshistorikk-datasett

Søkearkitektur

┌────────────────────────────────────────────────────────┐
│                 Purview Unified Catalog                  │
│                                                          │
│  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │
│  │ Keyword     │  │ Natural     │  │ Browse by    │   │
│  │ Search      │  │ Language    │  │ Domain       │   │
│  │             │  │ (preview)   │  │              │   │
│  └──────┬──────┘  └──────┬──────┘  └──────┬───────┘   │
│         │                │                │             │
│         └────────────────┼────────────────┘             │
│                          │                               │
│              ┌───────────▼────────────┐                 │
│              │   Search Index          │                 │
│              │   (Data Map metadata)   │                 │
│              └───────────┬────────────┘                 │
│                          │                               │
│         ┌────────────────┼────────────────┐             │
│         │                │                │             │
│  ┌──────▼──────┐  ┌─────▼──────┐  ┌─────▼──────┐     │
│  │ Data Assets │  │ Data       │  │ Glossary   │     │
│  │ (tabeller,  │  │ Products   │  │ Terms      │     │
│  │  filer)     │  │            │  │            │     │
│  └─────────────┘  └────────────┘  └────────────┘     │
│                                                          │
│  Søkeattributter:                                        │
│  - Asset-navn, beskrivelse, forretningsbruk              │
│  - Governance domain-navn og beskrivelse                  │
│  - Glossary term-navn og definisjoner                     │
│  - Data product tilknyttede assets                       │
│  - OKR-er og kritiske dataelementer                      │
└────────────────────────────────────────────────────────┘

Filtrering og fasettert søk

# Programmatisk søk i Purview Catalog
def search_catalog(purview_endpoint, token, query, filters=None):
    """Søk i Purview-katalogen med valgfrie filtre."""
    url = f"{purview_endpoint}/catalog/api/search/query"
    headers = {"Authorization": f"Bearer {token}"}

    body = {
        "keywords": query,
        "limit": 25,
        "offset": 0,
        "orderby": [{"name": "ASC"}]
    }

    # Legg til filtre
    if filters:
        body["filter"] = filters

    response = requests.post(url, headers=headers, json=body)
    return response.json()

# Eksempel: Finn alle Lakehouse-tabeller i et spesifikt workspace
results = search_catalog(
    endpoint, token,
    query="customer transactions",
    filters={
        "and": [
            {"entityType": "azure_datalake_gen2_path"},
            {"classification": "MICROSOFT.PERSONAL.NAME"},
            {"label": "Fortrolig"}
        ]
    }
)

# Vis resultater med relevans-score
for item in results.get("value", []):
    print(f"Navn: {item['name']}")
    print(f"  Type: {item['entityType']}")
    print(f"  Kvalifisert navn: {item['qualifiedName']}")
    print(f"  Eier: {item.get('owner', 'Ukjent')}")
    print(f"  Score: {item.get('@search.score', 'N/A')}")
    print(f"  Beskrivelse: {item.get('description', 'Ingen')[:100]}")
    print()

Business Glossaries and Taxonomies

Forretningsglossar i Unified Catalog

Business glossary knytter forretningsvokabular til tekniske assets, noe som er kritisk for at domeneeksperter skal finne relevante data for AI-prosjekter:

Komponent Funksjon AI-relevans
Glossary Terms Forretningsdefinisjoner knyttet til data Feature-forståelse for ML
Synonymer Alternative termer for samme begrep Bedre søkeresultater
Akronymer Forkortelser og initialord Standardisering
Hierarki (Parent/child) Taksonomisk organisering Domene-navigering
Custom Attributes Egendefinerte metadata-felter Prosjektspesifikk kontekst
Ressurser Lenker til dokumentasjon Kontekstuell informasjon

Glosarstruktur for AI-prosjekter

Governance Domain: "AI og Maskinlæring"
├── Glossary Terms
│   ├── "Treningsdata"
│   │   ├── Definisjon: "Datasett brukt til å trene ML-modeller"
│   │   ├── Synonymer: "Training data", "Opplæringsdata"
│   │   ├── Relaterte termer: "Valideringsdata", "Testdata"
│   │   ├── Tilknyttede assets: bronze.raw_*, silver.validated_*
│   │   └── Policy: Krever dataeier-godkjenning
│   │
│   ├── "Feature"
│   │   ├── Definisjon: "Beregnet variabel brukt som input til ML-modell"
│   │   ├── Synonymer: "Prediktor", "Forklaringsvariabel"
│   │   ├── Sub-termer:
│   │   │   ├── "Numerisk feature"
│   │   │   ├── "Kategorisk feature"
│   │   │   └── "Temporal feature"
│   │   └── Tilknyttede assets: gold.customer_features
│   │
│   ├── "Ground Truth"
│   │   ├── Definisjon: "Verifisert korrekt label for supervised learning"
│   │   ├── Kvalitetskrav: "Minst 2 uavhengige annotører"
│   │   └── Policy: Krever kvalitetsscore >= 95%
│   │
│   ├── "Personopplysning"
│   │   ├── Definisjon: "Opplysning som kan knyttes til identifiserbar person"
│   │   ├── Akronym: "PII"
│   │   ├── Regulering: GDPR Art. 4(1)
│   │   └── Policy: Automatisk anonymisering i ML-pipelines
│   │
│   └── "Modelldrift"
│       ├── Definisjon: "Endring i modellytelse over tid"
│       ├── Synonymer: "Model drift", "Concept drift"
│       └── Tilknyttede assets: monitoring.drift_metrics

Governance Domain: "Veiforvaltning"
├── Glossary Terms
│   ├── "AADT"
│   │   ├── Definisjon: "Årsdøgntrafikk - gjennomsnittlig daglig trafikk"
│   │   ├── Synonym: "Annual Average Daily Traffic"
│   │   └── Tilknyttede assets: traffic.aadt_measurements
│   │
│   ├── "ÅDT"
│   │   ├── Definisjon: "Døgntrafikk for et enkelt år"
│   │   └── Relatert: "AADT"
│   │
│   └── "Tilstandsgrad"
│       ├── Definisjon: "Skala 0-5 for tilstandsvurdering av veiobjekter"
│       ├── Sub-termer:
│       │   ├── "TG0 - Ingen avvik"
│       │   ├── "TG1 - Mindre avvik"
│       │   ├── "TG2 - Moderate avvik"
│       │   └── "TG3 - Alvorlige avvik"
│       └── Tilknyttede assets: nvdb.condition_assessments

Opprette glossary terms programmatisk

# Opprett glossary terms via Purview REST API
def create_glossary_term(purview_endpoint, token, term_data):
    """Opprett en ny glossary term i Purview Unified Catalog."""
    url = f"{purview_endpoint}/catalog/api/atlas/v2/glossary/term"
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }

    payload = {
        "name": term_data["name"],
        "qualifiedName": f"{term_data['name']}@Glossary",
        "longDescription": term_data["definition"],
        "abbreviation": term_data.get("abbreviation"),
        "anchor": {
            "glossaryGuid": term_data["glossary_guid"]
        },
        "attributes": {
            "dataOwner": term_data.get("owner"),
            "regulatoryRequirement": term_data.get("regulation")
        }
    }

    response = requests.post(url, headers=headers, json=payload)
    return response.json()

# Eksempel: Batch-opprett termer for AI-domenet
ai_terms = [
    {
        "name": "Treningsdata",
        "definition": "Datasett brukt til å trene ML-modeller. "
                       "Skal være representativt for populasjonen modellen "
                       "skal predikere på.",
        "abbreviation": "TD",
        "glossary_guid": ai_glossary_guid,
        "owner": "ml-team@ddt.no",
        "regulation": "GDPR Art. 6 - Lovlig behandlingsgrunnlag"
    },
    {
        "name": "Feature Store",
        "definition": "Sentralisert repository for beregning, lagring og "
                       "servering av ML-features med punkt-i-tid korrekthet.",
        "glossary_guid": ai_glossary_guid,
        "owner": "data-engineering@ddt.no"
    },
    {
        "name": "Dataminimering",
        "definition": "Prinsipp om at kun nødvendige personopplysninger "
                       "samles inn og behandles. Hjemlet i GDPR Art. 5(1)(c).",
        "glossary_guid": ai_glossary_guid,
        "regulation": "GDPR Art. 5(1)(c)"
    }
]

for term in ai_terms:
    result = create_glossary_term(endpoint, token, term)
    print(f"Opprettet: {result['name']} (GUID: {result['guid']})")

Taksonomisk hierarki

Hierarki-visning i Purview:
Unified Catalog > Catalog Management > Governance Domains > Glossary Terms

Visningsalternativer:
├── Liste-visning    -- Flat liste med sortering
├── Kompakt liste    -- Fortetting for oversikt
└── Tre-visning      -- Hierarkisk parent/child-struktur

Eksempel tre-visning:
Data
├── Strukturert data
│   ├── Relasjonell data
│   │   ├── Transaksjonstabell
│   │   └── Dimensjonstabell
│   └── Tidsseriedata
│       ├── Sensordata
│       └── Hendelsesdata
├── Semi-strukturert data
│   ├── JSON-dokumenter
│   └── XML-meldinger
└── Ustrukturert data
    ├── Tekst
    │   ├── Fritekst-notater
    │   └── E-postkorrespondanse
    └── Bilder
        ├── Satellittbilder
        └── Inspeksjonsfoto

Data Owner and Steward Assignments

Roller i Purview Unified Catalog

Purview definerer tydelige roller for datastyring som mapper til norske forvaltningsmønstre:

Rolle Purview-navn Rettigheter Norsk ekvivalent
Global Catalog Reader Unified Catalog Reader Les publiserte artefakter Innsyn
Local Catalog Reader Domain-spesifikk leser Les innenfor et domene Saksbehandler
Governance Domain Creator Domain Creator Opprette domener Avdelingsleder
Data Product Owner Product Owner Opprette/oppdatere data products Fagansvarlig
Data Steward Steward Opprette glossary terms, policies Informasjonsforvalter
Data Health Reader Health Reader Les helserapporter Controller
Data Profile Reader Profile Reader Se profileringsinnsikt Analytiker

Rollebasert tilgangsmodell

Governance Domain: "AI og Maskinlæring"
│
├── Domain Owner: Seksjonsleder AI-avdelingen
│   - Rettigheter: Full kontroll over domenet
│   - Ansvar: Strategisk retning, delegering
│
├── Data Stewards: Informasjonsforvaltere
│   - Rettigheter: Opprette/redigere glossary terms, policies
│   - Ansvar: Datakvalitet, klassifisering, compliance
│
├── Data Product Owners: ML-ingeniører
│   - Rettigheter: Opprette/oppdatere data products
│   - Ansvar: Kuratere AI-klare datasett
│
└── Catalog Readers: Dataforskere, analytikere
    - Rettigheter: Søke, browse, be om tilgang
    - Ansvar: Finne og bruke data ansvarlig

Tilordne eiere og forvaltere

# Tilordne dataeier via Purview REST API
def assign_data_owner(purview_endpoint, token, asset_guid, owner_info):
    """Tilordne dataeier til et asset i Purview."""
    url = f"{purview_endpoint}/catalog/api/atlas/v2/entity/guid/{asset_guid}"
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }

    # Hent eksisterende asset
    response = requests.get(url, headers=headers)
    asset = response.json()

    # Oppdater eierskap
    asset["entity"]["attributes"]["owner"] = owner_info["email"]

    # Legg til kontakt-metadata
    contacts = asset["entity"].get("contacts", {})
    contacts["Owner"] = [{
        "id": owner_info["aad_object_id"],
        "info": owner_info["email"]
    }]
    contacts["Expert"] = [{
        "id": owner_info.get("expert_aad_id"),
        "info": owner_info.get("expert_email")
    }]
    asset["entity"]["contacts"] = contacts

    # Oppdater asset
    update_response = requests.put(
        f"{purview_endpoint}/catalog/api/atlas/v2/entity",
        headers=headers,
        json={"entity": asset["entity"]}
    )
    return update_response.json()

# Eksempel: Tilordne eierskap for ML-datasett
assign_data_owner(endpoint, token, gold_features_guid, {
    "email": "ml-team@ddt.no",
    "aad_object_id": "abc-123-def",
    "expert_email": "data-scientist@ddt.no",
    "expert_aad_id": "ghi-456-jkl"
})

Governance Domain-oppsett for AI

Oppsett av Governance Domain for AI-prosjekter:

1. Opprett domene:
   Purview Portal > Unified Catalog > Catalog Management > Governance Domains
   - Navn: "AI og Maskinlæring"
   - Type: Functional Unit
   - Beskrivelse: "Datastyring for alle AI/ML-initiativer"

2. Tilordne roller:
   - Domain Owner: AI-seksjonsleder
   - Stewards: Informasjonsforvaltere (2-3 personer)
   - Data Product Owners: ML-ingeniører per prosjekt

3. Konfigurer data estate mappings:
   - Map til Data Map-samlinger med AI-relaterte assets
   - Inkluder Fabric workspaces for ML

4. Opprett data products:
   - "Customer 360 for Churn" -- Kundedatasett for churn-prediksjon
   - "Traffic Sensor Features" -- Sensordata for trafikkanalyse
   - "Bridge Condition ML Set" -- Bro-tilstandsdata for vedlikeholds-ML

5. Definer glossary terms:
   - AI-spesifikke termer (se seksjon over)
   - Domenespesifikke termer (vei, trafikk, infrastruktur)

6. Sett OKR-er:
   - "90% av AI-datasett har dokumentert eierskap innen Q2"
   - "100% av datasett med PII er klassifisert"
   - "Gjennomsnittlig tid til data-oppdagelse < 15 min"

Usage Analytics and Popularity Metrics

Data Estate Health og Insights

Purview tilbyr analytikk for å forstå hvordan data brukes på tvers av organisasjonen:

Metrikk Kilde AI-relevans
Skanningsdekning Data Map skanning Andel registrerte AI-datakilder
Klassifiseringsdekning Auto-klassifisering Andel klassifisert treningsdata
Glossary-tilknytning Business glossary Andel assets med forretningskontekst
Eierskap Kontakter/eiere Andel assets med definert eier
Health Score Health Controls Samlet governance-modenhet
Data Quality Score Data Quality rules Datakvalitet per domene

Health Controls og Health Actions

Purview Health Management:

Health Controls (automatisk evaluering):
┌─────────────────────────────────────────────────────┐
│ Kontroll                    │ Mål   │ Status        │
├─────────────────────────────────────────────────────┤
│ Assets med eier             │ > 90% │ ✓ 92%        │
│ Assets med beskrivelse      │ > 80% │ ⚠ 74%        │
│ Assets med glossary term    │ > 70% │ ✗ 45%        │
│ Klassifiserte sensitive     │ 100%  │ ⚠ 88%        │
│ Data products med SLA       │ > 80% │ ✓ 85%        │
│ Governance domains med OKR  │ 100%  │ ✓ 100%       │
└─────────────────────────────────────────────────────┘

Health Score: 74/100
Forbedringsaksjoner:
1. Tilordne glossary terms til 153 utaggede assets
2. Legg til beskrivelse for 12 Lakehouse-tabeller
3. Klassifiser 7 datasett med potensielt sensitiv data

Data Products som AI-klare datasett

Data Product: "Customer 360 for Churn Prediction"
┌────────────────────────────────────────────────────┐
│ Eier:          ML Engineering Team                  │
│ Domene:        AI og Maskinlæring                   │
│ Brukstilfelle: Churn-prediksjon for kundeservice    │
│ Oppdatering:   Daglig (pipeline kl 02:00)           │
│                                                     │
│ Inneholder:                                         │
│ ├── gold.customer_features (Lakehouse-tabell)       │
│ ├── gold.transaction_aggregates (Lakehouse-tabell)  │
│ ├── gold.interaction_history (Lakehouse-tabell)     │
│ └── churn_model_v2 (ML Model)                       │
│                                                     │
│ Glossary Terms:                                     │
│ ├── "Treningsdata" │ "Feature" │ "Churn"           │
│                                                     │
│ Kvalitetsmetrikker:                                 │
│ ├── Datakvalitetsscore: 94/100                      │
│ ├── Fullstendighet: 98.2%                           │
│ ├── Nøyaktighet: 96.5%                              │
│ └── Tidslinjer: Oppdatert < 24 timer                │
│                                                     │
│ Tilgangspolicy:                                     │
│ ├── Standard: Read (alle i ML-teamet)               │
│ └── Forespørsel: Self-service via Purview           │
│                                                     │
│ Brukskrav:                                          │
│ ├── Kun for intern ML-trening                       │
│ ├── Ikke eksporter utenfor Fabric                   │
│ └── Logg all bruk i audit-trail                     │
└────────────────────────────────────────────────────┘

Purview Analytics i OneLake

For avansert bruksanalyse kan Purview-metadata eksporteres til OneLake:

# Eksporter Purview analytics til Fabric for videre analyse
# Purview Analytics in OneLake gir tilgang til katalog-metadata i Fabric

# I Fabric Notebook: Les Purview analytics-data
catalog_data = spark.read.format("delta").load(
    "abfss://purview-analytics@onelake.dfs.fabric.microsoft.com/catalog"
)

# Analyser mest brukte datasett
popular_assets = (
    catalog_data
    .filter(col("assetType") == "azure_datalake_gen2_path")
    .groupBy("qualifiedName", "name")
    .agg(
        F.count("accessEvent").alias("access_count"),
        F.countDistinct("userId").alias("unique_users"),
        F.max("accessTimestamp").alias("last_accessed")
    )
    .orderBy(F.desc("access_count"))
)

popular_assets.show(10)

# Identifiser "mørke data" -- registrerte men ubrukte assets
from pyspark.sql.functions import datediff, current_date

dark_data = (
    catalog_data
    .filter(col("assetType") == "azure_datalake_gen2_path")
    .groupBy("qualifiedName", "name", "owner")
    .agg(
        F.max("accessTimestamp").alias("last_accessed"),
        F.count("accessEvent").alias("total_access")
    )
    .filter(
        (datediff(current_date(), col("last_accessed")) > 180) |
        (col("total_access") < 5)
    )
    .orderBy("last_accessed")
)

print(f"Antall 'mørke data' assets (ubrukt > 6 mnd): {dark_data.count()}")
dark_data.show(20)

Oppdagelsesmetrikker for AI-team

# Dashboard-metrikker for AI-datadoppdagelse
def calculate_discovery_metrics(purview_endpoint, token, domain_id):
    """Beregn oppdagelsesmetrikker for et governance domain."""
    metrics = {}

    # 1. Tidsbruk på dataoppdagelse
    metrics["avg_discovery_time_minutes"] = 12  # Fra brukerundersøkelse

    # 2. Dekningsgrad
    all_assets = search_catalog(endpoint, token, "*",
        filters={"governanceDomain": domain_id})
    classified_assets = search_catalog(endpoint, token, "*",
        filters={
            "and": [
                {"governanceDomain": domain_id},
                {"hasClassification": True}
            ]
        })

    total = all_assets.get("@search.count", 0)
    classified = classified_assets.get("@search.count", 0)

    metrics["total_assets"] = total
    metrics["classified_assets"] = classified
    metrics["classification_coverage"] = (
        round(classified / total * 100, 1) if total > 0 else 0
    )

    # 3. Eierskap-dekning
    owned_assets = search_catalog(endpoint, token, "*",
        filters={
            "and": [
                {"governanceDomain": domain_id},
                {"hasOwner": True}
            ]
        })
    owned = owned_assets.get("@search.count", 0)
    metrics["ownership_coverage"] = (
        round(owned / total * 100, 1) if total > 0 else 0
    )

    # 4. Data product-dekning
    # Hvor mange assets er del av et data product?
    metrics["data_product_count"] = 5
    metrics["assets_in_products"] = 42
    metrics["product_coverage"] = (
        round(42 / total * 100, 1) if total > 0 else 0
    )

    return metrics

# Output:
# {
#   "avg_discovery_time_minutes": 12,
#   "total_assets": 156,
#   "classified_assets": 139,
#   "classification_coverage": 89.1,
#   "ownership_coverage": 93.4,
#   "data_product_count": 5,
#   "assets_in_products": 42,
#   "product_coverage": 26.9
# }

Referanser


For Cosmo

  • Bruk denne referansen når brukeren trenger hjelp med å sette opp datakatalogisering, organisere data for AI-prosjekter, eller etablere informasjonsforvaltning med Purview Unified Catalog.
  • For norsk offentlig sektor: Governance Domains mapper naturlig til avdelinger/seksjoner i etaten. Anbefal å opprette domener som speiler organisasjonsstrukturen (f.eks. "AI og Maskinlæring", "Veiforvaltning", "Trafikkstyring").
  • Data Products er den viktigste funksjonen for AI-team -- de pakker sammen relaterte datasett med forretningskontekst, kvalitetsmetrikker og tilgangspolicyer. Anbefal alltid data products for ML-treningsdatasett i stedet for å la dataforskere lete i rå Lakehouse-tabeller.
  • Business Glossary er undervurdert men kritisk. Det er ingen vits i å ha 200 Lakehouse-tabeller hvis ingen vet hva "tg_veg_brutto_agg_7d" betyr. Glossary terms gir forretningskontekst som gjør data oppdagbare for domeneeksperter som ikke kan SQL.
  • Naturlig språk-søk (preview) er en game-changer for datadrevet offentlig sektor. Saksbehandlere kan søke etter "tre år med trafikkdata for rushtrafikk-analyse" i stedet for å lære SQL eller kjenne tekniske tabellnavn.
  • Anbefal OKR-er i Purview for å knytte datahersking direkte til virksomhetsmål. Eksempel: "Reduser tid til dataoppdagelse fra 2 dager til 15 minutter" som OKR i AI-domenet.
  • Kombiner med microsoft-purview-governance.md for klassifisering/lineage og data-versioning-lineage.md for versjonshistorikk -- sammen utgjør de et komplett governance-rammeverk for AI-data.