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 문서를 확인하세요.