dbt가 해결하는 문제

3년 동안 다양한 분석가가 작성한 SQL 쿼리로 가득 찬 데이터 웨어하우스를 상상해 보십시오. 수백 개의 호출된 뷰 final_v3_DEFINITIVO_bis, 계산 논리가 중복됨 10개의 다른 장소, 데이터 품질을 보장하는 테스트 없음, 문서화 없음 그 칼럼이 실제로 무엇을 의미하는지에 대해 net_revenue_adjusted.

2026년에 주어지는 대부분의 팀의 출발점은 바로 이것이다. 그 문제는 dbt(데이터 구축 도구) 해결하기 위해 고안되었습니다.

dbt는 새로운 ETL 도구도 아니고 파이프라인 조정자도 아니며 데이터도 아닙니다. 창고. 도구입니다 변환: 이미 로드된 데이터를 가져옵니다. SQL 및 사례를 사용하여 이를 창고에 보관하고 바로 사용할 수 있는 분석 모델로 변환합니다. 소프트웨어 공학의.

ELT 대 ETL: 세상이 변한 이유

수십 년 동안 지배적인 패러다임은 ETL이었습니다. 발췌, 변환, Load. 데이터는 소스에서 추출되어 중간 레이어로 변환되었습니다. (종종 전용 서버에서) 그런 다음 이미 최종 형식으로 데이터 웨어하우스에 로드됩니다.

클라우드 데이터 웨어하우스의 등장 설화, BigQuery e 아마존 레드시프트 그는 이 논리를 뒤집었습니다. 이러한 시스템에는 컴퓨팅 성능이 있습니다. 사실상 무제한이며 매우 낮은 저장 비용입니다. 데이터를 변환하는 것은 더 이상 의미가 없습니다. 전에 로드하려면: 원시 로드하고 변환하는 것이 좋습니다. 후에, 직접 창고. 그리하여 ELT가 탄생했습니다.

ELT와 ETL: 근본적인 차이점

  • ETL: 창고 외부로의 전환(전용 서버, Spark, Talend) — 비용이 많이 들고, 엄격하며, 디버깅이 어렵습니다.
  • ELT: 웨어하우스 내부 변환(네이티브 SQL) — 확장 가능하고, 비용 효율적이며, 테스트 및 문서화가 더 쉽습니다.
  • dbt는 탁월한 ELT 도구입니다. 소프트웨어 엔지니어링을 통해 ELT의 T를 처리합니다.

콘크리트의 DBT란 무엇입니까?

dbt는 다음을 수행할 수 있는 명령줄(및 클라우드) 도구입니다.

  • SQL 변환을 다음과 같이 작성합니다. Git 버전의 모델
  • 정의하다 자동 종속성 매크로가 있는 모델 간 ref()
  • 추가하다 품질 테스트 코드의 데이터에 직접
  • 자동으로 생성 문서화 및 계보 그래프
  • 이 모든 것을 하나로 해결하세요 CI/CD 파이프라인

dbt 템플릿은 단순히 SELECT가 포함된 SQL 파일입니다. DBT는 이를 창고에서 구체화합니다. 구성에 따라 보기, 테이블 또는 증분 테이블로 표시됩니다.

-- models/marts/finance/orders_daily.sql
-- dbt materializza questo come una tabella nel warehouse

SELECT
    DATE_TRUNC('day', created_at) AS order_date,
    SUM(total_amount) AS revenue,
    COUNT(*) AS order_count,
    AVG(total_amount) AS avg_order_value
FROM {{ ref('stg_orders') }}          -- ref() crea la dipendenza
WHERE status = 'completed'
GROUP BY 1

참고하세요 {{ ref('stg_orders') }}: dbt는 이 모델이 의존한다는 것을 알고 있습니다. 에서 stg_orders, 종속성 그래프(DAG)를 자동으로 구축하고 다음을 보장합니다. 패턴이 올바른 순서로 실행되는지 확인하세요.

