Skip to content

Cum să încarci fișiere CSV în dbt cu seed

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să încarci fișiere CSV în dbt cu seed. We cover key concepts, practical examples, and best practices.

Vei învăța cum să încarci fișiere CSV în dbt folosind dbt seed, pentru a popula tabele mici de referință, date de test și configurații.

Problema

Tabelele mici de referință (țări, statusuri, coduri) trebuie încărcate manual în baza de date. dbt seed automatizează acest proces, citind fișiere CSV direct în tabele.

Modul Greșit

-- Inserturi manuale — greu de întreținut, neversionabile
INSERT INTO countries VALUES ('RO', 'Romania');
INSERT INTO countries VALUES ('DE', 'Germany');
INSERT INTO countries VALUES ('FR', 'France');
-- 50 de inserări manuale, ușor de greșit

Modul Corect

# seeds/countries.csv
code,name,region
RO,Romania,EU
DE,Germany,EU
FR,France,EU
US,United States,NA
GB,United Kingdom,EU
dbt seed

Output:

17:23:45  1 of 1 START seed file seeds.countries
17:23:46  1 of 1 OK loaded seed file seeds.countries
17:23:46  Finished loading 1 seed file
-- Acum poți referenția seed-ul cu ref()
SELECT * FROM {{ ref('countries') }}
WHERE region = 'EU';

Pas cu Pas

1. Plasează fișierul CSV în directorul seeds/

seeds/
  countries.csv
  status_codes.csv
  product_categories.csv

2. Rulează dbt seed

dbt seed  # Încarcă toate seed-urile
dbt seed --select countries  # Doar unul specific

3. Referențiază seed-ul în modele

SELECT *
FROM {{ ref('countries') }}
JOIN {{ ref('stg_users') }} ON stg_users.country_code = countries.code

Sfaturi de Prevenție

  • Plasează seed-urile în directorul seeds/, nu models/
  • Nu folosi seed-uri pentru tabele mari — sunt pentru date mici de referință
  • Folosește delimiter standard (virgulă) pentru compatibilitate
  • Rulează dbt seed --full-refresh când actualizezi CSV-ul

Greșeli Comune

  1. Seed în directorul models/ — dbt nu le recunoaște; trebuie să fie în seeds/
  2. CSV cu separator greșit — punct și virgulă în loc de virgulă
  3. Headere cu spații — coloanele cu spații în nume cauzează erori SQL
  4. Seed prea mare — peste 1000 de rânduri, preferă un model sau o sursă

Întrebări Frecvente

### Care e diferența între seed și source?

Seed-urile sunt fișiere CSV mici, versionabile, încărcate de dbt. Sursele sunt tabele brute din baza de date, definite în YAML.

Cum actualizez un seed existent?

Modifică fișierul CSV și rulează dbt seed (sau dbt seed --full-refresh pentru a înlocui complet).

Pot folosi seed-uri cu modele incrementale?

Da — referențiază seed-ul cu ref() la fel ca orice model. Seed-urile sunt tratate ca tabele în baza de date.

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu dbt pentru încărcarea datelor CSV.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro