悠星网络基于阿里云分析型数据库PostgreSQL版的数据实践
说到“大数据”,当下这个词很火,各行各业涉及到数据的,目前都在提大数据,提数据仓库,数据挖掘或者机器学习,但同时另外一个热门的名词也很火,那就是“云”。越来越多的企业都在搭建属于自己的云平台,也有一些会选择使用技术比较成熟的云商业化产品服务,比如阿里云的分析型数据库产品。本文将结合我们自己企业内部正在使用的阿里云产品分析型数据库PostgreSQL(下文都将称为AnalyticDB PostgreSQL版)来浅谈一下云业务场景下的数据实践。
1.悠星网络介绍
悠星网络科技有限公司成立于2014年,是一家以网络游戏为发展起点,集技术开发、内容研发、全球发行、产业投资、及IP管理为一体的互联网公司。作为目前国内顶尖的二次元研发、发行及投资商,悠星已经在日本及欧美成功发行了《碧蓝航线》,研发了包括《诺诺来自异世界》在内的高质量二次元产品,并且投资了行业顶尖研发商 - 上海鹰角网络科技有限公司(代表作《明日方舟》),即将在明年在日韩欧美发布《明日方舟》。未来悠星将继续深入挖掘二次元市场领域,立志与全世界玩家分享最优秀的二次元产品。
2.悠星BI面临的挑战
悠星发行游戏的总注册用户超过1000万人,业务数据表超过450张,总数据量超过170亿条,总数据量超7TB。作为以精准投放,精细化运营为主要优势的海外游戏发行公司,如何使用宝贵的游戏玩家行为数据成为了投放与发行部门的重中之重。
挑战1:海量数据的存储
在如此海量的数据面前,使用传统的关系型数据库已经捉襟见肘,是选择自建数据库集群还是选择阿里云的成熟产品,已经到了必须做出权衡的时候。
挑战2:海量数据计算的时效性
在海量数据存储的解决的前提下,如何将海量数据盘活,很好的为各个业务部门服务又成为了问题。由于悠星游戏发行主要聚焦于海外,由于时区的限制,从游戏数据完成采集到业务需要查看数据的时间点,只有2-3小时的时间,如何在有限的时间内,完成数据计算以报表的形式展现给业务部门自然又是一个难点。
3.为什么我们会选择阿里云AnalyticDB PostgreSQL版
阿里云AnalyticDB PostgreSQL版基于开源项目Greenplum构建,由阿里云深度扩展,兼容ANSI SQL 2003,兼容PostgreSQL/Oracle数据库生态,支持行存储和列存储模式。既提供高性能离线数据处理,也支持高并发在线分析查询,是各行业有竞争力的PB级实时数据仓库方案。
阿里云的以下特性吸引了我们使用使用:
支持标准SQL,OLAP窗口函数,存储过程:我司的程序原本大多是针对MySQL开发的,使用AnalyticDB PostgreSQL版几乎可以无缝的迁移过去,迁移成本较低。
MPP多节点全并行计算、高吞吐数据写入及更新、行存储及多种索引,PB级数据秒级响应:基于AnalyticDB PostgreSQL版的架构可以实现多节点并行计算,PB级数据秒级响应,解决了我们海量数据计算时间窗口短的痛点。
阿里云专业数据团队支持:众所周知阿里集团内大量业务也是依靠本身的大数据团队支持,有这样的专业团队为我们保驾护航,使我们的数据团队能更专注在数据处理更好的为业务部门服务上,大大提高工作效率。
4.悠星BI基于AnalyticDB PostgreSQL版的业务架构演进
1.架构V1.0:拖拉机
最初的架构由于需求紧急,只做了最简单的架构,我为什么称之为拖拉机,因为数据处理过程只有AnalyticDB 数据入库以后,Tableau从AnalyticDB把数据拖拉过来一个过程,而且由于数据量庞大,拉取全表数据时间较长,Tableau的计算能力也有限,整个报表刷新时间非常长,基本上在小时级别。
2.架构V2.0:厢式货车
由于数据量的不断增加,1.0的拖拉机已经完全无法满足我们复杂的报表需求,于是我们增加了Azkaban,利用Azkaban调度ETL脚本每天定时预处理从游戏中获取的数据,但是Tableau还是全量拉取表中数据,对于数据刷新时间的提高并不大。所以我称他为厢式货车,装了满满的数据,但是速度并不快。
3.架构V3.0:和谐号
当友商也开始使用我们的系统以后,数据量开始爆炸性增长,厢式货车再也拉不动货了。于是我们又进入了现有的架构V3.0:和谐号。我们在研究后发现先前并没有太多的使用AnalyticDB PostgreSQL版的计算性能,于是我们决定整理所有的报表需求,利用AnalyticDB的强大计算性能,预先将结果集从源库中计算完,并新建落地库落地,Tableau只需拉取结果集就可以完成数据刷新。这样我们的查询的速度得到了大大的提高,就像和谐号一样,只带着我们需要的数据快速的赶来。
5.AnalyticDB PostgreSQL版给我们带来的变化
阿里云的AnalyticDB团队在我们使用期间高效的保障了我们的BI系统,借助于AnalyticDB的强大性能,在现有的海量数据面前我们的数据团队也无所畏惧,可以轻松的存储并计算出我们需要的数据。
未来,悠星网络会放眼于大数据分析与与深度学习等技术领域,同样需要强大的数据库支持,希望我们与阿里云能共同成长,共同进步。