首页 > 其他分享 >lightdb 支持 merge partitions

lightdb 支持 merge partitions

时间:2024-04-03 09:22:38浏览次数:23  
标签:insert 01 lightdb into PARTITION merge measurement orders partitions

背景

Oracle 中支持很多种分区管理操作。其中 merge partitions 会将多个连续分区合并成一个分区。lightdb 24.1 中支持了该功能。
merge partitions 功能支持 list 和 range 分区,不支持 hash 分区。

用例

range 分区

CREATE TABLE measurement (
    city_id         int not null,
    logdate         date not null,
    peaktemp        int,
    unitsales       int
) PARTITION BY RANGE (logdate) (
	PARTITION p0 VALUES LESS THAN (TO_DATE('2020-01-01', 'yyyy-mm-dd')),
	PARTITION p1 VALUES LESS THAN (TO_DATE('2020-02-01', 'yyyy-mm-dd')),
	PARTITION p2 VALUES LESS THAN (TO_DATE('2020-03-01', 'yyyy-mm-dd')),
	PARTITION p3 VALUES LESS THAN (TO_DATE('2020-04-01', 'yyyy-mm-dd')),
	PARTITION p4 VALUES LESS THAN (MAXVALUE)
);
CREATE INDEX idx_measurement_logdate ON measurement (logdate);
insert into measurement values(0, to_date('2019-01-01', 'yyyy-mm-dd'), 0, 0);
insert into measurement values(1, to_date('2020-01-01', 'yyyy-mm-dd'), 1, 1);
insert into measurement values(2, to_date('2020-02-01', 'yyyy-mm-dd'), 2, 2);
insert into measurement values(3, to_date('2020-03-01', 'yyyy-mm-dd'), 3, 3);
insert into measurement values(4, to_date('2020-04-01', 'yyyy-mm-dd'), 4, 4);

在 lightdb 中,可以通过 \dx measurement 查看该表的分区及索引情况。其中,分区表的名字由父表名 + $ + 分区名组成。

--= 1
select count(*) from measurement$p0;
select * from pg_indexes where tablename = 'measurement$p0';

合并后的分区名可以和原来某个分区名同名,

alter table measurement merge partitions p0, p1 into partition p0;
insert into measurement values (6, to_date('2020-01-08', 'yyyy-mm-dd'), 6, 6);
select * from pg_indexes where tablename = 'measurement$p0';

list 分区

CREATE TABLE orders (
    order_id NUMBER,
    customer_id NUMBER,
    total_amount NUMBER(10, 2)
)
PARTITION BY LIST (customer_id)
(
    PARTITION p1 VALUES (1001, 1002, 1003),
    PARTITION p2 VALUES (2001, 2002, 2003),
    PARTITION p3 VALUES (3001, 3002, 3003),
    PARTITION p4 VALUES (4001, 4002, 4003),
    PARTITION p5 VALUES (DEFAULT)
);
\d+ orders
insert into orders values (1, 999, 1);
insert into orders values (2, 1001, 2);
insert into orders values (3, 2002, 3);
insert into orders values (4, 3003, 4);
insert into orders values (5, 4002, 5);

list 分区可以有 default 分区,

alter table orders merge partitions p1, p2, p3 into partition p1;
--= 3
select count(*) from orders$p1;

alter table orders merge partitions p4, p5 into partition p2;
--= 2
select count(*) from orders$p2;

标签:insert,01,lightdb,into,PARTITION,merge,measurement,orders,partitions
From: https://www.cnblogs.com/lddcool/p/18111939

相关文章

  • array_merge 和 [] 追加元素在处理数组时的区别
    $array1=[['id'=>1,'name'=>'商品A','quantity'=>2],['id'=>2,'name'=>'商品B','quantity'=>1],];$array2=[['id'=>3,�......
  • lightdb 支持 oracle raw bit_and 等
    背景Oracle的Raw类型可以进行位操作,在lightdb24.1中,对其中的函数:bit_and,bit_or,bit_xor,bit_complement四个函数进行了改进。用例bit_andbit_and函数对raw类型中的每一位进行and操作,即按位与。--=0A0BSELECTUTL_RAW.BIT_AND(HEXTORAW('0A0B'),HEXTORAW('......
  • Java HashMap merge() 方法
    JavaHashMapmerge()方法hashmap.merge(key,value,remappingFunction)注:hashmap是HashMap类的一个对象。参数说明:key-键value-值remappingFunction-重新映射函数,用于重新计算值菜鸟教程链接Ifthespecifiedkeyisnotalreadyassociatedwithavalueor......
  • MogDB/openGauss中merge的语法解析
    MogDB/openGauss中merge的语法解析近期了解学习了MogDB/openGauss中merge的使用,merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入。简单来说就是有则更新,无则插入,语句简洁,效率高。下面展示MogDB/openGauss中merge的语法openGauss=#\hmergeCo......
  • ODBC批量merge中出现主键冲突的分析
    ODBC批量merge中出现主键冲突的分析一、文档概括客户某个merge语句运行时,发生主键冲突报错。经分析,其原因如下:由于merge语句中,ON里的判断条件(谓词)中存在带精度定义的数字字段,在绑定变量传递过程中,驱动将数值高精度数字传过去,而数据库内的数据已经做了精度限制,导致在......
  • 客快物流大数据项目(九十三):ClickHouse的ReplacingMergeTree深入了解 ClickHouse清除重
    ​ClickHouse的ReplacingMergeTree深入了解为了解决MergeTree相同主键无法去重的问题,ClickHouse提供了ReplacingMergeTree引擎,用来对主键重复的数据进行去重。删除重复数据可以使用optimize命令手动执行,这个合并操作是在后台运行的,且无法预测具体的执行时间。在使用optimize命......
  • 使用MergeKit创建自己的专家混合模型:将多个模型组合成单个MoE
    由于Mixtral的发布,专家混合(MoE)架构在最近几个月变得流行起来。虽然Mixtral和其他MoE架构是从头开始预训练的,但最近出现了另一种创建MoE的方法:Arcee的MergeKit库可以通过集成几个预训练模型来创建moe。这些人通常被称为frankenMoEs或MoErges,以区别于预先训练的MoEs。在本文中,我......
  • LeetCode-21 Merge Two Sorted Lists
    21.MergeTwoSortedLists EasyYouaregiventheheadsoftwosortedlinkedlists list1 and list2.Mergethetwolistsintoone sorted list.Thelistshouldbemadebysplicingtogetherthenodesofthefirsttwolists.Return theheadofthemerg......
  • Pillow教程03:图像处理的基本步骤+分离split+合并merge+混合blend+composite遮罩
    --------------Pillow教程集合---------------Python项目18:使用Pillow模块,随机生成4位数的图片验证码Python教程93:初识Pillow模块(创建Image对象+查看属性+图片的保存与缩放)Pillow教程02:图片的裁剪+复制粘贴+旋转角度+翻转+降噪滤镜(平滑、锐化、边缘检测)Pillow教程03:图像......
  • commit后怎么解决冲突 merge
    这个时候选择rebase(一定选择rebase,企业中规范要求,直接merge,可能会导致一系列问题) 参考:https://blog.csdn.net/weixin_45565886/article/details/126926514merge和rebase的区别参考2:https://blog.csdn.net/muzidigbig/article/details/122519949......