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