You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/05/06 07:27:39 UTC
[incubator-doris] branch master updated: [Feature][dbt] add partition_type support (#9389)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 7af79e1df5 [Feature][dbt] add partition_type support (#9389)
7af79e1df5 is described below
commit 7af79e1df58aa70437eb34e99b48582e98517c7d
Author: long2ice <lo...@gmail.com>
AuthorDate: Fri May 6 15:27:34 2022 +0800
[Feature][dbt] add partition_type support (#9389)
---
extension/dbt-doris/dbt/adapters/doris/impl.py | 8 +++++++-
.../dbt-doris/dbt/include/doris/macros/adapters/relation.sql | 11 ++++-------
.../doris/macros/materializations/table/create_table_as.sql | 11 ++++++-----
3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/extension/dbt-doris/dbt/adapters/doris/impl.py b/extension/dbt-doris/dbt/adapters/doris/impl.py
index 782e2ab36f..761aac6c99 100644
--- a/extension/dbt-doris/dbt/adapters/doris/impl.py
+++ b/extension/dbt-doris/dbt/adapters/doris/impl.py
@@ -46,10 +46,16 @@ class Engine(str, Enum):
iceberg = "iceberg"
+class PartitionType(str, Enum):
+ list = "LIST"
+ range = "RANGE"
+
+
class DorisConfig(AdapterConfig):
- engine: Engine = Engine.olap
+ engine: Engine
duplicate_key: Tuple[str]
partition_by: Tuple[str]
+ partition_type: PartitionType
partition_by_init: List[str]
distributed_by: Tuple[str]
buckets: int
diff --git a/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql b/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
index ed53ea6fe1..290b9a72d3 100644
--- a/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
+++ b/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
@@ -17,23 +17,20 @@
{% macro doris__engine() -%}
{% set label = 'ENGINE' %}
- {% set engine = config.get('engine', validator=validation.any[basestring]) %}
- {% if engine is not none %}
+ {% set engine = config.get('engine', 'OLAP', validator=validation.any[basestring]) %}
{{ label }} = {{ engine }}
- {% else %}
- {{ label }} = OLAP
- {% endif %}
{%- endmacro %}
{% macro doris__partition_by() -%}
{% set cols = config.get('partition_by') %}
+ {% set partition_type = config.get('partition_type', 'RANGE') %}
{% if cols is not none %}
- PARTITION BY RANGE (
+ PARTITION BY {{ partition_type }} (
{% for col in cols %}
{{ col }}{% if not loop.last %},{% endif %}
{% endfor %}
)(
- {% set init = config.get('partition_by_init',validator=validation.any[list]) %}
+ {% set init = config.get('partition_by_init', validator=validation.any[list]) %}
{% if init is not none %}
{% for row in init %}
{{ row }}{% if not loop.last %},{% endif %}
diff --git a/extension/dbt-doris/dbt/include/doris/macros/materializations/table/create_table_as.sql b/extension/dbt-doris/dbt/include/doris/macros/materializations/table/create_table_as.sql
index 83d7648882..2442571427 100644
--- a/extension/dbt-doris/dbt/include/doris/macros/materializations/table/create_table_as.sql
+++ b/extension/dbt-doris/dbt/include/doris/macros/materializations/table/create_table_as.sql
@@ -16,11 +16,12 @@
-- under the License.
{% macro doris__create_table_as(temporary, relation, sql) -%}
- {% set sql_header = config.get('sql_header', none) %}
-
- {{ sql_header if sql_header is not none }}
- create table {{ relation.include(database=False) }}
+ {% set sql_header = config.get('sql_header', none) %}
+ {% set table = relation.include(database=False) %}
+ {{ sql_header if sql_header is not none }}
+ create table {{ table }}
{{ doris__partition_by() }}
{{ doris__distributed_by() }}
- {{ doris__properties() }} as {{ sql }}
+ {{ doris__properties() }} as {{ sql }};
+ insert into {{ table }} {{ sql }};
{%- endmacro %}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org