Doris动态分区表

简介: Doris动态分区表Doris动态分区表传参

网上关于Doris动态分区的文章似乎不太多,而且很多都是从官方文档中借鉴过来的,这段时间自己搭项目,踩过不少Doris动态分区表的坑,所以来和大家分享一下。


1:废话不多说,建表模板如下
create table dwd.dwd_test(
  repay_type varchar(64) comment "还款方式",
  order_cnt bigint comment "还款订单数",
  pt date comment "分区字段"                  -- 必须要带,而且必须是date类型
)
DUPLICATE KEY(repay_type)   -- 明细模型
COMMENT "dwd测试表"
partition by range(pt)()    -- 这个小括号必须要带,支持动静态切换
DISTRIBUTED by HASH(repay_type) BUCKETS 1   -- 也可以在properties中写
PROPERTIES(
  "dynamic_partition.enable" = "true",    -- 是否开启动态分区
  "dynamic_partition.time_unit" = "DAY",    -- 动态分区调度单位 
  "dynamic_partition.start" = "-7",         -- 保留过去7天的数据,可以用来做表的生命周期管理,为负数,如果不填,默认值-2147483648,可以理解为永久保留
  "dynamic_partition.end" = "3",        -- 提前创建分区数 比如在2024-10-26日建表,那么查看表分区 会有p20241026 p20241027 p20241028
  "dynamic_partition.prefix" = "p",     -- 必选项,而且不能为空,通常设置为p
--  "dynamic_parititon.buckets" = "1",      -- 分桶数
  "replication_num" = "1"           -- 副本数
);
2:关于动态分区的查询,支持两种查询方式
-- 1: 通过pt字段查询
select * from test where pt = '2024-10-25';
-- 2: 通过分区查询
select * from test partition p20241025;  -- 注意,这里的表不能加别名 否则会报错
3:插入语句
insert into test partition p20241025 select * from t;
insert overwrite table test partition p20241025 select * from t;
4:参数传递问题

insert overwrite table dwd.dwd_test partition(p${pt})
select
repay_type,
count(distinct order_id) as order_cnt,
'${bizdate}'
from ods.ods_abank_repayment_df partition p${pt}
group by repay_type;

以上为在DBeaver上往动态分区插入数据的语句。因为Doris动态分区配置中,properties中的"dynamic_partition.prefix" 的配置项是必须项,而且不能为空串,所以分区通常是p20241019格式,所以在插入的时候分区参数为p${参数名}的格式传递。

在DolphinScheduler中,全局参数不能设置类型,且会自动把'$[yyyyMMdd]'转为字符串,所以如果通过全局参数配置分区字段的话,会出现'p20241019'或者p'20241019'的情况,导致任务失败。

正确配置方法如下:

1:在当前节点中设置参数,数据类型选择INTEGER

2:注意Dolphin不支持{}的写法,注意使用[]

3:写法还是p${pt}的格式,注意不要带''

4:其他正常格式的参数,按照正常写法'${参数名}'即可,可以在当前节点设置,也可以点保存后在全局参数中配置

相关文章
|
SQL 关系型数据库 MySQL
|
10月前
|
存储 SQL 运维
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
小米早在 2019 年便引入 Apache Doris 作为 OLAP 分析型数据库之一,经过五年的技术沉淀,已形成以 Doris 为核心的分析体系,并基于 2.1 版本异步物化视图、3.0 版本湖仓一体与存算分离等核心能力优化数据架构。本文将详细介绍小米数据中台基于 Apache Doris 3.0 的查询链路优化、性能提升、资源管理、自动化运维、可观测等一系列应用实践。
511 3
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
|
存储 缓存 算法
Flink RocksDB 状态后端参数调优实践
RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。
Flink RocksDB 状态后端参数调优实践
|
11月前
|
存储 数据挖掘 关系型数据库
更高效的数据处理解决方案:基于 MinIO 部署 Apache Doris 存算分离版本实践
现代数据处理在多维度面临严峻挑战,一方面,数据量的持续增长致使传统存储成本居高不下,非结构化数据所占比例日益攀升,进一步加重了存储负担,且数据质量问题推高了存储和清洗成本;另一方面,企业内部往往存在多套系统,数据难以集成,这对数据分析的成本和时效性也提出了更高的要求。Apache Doris 作为一款具备高性能的实时分析数据库,拥有湖仓一体的能力。当它与 MinIO 这样高性能且 S3 兼容的对象存储系统相结合时,能够构建出一个高效且具备低成本特性的数据分析系统。本文将介绍基于 Apache Doris 和 MinIO 的存算分离部署教程与使用实践。
923 0
|
SQL 关系型数据库 Apache
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
本文将深入解析 Flink-Doris-Connector 三大典型场景中的设计与实现,并结合 Flink CDC 详细介绍了整库同步的解决方案,助力构建更加高效、稳定的实时数据处理体系。
4209 0
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
|
SQL 监控 数据可视化
DolphinScheduler教程(02)- 系统架构设计
DolphinScheduler教程(02)- 系统架构设计
1940 0
DolphinScheduler教程(02)- 系统架构设计