首页 > 其他分享 >读数据工程之道:设计和构建健壮的数据系统20数据工程存储抽象

读数据工程之道:设计和构建健壮的数据系统20数据工程存储抽象

时间:2024-10-26 08:51:13浏览次数:6  
标签:存储 20 5.5 工程 读数据 6.5 5.4 2.1 数据

1. 数据工程存储抽象

1.1. 数据工程存储抽象是数据组织和查询模式,位于数据工程生命周期的核心,建立在之前讨论的数据存储系统之上

1.2. 关键的考虑

  • 1.2.1. 目的和用例

  • 1.2.1.1. 必须首先确定存储数据的目的

  • 1.2.2. 更新模式

  • 1.2.2.1. 是否针对批量更新、流式插入或上载进行了优化

  • 1.2.3. 成本

  • 1.2.4. 分离存储和计算

  • 1.2.4.1. 现在的趋势是将存储和计算分离,但大多数系统是混合分离和主机托管

2. 数据仓库

2.1. 数据仓库是一个标准的OLAP数据架构

2.2. 数据仓库一词指的是技术平台(如Google BigQuery和Teradata)​、数据集中化的架构以及公司内部的组织模式

2.3. 云数据仓库

  • 2.3.1. 云数据仓库经常被用来将数据组织到数据湖中

  • 2.3.2. 这是一个存储大量未处理的原始数据的区域

  • 2.3.3. 最初是由James Dixon构想的

  • 2.3.4. 可以处理大量的原始文本和复杂的JSON文档

  • 2.3.5. 局限性在于,与真正的数据湖不同,云数据仓库不能处理真正的非结构化数据,如图像、视频或音频

  • 2.3.6. 可以与对象存储结合起来,提供一个完整的数据湖解决方案

3. 数据湖

3.1. 数据湖最初被认为是一个大规模的存储,数据以原始的、未处理的形式被保留

3.2. 最初,数据湖主要建立在Hadoop系统上,廉价的存储允许保留大量的数据,而没有专有MPP系统的成本开销

3.3. 主要的进展

  • 3.3.1. 出现了计算和存储分离的重大迁移

  • 3.3.2. MPP系统提供的许多功能(模式管理;更新、合并和删除功能)​,以及最初在匆忙建立数据湖概念时被放弃的功能,事实上是非常有用的

  • 3.3.2.1. 促进了数据湖仓一体概念的产生

4. 数据湖仓一体

4.1. 数据湖仓一体是一个结合了数据仓库和数据湖的架构

4.2. 湖仓一体在对象存储中存储数据,就像一个湖一样

4.3. 湖仓一体系统是一个元数据和文件管理层,与数据管理和转换工具一起部署

4.4. 数据湖仓一体的关键优势是互操作性

4.5. 数据湖仓一体中的许多数据可能没有强加表结构

5. 存储的重要思想和趋势

5.1. 数据目录

  • 5.1.1. 数据目录是一个集中的元数据存储,用于整个组织的所有数据

  • 5.1.2. 数据目录不是一个顶级的数据存储抽象,但它与各种系统和抽象相集成

  • 5.1.3. 数据目录通常跨运营和分析数据源工作,集成数据脉络和数据关系的呈现,并允许用户编辑数据描述

  • 5.1.4. 数据目录通常被用来提供一个中央场所,人们可以在那里查看他们的数据、查询和存储数据

  • 5.1.5. 目录应用集成

  • 5.1.5.1. 理想情况下,数据应用程序被设计成与目录API集成,直接处理其元数据和更新

  • 5.1.6. 自动扫描

  • 5.1.6.1. 在实践中,目录系统通常需要依赖一个自动扫描层,从各种系统中收集元数据,如数据湖、数据仓库和操作数据库

  • 5.1.7. 数据门户和社会层

  • 5.1.7.1. 数据目录通常还通过网络界面提供一个用户访问层,用户可以在那里搜索数据并查看数据关系

  • 5.1.8. 数据目录用例

  • 5.1.8.1. 数据目录有组织和技术两方面的用例

  • 5.1.8.2. 数据目录使元数据容易被系统使用

5.2. 数据共享

  • 5.2.1. 数据共享允许组织和个人与特定实体共享特定的数据和精心定义访问权限

  • 5.2.2. 数据共享允许数据科学家与组织内的合作者共享沙盒中的数据

  • 5.2.3. 云端多租户环境使组织间的协作更加容易

  • 5.2.4. 数据共享是许多云数据平台的一个核心特征

