回顾
1. 统一计算平台
1.1 MaxCompute概述
MaxCompute(原名 ODPS,Open Data Processing Service)是阿里云提供的一种快速、完全托管的EB级数据仓库解决方案。它为用户提供了海量数据存储和实时计算的能力,适用于离线数据处理和分析场景,如大数据分析、机器学习、数据挖掘等。
MaxCompute的主要特点包括:
大规模数据处理能力:能够处理PB级别的数据,提供高并发的数据读写和处理能力。
SQL支持:支持标准SQL查询,使得数据分析人员可以使用熟悉的SQL语言进行数据查询和分析。
MapReduce和Graph计算框架:支持MapReduce和Graph计算框架,用户可以编写复杂的数据处理逻辑。
安全性和权限管理:提供细粒度的安全控制和数据访问权限管理,确保数据安全。
数据导入导出服务:支持从多种数据源导入数据,如OSS、RDS等,也支持将数据导出到这些数据源。
生态集成:与阿里云其他产品和服务深度集成,如DataWorks(数据工场)、Quick BI(敏捷BI)、PAI(平台即服务)等。
机器学习支持:通过PAI平台,MaxCompute可以支持大规模机器学习模型训练和预测。
1.2 层次架构
MaxCompute的体系架构被设计为分层的系统,主要包括以下几个层次:
客户端
:- 提供了多种访问方式,包括REST API、SDK、CLI(命令行工具)以及IDE(集成开发环境),使得开发者可以通过不同的方式来操作MaxCompute。
接入层
:- 提供HTTP服务,负责处理来自客户端的请求,进行负载均衡,以及用户身份验证和访问控制。
逻辑层(控制层)
:- 这一层是MaxCompute的核心,负责用户空间和对象的管理、命令的解析与执行逻辑、数据对象的访问控制与授权等功能。
- 包括Worker(执行计算任务)、Scheduler(任务调度)和Executor(任务执行器)三个主要角色。
存储与计算层
:- 基于飞天内核(Apsara Core),运行在独立的计算集群上,包含多个关键组件:
- Pangu:分布式文件系统,用于数据存储。
- Fuxi:资源调度系统,管理计算资源的分配和调度。
- Nuwa:分布式协同服务,协调集群中的节点活动。
- Shennong:监控模块,监控整个系统的健康状况。
- 基于飞天内核(Apsara Core),运行在独立的计算集群上,包含多个关键组件:
此外,MaxCompute还与阿里云的其他服务紧密集成,例如:
- OSS:作为对象存储,可以与MaxCompute结合实现湖仓一体的数据处理架构。
- Hadoop/Hive:MaxCompute可以与Hadoop系统中的Hive和HDFS数据进行关联计算。
- DataWorks:用于数据集成、开发、调度和管理。
- Flink/Kafka/DataHub:实现实时数据流的处理和入仓。
整体而言,MaxCompute的设计目标是提供一个高性能、高可用、可扩展的云端数据仓库服务,支持大规模的数据分析和处理需求。
2. 统一开发平台
2.1 开发流程
关于使用开发平台(D2)进行数据开发的基本流程如下:
开发系统:首先,在开发平台上创建和编写代码或脚本。
SQLSCAN
:接下来,对编写的 SQL 查询语句或其他数据库操作进行扫描和检查,以确保其正确性和性能。发布系统:在确认代码无误后,将其发布到生产环境中。
调度运维系统:发布后,通过调度运维系统来安排任务执行的时间表,并监控系统的运行状态。
DQC
:在任务执行过程中,利用 DQC 工具进行数据质量控制,确保输出的数据准确无误。数据地图与数据管理:最后,将生成的数据映射到相应的数据结构中,并进行有效的数据管理和存储。
这个流程旨在确保数据开发过程中的每个步骤都得到适当的监督和控制,从而提高数据质量和整体效率。
2.2 SQLSCAN
形成sql规则,通过系统及研发流程保障,事前解决故障隐患。
就像我们使用MySQL、SQL server时会出现警告及报错中止查询,SQLSCAN提供了校验规则。
工作流程:
- 用户在D2的IDE中编写代码。
- 用户提交代码,D2将代码、调度等信息传到SQLSCAN。
- SQLSCAN根据所配置的规则执行相应的规则校验。
- SQLSCAN将检查成功或者失败的信息回传给D2。
- D2的IDE显示OK(成功)、WARNING(警告)、FAILED(失败,禁止用户提交)等消息。
SQLSCAN主要有如下三类规则校验:
- 代码规范类规则,如表命名规范、生命周期设置、表注释等。
- 代码质量类规则,如调度参数使用检查、分母为0提醒、NULL值参与计算影响结果提醒、插入字段顺序错误等。
- 代码性能类规则,如分区裁剪失效、扫描大表提醒、重复计算检测等。
规则有强规则和弱规则两类产品。触发强规则后,任务的提交会被阻断,必须修复代码后才能再次提交,如FAILED;而触发弱规则,则只会显示违反规则的提示,用户可以继续提交任务,如WARNING。
2.3 DQC
DQC 通常指的是 Data Quality Control(数据质量控制)。在数据管理和分析领域,DQC 是一个关键的过程,用于确保数据的准确性、完整性、一致性和时效性。数据质量控制涉及到多个方面,包括但不限于:
- 准确性:数据是否真实反映实际情况。
- 完整性:数据是否完整,没有缺失必要的部分。
- 一致性:数据在不同系统或数据集中是否保持一致。
- 时效性:数据是否及时更新,反映了最新的情况。
- 有效性:数据是否符合预期的业务规则和约束。
- 唯一性:数据记录是否具有唯一标识,避免重复。
- 可解释性:数据的含义是否清晰,元数据是否充分。
上面是阿里云DQC(Data Quality Center)的工作流程图。工作流程:
数据监控:DQC可以实时监控企业的数据源,包括数据库、文件、API等,以及这些数据源之间的关系。通过对数据的实时监控,DQC能够及时发现数据质量问题。
数据清理:当DQC发现数据质量问题时,它可以自动触发数据清理流程。数据清理流程可以根据预设的规则和策略,对有问题的数据进行修正或者删除。
规则配置:DQC支持用户自定义数据质量规则,例如数据完整性、数据一致性、数据准确性等。用户可以通过图形化界面配置这些规则,并且可以在不同的数据源之间共享这些规则。
执行规则:DQC会定期执行用户配置的数据质量规则,并将执行结果反馈给用户。如果某个规则未通过,则DQC会标记该数据为“不合格”,并启动数据清理流程。
数据统计:DQC会对所有执行过的数据质量规则的结果进行统计和分析,帮助用户了解整个企业的数据质量状况。
提交和返回结果:用户可以通过DQC提交自己的数据质量需求,然后DQC会根据用户的需要执行相应的数据质量规则,并将执行结果返回给用户。
点赞关注收藏,获取更多干货知识~