大数据之路 读书笔记 Day6 离线数据开发之数据开发平台

news/2024/9/13 16:41:56/ 标签: 大数据

回顾

  • Day5 数据同步遇到的问题与解决方案
  • Day4 数据同步

1. 统一计算平台

在这里插入图片描述

1.1 MaxCompute概述

MaxCompute(原名 ODPS,Open Data Processing Service)是阿里云提供的一种快速、完全托管的EB级数据仓库解决方案。它为用户提供了海量数据存储和实时计算的能力,适用于离线数据处理和分析场景,如大数据分析、机器学习、数据挖掘等。

MaxCompute的主要特点包括:

  1. 大规模数据处理能力:能够处理PB级别的数据,提供高并发的数据读写和处理能力。

  2. SQL支持:支持标准SQL查询,使得数据分析人员可以使用熟悉的SQL语言进行数据查询和分析。

  3. MapReduce和Graph计算框架:支持MapReduce和Graph计算框架,用户可以编写复杂的数据处理逻辑。

  4. 安全性和权限管理:提供细粒度的安全控制和数据访问权限管理,确保数据安全。

  5. 数据导入导出服务:支持从多种数据源导入数据,如OSS、RDS等,也支持将数据导出到这些数据源。

  6. 生态集成:与阿里云其他产品和服务深度集成,如DataWorks(数据工场)、Quick BI(敏捷BI)、PAI(平台即服务)等。

  7. 机器学习支持:通过PAI平台,MaxCompute可以支持大规模机器学习模型训练和预测。

1.2 层次架构

MaxCompute的体系架构被设计为分层的系统,主要包括以下几个层次:

  1. 客户端

    • 提供了多种访问方式,包括REST API、SDK、CLI(命令行工具)以及IDE(集成开发环境),使得开发者可以通过不同的方式来操作MaxCompute。
  2. 接入层

    • 提供HTTP服务,负责处理来自客户端的请求,进行负载均衡,以及用户身份验证和访问控制。
  3. 逻辑层(控制层)

    • 这一层是MaxCompute的核心,负责用户空间和对象的管理、命令的解析与执行逻辑、数据对象的访问控制与授权等功能。
    • 包括Worker(执行计算任务)、Scheduler(任务调度)和Executor(任务执行器)三个主要角色。
  4. 存储与计算层

    • 基于飞天内核(Apsara Core),运行在独立的计算集群上,包含多个关键组件:
      • Pangu:分布式文件系统,用于数据存储。
      • Fuxi:资源调度系统,管理计算资源的分配和调度。
      • Nuwa:分布式协同服务,协调集群中的节点活动。
      • Shennong:监控模块,监控整个系统的健康状况。

此外,MaxCompute还与阿里云的其他服务紧密集成,例如:

  • OSS:作为对象存储,可以与MaxCompute结合实现湖仓一体的数据处理架构。
  • Hadoop/Hive:MaxCompute可以与Hadoop系统中的Hive和HDFS数据进行关联计算。
  • DataWorks:用于数据集成、开发、调度和管理。
  • Flink/Kafka/DataHub:实现实时数据流的处理和入仓。

整体而言,MaxCompute的设计目标是提供一个高性能、高可用、可扩展的云端数据仓库服务,支持大规模的数据分析和处理需求。

2. 统一开发平台

在这里插入图片描述

2.1 开发流程

关于使用开发平台(D2)进行数据开发的基本流程如下:

  1. 开发系统:首先,在开发平台上创建和编写代码或脚本。

  2. SQLSCAN:接下来,对编写的 SQL 查询语句或其他数据库操作进行扫描和检查,以确保其正确性和性能。

  3. 发布系统:在确认代码无误后,将其发布到生产环境中。

  4. 调度运维系统:发布后,通过调度运维系统来安排任务执行的时间表,并监控系统的运行状态。

  5. DQC:在任务执行过程中,利用 DQC 工具进行数据质量控制,确保输出的数据准确无误。

  6. 数据地图与数据管理:最后,将生成的数据映射到相应的数据结构中,并进行有效的数据管理和存储。

这个流程旨在确保数据开发过程中的每个步骤都得到适当的监督和控制,从而提高数据质量和整体效率。

