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

相关文章
|
数据处理 流计算
Flink CDC 开启事物精准一致之后也会有存在丢数据的情况
Flink CDC 开启事物精准一致之后也会有存在丢数据的情况嘛?
715 1
|
4月前
|
SQL 关系型数据库 Apache
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
本文档将作为一份官方指南,系统性地阐述 Apache Doris 的数据更新能力,内容涵盖其核心原理、多样的更新与删除方式、典型的应用场景,以及在不同部署模式下的性能最佳实践,旨在帮助您全面掌握并高效利用 Doris 的数据更新功能。
479 0
Apache Doris 实时更新全解:从设计原理到最佳实践|Deep Dive
|
5月前
|
存储 消息中间件 关系型数据库
Apache Doris 数据导入原理与性能优化 | Deep Dive
Apache Doris 数据导入机制基于分布式架构,通过 FE 与 BE 协同实现高效、可靠的数据写入。本文深入解析其核心流程、事务管理与性能瓶颈,涵盖 Stream Load、Broker Load 等多种导入方式,重点剖析 MemTable 前移、存算分离优化等关键技术,并提供表结构设计、攒批策略、分桶配置等实战优化方案,帮助用户在延迟与吞吐间取得平衡,显著提升数据导入效率。
949 4
Apache Doris 数据导入原理与性能优化 | Deep Dive
|
存储 缓存 算法
Flink RocksDB 状态后端参数调优实践
RocksDB 的配置也是极为复杂的,可调整的参数多达百个,没有放之四海而皆准的优化方案。如果仅考虑 Flink 状态存储这一方面,我们仍然可以总结出一些相对普适的优化思路。本文先介绍一些基础知识,再列举方法。
Flink RocksDB 状态后端参数调优实践
|
8月前
|
SQL 关系型数据库 Apache
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
本文将深入解析 Flink-Doris-Connector 三大典型场景中的设计与实现,并结合 Flink CDC 详细介绍了整库同步的解决方案,助力构建更加高效、稳定的实时数据处理体系。
3254 0
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
623 21
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
1352 1
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
SQL 分布式计算 关系型数据库
Apache doris Datax DorisWriter扩展使用方法
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能
1661 1
Apache doris Datax DorisWriter扩展使用方法