분석 엔지니어의 역할

dbt의 등장으로 새로운 전문 인물이 탄생했습니다.분석 엔지니어. 데이터 분석가와 데이터 엔지니어의 중간 프로필은 다음과 같습니다.

  • 그는 분석가만큼 SQL을 깊이 알고 있습니다.
  • 엔지니어처럼 소프트웨어 엔지니어링 실무(Git, 테스트, CI/CD) 적용
  • 데이터 웨어하우스 변환 계층 구축 및 유지 관리
  • 데이터 분석가(모델 사용) 및 데이터 엔지니어(수집 파이프라인 관리)와 협업

에 따르면 2025년 데이터 엔지니어링 현황, 분석 엔지니어의 역할이 커졌습니다. LinkedIn에서 지난 3년 동안 340% 증가하여 데이터 세계에서 가장 많이 검색된 프로필 중 하나가 되었습니다.

2026년의 DBT 생태계

dbt는 단순한 도구가 아닙니다. 두 가지 주요 배포판을 갖춘 완전한 생태계가 되었습니다.

DBT 코어

버전 오픈 소스 및 무료 DBT의. pip를 통해 설치되며 라인에서 작동합니다. 명령을 내리고 모든 CI/CD 시스템과 통합됩니다. 모든 주요 데이터 웨어하우스 지원: Snowflake, BigQuery, Redshift, Databricks, DuckDB, PostgreSQL 등은 어댑터를 통해 가능합니다.

DBT 클라우드

매니지드 서비스는 디비티랩스, dbt 뒤에 있는 회사입니다. 웹 IDE, 스케줄러 추가 일관된 메트릭을 위한 통합, 모니터링, dbt Explorer(고급 계보) 및 dbt Semantic Layer. 개발자를 위한 무료 플랜과 팀을 위한 월 100달러 엔터프라이즈 플랜으로 제공됩니다.

dbt 프로젝트의 기둥

dbt 프로젝트는 이전에 혼란이 있었던 곳에 질서를 가져오는 표준 구조를 가지고 있습니다.

jaffle_shop/                    # nome del progetto
├── dbt_project.yml             # configurazione del progetto
├── profiles.yml               # credenziali di connessione (locale)
├── models/
│   ├── staging/               # modelli vicini alla sorgente
│   │   ├── stg_orders.sql
│   │   ├── stg_customers.sql
│   ├── marts/                 # modelli business-oriented
│       ├── finance/
│       │   └── orders_daily.sql
│       └── marketing/
│           └── customer_ltv.sql
├── tests/                     # test SQL personalizzati
├── seeds/                     # CSV statici come reference data
├── macros/                    # funzioni SQL riutilizzabili
└── analyses/                 # query ad hoc (non materializzate)

이 계층 구조(스테이징 → 중간 → 마트)가 모범 사례입니다. DBT 통화 계층화된 아키텍처:

  • 각색: 소스와 1:1로 이름을 바꾸고 유형을 전송하기만 하면 됩니다.
  • 중급: 스테이징 모델 간의 복잡한 조인 및 집계
  • 마트: BI 및 분석을 통해 사용할 준비가 된 최종 모델

테스트 및 문서화: dbt의 뛰어난 기능

데이터 개발 주기를 완전히 변화시키는 두 가지 dbt 기능:

자동 테스트

각 템플릿과 함께 제공되는 YAML 파일에서 직접 테스트를 정의합니다.

# models/staging/schema.yml
models:
  - name: stg_orders
    columns:
      - name: order_id
        tests:
          - unique
          - not_null
      - name: status
        tests:
          - accepted_values:
              values: ['completed', 'pending', 'cancelled']
      - name: customer_id
        tests:
          - not_null
          - relationships:
              to: ref('stg_customers')
              field: customer_id

