使用 MaxCompute之前,唱吧使用自建体系来存储处理各端收集来的日志数据,包括请求访问记录、埋点数据、服务器业务数据等。初期这套基于开源组件的体系有力支撑了数据统计、业务报表、风控等业务需求。但随着每天处理数据量的增长,积累的历史数据越来越多,来自其他部门同事的需求越来越复杂,自建体系逐渐暴露出了能力上的短板。同时期,唱吧开始尝试阿里云提供的ECS、OSS等云服务,大数据部门也开始使用 MaxCompute来弥补自建体系的不足。

在内部ELK实现的基础上,从自建机房向MaxCompute进行数据同步工作是比较简单的,实践中我们主要采取两种方式:一是利用阿里云提供的datahub组件,直接对接logstash;二是把待同步数据落地到文件,然后使用tunnel命令行工具上传至MaxCompute的对应表中。

数据进入MaxCompute后,我们按照数据的主题和使用场景构造了三层结构:原始数据层ODS、中间数据层MDS、报表数据层DM。ODS层中保存直接同步的数据,在此基础上加工整理到的原始表,例如增量同步的原mysql表,经过风控清洗的访问日志表等。MDS层存放原始层数据聚合、抽象加工过的结果,这一层的数据表更可读、读取计算时更经济,一般情况下要求其他部门的同事使用这一层的数据。DM层是处理理的最终结果,支持QuickBI直接读取进行报表展示,同时也支持同步回自建机房,供其他业务使用。

目前除了某些对实时要求比较高的场景还使用自建体系外,MaxCompute承担了唱吧全部的离线计算工作。每天有近千个任务定时运行,处理TB级别的数据,生成上百个数据报表在QuickBI进行展示。可视化的管理理界面和基于SQL的计算方式大大降低了使用门槛,提升了效率。除此之外,推荐和风控业务也都利用了MaxCompute的计算能力,实现了对需求的快速跟进和迭代。MaxCompute云服务和自建体系的结合,让我们能充分满足业务需求,在效率成本和灵活性上取得了很好的平衡。

下一步,对于MaxCompute我们有几个方向上的计划:
一是利用机器学习能力,进一步挖掘数据的价值。
二是对那些历史比较久的冷数据,利用MaxCompute的外表功能,定期转移至OSS等服务中,保证可读的基础上降低成本。
三是评估阿里云的实时计算服务,作为自建体系的补充。

本文作者:马星显 (唱吧大数据负责人)

原文链接

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

最新文章

  1. mybatis 使用经验小结
  2. Atitit java的异常exception 结构Throwable类
  3. 十五天精通WCF——第七天 Close和Abort到底该怎么用才对得起观众
  4. glibc resolv/res_send.c getaddrinfo() buffer stack smash when dealing malformation big DNS Response Package
  5. 如何通过js和jquery获取图片真实的宽度和高度
  6. 【转帖】驳Jan Baan关于BPM是ERP走向没落起点的说法
  7. 揭开NodeJS的神秘面纱!
  8. 使用ListView时遇到的问题
  9. 不老的新丁 Python何以让人着迷
  10. MVC 检测用户是否登录
  11. Spring IOC的理解
  12. 老李分享:Android -自动化埋点 1
  13. Cat 跨线程之 TaggedTransaction 用法和原理分析
  14. 匿名函数lambda
  15. CentOS7 通过YUM安装MySQL5.7
  16. Codeforces 1051E. Vasya and Big Integers
  17. LOJ#2353 货币兑换
  18. [R] t.test()
  19. linux 安装lnmp
  20. java日期工具类DateUtil-续二

热门文章

  1. Spring MVC上传、下载 文件
  2. 纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
  3. uoj279 题目交流通道
  4. Nginx反向代理Odoo并转为https
  5. order方法属于模型的连贯操作方法之一
  6. NFS+mou
  7. js 数据绑定
  8. 对XP上的KiFastSystemCall进行浅析
  9. SPSS输出结果统计表与统计图的专业性编辑及三线表定制格式
  10. MVVM基础概念和理解