Greenplum之生态与工具

Greenplum生态介绍

生态发展历程

Greenplum之生态与工具_第1张图片

通过上图中左边的时间线,我们可以感受到开源的力量,开源裂变如此之快的经验可以总结为以下四点:

  1. 基于PG丰富的语言接口,很多北向的应用厂家可以迅速的与GP进行兼容适配
  2. 南向接口方面,包括pxf、fdw、gpfdist、gpload以及一些商业组件,例如gpkafka等等,这些可以使外部系统的数据集成更加容易
  3. 基于PG内核的快速迭代,使得与PG最新版本的差距会越来越小,内核的并行执行能力等优秀特性会带来直观的性能提升感受
  4. GP对PG的方向促进作用,包括pivotal对madlib的贡献,Zedstore对PG的反向贡献

商业版与开源版本的异同

Greenplum之生态与工具_第2张图片

商业版相较于开源版,多了一些商业组件和功能。可以明确的是,开源社区的GPDB是可以完全用于生产环境的,这是很多厂家验证出来的结论,只是在一些特定的应用场景中,商业版本支持的更方便。

Greenplum中文社区生态

 技术培训
——有偿/封闭式
 技术研讨会
——现场/开放式
 技术分享直播
——在线直播/回看
 优质文章分享
——使用经验沉淀
 社区实时沟通
——互助/共同成长
 问题反馈
反馈/解决/积累

Greenplum生态软件

Greenplum之生态与工具_第3张图片

从上图整体来看,首先这些是基于PG本身能够提供丰富的北向接口,通过一些应用厂家自行的适配来完成对GP的接入。同时,也离不开GP对标准SQL的支持,对ACID的支持。
在CPU支持这块,目前只支持x86架构,但社区中也有人在ARM平台上编译成功,有兴趣的可以自行尝试。

Greenplum运维工具

商业监控-GPCC

Greenplum之生态与工具_第4张图片

可以明确是GPCC不支持开源GPDB的监控,如果有兴趣,可以在官网上下载GPDB和GPCC进行测试。

开源监控-Prometheus+Grafana

Greenplum之生态与工具_第5张图片

这套开源监控方案是目前比较主流的监控解决方案,提供了运行时间、Master在线时间、Standby在线时间、存储可用容量、数据库表的统计、数据库大小统计、实时的锁信息、segment节点的在线状态、实时同步状态等。
另外,如果在这个平台上如果想集成其他的监控,例如kafka的监控、主机状态的监控,都有相应的组件可以直接配置。

gpxxx运维工具

正常情况下,我们在数据库的使用过程、维护过程中所提出的需求,基本上可以通过GPDB提供的一些官方的工具来解决(通常称为gpxxx运维工具)。
Greenplum之生态与工具_第6张图片

需要注意一下gpaddmirrors,我们知道mirror的配置有group、spread和混合形式。如果希望使用混合形式,则无法通过一键指定的方式启动。可以通过这个命令,首先生成一个配置文件,然后调整配置文件成我们想要的自动分布规则,最后通过这个命令去初始化所有的镜像。在一些多机柜/机房,希望更加灵活的配置GP的场景下是很好用的。
Greenplum之生态与工具_第7张图片Greenplum之生态与工具_第8张图片

Greenplum管理工具

商业-Datagrip/JetBrains数据库插件

JetBrains提供了一套全家桶,针对大部分的开发语言提供了一些开发工具/环境。值得一提的是对GP分区表的显示很友好。如果觉得比较笨重的话,可以在现有的JetBrains全家桶中的某一个工具中安装数据库插件,体验与Datagrip几乎一致。
Greenplum之生态与工具_第9张图片

直接提供GP的驱动,直接连接上后就可以进行增删改查。
Greenplum之生态与工具_第10张图片

通过下图的界面,也可以看出对各种使用方式的支持。包括SQL正常运行状态、SQL输出结果、历史标签的存储等。
Greenplum之生态与工具_第11张图片

商业-Nacvicat

Navicat对GP支持并不完美,针对不同的版本,支持的情况不同,需要针对具体的版本进行测试。

连接示例
Greenplum之生态与工具_第12张图片

SQL执行窗口
Greenplum之生态与工具_第13张图片

开源-DBeaver

支持的数据库很广,即使不支持,也可以通过扩展的方式来达到支持的目的。整体的框架基于Eclipse框架。很多厂家用它来封装自己的客户端管理工具。
Greenplum之生态与工具_第14张图片

提供了对GP原生的连接方式。对GP的连接示例:
Greenplum之生态与工具_第15张图片

SQL执行界面中可以显示出不同的模式、表/外部表、索引、存储序列。
Greenplum之生态与工具_第16张图片

整体体验与DataGrip差不多,但在一些细节优化上与商业版产品还是有点差距。

选型比较

Greenplum之生态与工具_第17张图片