5.3. 模式

  • 5.3.1. 模式不一定是关系型的

  • 5.3.2. 模式可以作为一种罗塞达石,指示我们如何阅读数据

  • 5.3.3. 写时模式

  • 5.3.3.1. 写时模式基本上是传统的数据仓库模式:一个表有一个集成的模式,任何对该表的写入都必须符合

  • 5.3.3.2. 为了支持写时模式,数据湖必须集成一个模式元存储

  • 5.3.3.3. 写时模式的主要优点是,它可以执行数据标准,使数据在未来更容易被消费和利用

  • 5.3.4. 读时模式

  • 5.3.4.1. 在读时模式下,模式是在数据写入时动态创建的,而读者在读取数据时必须确定模式

  • 5.3.4.2. 理想情况下,读时模式是使用实现内置模式信息的文件格式来实现的

  • 5.3.4.3. 读时模式强调的是灵活性,允许几乎任何数据被写入

>  5.3.4.3.1. 代价是在未来消费数据时更加困难

5.4. 计算与存储的分离

  • 5.4.1. 计算和存储的主机托管

  • 5.4.1.1. 长期以来一直是提高数据库性能的标准方法

  • 5.4.2. 计算和存储的分离

  • 5.4.2.1. 短暂性和可扩展性

>  5.4.2.1.1. 购买和托管一台服务器要比从云提供商那里租来的便宜,只要你每天24小时不停地运行它,连续数年

>  5.4.2.1.2. 工作负荷变化很大,如果服务器可以扩大和缩小,那么采用即付即得模式就能实现显著的效率
  • 5.4.2.2. 数据的耐久性和可用性
>  5.4.2.2.1. 云对象存储大大减轻了数据丢失的风险,通常提供极高的正常运行时间(可用性)​

>  5.4.2.2.2. 因错误配置而破坏对象存储中数据的可能性仍然有些可怕,但有简单部署的缓解措施
  • 5.4.2.3. 混合分离和主机托管
>  5.4.2.3.1. 多层缓存

  >   5.4.2.3.1.1. 通过多层缓存,我们利用对象存储进行长期的数据保留和访问,但在查询和数据管道的各个阶段使用本地存储来启动

>  5.4.2.3.2. 混合对象存储

  >   5.4.2.3.2.1. 结合了对象存储的简洁抽象和计算存储的一些优势

>  5.4.2.3.3. Spark通常在HDFS或其他一些短暂的分布式文件系统上运行作业,以支持处理步骤之间的数据的高性能存储

>  5.4.2.3.4. 保持数据的持久性仍然是至关重要的,所以Druid使用对象存储作为其持久性层
  • 5.4.2.4. 零拷贝克隆
>  5.4.2.4.1. 基于对象存储的云系统支持零拷贝克隆

>  5.4.2.4.2. 零拷贝克隆通常意味着一个对象的新的虚拟副本被创建(例如,一个新的表)​,而不一定要物理复制基础数据

>  5.4.2.4.3. 零拷贝克隆是一个引人注目的功能,但工程师必须了解它的优点和局限性

5.5. 数据存储的生命周期和数据保留

  • 5.5.1. 储存数据并不是简单地把它保存到对象存储或磁盘上就可以不再管理它

  • 5.5.2. 三类持久性

  • 5.5.2.1. 热、暖和冷

>  5.5.2.1.1. 热数据

  >   5.5.2.1.1.1. 热数据有即时或频繁的访问要求。热数据的底层存储适合于快速访问和读取,如SSD或内存

  >   5.5.2.1.1.2. 存储热数据往往是最昂贵的存储形式

  >   5.5.2.1.1.3. 热数据的用例包括检索产品推荐和产品页面结果

  >   5.5.2.1.1.4. 储存热数据的成本是这三个存储层中最高的,但检索往往是廉价的

>  5.5.2.1.2. 暖数据

  >   5.5.2.1.2.1. 暖数据的访问是半定期的,例如每月一次

  >   5.5.2.1.2.2. 没有硬性规定表明暖数据的访问频率,但它比热数据少,比冷数据多

>  5.5.2.1.3. 冷数据

  >   5.5.2.1.3.1. 在另一个极端,冷数据是不经常访问的数据

  >   5.5.2.1.3.2. 用于归档冷数据的硬件通常是廉价和耐用的,如HDD、磁带存储和基于云的归档系统

  >   5.5.2.1.3.3. 当几乎没有人打算访问这些数据时,冷数据主要是为了长期存档

  >   5.5.2.1.3.4. 虽然存储冷数据很便宜,但检索冷数据往往很昂贵

  >   5.5.2.1.3.5. 冷存储在归档数据方面很受欢迎

