开发者学堂课程【实时数仓 Hologres 实战课程:数据仓库服务化实践(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/904/detail/14391
数据仓库服务化实践(一)
目录:
一、分析与服务典型场景
二、传统大数据开发链路:数据冗余、成本高、开发周期长
三、大规模数据扫描、过滤、汇总,面向分析师
四、新一代技术理念 HSAP:分析、服务一体化
五、分析、服务一体化实时数仓 Hologres
六、MaxCompute: SaaS 模式企业级云数据仓库
七、行存 VS 列存
八、Benchmark-OLAP 交互式多维分析
九、Benchmarks - Serving 高并发点查询
十、搜索推荐实时分析和算法应用
十一、数据产品,自助式分析
十二、友盟+:PB 级用户行为交互式分析
十三、菜鸟:智能物流
十四、实时推荐、APl as service
十五、大数据加工服务一体化
一、分析与服务典型场景
复杂分析类查询,要快
简单查询,要非常快
二、传统大数据开发链路:数据冗余、成本高、开发周期长
左侧的数据有来自交易数据来自其他各种各样的买点系统,第三方的包括用户行为的,商家的,商品的,通过实时的、离线的方式进入大数据平台,会按照数仓的方法论,把数仓分为 ODS 仓、DWD仓、DWS仓、ADS 仓,ODS 仓一般是原始数据,DWD 仓对原始数据进行质量上的整理,去除一些值,增强一些字段,DWS 进行一些汇聚数据的规模,整理成面向分析的数据结构,到 ADS 仓进行不同场景的分析。
到 ADS 仓之后有些场景可以直接做决策,支持一些管理仓的应用。
一些直接访问大数据平台,性能是无法满足的。大数据设计之初是为了解决海量存储问题,汲取弹性能力,来解决海量数据处理问题。交互往往是更新的,往往是希望秒级、毫秒级返回结果的。
数据更快的系统,常见的 HBASE MySQL 这些平台不是处理的量的最大的,但是速度一定是最快的,功能上会比大数据平台会弱一些,接口上没有大数据平台那样的繁琐,简单的 API 方式通过 KI 方式,提供一些查询的能力。这种平台具有良好的交互性,具备很好的点查能力,让可以在毫秒和毫秒级对结果查询反馈。
这是一个传统的开发路径,原始数据进入加工平台,加工好之后导入到服务平台,这个链路相对来说是比较长的,是存在两个平台的用于的,会往大数据平台存一部分数据,把结果数据导入到另一个平台,随着业务越来越多,越来越复杂,每天都有报表,有新场景,贴新的标签会发现每个业务都要从源头每个环节一步步出发,造成数据非常的冗余。
三、大规模数据扫描、过滤、汇总,面向分析师·
Hybrid Serving/Analytics
Processing
· 统一实时、离线存储引擎
· 减少事务开销(锁、同步)
· 埋点数据、机器数据。比TP高数量级
· 为多场景设计可复用数仓
Serving
高并发,简单,快速,面向 API
Hybrid Transaction/Analytics Processing
· 数据来源于业务系统(TP)
· 需要机制保证 TP 和 AP 的一致性(数据、模型,大量同步)
· 模型简单,用于简单分析场景
Transaction
· 随机读取、事务、可靠、面向 DBA
四、新一代技术理念 HSAP:分析、服务一体化
Hybrid Serving/Analytical Processing
HSAP 首先要能支持离线数据,又能支持实时数据,能进行批量数据,又能支持实时数据的写入、实时数据的更新、希望数据类型的统一,接口的统一,SQL 接口是当前市场查询能力较强的一种语言。
五、分析、服务一体化实时数仓 Hologres
Hologres 就是针对这样一个场景设计的系统,支持离线、批量的方式,从业务系统、日志系统进入 Hologres,这个进入过程一种是原始数据直接进入,跟 Flink 进行实时数据加工,把一些计算规则通过Flink提前算好,把计算的结果放置到 Hologres 里面,这也是一种常见的计算模式。
重要的就是 Hologres 跟 MySQL 的打通,Hologres 实际上就是针对实时场景设计的,内存架构引擎优化,在分布式这个场景它不是最优的,有的时候还需要跟 MySQL 进行合作,Hologres 跟 MySQL 现在属于一个产品家族,这两个产品和在一起,给客户提供实时、离线、一体化这样的解决方案,
数子在 Hologres 跟 MySQL 之间存在原生的,互相打通,互相可以查询对方的数据,互相可以看到对方的表,简单的方式做一些数据迁移。
六、MaxCompute: SaaS 模式企业级云数据仓库
应用场景
广告场景-用户标签计算、分析
业务运营场景-业务指标计算、查询
各行业搭建数据仓库
云上弹性扩展大数据计算和存储
产品优势
云原生极致弹性:云原生设计,无服务器架构,支持秒级弹性伸缩,快速实现大规模弹性负戟需求
简单易用多功能计算:预置多种计算模型和数据通道能力,开通即用
企业级平台服务:支持开放生态,提供企业级安全管理能力。与阿里云众多大数据服务无缝集成
安全:多租户环境下安全控制能力强
大规模集群性能强、全链路稳定性高,阿里巴巴双11场景验证
推荐组合
BI 分析场景
-MaxCompute-Hologres+Flink+DataWorks+Quick Bl
机器学习场景-MaxCompute+PAl+DataWorks
七、行存 VS 列存
|
行存 |
列存 |
使用场景
|
点查,Point Query,面向应用,面向API |
多维、过滤、聚合,QLAP,面向分析师,面向报表 |
存储考虑
|
Key value结构 |
列组结构 |
索引优化
|
整行连续存放,形成Block,包含DataBlock和Index Block (Range和Offset: |
列数据连续存放,聚合高效,形成Block,:同时维护Index Block ( Range.Offset.编码、压缩、统计)和Meta Block |
更新方式
|
内存更新标志位,异步Flush文件,少IO操作 |
引入Delete Map,提供更新能力 |
接口标准 |
Maxc 5QL |
PostgresQL |
QL Demo |
select * from table whereprimary_key = XXX |
select count(), sum() from tablegroup by A |
IO开销 |
K to MB |
MB to GB |
QPs |
1K-10OK+ |
10-1K |
八、Benchmark-OLAP 交互式多维分析
第一个数据就是 Druid 也是行业内常见的、开源的,多维分析的一个引擎,它具备把数据实时写入,实时查询的能力。用的也是 TBCH 数仓领域最常见的一套编码,规范。绝大部分 Druid 会比 Hologres 查询的更好,蓝色部分是 Druid,黄色部分是 Hologres。