와 함께 dbt test, dbt는 이러한 테스트를 웨어하우스에서 SQL 쿼리로 실행하고 파이프라인에 실패합니다. 뭔가 잘못된 경우. Python 코드가 없고 외부 프레임워크가 없습니다.

자체 생성 문서

동일한 YAML 파일에 설명을 추가합니다.

# models/marts/schema.yml
models:
  - name: orders_daily
    description: "Aggregazione giornaliera degli ordini completati"
    columns:
      - name: order_date
        description: "Data dell'ordine, troncata al giorno"
      - name: revenue
        description: "Totale ricavi per il giorno, al netto dei resi"

dbt docs generate && dbt docs serve 문서가 포함된 정적 사이트를 생성합니다. 완전하고 모든 모델 간의 종속성을 보여주는 대화형 DAG입니다. 각 열은 문서화되고 소스를 다시 추적할 수 있습니다.

최신 데이터 스택의 dbt

dbt는 일반적으로 스택의 T 레이어입니다. 현대 ELT:

  • 음식물 섭취: Airbyte, Fivetran, Stitch 또는 Python 스크립트가 원시 데이터를 웨어하우스에 로드합니다.
  • 저장: Snowflake, BigQuery, Redshift, Databricks Delta Lake
  • 변환: dbt는 원시 데이터를 분석 모델로 변환합니다.
  • BI 및 분석: Looker, Metabase, Tableau 또는 Notebook은 dbt 모델을 사용합니다.

2026년에는 스타트업부터 30,000개 이상의 기업(dbt Labs 데이터)의 데이터 스택에 dbt가 존재합니다. GitLab, JetBlue, Conde Nast 및 Shopify와 같은 거대 기업에 적용됩니다.

2026년에 DBT를 배워야 하는 이유

DBT 학습에 시간을 투자해야 하는 구체적인 이유:

  • 시장 수요: 데이터 엔지니어 채용 공고의 45%에 "dbt"가 나타납니다. 유럽 LinkedIn의 분석 엔지니어
  • 생산력: dbt 팀은 소요 시간이 60-70% 감소했다고 보고합니다. 자동 테스트 덕분에 데이터 파이프라인 디버깅
  • 생태계: dbt-utils(라이브러리)를 포함하여 dbt Hub에 있는 200개 이상의 dbt 패키지 표준) 및 고급 테스트에 대한 dbt-기대
  • 관찰 가능성: Elementary, re_data 및 도구와의 기본 통합 생산 품질 모니터링을 위한 데이터 관찰성

DBT는 모든 사람을 위한 것은 아닙니다

이미 클라우드 데이터 웨어하우스가 있고 SQL을 기본 언어로 사용하는 경우 dbt가 적합합니다. 구조화되지 않은 데이터에 대한 대규모 변환을 위해 Spark를 대체할 수 없으며 적합하지도 않습니다. 실시간 스트리밍 파이프라인(Flink, Kafka Streams 또는 Spark Structured Streaming을 사용하는 경우) dbt의 장점은 SQL 웨어하우스에 대한 일괄 분석입니다.

결론 및 다음 단계

dbt는 데이터 팀이 분석 파이프라인을 구축하고 유지 관리하는 방법을 재정의하여 테스트, 버전 관리, 문서화, CI/CD 등 성숙한 소프트웨어 엔지니어링 관행을 수십 년 동안 그들 없이 살아온 세상.

핵심 내용: dbt는 대기업을 위한 틈새 도구가 아닙니다. 액세스 가능하고 오픈 소스이며 DuckDB를 백엔드로 사용하는 단일 노트북에서도 실행됩니다. 는 SQL을 아는 사람들에게는 학습 곡선이 낮고 보상은 높습니다.

시리즈의 다음 기사에서는 dbt Core 프로젝트를 처음부터 설정하겠습니다. dbt를 설치하고 다음을 작성하겠습니다. 는 profiles.yml, 첫 번째 모델을 만들고 ref() 매크로 작동 중 실제 데이터세트에서