当前位置: 首页 > news >正文

基于MaxCompute打造轻盈的人人车移动端数据平台

以下内容根据演讲视频以及PPT整理而成。

一.人人车数据平台

快速搭建,一年时间完成6大平台的搭建

基于阿里云平台上成熟的技术,人人车企业只用了一年时间便实现了6大数据平台的设计与搭建,其中包括:Jarvis-BI报表平台、Metadata-元数据管理平台、Streaming-实时计算平台、Athena-数据工单平台、Cateye-监控平台与AD-HOC-自助取数平台。

上述数据平台的最底层均由阿里云的相关技术支撑运行,阿里云为平台的搭建提供了两种不同技术的支持,在储存计算技术方面,阿里云提供了 RDS云数据库、MaxCompute大数据计算平台、OSS对象储存等储蓄技术。在云通信技术方面,阿里云同样提供了SLB、DTS、DataX、CDN等云通道技术。

企业遵循阿里云 “One Data,One Server,One Meta”理念进行平台的设计与实现。“One Data”这里表示统一的数据源,企业将所有数据出口汇总到MaxCompute并在Hadoop集群上搭建统一的数据源。围绕统一的数据源,企业搭建了许多相关业务的搜索引擎,包括:Spark、Clickhouse、Presto、Druid.io等。在搜索引擎的基础上,平台基于“One Server”的设计思想封装了统一的DataServer为这些搜索引擎提供上层数据服务。“One Meta”代表统一的元数据,元数据相当于数据流中的骨架,企业设计并实现的元数据管理平台很好地完成了对元数据的管理任务,通过元数据企业可以更好的管理数据权限及各种数据指标。人人车企业基于阿里云的技术与思想打造的数据平台轻盈可靠,为企业带来了很高的效益。

如下图所示,在阿里云技术的基础上,人人车数据平台的数据流实现分为以下4层:

查询引擎:包括Presto、ClickHouse、Druid.io等查询引擎。
通道存储:包括Hadoop、Kafka等数据储存工具。
计算层:使用了阿里云的MaxCompute服务。
数据源:企业的数据源。
图片描述

二.数据仓库建模

基于数据驱动理念及市场的需求,人人车企业基于阿里云成熟的MaxCompute技术尝试设计搭建了企业自己的数据仓库。在阿里云便捷的方案与稳定技术的支持下,企业的数据仓库搭建顺利成功,目前已开始为公司贡献数据上的效益。

  1. 数据仓库可以解决什么问题?

建立数据仓库可以为整个工程提供一个良好的数据体系,解决异构数据源工程开发中的口径版本不一、效率低下、缺乏可信度等问题。数据平台的开发是由良好的顶层设计来决定底层建筑的过程,优秀的数据平台设计方案在实现过程中会为开发团队节省大量的人力与时间。搭建一个标准的数据仓库,即是完成数据平台顶层设计的第一步。

2.数据仓库的标准

企业业务上常用的数据仓库为三段式模型,目前最为流行的是基于主题内容的Inmon模型与基于维度的Kimball模型。这两种建模的目标都是建立一个更高效、稳定、灵活的数据仓库模型。企业可以从耦合度、性能与成本、效率与质量这三大维度选择合适自己业务的数据仓库模型。在数据仓库搭建的实施过程中,人人车平台选择在阿里云的MaxCompute服务基础上进行企业数据仓库的搭建。如下图所示,通过阿里云MaxCompute服务搭建的数据仓库从以下五大方面为人人车的数据仓库搭建带来了便利:

成本:通过阿里云搭建数据仓库可以为企业节省30%的服务成本及大量的人力成本,使企业研发团队可以更加专注于业务的研发。
时间:通过阿里云搭建数据仓库可以大大节省企业的研发时间
性能:阿里云的MaxCompute服务为企业提供了完善的数据处理方案、大规模的计算储存、细粒度的节点依赖管理等功能,大大优化了企业数据平台的性能。
稳定性:MaxCompute服务安全可靠,每天稳定在8点前产出企业需要的数据。
用户个性化:提供了满足用户需求的诸多功能。
图片描述

3.平台数据仓库结构

如下图所示,人人车平台数据仓库的结构分为以下几层:

