注册
DM8入门实战:分区表+dmfldr,新手也能快速装数据
培训园地/ 文章详情 /

DM8入门实战:分区表+dmfldr,新手也能快速装数据

ZE 2025/11/03 166 0 0

未深入学习和使用“分区表”+“dmfldr”前,我总觉得它是个复杂的工具,直到用它们处理日常业务数据才发现,只要抓准核心步骤,新手也能轻松搞定千万级数据快速装载。下面分享一套简单易上手的实操方案,适合刚接触这个组合功能的同事参考。

一、先建个简单的分区表:按日期拆分最直观

日常工作中,“按日期拆分数据”是最常用的场景,比如存储每月的用户注册信息。用以下SQL就能快速创建分区表,无需复杂配置:

-- 创建按月份范围分区的用户表 CREATE TABLE USER_REG ( USER_ID INT, -- 简单字段,避免复杂类型 REG_DATE DATE, -- 分区依据:注册日期 USER_NAME VARCHAR(50) -- 基础业务字段 ) PARTITION BY RANGE (REG_DATE) ( -- 明确每个分区的日期范围,新手不容易出错 PARTITION REG_202405 VALUES LESS THAN ('2024-06-01'), PARTITION REG_202406 VALUES LESS THAN ('2024-07-01') -- 可以定义一个maxvaule分区来装载其他数据 );

此处为方便演示下一步的按分区装载,使用了范围分区,后续要加新月份,复制一行改日期就行,操作也很灵活。当然按月份分区也可以使用间隔分区来实现。

二、用dmfldr装数据:写个简单控制文件

dmfldr的核心是“控制文件”,不用记复杂参数,按模板改3处关键信息即可。新建一个文本文件命名为load_reg.ctl,内容如下:

LOAD DATA
-- 1. 改这里:你的数据文件路径(CSV格式,字段用逗号分隔)
INFILE '/dm/data/user_reg_202405.csv'
-- 2. 改这里:对应上面创建的分区表名
INTO TABLE USER_REG
-- 3. 改这里:对应要装数据的分区(和数据月份匹配)
PARTITION (REG_202405)
FIELDS TERMINATED BY ','  -- 数据文件用逗号分隔字段
TRAILING NULLCOLS         -- 允许字段为空,避免装载失败
(
    USER_ID,    -- 按表字段顺序写,不用改格式
    REG_DATE,   -- 日期字段直接填,dmfldr会自动识别
    USER_NAME
)
-- 新手友好参数:1线程、直接装载,不用调复杂配置
OPTIONS(DIRECT=Y, PARALLEL=1)

三、执行装载+简单校验:3步确认成功

  1. 执行命令:在服务器上输入以下命令,不用额外加参数:
dmfldr USERID=SYSDBA/SYSDBA@localhost:5236 CONTROL=load_reg.ctl LOG=load.log
  1. 看日志:打开生成的load.log文件,找到“成功装载行数”,和CSV文件的总行数对得上就没问题。

  2. 查数据:用简单SQL看分区里有没有数据,新手也能看懂结果:

-- 查看2024年5月分区的数据量 SELECT COUNT(*) FROM USER_REG PARTITION (REG_202405);

这套方法的关键是“简化配置、精准匹配”——分区表只按日期拆,dmfldr控制文件只改3处核心信息,全程不用复杂参数。轻松实现千万级数据的快速装载,特别适合刚接触的同事上手。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服