简介: MaxCompute作为企业级数据仓库服务,集中存储和管理企业数据资产、面向数据应用处理和分析数据,将数据转换为业务洞察。通过与阿里云内、外部服务灵活组合,可构建丰富的数据应用。全托管的数据与分析解决方案,可简化平台运维、管理投入,提升面向业务的服务能力,加速价值实现。
本文作者 孔亮 阿里云智能 产品专家
一、MaxCompute 基础介绍
阿里云数据与分析产品解决方案
MaxCompute作为企业级数据仓库服务,集中存储和管理企业数据资产、面向数据应用处理和分析数据,将数据转换为业务洞察。通过与阿里云内、外部服务灵活组合,可构建丰富的数据应用。全托管的数据与分析解决方案,可简化平台运维、管理投入,提升面向业务的服务能力,加速价值实现。
从下图可以看出 MaxCompute 是处于一个核心位置,首先 MaxCompute 是一个数据仓库,而且是一个基于 Serverless架构超大规模集群产品,具备安全管理能力等企业级能力。之前是偏离线数据处理平台,当前已经具备BI分析能力的企业级数据仓库。
一般企业的离线数据链路,从数据源包含关系型数据库、非结构化存储、大数据存储、消息队列等等,都可以通过数据集成离线的方式,批的方式,进入到数据仓库中。前端的各种分析应用,也可以有一些实时的分析,通过 MaxCompute-Hologres做查询加速,这是离线的场景。实时链路是从消息队列数据源,通过Datahub数据总线,到实时计算Flink,对接到实时数仓Hologres,再对接到前台。中间的数据是通过 Hologres 和 MaxCompute 还有 Flink,做流批一体。MaxCompute在数据仓库的基础上,扩展了数据库的一些联邦查询能力,包括Data Lake、Mysql、Hbase等,数据的集成,包括元数据的同步和查询去同步数据数据湖数据处理的能力。还包含基于数据仓库数据之后,人工智能PAI机器学习的能力。构成了完整的大数据底座。在这之上,DataWorks提供了,一站式的开发治理平台,可以做任务调度、元数据数据数据质量的血缘管理、数据开发等能力。
MaxCompute 大数据计算服务简介
MaxCompute(大数据计算服务)是一款多功能、高性能、易于使用的数据仓库服务。
MaxCompute内建完善的企业级安全及管理功能、支持开放数据生态,以统一平台满足多使用场景(数据仓库/BI、数据湖分析、机器学习)需要,被广泛用于数据化运营、画像及推荐、智能预测等应用场景。
MaxCompute 底层有统一Iass层的存储和计算调度,存储是盘古,调度是伏羲,把存储跟计算资源做了一层封装,用资源池的方式对上层应用无感知的提供使用,上层应用只需要使用这个资源组,而不需要知道具体的任务运行在什么资源上面。MaxCompute 可以提供结构化数仓的存储能力,也可以提供数据湖包括开放格式、半结构化、非结构化等数据处理的能力。对于用户来说,所有使用场景都在项目里面,每个项目之间租户隔离,可以有本项目的资源,也可以共享资源。项目直接通过安全共享的方式,可以同步数据。再上层用统一的访问认证、管理、安全、监控、元数据等能力。
可以总结出以下几点:
- 简单易用的SQL 端到端开发方式,支持Spark,分布式Python(Mars)等开源技术栈,内置完善的企业管理功能和开放的接口,简单易用开放
- 统一元数据、统一数据存储,一份统一的企业数据资产,云原生的多租户系统,最高效的跨业务&跨组织数据连接与共享
- 自适应的按需弹性资源,精准匹配业务规模的变化,避免资源浪费或不足,业务负载隔离,消除业务间资源争抢
- 存储与计算独立伸缩,支持TB到EB级的存储扩展;连接广泛外部数据源,开展联邦计算
- 深度优化,自动数仓,集成多年双11优化能力,智能调优+专家服务支持
MaxCompute 功能介绍
MaxCompute 功能可以分为下图几类。最核心的存储计算能力是不对外开发的。存储主要用的是数据库表,计算资源会在SQL任务或者其他计算模型上使用时体现出来。看SQL计算能力,可以端到端完成整个数仓的数据处理和数据模型管理等能力,包括一些基础的数据类型,内部表做一些分区,外部表处理非机构化数据等。支持流式写入,流式upsert插入数据,删改数据等能力。查询时可以用非常复杂的查询方法,可以看解析计划Explain。UDF侧,MaxCompute支持Java UDF和Python UDF,还包括内容安全UDF。
管理能力,下图深色部分是在专有云里会有独立的增强包来对企业提供额外的计算能力。公共云上是直接Serverless方式提供给用户,只收资源费用。 管理能力也包含计量计费的能力,包括预付费和按量计费。任务有任务管理,查询有查询加速,专有云部署时,大规模跨域计算等企业级能力。MaxCompute除了SQL引擎外,还有向量检索,TensorFlow,Spark,Mars,Hologres,这些都可以基于MaxCompute的底层存储计算资源,用不同的引擎,提供对应场景的能力。合规治理部分,灰色部分有一些是DataWorks提供,包括本身数仓安全管理能力,元数据管理能力,审计能力,数据加密,数据脱敏,数据质量等功能。再通过SDK/API和MaxCompute提供的配套工具来完成数据开发,数据上传下载,还有一些三方应用,二方应用来完成整个数仓的生态构建。
MaxCompute 主要解决方案
企业数据仓库/数据中台
将原始数据整合为可被广泛使用的知识,用于后续消费使用,包括:
•集成存储:收集、存储和集中管理企业内外数据;
•处理分析:清洗、加工、整合多方数据;面向业务需求统计、挖掘;统一的存储和处理可以提供弹性伸缩的存储计算能力,减少成本
•标准化:建立企业数据仓库模型(分层/分主题),建立数据标准,形成可复用数据资产,并且通过数据治理,进行数据生命周期安全、成本治理等、持续保障数据质量和标准化
•数据互通:在企业内流转共享标准数据,打通数据孤岛,让关联的数据发挥更大的价值
数据中台不仅是技术平台,还包含组织和管理流程要求,强调以公共数据产品服务业务,实现”数据业务化”,可认为数据仓库的一种最佳实践。MaxCompute+DataWorks是开箱即用的数据仓库解决方案。
BI分析/数据分析
BI分析并不必然要使用数据仓库,如可直接基于交易数据库分析
数据仓库能够帮助提供BI分析需要的企业视角的全面数据
通过数据仓库的数据资产管理,BI分析人员可更好地检索、理解数据
数据仓库还能够以强大的性能,满足多用户并发、分析不同数据规模需求
MaxCompute提供数据的集中管理、处理分析,可直接对接BI或者将数据同步到外部分析型数据库(OLAP)进行BI分析
预测分析/智能应用
数据仓库与AI集成日益紧密
数据仓库为机器学习进行数据加工、数据准备
机器学习对数据进行模型训练,数据预测,结果可直接固化在数据仓库进行知识共享,如用户画像分析对客户性别、偏好的预测
MaxCompute无缝集成PAI、SparkML,1个平台无需数据移动即可在企业数据之上建设基于机器学习的智能应用,如CTR预估、个性化推荐
二、MaxCompute半结构化数据处理
什么是半结构化数据
本文的主题是MaxCompute半结构化处理能力,我们先看一下什么是半结构化数据。
结构化数据,即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据
非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等
半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,经常变化的,数据的结构和内容混在一起,一般由一个三元组表示,包括标记、类型和对象的值。
通过数据模型比较:
结构化数据:关系型(二维表)
半结构化数据:由一个由节点集合和弧段集合组成的具根有向图结构。(树、图)
非结构化数据:无
最后从wiki带的定义看,半结构化的特点是复杂类型结构,易变,需要从自描述结构中提取数据进行计算。
Semi-structured data[1] is a form of structured data that does not obey the tabular structure of data models associated with relational databases or other forms of data tables, but nonetheless contains tags or other markers to separate semantic elements and enforce hierarchies of records and fields within the data. Therefore, it is also known as