TalkingData公司在Greenplum上的应用实践

    xiaoxiao2022-05-29  224

    2017年8月23日的Greenplum技术研讨会,TalkingData架构师Max分享了该公司在Greenplum上的一些使用心得,分享给大家~~

    一、TalkingData公司简介

    一家提供手机端数据分析的厂家。

    通过手机端SDK 嵌入,手机用户操作数据,进行分析。

    主要产品:

    ​ AppAnalytic、GameAnalytic、Ad Tracking

    ​ 营销云 - Smart Marketing Cloud

    二、Data ATM

    1. 系统简介:

    Data ATM是第一部分所介绍产品的后台支撑平台,主要是用的架构是Greenplum,功能如下:

    人群定位与分析平台基于多个数据源的不同条件,找出特定人群对特定人群进行分析画像为前端数据应用提供数据支撑

    2. 业务架构

    3. 流程图

    4. 技术架构

    业务架构通过任务执行器进行任务解析,根据不同的技术栈对应解析到不同的网关(Greenplum网关、Spark网关、ETL)。

    任务解析器会将任务解析成SQL分配给Greenplum执行,目前平台95%的数据源分析工作都是交给Greenplum执行的;另外Spark的任务是通过API调用执行的;ETL的过程,也都是通过Spark实现的。ETLSpark和GP的冷数据落盘,都是落到HDFS中去。

    作者提到,开始的时候,他们用的是纯Spark的架构,但是慢慢发现Spark并不能完全满足业务需求,开发难度较大,故切换到Greenplum。目前Lookalike模型在Spark上。

    三、主要数据存储Greenplum

    1. 数据容量

    总数据容量400TB15~20TB每天唯一设备数55亿+日活设备数2.5亿月活设备数6.5亿月位置数据(聚集后)600亿,3个月的位置数据量,2000亿最大单个任务参与计算数据超过6TB任务耗时1秒~5分钟机器磁盘容量占用70%左右

    2. 目前Greenplum规模

    21个数据节点,1个Master,单台机器配置4个Primary Instance,4个Mirror Instance;共计84个primary,84个mirror单节点配置:

    ​ 24Core CPU

    ​ 128GB RAM

    ​ 14*SAS 7200 Disk Raid 5 = 45TB(使用的应该是单块容量4T的盘)

    目前存储数据量

    ​ 400TB+纯文本数据存储在HDFS上,上载到本地磁盘的数据量大于400TB

    3. Why Greenplum

    得益于可控的数据分布,提高执行效率,相比于spark上面块分布的策略,GP可以提供根据ID值的均匀分布,计算效率更高支持列式存储和压缩,方便对数据进行压缩,节约容量支持多样的数据类型:Array XML Json等,加快查询,节约开发成本支持GEO空间计算引擎PostGIS,不需要自己开发较复杂的空间计算函数扩展性强,Function Operator DataType Aggregation Index都可以由用户来自由定义,为二次开发及扩展提供很大帮助支持多种主流语言:PGSQL C Python Perl Java R,方便各类扩展使用标准的SQL语言,降低前端开发成本和时间

    三、技术点分享

    1. Array& Json

    通过使用数组缩减数据量,加快查询部分数据使用了多维数组,官方对多维数组支持较差,可以通过UDF实现Greenplum5.0支持Json格式

    举例:

    2. PostGIS

    支持所有的空间数据类型支持复杂的空间和地理位置计算数据库坐标变换球体长度计算三维几何类型空间聚集函数

    聚集点数据举例:

    GEOHash解释

    3. Bitmap

    在Greenplum内实现了Bitmap相关计算功能,用C写的UDF,效率不错基于RoaringBitmap算法,一个压缩算法,比较流行,在Spark和Hadoop上应用比较广泛通过标准的SQL语句来执行计算,可以像操作普通SQL语句一样操作这些RoaringBitmap数据10亿级别的位运算达到了毫秒级别

    Bitmap示例:

    使用Bitmap进行加速查询示例:

    End~

    相关资源:七夕情人节表白HTML源码(两款)

    最新回复(0)