上周小编发布的《在吗?0代码加速查询MaxCompute请查收》,主要是提供如何使用HoloStudio快速查询MaxCompute数据的操作步骤,没想到收获了无数朋友们爱的表白,纷纷表示,交互式分析的出现解决了离线数据处理的一大心病,甚至有的朋友开始自发写使用文章,(大家都是成年人了,表白请直接点!)。本文内容节选自阿里集团某业务部门的ATA文章(已获得作者本人的同意),部分内容有修改。
1.加速方案对比
MaxCompute作为离线大数据的存储引擎,承载了阿里集团海量数据的存储服务。但由于其架构原因,读数据的速度较慢,不满足业务场景的ad-hoc查询。目前常用的加速方案是使用其他数据库来将MaxCompute数据加速查询,例如MySQL、MongoDB、HiStore、RDS、Postgre For MySQL、ElasticSearch等。不同的数据库支持的业务场景如下:
数据库 | 数据库类型 | 可支持数据量 | 读取速度 | 说明 |
---|---|---|---|---|
MySQL | 关系型数据库 | 单表500万 | 实时 | 大批量数据可分库分表 |
AnalyticDB for PostgreSQL | 分析型数据库 | 千亿级 | 近实时 | OLAP |
HybridDB for MySQL | 分析型数据库 | 千亿级 | 近实时 | OLAP+OLTP |
AnalyticDB for MySQL | 分析型数据库 | 百亿级 | 实时 | OLTP |
MongoDB | NoSQL数据库 | 百亿级 | 实时 | No Schema文档型存储 + 搜索 |
HBase | NoSQL数据库 | 万亿级 | 实时 | 列存储 |
ElasticSearch | 搜索引擎 | 百亿级 | 近实时 | No Schema文档型存储 + 搜索 |
Seahawks | MaxCompute加速方案 | 百亿级 | 近实时 | 基于Hash Clustering + PostgreSQL,Seahawks可以绕过MaxCompute耗时的调度,从而达到加速读取的目的。FBI主要的加速方案。 |
交互式分析 | 交互式查询分析引擎 | 千亿级 | 近实时 | 与MaxCompute数据直接打通,支持秒级查询;兼容PostgreSQL,无缝对接BI工具 |
2.HoloStudio介绍
HoloStudio是基于交互式分析的一站式开发平台,深度集成于DataWorks上,可使用HoloStudio进行UI一键建表快速查询MaxCompute数据,同时也支持以标准的SQL语句进行开发,还能对接DataWorks的数据开发、数据服务等功能,实现数据从收集--查询--可视化分析的一站式操作流程,节约大量中间转化时间!
关于HoloStudio介绍,可以参加往期:交互式分析六脉神剑》之Dataworks-HoloStudio初体验
也可以参考官网文档进行操作学习:基于HoloStuido的开发
3.HoloStudio查询MaxCompute
1.创建数据源
登录DataWorks,在数据地图中准备一张MaxCompute表或者新建ODPS SQL写入一张表并导入数据。
2.创建外部表
HoloStudio中创建外部表,这一步相当于在交互式分析里给原始的MaxCompute表加上了一层字段映射,并通过底层资源的打通,达到秒级响应。(一次query的数据量在100GB以下可以建外部表直接查询MaxCompute,超过100GB以上MaxCompute数据建议导入交互式分析再查询)。
这里以某张MaxCompute表为例,表的数据总共103GB,单分区1500万行数据左右。
说明:能查询这个MaxCompute表的前提是当前账号有这张表的访问权限
勾选需要加速查询的字段后,提交表就完成了。
接下来测试一下查询性能,在左侧数据开发Tab下创建开发脚本如下:
从1500万行数据里,按照用户id聚合,取前10个大用户,大概耗时16秒。
3 创建数据服务
经过HoloStudio查询的数据,可以直接对接DataWorks的数据服务,生成API。
1.进入DataWorks数据集成--数据源管理--新增数据源,选择PostgreSQL数据源,并填写连接信息
说明:当前配置页面为集团内环境,公共云用户请参考DataWorks数据服务进行数据源配置
2.完成数据源配置后,在数据服务页面创建数据服务。由于向导模式暂时不完善,这里建议选择“脚本模式”。建议选择脚本模式进行数据源便编写。
3.保存脚本,单击测试进行查询性能测试。
测试API可以使用,调用耗时25秒。
4测试完成之后,可将API进行发布。发布之后就可以使用API查询数据了。
本文只是节选部分操作步骤,具体生成API的操作步骤,大家可以参考往期内容:交互式分析加速查询MaxCompute封装API的最佳实践
收到小伙伴的使用反馈,小编表示今晚可以加个鸡腿了!当然,类似的文章还有很多,小编只是节选部分内容,没选中的小伙伴别伤心,后面小编一定宣你!同时,也欢迎各位小伙伴写反馈文章给小编,到时候会有福利相送哦!(大家都是成年人了,表白请直接点)
若您在使用产品过程中有任何问题,欢迎进群开怼!