DataGrip支持的很好,流畅性也很好,当使用时出现一些假死的问题时,也会出现一些调整建议。DBeaver对于一些不支持数据库可以通过JDBC的方式自行扩展所需的功能。Navicat、pgadmin等对于PG的支持较好,对GP存在兼容性方面的问题。

Greenplum BI/ETL工具

BI工具

商业BI – Tableau

Tableau是一款数据分析和可视化的工具,支持连接各种数据,包括电子表格、数据库,将他们混合到图标里做出综合性的展示。支持连接GP数据库,通过GP MPP并行处理能力来提高查询性能。支持连接商业版和开源版的GP。
Greenplum之生态与工具_第18张图片

Greenplum之生态与工具_第19张图片

下面有两个在使用GP过程中的优化建议:

  1. 关闭cursor
    ——在GP中,强烈建议不使用游标(部分客户反映在使用游标的过程中出现了各种问题)
  2. 通过设置初始化SQL修改默认参数
    ——例如查询优化器的启动/关闭、是否启用索引扫描、设置statement_mem
    Greenplum之生态与工具_第20张图片

商业BI – 帆软

优秀的国产BI软件,个人使用免费,商业使用的license也很灵活,具备多种方案。提供了链接GP的驱动,通过相关配置,链接成功后直接使用即可。
Greenplum之生态与工具_第21张图片
Greenplum之生态与工具_第22张图片

开源BI – Superset

Greenplum之生态与工具_第23张图片

Greenplum之生态与工具_第24张图片
Greenplum之生态与工具_第25张图片

选型比较

Greenplum之生态与工具_第26张图片

ETL工具

商业ETL - HVR

GP只能作为目标端数据库(只能入库到GP中,不能从GP中导出)
Greenplum之生态与工具_第27张图片

整体架构如下图。首先有一个hub端,类似于中心管理端。在源端可能有(也可能没有)抓取工具,将数据抓取到后,经过hub端,再同步\应用到目标端。这种数据同步方式的入库性能一般比较高,一般都是采用各种数据库软件,例如oracle、GP、PG所能使用的入库/出库性能最高的方式来实现。
Greenplum之生态与工具_第28张图片

商业ETL – Informatica

Greenplum之生态与工具_第29张图片

开源ETL – Kettle

Greenplum之生态与工具_第30张图片

Kettle对于GPDB的入库提供多种方式。比如普通的表输出,通过postgresql接口的方式连接上之后,可以通过master节点进行数据入库,此时在配置上可以勾选“使用批量插入”(实际上是使用jdbc batch insert的方式)。

Greenplum之生态与工具_第31张图片

另外可以通过copy的方式入库(实际是通过postgresql批量加载的组件),使用该组件时,需要在Kettel本地安装psql客户端,通过调用copy命令,将数据文本入库到GP。
Greenplum之生态与工具_第32张图片
性能最高的还是gpload,在配置gpload时,同样需要在本地安装GP loader本地客户端,通过调用本地客户端,加载配置文件将数据批量入库到GP数据库中。

选型比较

Greenplum之生态与工具_第33张图片

Greenplum测试工具

tpc.org

TPC是数据库测试这块绕不开的组织。
Greenplum之生态与工具_第34张图片

TPC-H/TPC-DS与TPC-C
Greenplum之生态与工具_第35张图片

HammerDB

Greenplum之生态与工具_第36张图片

通过hammerdbcli进入客户端
Greenplum之生态与工具_第37张图片

进入客户端之后首先进行一些配置,包括连接数据库、管理员用户,进程/线程数的控制。这里比较重要的是启用GP的适配
Greenplum之生态与工具_第38张图片

下面就是构建测试脚本,构建测试数据库,把测试的模式和数据加载进来。
Greenplum之生态与工具_第39张图片

然后把测试脚本加载进来,就可以平滑的执行测试,测试完成后会形成报告方便查看测试结果。
Greenplum之生态与工具_第40张图片

评价性能不能光看测试结果,还需要结合硬件的价格和产品性能返回值的对比,对比各个产品之间的性价比。

Jmeter

主要应用在应用压测上,类似于loadrunner。不过loadrunner是商业产品,JMeter是开源产品,可以通过定制化的脚本对一些应用或数据库做压测。
Greenplum之生态与工具_第41张图片

安装也比较简单,一键启动式,免安装包。
Greenplum之生态与工具_第42张图片

需要注意的是,需要新建测试计划、线程组(并发用户数、无限循环、持续压测时间)。如果需要和GP对接的话,需要加载GP或者PG的驱动包,配置JDBC连接。
Greenplum之生态与工具_第43张图片

最后会出一个聚合报告,包括采样多少、平均值、响应时间以及是否有异常情况等。
Greenplum之生态与工具_第44张图片

你可能感兴趣的:(Greenplum,数据库)