5.5.2.1.3.5.1. 历史上,冷存储涉及物理备份,并经常将这些数据邮寄给第三方,由其在字面上的保险库中存档

  >   5.5.2.1.3.6. 冷存储在云中越来越受欢迎
  • 5.5.2.2. 每个数据集的查询访问模式都不同

  • 5.5.2.3. 通常情况下,较新的数据和比较旧的数据被查询得更频繁

  • 5.5.2.4. 考虑你的数据的存储层时,要考虑每层的成本

>  5.5.2.4.1. 如果你把所有的数据存储在冷存储中以节省成本,你当然会降低你的存储成本,但代价是延长检索时间

>  5.5.2.4.2. 如果你需要访问数据,则要付出高昂的检索费用
  • 5.5.2.5. 存储价格在更快/更高性能的存储中更高,并在更低的存储中逐渐降低

  • 5.5.2.6. 内存是昂贵而有限的

  • 5.5.3. 如果你使用基于云的对象存储,则为你的数据创建自动化的生命周期策略

  • 5.5.3.1. 使用不经常使用的或归档式的存储层

  • 5.5.3.2. 访问和检索的时间和成本可能因云提供商而异

  • 5.5.4. 数据保留

  • 5.5.4.1. 价值

>  5.5.4.1.1. 数据是一种资产,所以你应该知道你所存储的数据的价值
  • 5.5.4.2. 时间
>  5.5.4.2.1. 对下游用户的价值也取决于数据的年龄
  • 5.5.4.3. 合规性
>  5.5.4.3.1. 某些法规可能要求你在一定时间内保留数据
  • 5.5.4.4. 成本
>  5.5.4.4.1. 数据是一种资产,​希望有一个投资回报率

>  5.5.4.4.2. 在投资回报率的成本方面,一个明显的存储费用是与数据相关的

5.6. 单租户与多租户存储的对比

  • 5.6.1. 在单租户架构下,每组租户(如个人用户、用户组、账户或客户)都得到自己的专用资源,如网络、计算和存储

  • 5.6.2. 采用单租户存储意味着每个租户都得到他们的专用存储

  • 5.6.2.1. 每个租户得到一个数据库

  • 5.6.2.2. 使用单租户存储的一个例子是,每个客户的数据必须隔离存储,不能与任何其他客户的数据混合在一起

  • 5.6.2.3. 每个客户得到他们自己的数据库

  • 5.6.2.4. 独立的数据存储意味着独立的模式、桶结构以及与存储有关的一切

>  5.6.2.4.1. 意味着你可以自由地将每个租户的存储环境设计成统一的,或者让他们任意发展
  • 5.6.3. 多租户架构则相反,在各组用户之间共享这些资源

  • 5.6.4. 多租户存储允许在一个单一的数据库中存储多个租户

6. 其他

6.1. 存储是数据工程基础设施的核心

  • 6.1.1. 存储无处不在,并且支撑着数据工程生命周期的许多阶段

6.2. 你将与拥有你的IT基础设施的人互动

  • 6.2.1. 常是DevOps、安全和云架构师

6.3. 数据存储的责任划分将在很大程度上取决于相关组织的成熟度

  • 6.3.1. 如果公司处于数据成熟度的早期,则数据工程师可能会管理存储系统和工作流

6.4. 数据工程师需要确保下游用户使用的存储系统是安全可用的、包含高质量的数据、有充足的存储容量,并在查询和转换运行时执行

6.5. 底层设计

  • 6.5.1. 存储的底层设计很重要,因为存储是数据工程生命周期的所有阶段的关键枢纽

  • 6.5.2. 安全

  • 6.5.2.1. 接受安全是一个关键的促成因素的想法

  • 6.5.2.2. 像往常一样,行使最小特权的原则

>  6.5.2.2.1. 除非需要,否则不要给任何人完整的数据库访问权

>  6.5.2.2.2. 意味着大多数数据工程师在实践中不需要完全的数据库访问
  • 6.5.3. 数据管理

  • 6.5.3.1. 数据目录和元数据管理

>  6.5.3.1.1. 数据通过强大的元数据得到加强
  • 6.5.3.2. 对象存储中的数据版本管理
>  6.5.3.2.1. 主要的云对象存储系统能够实现数据版本管理
  • 6.5.3.3. 隐私
>  6.5.3.3.1. 任何具有隐私影响的数据都有一个生命周期,数据工程师必须管理

>  6.5.3.3.2. 隐私法规对存储系统设计产生了重大影响

