达梦数据库创建根据日期自动分区表
概念
达梦数据交换平台(简称DMETL)是在总结了众多大数据项目经验和需求并结合最新大数据发展趋势和技术的基础上,自主研发的通用的大数据处理与集成平台。
DMETL创新地将传统的ETL工具(Extract、Transform、Loading)与分布式大数据处理平台相结合,实现了对数据同步、数据处理以及数据共享交换的一站式支持,大幅度降低了用户使用各种hadoop以及flink进行大数据整合处理的技术门槛,是构建数据同步、数据交换、数据仓库以及数据中心等数据集成类应用的理想平台。
间隔分区
间隔分区可以在输入相应分区的数据后自动创建分区,是范围分区的扩展。例如:将 dmhr 用户下 employee 表中员工信息按入职时间以月为间隔转换为分区表。
建表sql(按月自动分区)
CREATE TABLE dmhr.emp_part
(EMPLOYEE_ID INT,EMPLOYEE_NAME VARCHAR (20),IDENTITY_CARD VARCHAR (18),EMAIL VARCHAR (50) NOT NULL,PHONE_NUM VARCHAR (20),HIRE_DATE DATETIME(6) NOT NULL,JOB_ID VARCHAR (10) NOT NULL,SALARY INT,COMMISSION_PCT INT,MANAGER_ID INT,DEPARTMENT_ID INT,UNIQUE("EMPLOYEE_ID","HIRE_DATE")
)
PARTITION BY RANGE (hire_date)INTERVAL ( NUMTOYMINTERVAL (1, 'month') )(PARTITION P1 VALUES LESS THAN (TO_DATE ('2007-01-01', 'yyyy-mm-dd')));
INTERVAL:自动新增分区
NUMTOYMINTERVAL:转换
UNIQUE:唯一约束,如果确保每个分区约束则要将分区字段带上,(也可以设置主键)
在 emp_part 表中插入员工信息
INSERT INTO dmhr.emp_part SELECT * FROM dmhr.employee;
commit;
通过 dba_tab_partitions 表查询分区信息
SELECT table_name,partition_name, high_value FROM dba_tab_partitions
WHERE table_name='EMP_PART' ORDER BY high_value;
如上图所示,数据库以 2007 年 1 月 1 日 为起始点自动创建了 9 个分区。
如果是 sysdba 用户登录数据库,通过系统表 dba_tab_partitions 查询。 如果是 dmhr 用户登录数据库,通过系统表 user_tab_partitions 查询。
借鉴链接