1. 聚能聊>
  2. 话题详情

数据不是天注定!如何给数据改命实现全局顺滑优化?

数据也有生辰八字,你信吗?列与列之间、行与行之间、元素与元素之间如何相生相克?查询慢?不要信什么这都是上天注定的,一切都可以通过数据改运实现全局和局部的顺滑优化?

image

image

怎么回事呢?且听我细细道来。

数据存储是上天注定的(写入时就决定了),但是我们可以按需改命,例如有个业务是运营商的通话流水,查询需求通常是按某个手机号码查询一个月的流水。而实际上数据是产生时即时写入数据库的,所以存放散乱。查询时耗费大量IO。需求是高效的按手机和月查询通话详单,所以我们需要将用户一个月的数据(通常是按月分区)进行重排即可。你就是上帝之手,数据的命运掌握在你的手中。

精髓就是:
1、局部、全局 两列相对相关性。决定了按某列排序后,另一列的离散度。
2、编排的目的是,可以尽可能的让更多的列有序的存储,从而可以过滤最多的行。
3、全局相关性,决定了按某一列排序时,另一列的离散度。
4、局部相关性,决定了在某些记录中,两列的线性相关性。
5、按局部相关性编排,可以尽可能的让更多的列有序的存储,从而可以过滤最多的行。但是算法较复杂,需要算出什么样的行在一起,按什么排序存放才能获得最佳过滤性。
6、关于多列(或数组)的数据编排,方法1,通过排列组合,计算每两列(元素)的线性相关性,根据这个找出最佳的多列排序组合,从而提高整体相关性(提高压缩比)。
7、编排后,与存储(行号)线性相关性差的列,如果选择性较好(DISTINCT VALUE较多)时,并且业务有过滤数据的需求,建议还是需要建索引。
8、关于多列(或数组)的数据编排,方法2,通过kmean,算出数据归为哪类,每类聚合存放,从而提高数据的局部聚集性,过滤性。这个方法是最优雅的。
9、经过编排,结合PG的BRIN索引,就可以实现任意列的高效过滤。
image

欲知更详细的给数据改命的案例,请参考:

解密上帝之手 - 阿里云HDB for PG特性(数据改命与任意列高效过滤)

通过后天的补救,可以改运。道理和数据编排一样,数据重排,可以影响全局过滤性,局部过滤性,是不是很有意思呢?

数据改命只是阿里云HybridDB for PG提供的一个metascan 特性。更多特性,等大家一起来发掘。

平时你有数据编排的需求吗?

在数据编排过程中你遇到过哪些坑?怎么解决的?

对于数据改名,你还有别的需求吗?快来聊一聊

参与话题

奖品区域 活动规则 已 结束

49个回答

0

幸福的天空 复制链接去分享

靠你的能力和努力和实力去改变

娱乐世界 回复

没错

额,神学

艺术名家 回复

学习

思前想後 回复

诚然... 同感...(雲下塵埃)

评论
1

云路路 复制链接去分享

我们之前统计用户信息的时候是还没需求定义,也是将能获得的数据都拿到一股脑存下来,然后等到,有啥需求的时候再从所有数据里边整理成表,这样表里就是我们想要的数据,然后dump到mysql,关门放数据分析师

1

中秋节到了 复制链接去分享

难得看到这么高的技术含量的文章啊

1

小柒2012 复制链接去分享

我觉得这是一个讨论易经的话题~~~

0

zht2000 复制链接去分享

数据不是天注定,人定胜天

0

丰盛的云 复制链接去分享

新人报道,谢谢😜

0

1848003477870029 复制链接去分享

来凑热闹

0

绅士狗林枫 复制链接去分享

没学精高等数学好难看懂,不过还好,现在社会不需要大家重复造轮子,既然阿里有这个功能的服务,直接接入就好了。

0

1764600627966832 复制链接去分享

想了解一下,不知道怎么了解

0

1166103902055536 复制链接去分享

kkkllkkkl

0

1166103902055536 复制链接去分享

kkkllkkkl

0

1473803841758124 复制链接去分享

路过

0

1723603846047789 复制链接去分享

🐂

0

老人学习 复制链接去分享

靠你的能力和努力和实力去改变

0

1529803769199723 复制链接去分享

观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,渡一切苦厄。舍利子

0

瞬之眼 复制链接去分享

看看吧

0

tt66 复制链接去分享

这是大师关心的,我还没赶上

0

1035003689492423 复制链接去分享

-

0

1085172156568659 复制链接去分享

哈哈哈哈
想想看
AI来了

0

嗫尛 复制链接去分享

通过一点点的实践,逐渐优化改变

3