>  6.5.3.3.3. 数据工程师必须准备好响应数据删除请求,并根据需要选择性地删除数据
  • 6.5.4. Data Ops

  • 6.5.4.1. DataOps与数据管理并不是正交的,而且存在一个重要的重叠区域

  • 6.5.5. 编排

  • 6.5.5.1. 编排与存储高度相关

  • 6.5.5.2. 存储允许数据在管道中流动,而编排是泵

  • 6.5.5.3. 编排还可以帮助工程师应对数据系统的复杂性

标签:存储,20,5.5,工程,读数据,6.5,5.4,2.1,数据
From: https://www.cnblogs.com/lying7/p/18501395

相关文章

  • Windows 10 on ARM, version 22H2 (updated Oct 2024) ARM64 AArch64 中文版、英文版
    Windows10onARM,version22H2(updatedOct2024)ARM64AArch64中文版、英文版下载基于ARM的Windows10请访问原文链接:https://sysin.org/blog/windows-10-arm/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org基于ARM的Windows10起初,Windows10(与Wi......
  • Windows 10 version 22H2 (updated Oct 2024) 中文版、英文版下载
    Windows10version22H2(updatedOct2024)中文版、英文版下载Windows1022H2企业版arm64x64请访问原文链接:https://sysin.org/blog/windows-10/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alledit......
  • java学习10.25企业ERP生产计划管理系统(20分)
    今天成功的把这个项目写好了,就是文档中的一些具体的需求比较难写(由于之前没写过)所以项目能完成基本的增删改查和浏览操作。使用技术栈mybatis+thymeleft+mysql比较复杂,写的东西比较多,以后学了springboot会更简便一些整体架构具体页面源代码通过百度网盘分享的文件:企......
  • [Ynoi2015] 盼君勿忘 题解
    CSP前学习珂学,祝自己\(while(1)\rp++\)。考虑求解出每种数对答案的贡献。设\(t=r-l+1,k_x=\sum\limits_{i=l}^r[a_i=x]\),由容斥得贡献为\(x(2^t-2^{t-k_x})\)。求解\(k_x\),考虑莫队,时间复杂度为\(O(n\sqrtn)\),这也是本题的复杂度上限。由于\(p\)会变,所以不能用莫......
  • 2024 CSP-J1 游记
    补一篇游记罢。现在是\(2024.10.25.22:07:10\)。明天恰好是第二轮,hyy他们在日照已经试完机了罢。悲。Day-?暑假学复赛似乎学了不少?但写的那几篇学习笔记貌似都忘干净了。。。Day-7—0开学了。老师超级严,天天布置背诵任务让晚上打卡,没空卷OI。听说tzyz有mx模拟赛,但是......
  • 2024年在线项目管理的网站哪个好?深度对比15款
    深入对比15款好用的项目管理网站,包括:PingCode、Worktile、Asana、Trello、Jira、Monday.com、飞书项目、Basecamp、ClickUp、Smartsheet、Podio、ZohoProjects等。在线项目管理工具非常适合远程工作者、项目经理、中小企业、自由职业者、多项目管理人员、跨部门团队以及学术研......
  • CSP-S 2024 游记 / 游寄
    Day\(-\texttt{?}\)中午地点:机房。新的赛季从初赛开始。说实话,打心底没重视初赛。中午在机房听说早上J组送分送到家了,水到飞起。考后第一时间QQ群就传出来的偷拍版真题?某机构泄题的?重生之监考老师是我宿管?罚坐之考场上偷拍监考老师发呆?……没啥波澜,不做评价。下午地点:......
  • 【2024潇湘夜雨】WIN 11_IoT_Ent_LTSC_2024_24H2.26100.2161软件选装纯净特别版10.26
    【系统简介】=============================================================1.本次更新母盘来自WIN11_IoT_Ent_LTSC_2024_24H2.26100.2161.进桌面后稍等片刻,等待后续部分优化完成。2.全程离线精简、无人值守调用优化处理制作。部分优化适配系统可能要重启几次,即使显示适配失败也......
  • CSP2024: 给小朋友们
    竞赛对文化课:标签化分治思想自信竞赛对大学超出同龄人的见识,思维的广度认识更多的人提前打CCPC,ICPC,对以后发展有帮助强者恒强?:滚雪球结语著名\(\texttt{OIer}\)Froggy在他的签名中写道:最初的一步,泪水之后再一次,雕刻的风景线,消逝在黄昏中的风,直到梦的最后。竞赛,......
  • 20241024每日一题洛谷P1012
    普及-洛谷P1012拼数设有n个正整数,a1a2a3......an将它们联接成一排,相邻数字首尾相接,组成一个最大的整数输入:第一行有一个整数,表示数字个数n第二行有n个整数,表示给出的n个整数ai输出:一个正整数,表示最大的整数可以考虑两种路线:使用sort函数编辑cmp参数进行字符串......