Doris/SelectDB 설정

Doris/SelectDB 설정

dbt-doris(SelectDB) 어댑터에서 모델을 view, table, incremental로 materialize하는 방법을 다루는 페이지예요. Doris 특유의 duplicate_key, partition_by, distributed_by, buckets, properties 같은 테이블 구성을 지정할 수 있어요.

출처: 문서

본문

모델 (Models)

유형 지원 여부 세부 사항
view materialization YES view를 생성해요.
table materialization YES table을 생성해요.
incremental materialization YES 테이블이 없으면 생성하고, item table 모델은 'unique'여야 해요.

View materialization

dbt 모델은 Doris view로 생성할 수 있고, 다음 문법으로 구성해요.

Project YAML 파일

dbt_project.yml

models:
  <resource-path>:
    +materialized: view

SQL 파일 config

models/<model_name>.sql

{{ config(materialized = "view") }}

Table materialization

dbt 모델은 Doris table로 생성할 수 있고, 다음 문법으로 구성해요.

Project YAML 파일

dbt_project.yml

models:
  <resource-path>:
    +materialized: table
    +duplicate_key: [ <column-name>, ... ],
    +partition_by: [ <column-name>, ... ],
    +partition_type: <engine-type>,
    +partition_by_init: [<pertition-init>, ... ]
    +distributed_by: [ <column-name>, ... ],
    +buckets: int,
    +properties: {<key>:<value>,...}

SQL 파일 config

models/<model_name>.sql

{{ config(
    materialized = "table",
    duplicate_key = [ "<column-name>", ... ],
    partition_by = [ "<column-name>", ... ],
    partition_type = "<engine-type>",
    partition_by_init = ["<pertition-init>", ... ]
    distributed_by = [ "<column-name>", ... ],
    buckets = "int",
    properties = {"<key>":"<value>",...}
      ...
    ]
) }}

Table configuration

Option 설명 필수 여부?
materialized 모델이 Doris에 어떻게 materialize되는지를 나타내요. table 모델을 만들려면 table이어야 해요. 필수
duplicate_key Doris 테이블 모델의 키 목록: 'duplicate'. 필수
partition_by Doris의 파티션 키 목록이에요. (Doris partition) 선택
partition_type Doris의 파티션 타입이에요. 선택 (기본값: RANGE)
partition_by_init 파티션 규칙 또는 일부 실제 파티션 항목이에요. 선택
distributed_by Doris의 버킷 키 목록이에요. (Doris distribute) 필수
buckets 하나의 Doris 파티션 안의 버킷 수예요. 필수
properties Doris의 기타 구성이에요. (Doris properties) 필수

Incremental materialization

Incremental Doris 테이블은 item table 모델이 'unique'여야 하고, 다음 문법으로 구성해요.

Project YAML 파일

dbt_project.yml

models:
  <resource-path>:
    +materialized: incremental
    +unique_key: [ <column-name>, ... ],
    +partition_by: [ <column-name>, ... ],
    +partition_type: <engine-type>,
    +partition_by_init: [<pertition-init>, ... ]
    +distributed_by: [ <column-name>, ... ],
    +buckets: int,
    +properties: {<key>:<value>,...}

SQL 파일 config

models/<model_name>.sql

{{ config(
    materialized = "incremental",
    unique_key = [ "<column-name>", ... ],
    partition_by = [ "<column-name>", ... ],
    partition_type = "<engine-type>",
    partition_by_init = ["<pertition-init>", ... ]
    distributed_by = [ "<column-name>", ... ],
    buckets = "int",
    properties = {"<key>":"<value>",...}
      ...
    ]
) }}

Incremental table configuration

Option 설명 필수 여부?
materialized 모델이 Doris에 어떻게 materialize되는지를 나타내요. table 모델을 만들려면 table이어야 해요. 필수
unique_key Doris 테이블 모델의 키 목록: 'Doris unique'. 필수
partition_by Doris의 파티션 키 목록이에요. (Doris partition) 선택
partition_type Doris의 파티션 타입이에요. 선택 (기본값: RANGE)
partition_by_init 파티션 규칙 또는 일부 실제 파티션 항목이에요. 선택
distributed_by Doris의 버킷 키 목록이에요. (Doris distribute) 필수
buckets 하나의 Doris 파티션 안의 버킷 수예요. 필수
properties Doris의 기타 구성이에요. (Doris properties) 필수

더 알아보기 (Learn more)

  • Doris 데이터 모델(duplicate, unique) 관련 공식 문서를 참고하세요.
  • Doris 파티셔닝과 버킷 구성은 data-partition 문서를 확인하세요.