超凡魔力

君子善思,善假于物,而不物于物。

0%

greenplum的分区管理方式。添加分区、重命名分区、添加一个默认的分区、删除一个分区、清空一个分区、交换一个分区、分割一个分区,修改一个分区的模板等。

本文记录的比较详细,非常适合来学习。

在greenplum中,分区,是一个非常好的工具。尤其适合大表,在查询的时候,能分区裁剪,避免扫描其他无用分区。一般原则是,使用关联的主键做分布,使用时间来进行分区裁剪。这在很多情况下非常的有用。

分区也不是越多越好。一个表最终是写到文件上,对于一个带子分区的列存储模式的表,表最终写入文件的数量是:分区数 * 子分区 * 列。所以,很容易导致文件量过多,如:1000*1000*100,影响到性能。

万能法则:建新表、挪数据。如何将一个未分区的表,变成一个分区表?如果可以拆分的话,直接拆分。当遇到其他,无法直接解决的方式。都可以通过新建一张表,然后将旧表,重新插入到新表中。并更换新的表名。

以下内容,需要postgres版本10以后,(但是貌似gp集成的postgres 9版本也可以)以下内容是对表继承的抽象、封装。也能按表的继承封装来实现。

阅读全文 »

分区,及多级分区。分区与分布:

1.分区,按照字段逻辑进行逻辑划分的区域,比如,时间按天,按月等等

2.分布,按照字段进行物理分区,会分散到每个segment

分布式为了并行查询效率,充分利用每个segment节点的资源,分区是为了减少查询时的数据扫描,对大表维护更加方便。

本文讲来都是声明式分区。声明式分区是内置的表分区功能,其在性能与易用性方面都优于继承方式实现的表分区,推荐优先采用声明式分区。

阅读全文 »

按照同事提供的安装方式,一步一步的安装,成功安装了greenplumn。之前,自己尝试安装了好多次,比如使用docker,(可能是因为cenots:lastest版本选择的问题,没有选择低版本7.6),最后,在阿里云,使用以下安装方式,成功安装,由于安装过程执行另好多次,步骤非常熟悉,故,下面的安装非常的快。不到半小时安装成功。

阅读全文 »

有幸安装成功了一次greenplum,便想测试一下已安装的机器的性能。故如下对比。gp的版本一致。安装的方式,也是参照相同的安装方式。

性能对比,结论:插入性能相差不大,但是在计算最值,速度相差有10倍以上。

阅读全文 »

由于需求变更,需要增加字段。但是呢,发现postgre中使用的是标准的sql语法,并没有指定在哪个位置插入字段的语法,默认的ALTER TABLE table_name ADD COLUMN new_field语法,不支持类似mysql的after语法,只能插在表的最后。网上大概找了下,也没有什么优化的方法。

有如下变通:1、新建表,复制旧数据到新表,删除旧表,2、或者创建视图,来保证顺序一致。(建立一个视图)

本文记录一下方式1的迁移方法。

阅读全文 »

Python的数据计算库。很多的功能 ,感觉有点像execl,但是呢,又不需要界面的那种。对数据进行简单的处理

阅读全文 »

资源

总览

  • gpss

    这个应该是个服务端,会开启etl服务。这个服务端,不必跟gp一个机器,也不必跟kdfka的server共享一个机器。故,分开部署。假想的场景是,我另布一个服务在一台新的机器上,单独跑etl服务,然后呢,往gp中导数据。

  • gpsscli

    这个是客户端,用来向gpss服务中,提交新的任务的。

  • gpkafka

    这个功能貌似更强大。是gpss跟gpsscli的合体。只需要一次操作,就能提交任务。有点像gpload对gpdist的封装。用更少的操作获得更强大的功能。

阅读全文 »

用户之间的切换,使用 su,一般情况下,禁止root账号登录,在使用root账号权限的时候,在临时切换,并不会长期使用。

不在root权限下操作,是有好处的。1、权限安全问题。普通用户,无法操作root操作的内容。

阅读全文 »