深度技术网址(深度DeepgreenDB是什么)(1)

Deepgreen DB 全称 Vitesse Deepgreen DB,它是一个可扩展的大规模并行(通常称为MPP)数据仓库解决方案,起源于开源数据仓库项目Greenplum DB(通常称为GP或GPDB)。所以已经熟悉了GP的朋友,可以无缝切换到Deepgreen。

它几乎拥有GP的所有功能,在保有GP所有优势的基础上,Deepgreen对原查询处理引擎进行了优化,新一代查询处理引擎扩展了:

下面简单介绍一下Deepgreen的主要特性(主要与Greenplum对比):

  • 除了以quicklz方式压缩的数据需要修改外,其他数据无需重新装载

  • DML和DDL语句没有任何改变

  • UDF(用户定义函数)语法没有任何改变

  • 存储过程语法没有任何改变

  • JDBC/ODBC等连接和授权协议没有任何改变

  • 运行脚本没有任何改变(例如备份脚本)

  • 那么Deepgreen和Greenplum的不同之处在哪呢?总结成一个词就是:快!快!快!(重要的事情说三遍)。因为大部分的OLAP工作都与CPU的性能有关,所以针对CPU优化后的Deepgreen在性能测试中,可以达到比原Greenplum块3~5倍的性能。

    2.更快的Decimal类型

    Deepgreen提供了两个更精确的Decimal类型:Decimal64和Decimal128,它们比Greenplum原有的Decimal类型(Numeric)更有效。因为它们更精确,相比于fload/double类型,更适合用在银行等对数据准确性要求高的业务场景。

    安装:

    这两个数据类型需要在数据库初始化以后,通过命令加载到需要的数据库中:

    dgadmin@flash:~$ source deepgreendb/greenplum_path.sh

    测试一把:

    使用语句:select avg(x), sum(2*x) from table

    数据量:100万

    结果列表:

    45ms - 64位float

    136ms - decimal64

    通过上面的测试,decimal64(136ms)类型比deepgreen numeric(154ms)类型快,比greenplum numeric快两倍,生产环境中快5倍以上。

    3.支持JSON

    Deepgreen支持JSON类型,但是并不完全支持。不支持的函数有:json_each,json_each_text,json_extract_path,json_extract_path_text, json_object_keys, json_populate_record, json_populate_recordset, json_array_elements, and json_agg.

    安装:

    执行下面命令扩展json支持:

    dgadmin@flash:~$ psql postgres -f $GPHOME/share/postgresql/contrib/json.sql

    测试一把:

    dgadmin@flash:~$ psql postgres

    psql (8.2.15)

    4.高效压缩算法

    Deepgreen延续了Greenplum的zlib压缩算法用于存储压缩。除此之外,Deepgreen还提供两种对数据库负载更优的压缩格式:zstd和lz4.

    如果客户在列存或者只追加堆表存储时要求更优的压缩比,请选择zstd压缩算法。相比于zlib,zstd有更好的压缩比,并且能更有效利用CPU。

    如果客户有大量读取需求,那么可以选择lz4压缩算法,因为它有着惊人的解压速度。虽然在压缩比上lz4并没有zlib和zstd那么出众,但是为了满足高读取负载作出一些牺牲还是值得的。

    有关于这两种压缩算法的具体内容,详见其主页:

    测试一把:

    这里只针对 不压缩/zlib/zstd/lz4四种,进行简单的测试,我的机器性能并不高,所有结果仅供参考:

    postgres=# create temp table ttnone (

    postgres(# i int,

    5.数据采样

    从Deepgreen 16.16版本开始,内建支持通过SQL进行数据真实采样,您可以通过定义行数或者定义采样比两种方式进行采样:

    测试一把:

    postgres=# select count(*) from ttlz4;

    count

    6.TPC-H性能

    Deepgreen与Greenplum的性能对比,请参考我另外两个帖子:

    《Deepgreen与Greenplum TPC-H性能测试对比(使用德哥脚本)》

    《Deepgreen与Greenplum TPC-H性能测试对比(使用VitesseData脚本)》

    (以上两个链接,可在这里看到:https://yq.aliyun.com/articles/104275)

    另外Deepgreen自身搭载的高性能组件Xdrive,在后期会另行分享~

    End~

    ,