业务数据层:最底层是业务数据层,这里通过MySQL数据库及数据库日志存放整个数据仓库的业务运行数据。
操作数据层:业务数据产生后会同步进入操作数据层的ODS中,平台在这里要进行数据的对接,通过增量抽取等方式使同步到ODS的原始数据与业务数据保持一致。
明细数据层:在明细数据层中,平台会将原始数据进行过滤,并从中抽取一些比较重要的数据。
维表层:通过维表层的使用,平台可以有效下降数据的体积并在处理数据时更加灵活方便。维表层将贯穿整个数据仓库的生命周期。
汇总数据层:在汇总层中,业务逻辑会对数据进行轻度的汇总,通过汇总收缩明细数据的体积,以此方便数据向最上层的数据集市进行汇总。
数据集市:数据集市中包含了大量的主题表,主题表主要功能是面向分析及统一指标。主题表可以帮助平台分析并汇总企业每条业务线上的数据,可以有效防止由于数据汇总而导致的数据量的爆炸式增长。
图片描述

4.基于MaxCompute搭建的数据仓库效果

如下图所示,是人人车平台基于阿里云MaxCompute搭建的数据仓库的运行数据。通过阿里云的MaxCompute,人人车平台实现了快速高效搭建数据仓库的愿景。平台所搭建的数据仓库安全可靠,运行平稳,并且在每日数据峰值阶段的表现优异。同时,通过使用阿里云的服务搭建数据仓库,企业节省了很多不必要的开销。

图片描述

5.数据同步问题

在数据仓库的实现过程中,数据同步是一大难题。阿里云提供了一些便捷的标准接口帮助企业更方便地将数据同步到MySQL以外的设备上。企业可以对这些标准化的接口进行个性化的定义,以此方便自身业务的开发与编写。
图片描述

6.数据仓库最佳实践

在数据仓库的设计与实践过程中,人人车平台总结了以下一些经验:

数据产品非常重要:在企业的业务发展中,数据需求与产品需求同样重要。数据可以为企业带来机械化的数据驱动,帮助企业更好的掌握市场的流量、流量转化情况及数据峰值等重要信息。在设计产品时保证必要的数据预估,会使产品更加符合市场预期,更加受到市场的欢迎。
数据指标要克制:数据指标并不是越多越有价值,企业需要聚焦最有价值的数据报表,通过关联相关项得出最有价值的分析结果。
业务表:数据库中业务表切忌随意删除,开发团队可以通过状态位标识的方法完成相关业务逻辑。

三.基于阿里云技术的BI数据报表平台

人人车企业以阿里云技术为基础设计并实践的另一大成果是BI数据报表平台,通过BI数据报表平台,企业完成了对市场数据的轻松掌控,并大大提高了自身决策的准确度。

  1. 方案的选择--论POC以及TPC的重要性

在BI报表平台实现的方案中,人人车采用了POC模式与TPC模型来实现。
POC模式意为产品原型验证模式,开发者在产品原型验证模式下需要去了解客户的基础需求,通过理解用户的需求为用户搭建一个业务原型场景。
TPC-DS模型是设计数据库常常会用到的模型,其中包括:关系模型、星型模型及雪花模型,其优秀的工作负载能力可以为系统带来很高的稳定性。
图片描述

2.ClickHouse数据管理系统

ClickHouse数据库管理系统开发自俄罗斯,系统拥有如下优点:

简单可靠
支持高并发
支持增量、全量同步
支持亿级别量级查询
延时短
图片描述
3.BI数据报表平台架构

如下图所示为BI数据报表平台的架构示意图,平台的架构可以分为以下几大部分:

数据源:包括阿里云HDFS及MaxCompute的服务以及企业内部的MySQL数据库与待分析储存的数据。
调度平台:负责调度整个平台的增量与全量同步,包括DataX与KafkaConnect模块。
ClickHouse集群:ClickHouse集群是这个架构的核心,ClickHouse提供分片与副本的模式供用户来进行部署,副本可以大大提高系统的并发性能,使系统的运行更加安全可靠。
API层:在最外层,系统统一生成一致的API供用户的电脑、手机等智能设备进行访问及调用,API层具有鉴权及操作审计功能。
图片描述

