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

    在Linux编译gcc时,遇到编译错误,究其根源是因为内存不足,这时通过修改swap大小解决了问题 相关操作如下: 1. 查看当前分区情况free -m 2. 增加 swap 大小, 2G 左右dd ...

  2. 自建免费的代理ip池

    00x01--- 前言 因为爬虫被禁ip这样的反扒真的很凶,但自从建了一个代理ip池以后,反反扒就可以跟的上节奏.当然你也可以上网上各种代理平台自己付费.这些平台当然很方便提供api调用,还不用自己验 ...

  3. wpf关闭窗口弹出是否确认关闭的提示

    if (MessageBox.Show("是否退出系统?", "退出系统?", MessageBoxButton.OKCancel, MessageBoxIma ...

  4. Free- Linux必学的60个命令

    1.作用 free命令用来显示内存的使用情况,使用权限是所有用户. 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要参数 -b -k -m:分别以 ...

  5. Python中的urlparse、urllib抓取和解析网页(一)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  6. hammer.js使用

    手势包括点击(tap),长按(press),滑动(swipe),方向(pan) 使用实例: <!DOCTYPE html> <html> <head> <me ...

  7. Django项目:CRM(客户关系管理系统)--75--65PerfectCRM实现CRM课程分数排名

    # classtop_urls.py # ————————64PerfectCRM实现CRM课程排名详情———————— from django.conf.urls import url from b ...

  8. sde中的shp数据无法编辑

    最近整理空间数据库时,用sde比较多,发现在编辑sde中的数据时总是出现数据被锁或者是被其他应用程序占用.用了很多方法处理,但不是每个方法都实用.下面讲的是我在删除shp或者给shp增加字段时所遇到的 ...

  9. PAT甲级——A1015 Reversible Primes

    A reversible prime in any number system is a prime whose "reverse" in that number system i ...

  10. numpy库数组属性查看:类型、尺寸、形状、维度

    import numpy as np   q = np.array([1,2,3,4],dtype=np.complex128)    print("数据类型",type(q))  ...