pg中多值列_postgresql – 如何使用多列中的值分发表?

Citus不支持按多列分发.但是,您可以创建一个复合类型和

partition your data by that composite type.

– 如果链接失效,下面将链接内容链接 –

在复合类型上进行散列分区的步骤

>在主节点和所有工作节点上创建类型:

CREATE TYPE new_composite_type as (project_key text, date text);

>创建用于检查相等性的函数,并将其与新类型的相等运算符相关联

CREATE FUNCTION equal_test_composite_type_function(new_composite_type, new_composite_type) RETURNS boolean

AS 'select $1.project_key = $2.project_key AND $1.date = $2.date;'

LANGUAGE SQL

IMMUTABLE

RETURNS NULL ON NULL INPUT;

-- ... use that function to create a custom equality operator...

CREATE OPERATOR = (

LEFTARG = new_composite_type,

RIGHTARG = new_composite_type,

PROCEDURE = equal_test_composite_type_function,

HASHES

);

>创建一个新的哈希函数.

注意:这只是一个简单的例子,可能无法提供良好的均匀哈希分布.有几个好的散列函数的例子可以在一个单独的C函数而不是SQL中实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值