下图为系统使用时的效果图。在编辑图表的过程中,使用者可以按照自己所想自由的拖拽拉动数据图表,实现数据图表的简单化操作。基于大数据统计出的表格会将数据的特点直观地表现给用户,大大方便了用户的使用。

图片描述

下图所示为BI数据报表平台在移动端的效果图。
图片描述

4.BI数据报表平台的优势

BI数据报表平台除了其方便操作的特点外,还为使用者带来了以下优势技术:

SQL合成表:对于特殊需求的开发者,BI数据报表平台支持用户通过特殊关联将SQL表格相连接,合成新表。
血缘关系:与合成表格相对应的是表格血缘关系查看的功能,开发者可以通过血缘关系的查看搜索表格的相关依赖及被使用情况。
AD-HOC:为开发者提供AD-HOC技术支持,方便数据平台的开发使用。
图片描述
在上述架构与优势技术的支持下,BI数据报表平台具备下列特点:

离线、实时特性:BI数据报表平台支持用户随时的离线与实时数据查询,并且具备低延时、高并发的特点。
易用性:BI数据报表平台简单易上手,小白级的拖拉拽操作方式,支持用户高效快捷办公。
细腻的权限管控:数据的权限是数据使用中十分重要的一个问题,数据权限不清晰往往会造成很严重的后果。BI数据报表平台的数据权限可以细腻到行级别与字段值域级别,细腻的权限管控让不同的使用者看到不同的数据,增加了项目的安全可靠性。
ETL:支持关联表查询,合表生成原生SQL支持等。
数据一致性:严格进行增量全量的同步,使存入的数据可信可靠。
顶级可视化效果:平台提供可以突出数据特点的可视化效果,让使用者一目了然,迅速发现数据特点,提高工作效率。

图片描述
5.BI数据报表平台搭建时的经验

在BI数据平台的设计与搭建中,人人车平台也摸索总结了很多经验:

先做好POC,做好benchmark:先确定好用户的需求,进行产品原型验证,再进行相关的产品开发。
权限是魔鬼,平台一定要压制住:数据权限是数据平台开发的重中之重,在开发时一定要重点设计关注数据权限的问题。
6.BI数据报表平台的数据驱动

BI平台使用了数据驱动的运营方式,仅对用户最感兴趣的几个指标项进行考核,将考核得到的结果与业绩直接挂钩,实现用户在掌上查看相关数据,大大方便用户的工作与生活。
图片描述

相关文章:

  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • spring cloud构建互联网分布式微服务云平台-消息总线
  • Android之Window与WindowManager
  • Linux 抓包工具 tcpdump
  • Linux CTF 逆向入门
  • Choerodon 猪齿鱼 0.14 发布,开源企业级数字化服务平台
  • 网络应用优化——时延与带宽
  • nginx、tomcat调优方向及压测网站步骤
  • Python组织文件 实践:将带有美国风格日期的文件改名为欧洲风格日期
  • 聚合查询, 分组查询,F查询,Q查询
  • [面试题记录01]实现一个function sum达到一下目的
  • 你和大神之间只差一个高效工具
  • 蓝桥——商标倒放
  • 05 面向对象之:类的成员
  • [古怪问题] Marshal.GetActiveObject 在管理员模式下无法正常运行
  • 07.Android之多媒体问题
  • JavaScript异步流程控制的前世今生
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SSH 免密登录
  • ubuntu 下nginx安装 并支持https协议
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 给初学者:JavaScript 中数组操作注意点
  • 给第三方使用接口的 URL 签名实现
  • 简单易用的leetcode开发测试工具(npm)
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 通过几道题目学习二叉搜索树
  • 微服务核心架构梳理
  • 我有几个粽子,和一个故事
  • 怎么将电脑中的声音录制成WAV格式
  • 你对linux中grep命令知道多少?
  • 组复制官方翻译九、Group Replication Technical Details
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #13 yum、编译安装与sed命令的使用
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Note)C++中的继承方式
  • (翻译)terry crowley: 写给程序员
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (正则)提取页面里的img标签
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)Unity3DUnity3D在android下调试
  • .htaccess配置重写url引擎
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .Net下的签名与混淆
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET与 java通用的3DES加密解密方法
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • ??myeclipse+tomcat
  • @RunWith注解作用
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码