导图社区 DAMA-CDGA数据治理工程师-6.数据存储和操作
数据存储包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于数据创建/获取到处置的整个生命周期,数据存储与操作代表了数据管理高度技术性的一面。
编辑于2024-03-05 20:21:26不是因为新组织宣布成立或新系统实施上线就要变革,而是人们认识到变革带来的价值而发生行为变化时,变革就会发生。
随着数据领域的快速发展,组织需要改进管理和治理数据的方式,数据管理和数据治理组织需要足够灵活,才能在不断发展的环境中有效的工作,因此,它们需要澄清关于所有权、协作、职责和决策的基本问题。
能力成熟度评估是一种基于能力成熟度模型框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程。当一个组织满足某阶段能力特征时,就可以评估其成熟度等级,并制定一个提高能力的计划。
社区模板帮助中心,点此进入>>
不是因为新组织宣布成立或新系统实施上线就要变革,而是人们认识到变革带来的价值而发生行为变化时,变革就会发生。
随着数据领域的快速发展,组织需要改进管理和治理数据的方式,数据管理和数据治理组织需要足够灵活,才能在不断发展的环境中有效的工作,因此,它们需要澄清关于所有权、协作、职责和决策的基本问题。
能力成熟度评估是一种基于能力成熟度模型框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程。当一个组织满足某阶段能力特征时,就可以评估其成熟度等级,并制定一个提高能力的计划。
6.数据存储和操作
引言
定义
数据存储包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于数据创建/获取到处置的整个生命周期
子活动
数据库操作支持
主要关注与数据生命周期相关的活动,即从数据库环境的初始搭建,到数据的获取、备份再到处置数据
还包括需要确保数据库性能状态良好
数据库技术支持
包括定义满足组织需要的数据库技术要求,定义数据库的技术架构、安装和管理数据库技术,以及解决与数据库相关的技术问题
角色
数据库管理员DBA
在数据存储和操作上述两个方面都扮演重要的角色
是数据专业中最常见,也是最被广泛接纳的角色
在数据安全方面,DBA同样发挥着主导作用
业务驱动因素
业务连续性
如果某个系统不可用,企业运营可能受到损害,甚至完全停止运营
目标和原则
目标
在整个数据生命周期中管理数据的可能性
确保数据资产的完整性
管理数据交易事务的性能
数据存储与操作代表了数据管理高度技术性的一面
原则
识别自动化的机会并采取行动
缩短每个开发周期过程,减少错误和返工,将影响降至最低
通过这种方式,DBA可以适应更多敏捷迭代的应用程序开发方法
构建时就考虑重用的思想
开发抽象的和可重用的数据对象并推广使用,不让应用程序与数据模式紧耦合
理解并适当采用最佳实践
DBA应将数据库标准和最佳实践作为需求来推广
支持数据库的标准需求
为项目中的DBA角色设置期望值
在项目定义阶段让DBA参与,有助于确保项目方法论贯穿整个软件开发生命周期
在项目分析和设计阶段让DBA参与,阐明对DBA任务、标准、工作成果好开发工作时间表的期望值
基本概念
数据库术语
数据库
是存储数据的集合
一些大型数据库也被称为“实例”、“模式”
实例
通过数据库软件,执行对某一特定存储区域的控制访问
一个组织通常使用不同的存储区域,同时执行多个实例
每个实例与所有其他实例相互独立
模式
是数据库或实例中的数据库对象的一个子集
模式被用来将数据库对象组织成多个可管理的集合
通常一个模式拥有一个用户以及访问该模式内容的特定访问列表
常见用法
将包含敏感数据的对象与普通用户群隔离
在关系数据库中将只读视图与基础表隔离
还可以表示具有相似性的数据库结构的集合
节点
一台单独的计算机作为分布式数据库处理数据或者存储数据的一部分
数据库抽象
通用应用接口API通常用来调用数据库函数
这样,一个应用可以连接到不同数据库,而开发者不必知道所有函数可能调用了哪些数据库
优势
可移植性很强
缺点
对某些针对特定数据库的函数,很难跨库使用
数据生命周期管理
DBA都有责任维护和确保数据的准确性和一致性
DBA是所有数据库变更的管理人
当需求方请求对数据库进行变更时,由DBA来定义数据库需要进行的变更内容,实施变更并控制变更结果
DBA应采用一种可控、可记录、可审计的流程,将应用程序的数据库变更实施到QA环境和生成环境
DBA应该有一个回退计划,在变更出现异常的情况下可以撤销变更
管理员
DBA是数据专业中最常见、也是最广泛被接纳的角色
DBA在数据存储和操作中承担主导角色
DBA在数据安全、物理模型、数据库设计活动中也是关键角色
DBA分工
生产DBA
主要负责数据操作管理
应用程序DBA
应用程序DBA通常负责(开发、测试、QA、生产)中的一套或多套数据库,而不是指定负责管理某个环境的数据库环境
过程和开发DBA
过程DBA负责审查和管理数据库的管理对象
开发DBA主要关注数据设计活动
数据库架构类型
数据库可以分为集中式数据库和分布式数据库
集中式数据库管理单一数据库
分布式数据库管理多个系统上的多个数据库
集中式数据库
集中式数据库将所有数据存放在一个地方的一套系统中
所有用户连接到这套系统进行数据访问
对某些访问受限的数据来说,集中化可能是理想的,但对于需要大范围、广泛使用的数据来说,集中式数据库可能是存在风险的
分布式数据库
联邦式数据库
数据联邦提供的数据不需要对数据源进行额外的复制或持久化
联邦数据库系统的将多个自治的数据库系统映射成一个单一的联邦数据库
组成联邦的数据库有时是分散在不同地理位置,通过计算机网络关联在一起
由于是数据联邦,联邦数据库并没有真实的数据整合到一起,而是通过数据互操作性将数据联邦视为一个大型对象来管理
区块链数据库
区块链数据库属于一种联邦数据库,用于安全管理金融交易
区块链数据库有两种结构类型
单条记录和块
每个交易包含一条记录,每个区块包含一组带时间戳的交易,整个数据库由多个区块形成的链状结构组成,每个区块还包括链中前一个区块的信息
存储在区块中的交易信息在生成时使用了哈希算法,新生成区块位于整个链的末端
一旦新的区块产生,旧的区块(前一个区块)的哈希值就不再变化。这意味着,区块内的交易信息再也不会发生变化
如果交易信息(或区块)在传送过程中发生了任何变化(如遭到篡改),那么运行哈希计算得到的哈希值与原来的哈希值就不匹配了
可视化/云计算平台
提供计算、软件、数据访问和存储服务,不要求终端用户了解提供服系统的物理位置和相关配置
可以本地部署,也可以远程部署
实施数据库方法
虚拟机镜像
在这些虚拟机上,用户可以部署数据库
也可以把装好数据库的机器镜像上传云上
数据库即服务
应用程序用户不需要自己安装和维护数据库,只需要为使用数据库付费
管理托管在云上的数据库
云厂商代表应用程序所有者管理数据库
数据处理类型
ACID
原子性(Atomicity)
所有操作要么都完成,要么一个也完不成
一致性(Consistency)
事务必须时刻完全符合系统定义的规则,未完成的事务必须回退
隔离性(Isolation)
每个事务都是独立的
持久性(Durability)
事务一旦完成,就不可以撤销
在关系型数据库存储中,ACID相关技术是最主要的工具,通常采用SQL接口
BASE
背景
记录和存储非结构化数据的需要,读优化和数据负载性能需要以及后续在横向扩展、设计、处理、成本和灾难恢复方面有更大灵活性的需要等,这些都走向了与ACID正好相反的一方。BASE应时而生,满足了这些需要。
基本可用(Basically Available)
即使节点发生故障,系统仍能保证一定级别数据的可用性,数据可能过时,但系统仍然会给出响应
软状态(Soft State)
数据处于持续流动的状态,当给出响应时,数据不保证是最新的
最终一致性(Eventual Consistency)
数据在所有节点、所有数据库上最终状态是一致的,但并非每时每刻在每个事务里都是一致的
通常在大数据环境里会使用BASE类型的系统,如大型互联网公司和社交媒体公司
记录和存储非结构化数据
CAP(布鲁尔定理)
在集中式系统朝着分布式系统发展的过程中提出的理论
CAP定理指的是分布式系统不可能同时满足ACID的所有要求
系统规模越大,满足的要求点越少
分布式系统必须在各种属性(要求)间进行权衡
定理
一致性
系统必须总是按照设计和预期的方式运行
可用性
请求发生时系统时刻保持可用状态,并对请求做出响应
分区容错
偶尔发生数据丢失或者部分系统故障发生时,系统依然能够继续运行提供服务
CAP定理指出,在任何共享数据的系统里,这3项要求最多只可能满足其中两项
数据存储介质
磁盘和存储区域网络SAN
内存
列压缩方案
内存
数据库环境
生产环境
生产环境是指处理所有生产业务流程发生的技术环境
生产环境非常重要,如果它停止运行,所有业务流程都会停止,最终导致业务损失,同时会给那些无法访问服务的客户造成负面影响
非生产环境
系统的变更在真正部署到生产环境之前,需要在非生产环境下进行开发和测试
在非生产环境下,变更引发的问题可以被提前检查和处理掉,不影响正常的业务流程
分类
开发环境
测试环境
性能测试
任何时候都可考虑进行高复杂度或大容量的测试,而不必等到下班后,或者对生产系统的高峰时间产生不利影响
集成测试
将独立开发或者更新的多个模块作为一个整体系统进行测试
UAT用户验收测试
从用户视角进行系统功能测试
QA质量保证测试
以及需求进行功能测试
支持和特别用途环境
数据沙盒和实验环境
数据沙盒是允许以只读的方式访问和管理生产数据的另一个环境
用于实验开发或验证相关假设的数据
或用户将自己开发的数据或从外部获得补充数据与生产数据合并
数据沙盒的价值如同进行一场概念验证
沙盒环境可以是与生产处理隔离的生产系统的一个子集,也可以是完全独立的环境
沙盒的使用者经常在他们自己的空间创建CRUD权限
数据库组织模型
概述
数据存储系统提供了一种将数据放入磁盘并管理和处理这些数据所需指令的封装方法,因此开发人员可以简单的使用指令来操作系统
数据库通常以3种形式进行组织:层次性、关系型、非关系型,这种归类并非是完全互斥的
一些数据库系统可以同时读写以关系型和非关系型结构组织的数据
层次型数据库可以映射成关系型表结构
层次型数据库
在早期的大型数据库管理系统重使用,它的结构要求最为严格
数据被组织成具有强制父子关系型的树型结构
每个父级可以有多个子级,但每个子级只有一个父级
关系型数据库
关系型数据库管理系统被称为RDBMS
关系型数据库是面向行的
包括
多维数据库
这种类型的结构最常用于数据仓库和商务智能
时态数据库
是一种内置了支持处理涉及时间数据的关系型数据库
面向时间的特性通常包括有效时间和事务时间
非关系型数据库
将数据存储为简单的字符串或完整的文件
非关系型数据库可以是面向行的,但并非必须如此
NoSQL数据库在大数据和实时WEB应用程序中的应用越来越多
包括
列式数据库
能够压缩数据,通常用于商务智能BI应用
空间数据库
用于存储和查询表示空间几何中的定义的对象数据
支持几何图形、点、线
空间数据库可执行的操作
空间评估
空间功能
空间预测
几何构造
观测功能
对象、多媒体数据库
平面文件数据库
键值对
三元组存储
由主谓宾组成的数据实体称为三元组存储
专用数据库
计算机辅助设计和制造CAD/CAM
地理信息系统GIS
购物车功能
常见数据库过程
数据归档
将数据从可立即访问的存储介质迁移到查询性能较低的存储介质上的过程
归档后的数据可以恢复到原系统,供短期使用
不需要活跃地支持应用程序处理的数据,应迁移到价格较低的磁盘、磁带、CD/DVD光盘进行归档
对归档进行定期恢复测试是明智做法,以确保在紧急事件发生时避免无法恢复的意外情况
容量和增长预测
变动数据捕获CDC
是指检测到数据的变动并确保与变动相关的信息被适当记录的过程
通常指的是基于日志的复制,是一种非入侵性方法,将数据更改复制到目标端而不受源端影响
CDC只发送变化的内容(增量信息),接收系统就可以进行恰当的更新
检测和收集更改方法
数据版本控制
评估标识以改动过行的列
通过读取日志
日志里记录了变化,并能将变化复制到辅助系统中
数据清除
是指从存储介质中彻底删除数据并让它无法恢复的过程
数据管理的主要目标是维护数据的成本不应超过其对组织的价值
清除数据可以降低成本和风险
即使从监管的角度也是被认为过时的和不必要的
超过必要的时间,就会成为负担
清除这些数据还可以减低它被滥用的风险
数据复制
主动复制
不存在主副本,可以在每个副本上主动创建和存储来自其他副本的相同数据
被动复制
首先在主副本上创建和存储数据,然后把变更的状态传送到其他副本上
复制方式
镜像
主库的更新会立即同步给辅助数据库
传送成本比日志方式高
通常对一台辅助服务器有效
日志传送
辅助数据库定时接收并应用主数据库传来的事务日志副本
可以用来更新数据到更多的服务器上
韧性与恢复
数据库韧性是衡量系统对错误条件容忍度的指标
如果系统能够容忍高级别的错误处理,并且仍能预期工作,那么就具有强韧性
如果一碰到意外条件就崩溃,就没有韧性
恢复类型
立即恢复
通过设计,预判自动切换到备用系统
关键恢复
尽快恢复以尽量减少业务延迟或业务中断
非关键恢复
指该类业务可以延迟恢复,指导更关键的系统恢复完毕
数据保留
指数据保持可用的时间
数据保留规划应该是物理数据库设计的一部分
数据保留需求也会影响容量规划
未能将特定数据保留到合适的时间周期,可能会导致法律后果
保存时间超过规定时间,数据可能成为一种负担
数据分片
是一个把数据库中的一部分独立出来的过程
活动
管理数据库技术
理解数据库的技术特征
评估数据库技术
管理和监控数据库技术
管理数据库操作
理解需求
定义存储需求
识别使用模式
定义访问需求
规划业务连续性
备份数据
恢复数据
创建数据库实例
安装和更新DBMS软件
维护多种环境的安装
安装和管理相关的数据技术
管理数据库性能
管理测试数据集
管理数据迁移
映射的粒度决定了元数据更新速度,决定了迁移过程中需要多少额外的磁盘容量,决定了先前位置被标记为空闲的速度
粒度越小意味着更新速度越快,所需空间越小,释放旧存储越快
工具
数据建模工具
数据库监控工具
数据库监控工具自动监控关键指标(如容量、可用性、缓存性能等)并向DBA和网络存储管理员发出当前数据库问题报警
数据库管理工具
开发支持工具
方法
在低阶环境中测试
在最低阶环境中测试后,再在下一阶的环境继续验证,最后安装部署到生产环境
物理命名标准
命名的一致性有助于加快理解的速度
数据架构师、数据库开发人员和DBA可以使用命名标准来定义元数据或创建不同组织之间交换文件的规则
所有变更操作脚本化
实施指南
就绪评估/风险评估
数据丢失
技术准备
组织和文化变化
数据存储和操作治理
度量指标
数据存储的度量指标
性能度量指标
操作度量指标
服务度量指标
信息资产跟踪
确保数据库遵守所有许可协议和监管要求
数据审计和数据有效性
审计的目的是为了确定数据的存储是否符合合同和方法要求
数据验证是根据既定的验收标准评估存储数据的过程,以确定其质量和可用性