news 2026/2/22 14:27:20

doris的动态分区,可以yyyy-MM这种年月格式的日期格式来做为分区吗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
doris的动态分区,可以yyyy-MM这种年月格式的日期格式来做为分区吗

Doris 的动态分区(dynamic partition)默认支持的分区字段格式是标准的DATEDATETIME类型,但你提到的yyyy-MM(即只有年月,没有日)的格式属于不完整日期(非标准 DATE 类型),不能直接用作分区字段。

但可以通过以下方法间接实现以年月为粒度的分区

一、推荐方式:使用DATE字段 + 动态分区,按月分区

虽然不能直接用yyyy-MM,但你可以用DATE类型字段(例如2024-05-01),然后通过动态分区的 granularity 为 MONTH的方式实现「按月分区」。

示例:

CREATE TABLE example_table ( id INT, event_time DATE ) DISTRIBUTED BY HASH(id) BUCKETS 10 PARTITION BY RANGE(event_time) () PROPERTIES ( "dynamic_partition.enable" = "true", "dynamic_partition.time_unit" = "MONTH", "dynamic_partition.start" = "-12", "dynamic_partition.end" = "3", "dynamic_partition.prefix" = "p", "dynamic_partition.buckets" = "10", "dynamic_partition.create_history_partition" = "true" );

效果:

会自动创建如下分区:

分区名分区范围(event_time)
p202405[2024-05-01, 2024-06-01)
p202406[2024-06-01, 2024-07-01)

你在写入数据时,只需往event_time列写入标准的DATE类型值(如2024-05-10),Doris 会自动路由到对应分区p202405

二、如果你的原始数据字段是yyyy-MM字符串格式

你需要:

  1. 在写入时用 SQL 转换成DATE类型;
  2. 或者使用视图或计算列。

示例:将yyyy-MM字符串转换为DATE

-- 假设有个 staging 表字段是 "2024-05" SELECT STR_TO_DATE(CONCAT(partition_ym, '-01'), '%Y-%m-%d') AS event_time FROM staging_table;

然后写入主表中。

🚫 不推荐:直接使用字符串yyyy-MM作为分区字段

虽然技术上可以用VARCHAR字段做 RANGE 分区,但:

  • 无法使用动态分区功能(只支持DATE/DATETIME字段);
  • 不能使用时间函数做范围推导、自动创建分区等操作
  • 写入和查询逻辑不直观、不易维护。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/22 6:26:48

FlyOOBE完全指南:三步搞定Windows 11硬件限制绕过

FlyOOBE完全指南:三步搞定Windows 11硬件限制绕过 【免费下载链接】Flyby11 Windows 11 Upgrading Assistant 项目地址: https://gitcode.com/gh_mirrors/fl/Flyby11 还在为Windows 11严格的硬件要求而烦恼吗?FlyOOBE作为专业的Windows 11升级助手…

作者头像 李华
网站建设 2026/2/15 17:58:39

5分钟彻底卸载OneDrive:Windows系统完整清理终极指南

5分钟彻底卸载OneDrive:Windows系统完整清理终极指南 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 项目地址: https://gitcode.com/gh_mirrors/on/OneDrive-Uninstaller 你是否感觉OneDrive占用了太…

作者头像 李华
网站建设 2026/2/18 16:33:28

信息学奥赛一本通 1656:Combination

【题目链接】 ybt 1656:Combination 【题目考点】 1. 卢卡斯定理(Lucas定理) 相关知识见:洛谷 P3807 【模板】卢卡斯定理 2. 乘法逆元 相关知识见:洛谷 P1082 [NOIP 2012 提高组] 同余方程 3. 求组合数 相关知识见&#x…

作者头像 李华
网站建设 2026/2/18 2:38:15

Happy Island Designer终极指南:5步掌握专业岛屿规划设计完整教程

Happy Island Designer终极指南:5步掌握专业岛屿规划设计完整教程 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Anima…

作者头像 李华