说到“大数据”,当下这个词很火,各行各业涉及到数据的,目前都在提大数据,提数据仓库,数据挖掘或者机器学习,但同时另外一个热门的名词也很火,那就是“云”。越来越多的企业都在搭建属于自己的云平台,也有一些会选择使用技术比较成熟的云商业化产品服务,比如阿里云的分析型数据库产品。本文将结合我们自己企业内部正在使用的阿里云产品分析型数据库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级实时数据仓库方案。

阿里云的以下特性吸引了我们使用使用:

  1. 支持标准SQL,OLAP窗口函数,存储过程:我司的程序原本大多是针对MySQL开发的,使用AnalyticDB PostgreSQL版几乎可以无缝的迁移过去,迁移成本较低。
  2. MPP多节点全并行计算、高吞吐数据写入及更新、行存储及多种索引,PB级数据秒级响应:基于AnalyticDB PostgreSQL版的架构可以实现多节点并行计算,PB级数据秒级响应,解决了我们海量数据计算时间窗口短的痛点。
  3. 阿里云专业数据团队支持:众所周知阿里集团内大量业务也是依靠本身的大数据团队支持,有这样的专业团队为我们保驾护航,使我们的数据团队能更专注在数据处理更好的为业务部门服务上,大大提高工作效率。

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的强大性能,在现有的海量数据面前我们的数据团队也无所畏惧,可以轻松的存储并计算出我们需要的数据。
未来,悠星网络会放眼于大数据分析与与深度学习等技术领域,同样需要强大的数据库支持,希望我们与阿里云能共同成长,共同进步。

本文作者:onizuka8339

原文链接

本文为云栖社区原创内容,未经允许不得转载。

悠星网络基于阿里云分析型数据库PostgreSQL版的数据实践的更多相关文章

  1. 什么是分析型数据库PostgreSQL版

    分析型数据库PostgreSQL版(原HybridDB for PostgreSQL)为您提供简单.快速.经济高效的 PB 级云端数据仓库解决方案.分析型数据库PostgreSQL版 兼容 Green ...

  2. 阿里下一代云分析型数据库AnalyticDB入选Forrester云化数仓象限

    前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester Wave: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型数 ...

  3. 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读

    前言近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型 ...

  4. 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读

    阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务 ...

  5. Swoole一键操作基于阿里云的RDS数据库迁移+OSS文件搬迁

    传统的数据库搬迁思路是把数据库表的结构及数据都查询出来,然后通过循环进行数据结构重组拼接.然后导出!数据量少的话,这样当然是没毛病.当数据量太大的时候,服务器的内存开销就吃不住了,很容易炸掉,导致服务 ...

  6. 基于阿里云的JavaEE系统框架介绍

    基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等.七牛和阿里的都还可以. 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有 ...

  7. 基于阿里云SLB/ESS/EIP/ECS/VPC的同城高可用方案演练

    今天基于阿里云SLB/ESS/EIP/ECS/VPC等产品进行了一次同城高可用方案演练: 基本步骤如下: 1. 在华东1创建VPC网络VPC1,在华东1可用区B和G各创建一个虚拟交换机vpc1_swi ...

  8. 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序

    小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...

  9. 一·创建Linux服务器(基于阿里云)

    本系统是基于阿里云服务器,购买请前往https://www.aliyun.com/?spm=5176.8142029.388261.1.taXish ,由于经济能力的限制,本人购买的是最低配置如下 其 ...

随机推荐

  1. opencv-Mat数据类型及位数总结

    转自:http://blog.sina.com.cn/s/blog_662c7859010105za.html 在OpenCV里面,许多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分 ...

  2. SpringBoot学习笔记(二):SpringBoot访问静态文件、捕获全局异常、集成Thymeleaf、集成JSP

    SpringBoot访问静态文件 什么是静态文件? 不需要通过web容器去得到的文件,直接通过路径就能得到的文件,比如项目的css,js,img等文件. 所有的资源文件都应该在src/main/res ...

  3. java.io.FileNotFoundException: E:\work\work (拒绝访问。)

    转载自:https://blog.csdn.net/YQS_Love/article/details/51959776 一.问题 在使用FileInputStream或FileOutputStream ...

  4. hadoop2.x 完全分布式详细集群搭建(图文:4台机器)

    在准备之前说一下本次搭建的各节点角色,进程. nameNode 进程:NameNode dataNode  进程:DataNode resourceManager :ResourceManager n ...

  5. Navicat12.1.7破解教程

    https://blog.csdn.net/qq_39344689/article/details/85161342

  6. vue.js_05_vue.js的过滤器

    1.过滤器的定义和使用 实现:将页面的中的单纯替换成,用户传来的文字. 全局过滤器:所有的Vue对象都可以使用 <body> <div id="app"> ...

  7. 机器学习中的隐马尔科夫模型(HMM)详解

    机器学习中的隐马尔科夫模型(HMM)详解 在之前介绍贝叶斯网络的博文中,我们已经讨论过概率图模型(PGM)的概念了.Russell等在文献[1]中指出:"在统计学中,图模型这个术语指包含贝叶 ...

  8. jeecmsv8.1怎么修改项目后台访问地址

    将jeeadmin/jeecms/index.do 改为admin/index.do为例  1.修改WebContent\WEB-INF\web.xml  <servlet-mapping> ...

  9. Spring MVC(二)--Spring MVC登陆实例

    本文通过一个简单的登陆实例实现Spring MVC的流程,同时整合 MyBatis使用,流程是这样的: 1.访问一个URL进入登陆界面 2.输入正确的用户名和密码,成功则进入index页面,否则留在登 ...

  10. Jmeter设置中文汉化

    下载汉化包logkit-2.0.jar 将汉化包copy至 jmeter文件的lib目录下 打开Jmeter软件,设置汉化包 Options  ->  ChooseLanguage  -> ...