在这里插入图片描述

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 是一个关键的过程,用于确保数据的准确性、完整性、一致性和时效性。数据质量控制涉及到多个方面,包括但不限于:

  1. 准确性:数据是否真实反映实际情况。
  2. 完整性:数据是否完整,没有缺失必要的部分。
  3. 一致性:数据在不同系统或数据集中是否保持一致。
  4. 时效性:数据是否及时更新,反映了最新的情况。
  5. 有效性:数据是否符合预期的业务规则和约束。
  6. 唯一性:数据记录是否具有唯一标识,避免重复。
  7. 可解释性:数据的含义是否清晰,元数据是否充分。

在这里插入图片描述上面是阿里云DQC(Data Quality Center)的工作流程图。工作流程:

  1. 数据监控:DQC可以实时监控企业的数据源,包括数据库、文件、API等,以及这些数据源之间的关系。通过对数据的实时监控,DQC能够及时发现数据质量问题。

  2. 数据清理:当DQC发现数据质量问题时,它可以自动触发数据清理流程。数据清理流程可以根据预设的规则和策略,对有问题的数据进行修正或者删除。

  3. 规则配置:DQC支持用户自定义数据质量规则,例如数据完整性、数据一致性、数据准确性等。用户可以通过图形化界面配置这些规则,并且可以在不同的数据源之间共享这些规则。

  4. 执行规则:DQC会定期执行用户配置的数据质量规则,并将执行结果反馈给用户。如果某个规则未通过,则DQC会标记该数据为“不合格”,并启动数据清理流程。

  5. 数据统计:DQC会对所有执行过的数据质量规则的结果进行统计和分析,帮助用户了解整个企业的数据质量状况。

  6. 提交和返回结果:用户可以通过DQC提交自己的数据质量需求,然后DQC会根据用户的需要执行相应的数据质量规则,并将执行结果返回给用户。


点赞关注收藏,获取更多干货知识~


http://www.ppmy.cn/news/1475875.html

相关文章

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现:实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…

[终端安全]-6 移动终端之应用程序安全

笔者在终端安全专题前面的文章中介绍了移动终端硬件安全和操作系统安全,本文主要介绍移动终端应用安全。在本文最前面,笔者想先解答一位朋友的疑问,为什么需要费心打造一个完整的面面俱到的安全体系? 1 移动终端安全的重要性 移…

C++——类和对象(上)

文章目录 一、类的定义1.类定义格式2.访问限定符3.类域 二、实例化1.实例化概念2.对象⼤⼩ 三、 this指针 一、类的定义 1.类定义格式 与定义结构体类似 class ST {//成员变量int val;//成员函数void print(){cout << val << endl;}};class为定义类的关键字&…

P2p网络性能测度及监测系统模型

P2p网络性能测度及监测系统模型 网络IP性能参数 IP包传输时延时延变化误差率丢失率虚假率吞吐量可用性连接性测度单向延迟测度单向分组丢失测度往返延迟测度 OSI中的位置-> 网络层 用途 面相业务的网络分布式计算网络游戏IP软件电话流媒体分发多媒体通信 业务质量 通过…

【机器学习】Exam4

实现线性不可分logistic逻辑回归 我们目前所学的都是线性回归&#xff0c;例如 y w 1 x 1 w 2 x 2 b y w_1x_1w_2x_2b yw1​x1​w2​x2​b 用肉眼来看数据集的话不难发现&#xff0c;线性回归没有用了&#xff0c;那么根据课程所学&#xff0c;我们是不是可以增加 x 3 x…

【Linux】Vim 使用教程

Linux - Vim Vim 是一款在 Linux 系统中广泛使用的文本编辑器&#xff0c;它是 Vi 编辑器的升级版。Vim 不仅功能强大&#xff0c;而且可高度定制化&#xff0c;是许多程序员和系统管理员的首选工具。以下是 Vim 在 Linux 系统中的安装、配置和使用过程的详细讲解。 附注&…

Gitea 仓库事件触发Jenkins远程构建

文章目录 引言I Gitea 仓库事件触发Jenkins远程构建1.1 Jenkins配置1.2 Gitea 配置引言 应用场景:测试、生产环境的项目自动构建和部署 手动构建和部署 Gitea 仓库事件触发Jenkins远程构建I Gitea 仓库事件触发Jenkins远程构建 Gitea支持用于仓库事件的Webhooks 1.1 Jenkin…

3-2 多层感知机的从零开始实现

import torch from torch import nn from d2l import torch as d2lbatch_size 256 # 批量大小为256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size) # load进来训练集和测试集初始化模型参数 回想一下&#xff0c;Fashion-MNIST中的每个图像由 28 28 784…

GraphQL在Postman中:释放API查询的强大潜能

&#x1f680; GraphQL在Postman中&#xff1a;释放API查询的强大潜能 Postman作为API开发和测试的领先工具&#xff0c;对GraphQL的支持为开发者提供了一种新的方式来查询和管理数据。GraphQL是一种查询语言&#xff0c;用于API&#xff0c;允许客户端明确指定他们需要哪些数…

Java数据结构-链表与LinkedList

链表 链表的概念 链表是一种物理存储结构上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 通俗来说&#xff0c;相比较于顺序表&#xff08;物理上连续&#xff0c;逻辑上也连续&#xff09;&#xff0c;链表物理上不一定连续。 链表是…

OpenGL笔记十之Shader类的封装

OpenGL笔记十之Shader类的封装 —— 2024-07-10 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十之Shader类的封装1.运行2.目录结构3.main.cpp4.application4.1.CMakeLists.txt4.2.Application.h4.3.Application.cpp 5.assets5.1.shaders&#xf…

CentOS7 安装 git 命令

通过yum源install下载的git版本比较低&#xff0c;不推荐此方式安装。 官网下载最新版git源码&#xff1a;Git 1. 解压安装包 tar -xzvf git-2.45.2.tar.gz 2. 安装相关依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils…

【qt】正则表达式来判断是否为邮箱登录

正则表达式是用来匹配字符串的神器. 在Qt中我们需要使用到QRegExp这个类 用exactMatch来进行匹配. [] 使用方括号 [] 来定义字符类&#xff0c;表示匹配方括号内的任意一个字符 A-Za-z0-9是字符的匹配范围. 是用于指定字符或字符类出现的次数,常见的如下 *&#xff08;匹配 0…

07:串口通信二

串口编程 1、与波特率之相关的寄存器2、PCON寄存器3、SCON寄存器4、配置的代码分析5、向PC发送一段字符串6、PC机向单片机发送字符控制LED1灯的亮灭 1、与波特率之相关的寄存器 如图&#xff0c;与串口通信相关的寄存器主要是SCON和PCON寄存器。 2、PCON寄存器 SMOD&#xff1…

【postgresql】锁

PostgreSQL 提供了多种锁模式来控制对表和行的并发访问&#xff0c;以确保数据的一致性和完整性。这些锁模式包括表级锁和行级锁&#xff0c;它们可以由应用程序显式控制&#xff0c;也可以在执行大多数 PostgreSQL 命令时自动获取。 锁类型 PostgreSQL类型的锁包括&#xff…

git 提交远程仓库 方式

第一种方式&#xff1a; git init //初始化 gitgit clone https://github.com/luckygilrhpp/gitTest.git //克隆远程仓库代码将要提交的文件夹复制到这个clone的远程仓库里面 第二种方式&#xff1a; git init git remote add origin https://github.com/lucky…

Python调用摄像头

以下是一个使用 Python 调用摄像头的简单示例代码&#xff0c;需要使用 opencv-python 库&#xff1a; python 复制 import cv2 # 创建一个 VideoCapture 对象来捕获摄像头的视频 cap cv2.VideoCapture(0) # 0 表示默认的摄像头 while True: # 读取一帧视频 ret…

Pytorch中nn.Sequential()函数创建网络的几种方法

1. 创作灵感 在创建大型网络的时候&#xff0c;如果使用nn.Sequential&#xff08;&#xff09;将几个有紧密联系的运算组成一个序列&#xff0c;可以使网络的结构更加清晰。 2.应用举例 为了记录nn.Sequential&#xff08;&#xff09;的用法&#xff0c;搭建以下测试网络&…

Spring系列二:基于XML配置bean 中

基于XML配置bean &#x1f496;使用utillist进行配置&#x1f496;属性级联赋值配置&#x1f496;通过静态工厂获取bean&#x1f496;bean配置信息重用&#x1f496;bean创建顺序&#x1f496;bean的单例和多实例&#x1f496;bean的生命周期 &#x1f496;使用utillist进行配置…

洞察解读:“李彦宏:不只迷恋模型,更应追求应用”

目录 洞察解读&#xff1a;“李彦宏:不只迷恋模型&#xff0c;更应追求应用” 模型与应用的区别与联系 个性化应用的重要性与挑战 从技术到应用的转化 展望未来 结语 洞察解读&#xff1a;“李彦宏:不只迷恋模型&#xff0c;更应追求应用” 在当前人工智能技术飞速发展的…