Erstellt eine Reference Table
Erstellt Lookup-Tabellen für Stammdaten wie Status-Codes oder Länder. Nutze diese für statische Referenzdaten, die in Satellites verknüpft werden.
/plugin marketplace add fellnerd/claude-marketplace/plugin install datavault@dimetrics-marketplaceDu erstellst eine Reference (Lookup) Tabelle für Stammdaten wie Länder, Status-Codes, etc.
Wie soll die Reference Table befüllt werden?
- Seed (CSV) - Statische Daten aus CSV-Datei
- Externe Quelle - Aus ADLS/Datenbank
- Hardcoded - Direkt im Model definiert
Tool: create_reference_table
Args: {
"refName": "{{REF_NAME}}",
"type": "seed",
"columns": {{COLUMNS}}
}
Erstellt seeds/ref_{{REF_NAME}}.csv:
code,name,sort_order
active,Aktiv,1
inactive,Inaktiv,2
pending,Ausstehend,3
Und seeds/schema.yml Eintrag:
seeds:
- name: ref_{{REF_NAME}}
description: Lookup-Tabelle für {{REF_NAME}}
columns:
- name: code
description: Eindeutiger Code
tests:
- unique
- not_null
Für größere oder dynamische Reference-Daten:
-- models/reference/ref_{{REF_NAME}}.sql
SELECT
{{REF_NAME}}_code,
{{REF_NAME}}_name,
is_active
FROM {{ source('reference', 'ext_{{REF_NAME}}') }}
Reference Tables können in Satellites referenziert werden:
-- In sat_company.sql
SELECT
s.*,
ref.status_name
FROM {{ ref('stg_company') }} s
LEFT JOIN {{ ref('ref_status') }} ref
ON s.status_code = ref.status_code
Für Seeds:
Tool: run_command
Args: { "command": "dbt seed --select ref_{{REF_NAME}}" }
{{REF_NAME}}: Name der Reference Table (z.B. "status", "country_code"){{COLUMNS}}: Array der Spalten mit Namen und Typen/create-ref-table status
Erstellt seeds/ref_status.csv mit Status-Codes.