
Doris hdfs数据导入doris动态分区表
发布日期:2021-05-10 23:05:51
浏览次数:27
分类:精选文章
本文共 2723 字,大约阅读时间需要 9 分钟。
Doris动态分区表与HDFS数据导入指南
前期准备
在开始操作之前,需要完成以下准备工作:
安装Doris
确保已经完成了Doris的安装配置。如果尚未安装,请参考Doris官方文档或联系技术支持进行部署。了解Doris基础知识
熟悉Doris的数据模型和基本操作。Doris的数据模型主要分为三类:Aggregate、Duplicate、Unique;支持单分区和复合分区两种建表方式。单分区指只指定分桶,复合分区指先指定分区再指定分桶。一、创建动态分区表
在Doris中创建动态分区表,需要使用以下命令:
CREATE TABLE test_db.doris_table_1( dt DATE, type VARCHAR(20), id VARCHAR(100), campaignid VARCHAR(10), spotid VARCHAR(10), ts BIGINT MIN, cnt BIGINT SUM)ENGINE = OLAPAGGREGATE KEY (dt, type, id, campaignid, spotid)PARTITION BY RANGE (dt)( PARTITION p1 VALUES LESS THAN ("2020-09-01"), PARTITION p2 VALUES LESS THAN ("2020-12-01"), PARTITION p3 VALUES LESS THAN ("2021-03-01"), PARTITION p4 VALUES LESS THAN ("2021-06-01"))DISTRIBUTED BY HASH (id)BUCKETS 10PROPERTIES ( "dynamic_partition.enable" = "true", "dynamic_partition.time_unit" = "DAY", "dynamic_partition.end" = "3", "dynamic_partition.prefix" = "p", "dynamic_partition.buckets" = "10");
重要参数说明
- ENGINE:默认为OLAP,支持多种引擎类型,建议使用OLAP。
- AGGREGATE KEY:指定聚合字段,表将按这些字段进行聚合。
- PARTITION BY:定义分区依据。如果不需要复合分区,可以省略。
- DISTRIBUTED BY:指定分桶依据,决定数据分布的方式。
- dynamic_partition.enable:默认为
false
,设置为true
启用动态分区。 - dynamic_partition.time_unit:定时单位,可选
HOUR
、DAY
、WEEK
、MONTH
。 - dynamic_partition.end:预定义分区的数量。
- dynamic_partition.prefix:自动生成分区前缀的字段,通常不使用。
- dynamic_partition.buckets:自动生成分区的分桶数量。
二、导入HDFS数据
使用LOAD LABEL
命令将HDFS数据导入Doris动态分区表:
LOAD LABEL doris_table_1_001( DATA INFILE("hdfs://ns/user/test_db/hive_table_1/dt=*/*") INTO TABLE `doris_table_1` COLUMNS TERMINATED BY "|" (type, id, idtype, campaignid, spotid, referrer, ts, pcos, browser, ip) COLUMNS FROM PATH AS (dt) SET (cnt = 1)WITH BROKER broker_name( "username" = "hdfs_user", "password" = "hdfs_password", "dfs.nameservices" = "ns", "dfs.ha.namenodes.ns" = "namenode30, namenode55", "dfs.namenode.rpc-address.ns.namenode30" = "yc-nsg-h2:8020", "dfs.namenode.rpc-address.ns.namenode55" = "yc-nsg-h3:8020", "dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")PROPERTIES ( "timeout" = "3600", "max_filter_ratio" = "0.1", "timezone" = "Asia/Shanghai");
重要参数说明
- Columns TERMINATED BY:指定字段分隔符,默认为
|
。 - Columns FROM PATH AS:将路径中的值作为参数传递到Doris。
- SET (cnt = 1):在导入数据时,增加一个预聚合字段
cnt
,默认值为1。 - BROKER:配置HDFS集群信息,包括用户名、密码、HA节点等。
- PROPERTIES:设置加载任务的其他参数,如超时、过滤比例和时区。
常见问题解答
动态分区表的数据同步方式是什么?
动态分区表支持两种方式:预定义分区和动态分区。预定义分区适用于已知分区范围,而动态分区适用于数据不断增加的情况。如何处理HDFS路径中的日期范围?
在LOAD LABEL
命令中,可以通过COLUMNS FROM PATH AS
指定时间字段,例如dt
,Doris会自动解析路径中的日期。 预聚合字段cnt
的作用是什么?
SUM
、MIN
等,提升数据统计效率。 总结
通过以上步骤,可以成功将HDFS数据导入Doris的动态分区表中。动态分区表的优势在于灵活的数据扩展能力,而预聚合字段则提升了数据处理的效率。如果需要更详细的操作指导或优化方案,欢迎在评论区留言交流。
发表评论
最新留言
很好
[***.229.124.182]2025年04月20日 10时30分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AUTOSAR_SWS_CANDriver4
2023-01-23
Spring高手系列2
2023-01-23
Android内存优化指南:从数据结构到5R法则的全面策略
2023-01-23
现代前端开发框架对比:React、Vue 和 Svelte 的选择指南
2023-01-23
跑男策划书
2023-01-23
智能电商小程序代码开发:打造全网热销购物体验
2023-01-23
程序员的幽默9
2023-01-23
计算机网络判断题二
2023-01-23
程序员都看不懂的代码
2023-01-23
LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
2023-01-23
404错误页面简约清新源码 非常好看
2023-01-23
404页面自动跳转源码
2023-01-23
44:数字序列中某一位的数字
2023-01-23
458. 可怜的小猪
2023-01-23
matlab cross()函数叉乘 计算过程详解
2023-01-23
46:把数字翻译成字符串(动态规划)
2023-01-23
47:礼物的最大值(动态规划)
2023-01-23
49天精通Java,第28天,Java lambda表达式
2023-01-23
500套精美Logo样机模板可直接套用、轻松制作炫酷logo
2023-01-23