Working with a first Project

우상욱·2024년 2월 27일
0

DBT

목록 보기
3/16

Workflow for dbt


  1. Create project(dbt init)
  2. Define configuration(profiles.yml)
  3. Create / use models / templates
  4. Instantiate models(dbt run)
    dbt 하위 명령을 사용하여 모델을 인스턴스화
    작성한 소스코드를 가져와 필요에 따라 번역(컴파일)
    배포대상(즉, 프로필)에 대해 실제로 변환 프로세스를 실행
  5. Verify / Test / Troubleshoot
  6. Repeat as needed

Verifying database connections


  • dbt debug
  • 정의된 데이터베이스 또는 데이터웨어하우스에 대한 연결을 검증합니다.
  • 반드시 데이터웨어하우스를 먼저 생성하고 액세스해야합니다. 그렇지 않으면 오류가 출력됩니다.
  • 만약 duck-db를 사용하고 있다면,dbt run을 통해서 알 수 있습니다.

DBT run


  • 데이터 변환을 수행하고 업데이트를 웨어하우스에 푸시합니다.
  • 모델이 변경되거나 데이터 프로세스를 구체화해야할 때마다 실행해야합니다.
  • Dbt Run 명령의 출석을 분석합니다.
    • dbt 프로세스의 각 단계의 성공 또는 실패에 대한 많은 세부 정보
  • Materialized는 원본 데이터에 대한 변환을 실행하고 결과를 테이블이나 뷰에 배치하는 것을 말합니다.

Table vs View


Tables

  • 실제로 데이터를 보유하는 데이터베이스나 데이터웨어하우스의 객체입니다.
  • 데이터베이스에 삽입된 데이터 크기에 비례하여 데이터베이스 내 공간을 차지합니다.
  • 테이블의 Content는 특정 명령이 해당 데이터를 변경할 때만 업데이트 됩니다.

Views

  • 테이블처럼 작동하고 쿼리할 수 있지만 실제로는 Information이 없습니다.
  • 데이터베이스 내에서 공간을 거의 차지하지 않습니다.
  • 뷰는 일반적으로 다른 테이블에 대한 선택(select) 쿼리로 정의됩니다.
  • 뷰의 데이터는 각 쿼리와 함께 생성됩니다.

DBT는 정의한 구성에 따라 데이터베이스 내에 테이블이나 뷰를 만들 수 있습니다.

실습


  1. models 내 taxi_rides에서 taxi_rides_raw.sql을 작성합니다.
-- Modify the following line to change the materialization type
with source_data as (
    -- Add the query as described to generate the data model
    select * from read_parquet('yellow_tripdata_2023-01-partial.parquet')
)

select * from source_data
  1. dbt run 명령 실행

  2. 데이터웨어하우스 내에 뷰가 잘 만들어졌는지 확인합니다.

  3. 만약 table을 생성하고 싶다면 다음과 같이 작성하고, dbt run을 다시 실행합니다.

-- Modify the following line to change the materialization type
{{ config(materialized='table')}}


with source_data as (
    select * from read_parquet('yellow_tripdata_2023-01-partial.parquet')
)

select * from source_data

profile
데이터엔지니어

0개의 댓글