Skip to content

Cum să definești expuneri (exposures) în dbt

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să definești expuneri (exposures) în dbt. We cover key concepts, practical examples, and best practices.

Vei învăța cum să definești expuneri (exposures) în dbt pentru a documenta modul în care modelele sunt consumate de aplicații, dashboard-uri și notificări.

Problema

Echipele nu știu cine folosește ce modele. Când un model trebuie modificat sau eliminat, nimeni nu știe ce aplicații vor fi afectate. Exposures rezolvă această problemă documentând dependințele descendente.

Modul Greșit

# schema.yml — fără exposures, fără vizibilitate
models:
  - name: daily_revenue
    description: "Venituri zilnice"
# Nimeni nu știe că acest model e folosit de CFO dashboard

Modul Corect

# models/exposures.yml
version: 2
exposures:
  - name: revenue_dashboard
    label: "Dashboard Venituri"
    description: >
      Dashboard-ul CFO care arată veniturile zilnice, lunare și anuale.
      Se actualizează la fiecare 6 ore.
    type: dashboard
    url: https://looker.company.com/dashboards/revenue
    owner:
      name: Echipa Finanțe
      email: finance@company.com
    depends_on:
      - ref('daily_revenue')
      - ref('monthly_profit')
      - ref('stg_orders')
      - source('raw', 'orders')
    freshness:
      warn_after: {count: 8, period: hour}
      error_after: {count: 24, period: hour}
dbt list --resource-type exposure

Output:

revenue_dashboard
dbt docs generate
# Exposures apar în documentația generată

Pas cu Pas

1. Creează fișierul exposures.yml

models/
  exposures.yml
  schema.yml
  stg_orders.sql
  daily_revenue.sql

2. Definește expunerea

exposures:
  - name: user_analytics_dashboard
    label: "Analytics Utilizatori"
    description: "Dashboard pentru echipa de marketing"
    type: dashboard
    url: https://metabase.company.com/dash/5
    owner:
      name: Marketing
      email: marketing@company.com
    depends_on:
      - ref('user_metrics')
      - ref('user_acquisition')

3. Verifică expunerile

dbt list --resource-type exposure
dbt docs generate && dbt docs serve

Sfaturi de Prevenție

  • Documentează toate dashboard-urile și aplicațiile care consumă modele
  • Includem URL-ul real al dashboard-ului pentru acces rapid
  • Actualizează depends_on când schimbi structura modelelor
  • Configurează freshness pentru a monitoriza actualitatea datelor

Greșeli Comune

  1. Exposure fără depends_on — nu track-uiește dependințe, scopul principal e pierdut
  2. URL incorect — link mort, nimeni nu poate accesa dashboard-ul
  3. Owner nedesemnat — nimeni nu știe cine e responsabil de expunere
  4. Exposure nerevizuită — modelele se schimbă, dar exposures nu se actualizează

Întrebări Frecvente

### Ce este o expunere în dbt?

O expunere documentează un consumator din aval al modelelor — un dashboard, o aplicație, un API, sau un raport — și dependințele sale.

Cum mă ajută exposures în schimbări de scheme?

Când vrei să modifici un model, verifici mai întâi exposures care îl referențiază. Știi exact cine e afectat și poți comunica din timp.

Pot avea exposures care referențiază surse?

Da — depends_on acceptă atât ref() cât și source().

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu dbt pentru gestionarea expunerilor.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro