读数据工程之道:设计和构建健壮的数据系统03数据工程生命周期(上)

news/2024/10/9 6:49:30/文章来源:https://www.cnblogs.com/lying7/p/18451409

1. 数据工程生命周期

1.1. 数据领域正在经历新数据技术和实践的爆炸式增长,抽象程度和易用性不断提高

1.2. 由于技术抽象程度的增加,数据工程师将越来越多地成为数据生命周期工程师,根据数据生命周期管理的原则来进行思考和操作

1.3. 数据工程生命周期包括将原始数据成分转化为有用的最终产品的阶段,可供分析师、数据科学家、机器学习工程师和其他人使用

1.4. 五个阶段

  • 1.4.1. 生成

  • 1.4.2. 存储

  • 1.4.3. 获取

  • 1.4.4. 转换

  • 1.4.5. 中间阶段

  • 1.4.5.1. 可能会有点混乱

  • 1.4.6. 服务

  • 1.4.7. 生命周期的各个阶段可能会以有趣和意想不到的方式重复、无序、重叠或交织在一起

1.5. 作为基石的是横跨数据工程生命周期多阶段的底层设计

  • 1.5.1. 安全

  • 1.5.2. 数据管理

  • 1.5.3. DataOps

  • 1.5.4. 数据架构

  • 1.5.5. 编排和软件工程

  • 1.5.6. 没有这些底层设计,数据工程生命周期的任何部分都无法充分发挥作用

2. 数据生命周期

2.1. 数据工程生命周期是完整数据生命周期的一个子集

2.2. 完整的数据生命周期涵盖整个生命周期中的数据,而数据工程生命周期则侧重于数据工程师控制的阶段

3. 生成:源系统

3.1. 源系统是数据工程生命周期中使用的数据的来源

  • 3.1.1. IoT设备

  • 3.1.2. 应用程序的消息队列

  • 3.1.3. 事务数据库

3.2. 数据工程师需要对源系统的工作方式、它们生成数据的方式、数据的频率和速度以及它们生成的数据的多样性有一个工作上的理解

  • 3.2.1. 还需要与源系统所有者保持开放的沟通渠道,了解可能破坏管道和分析的更改

3.3. 数据工程的一个主要挑战是工程师必须处理和理解令人眼花缭乱的数据源阵列

3.4. 随着软件开发实践的各种现代演变,应用程序+数据库模式在今天仍然很流行

3.5. 源系统评估问题

  • 3.5.1. 数据源的本质特征是什么?

  • 3.5.1.1. 它是一个应用程序,还是一个物联网设备集群?

  • 3.5.2. 数据如何持久化在源系统中?

  • 3.5.2.1. 数据是长期保存的,还是临时的并被迅速删除?

  • 3.5.3. 数据生成的速率是多少?

  • 3.5.3.1. 每秒有多少事件?

  • 3.5.3.2. 每小时有多少数据量?

  • 3.5.4. 从输出数据中期望什么程度的一致性?

  • 3.5.4.1. 如果你对输出数据进行数据质量检查,数据不一致(数据空值、糟糕的格式等)的发生频率是多少?

  • 3.5.5. 错误发生的频率如何?

  • 3.5.6. 数据会包含重复项吗?

  • 3.5.7. 某些数据是否会延迟到达,是否会比同时生成的其他消息晚很多?

  • 3.5.8. 获取数据的模式是什么?

  • 3.5.8.1. 是否需要跨多个表甚至多个系统进行连接才能获得数据的全貌?

  • 3.5.9. 如果数据结构发生变化(例如,添加了一个新列)​,如何处理并传达给下游利益相关者?

  • 3.5.10. 应该多久从源系统中提取一次数据?

  • 3.5.11. 数据是否以定期快照或变更数据捕获(Change Data Capture,CDC)的更新事件提供?

  • 3.5.11.1. 执行更改的逻辑是什么?

  • 3.5.11.2. 如何在源数据库中跟踪这些更改?

  • 3.5.12. 将为下游消费传输数据的数据提供者是谁/什么?

  • 3.5.13. 从数据源读取会影响其性能吗?

  • 3.5.14. 源系统是否有上游数据依赖?

  • 3.5.14.1. 上游系统的特点是什么?

  • 3.5.15. 是否进行了检查延迟或丢失的数据的质量检查?

3.6. 数据源产生的数据供下游系统消费,包括人工生成的电子表格、物联网传感器以及网络和移动应用程序

  • 3.6.1. 每个来源都有其独特的数据生成量和节奏

  • 3.6.2. 数据工程师应该知道来源如何生成数据,包括相关的怪癖或细微差别

3.7. 源数据最具挑战性的细微差别之一是模式

  • 3.7.1. 无模式

  • 3.7.1.1. 无模式并不意味着没有模式

  • 3.7.1.2. 意味着应用程序在写入数据时定义模式,无论是写入消息队列、平面文件、blob还是文档数据库(如MongoDB)​

  • 3.7.2. 固定模式

  • 3.7.2.1. 建立在关系数据库存储之上的更传统的模型使用数据库中强制执行的固定模式,应用程序写入必须符合该模式

3.8. 模式随时间变化

  • 3.8.1. 事实上,在软件开发的敏捷方法中鼓励模式演变

3.9. 在源系统模式中获取原始数据输入,并将其转换为有价值的分析输出

4. 存储

4.1. 选择存储解决方案是在数据生命周期其余部分取得成功的关键,而且出于各种原因,它也是数据生命周期中最复杂的阶段之一

  • 4.1.1. 云上的数据架构通常利用多种存储解决方案

  • 4.1.2. 很少有数据存储解决方案纯粹用作存储,许多支持复杂的转换查询,甚至对象存储解决方案也可能支持强大的查询功能

  • 4.1.3. 虽然存储是数据工程生命周期的一个阶段,但它经常涉及其他阶段,例如获取、转换和服务

4.2. 数据的存储方式会影响数据在数据工程生命周期的所有阶段中的使用方式

4.3. Apache Kafka和Pulsar等流式框架可以同时作为消息的获取、存储和查询系统,对象存储是数据传输的标准层

4.4. 评估存储系统

  • 4.4.1. 该存储解决方案是否与架构所需的写入和读取速度兼容?

  • 4.4.2. 存储是否会给下游流程造成瓶颈?

  • 4.4.3. 了解这种存储技术的工作原理吗?

  • 4.4.3.1. 你是在最佳地利用存储系统还是在做出不自然的行为?

  • 4.4.3.2. 你是否在对象存储系统中应用了高速率的随机访问更新

  • 4.4.4. 该存储系统能否处理预期的未来规模?

  • 4.4.5. 下游用户和进程是否能够在所需的服务等级协定(Service Level Agreement,SLA)中检索数据?

  • 4.4.6. 你是否正在捕获有关模式演变、数据流、数据血缘等的元数据?

  • 4.4.7. 这是一个纯存储解决方案(对象存储)​,还是支持复杂的查询模式(即云数据仓库)​?

  • 4.4.8. 存储系统是模式不可知的(对象存储)吗?

  • 4.4.8.1. 灵活的模式(Cassandra)吗?

  • 4.4.8.2. 是强制模式(云数据仓库)吗?

  • 4.4.9. 如何跟踪主数据、黄金记录数据质量和数据血缘以进行数据治理?

  • 4.4.10. 何处理法规遵从性和数据主权?

  • 4.4.10.1. 能否将数据存储在某些地理位置而不是其他位置?

4.5. 数据访问频率

  • 4.5.1. 并非所有数据都以相同的方式访问

  • 4.5.2. 检索模式将因存储和查询的数据不同而有很大差异

  • 4.5.3. 数据访问频率将决定数据的温度

  • 4.5.3.1. 访问频率最高的数据称为热数据

>  4.5.3.1.1. 热数据通常每天被检索多次,甚至每秒可能被检索几次
  • 4.5.3.2. 不冷不热的数据可能会每隔一段时间访问一次

  • 4.5.3.3. 冷数据很少被查询,适合存储在归档系统中

>  4.5.3.3.1. 出于合规目的或在另一个系统发生灾难性故障的情况下,通常会保留冷数据>  4.5.3.3.2. 在“过去”​,冷数据将存储在磁带上并运送到远程档案设施>  4.5.3.3.3. 在云环境中,供应商提供专门的存储层,每月存储成本非常低廉,但数据检索的价格很高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810365.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年9月学习月报

一、学习目标学习 VLM 的基本原理和架构,理解视觉和语言信息的融合方式,掌握 VLM 的训练方式与评估方法。 学习 VLM 在遥感领域的应用(RemoteCLIP、ChangeCLIP),并尝试本地复现。二、学习内容 文献 An Introduction to Vision-Language Modeling VLM 按照训练方式可以分为…

31. 数据库基础

1. 数据库基础知识 1.1 关系型数据库与非关系型数据库1.2 关系型数据库的结构 库 Database 库,也称数据库,用于组织、存储和管理数据 类比于文件夹 表 Table 表,是数据库中基本的数据存储单位,由行(Row)和列(Column)组成 类比于excel文件 记录 Record 记录,是表中的一…

KeyShot基础操作2 - 材质篇

介绍了KeyShot的材质相关的内容:上材质、材质参数、贴图类型、映射类型、材质节点图等。​这部分基础操作,只是介绍KeyShot的操作方法,望知晓。 后续也会再更新材质、打光的案例,同时也会提供对应的工程文件。上材质基础操作 材质的通用参数 材质类型 纹理类型 多层材质 贴…

创建进程,设计信号量同步机制,实现多线程同步 - C语言版

环境:Windows11 编译器:Visual Studio 2019相关头文件: #include <windows.h> #include <stdio.h>相关函数:睡眠等待函数:Sleep(int millisecond); 睡眠等待一定时间,会造成OS重新调度其它的线程运行Sleep(10); //当前线程睡眠10毫秒后重新执行创建进程Cre…

古典+ezRSA

​ 古典密码在线工具:https://ctf.bugku.com/tools.html 一键解码工具库:随波逐流,在github上下载即可 注:古典密码只需做个了解,因为很多都是靠工具实现的,多刷题有个印象,遇到题能看出像什么密码就好。 Base家族 在密码学领域,"base" 通常指的是一种编码方…

【专题】2024年母婴行业发展趋势洞察报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37818 在当今消费市场中,母婴领域正经历着深刻的变革。随着需求日益多元化,母婴用户的消费习惯和选购考量因素发生了显著变化。 分龄分层产品逐渐成为主流,这背后是用户对个性化解决方案的追求以及对孩子成长各方面的细致关注。同时,母婴…

Serilog文档翻译系列(七) - 应用设置、调试和诊断、开发接收器

Serilog支持通过App.config和Web.config中的01、应用设置 Serilog 支持在 App.config 和 Web.config 文件中使用简单的 配置语法,以设置最低日志级别、为事件添加额外属性以及控制日志输出。 Serilog 主要通过代码进行配置,设置支持旨在作为补充功能。虽然不是全面的,但大多…

【视频讲解】Python量子计算聚类Q-means:量子k-means算法分析电路数据实现可视化

全文链接:https://tecdat.cn/?p=37821 原文出处:拓端数据部落公众号 分析师:Yifan Zhang 量子计算在近期已然成为一个频繁出现的热门概念。尽管它在大众认知以及互联网社区中备受瞩目,热度极高,然而就其实际能力而言,当前仍然存在诸多局限。 量子计算作为一个全新的领域…

每日打卡

今天连接phoenix,版本是5.1.3-hbase-2.5,主要连接dbeaver,idea老是报错。

20222417 2024-2025-1 《网络与系统攻防技术》实验一实验报告

1.实验内容 (1).掌握反汇编与十六进制编程器 (2).能正确修改机器指令改变程序执行流程 (3).能正确构造payload进行bof攻击 2.实验过程 (1).直接修改程序机器指令,改变程序执行流程 将pwn1文件放入共享文件夹,后续在kali中使用,再将文件复制到实验文件夹share路径…

第一课 php基础语法 变量 函数

php语法<?php// 代码段   ?> php输出方法:echo 和 print不同点:echo-能够输出一个以上的字符串,英文逗号隔开print-只能输出一个字符串,并始终返回1echo 比 print 稍快,并且开销低 注释注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读(让别人…

CentOS 8 停止维护后通过 rpm 包手动安装 docker

根据 Docker官方文档 的指引,进入 Docker rpm 包下载的地址,根据自己系统的架构和具体版本选择对应的路径这里我使用 https://download.docker.com/linux/centos/7/x86_64/stable 版本,根据 docker 官方的给出的安装命令选择性的下载对应的 rpm 包最终使用 yum 命令安装下载…