(数据存储与操作)

Posted 浊酒南街

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(数据存储与操作)相关的知识,希望对你有一定的参考价值。

目录

一、前言

本文是《DAMA数据管理知识体系指南》第六章的读书笔记,主要讲述数据存储与操作相关的内容,整体来说该部分内容属于偏后端的部分,且较多内容是针对DBA同学的。但是文中内容所涉及的数据库类型、数据库特点、数据库操作事项等,不仅对DBA有较大参考意义,对广大的数据从业同学也有较强的启发意义,对大家进行数据的应用和管理会有较大的帮助。文章文字约6000字,建议大家在PC端进行阅读,内容有较大部分属于名词释义,如嫌枯燥可根据思维导图进行选择阅读。

二、内容结构

本章节内容首先从数据存储和操作的背景、驱动因素和原则入手,讲述存储和操作的重要性,然后对数据库相关概念、特点、操作进行详细解释,并从数据管理角度对数据存储和操作中对数据存储和操作进行相应活动、所用到的工具、和治理、度量等内容进行了言简意赅的讲解。其整体内容结构图如下所示:

三、主要内容

1.引言

数据存储和操作主要包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于整个数据创建、获取、处理的整个生命周期。数据存储和操作主要包含两个子活动,数据库操作支持,数据库技术支持。
数据库操作支持:主要关注与数据生命周期相关的活动,即从数据库环境的初始搭建,到数据的获取、备份再到处置数据。同时,确保数据库性能状态良好。
数据库技术支持:包括定义满足组织想要的数据库技术要求,定义数据库的技术架构,安装和管理数据库技术,以及解决与数据库相关的技术问题。

1.1业务驱动因素
组织依赖于他们的信息系统来运营业务。数据存储和操作活动对于依赖数据的企业来说是非常关键的,这些活动的主要驱动因素是业务的连续性。为企业IT运营提供可靠的数据存储基础设施,可以最大幅度降低业务中断的风险。

1.2目标和原则
数据存储与操作目标包括:
在整个生命周期中管理数据的可用性
确保数据资产的完整性
管理数据交易事务的性能
数据存储和操作代表了数据管理高度技术性的一面,在实际的工作中需要遵循如下的指导原则:
识别自动化的机会并采取行动:自动化数据库开发过程、开发工具和流程,缩短每个开发周期过程,可减少错误和返工,将对开发团队的影响降至最低。
构建时就考虑重用的思想:开发抽象的可重用的数据对象并推广使用,不让应用程序与数据库模式紧耦合。为了实现这个目标,许多机制应运而生,如:数据库视图、触发器、函数、存储过程、应用数据对象和数据访问层、XML、XSLT、ADO.NET类型数据集和Web服务。
理解并适当使用最佳实践:DBA应将数据库标准和最佳实践作为需求来推广。数据库标准不应成为项目成功的威胁。
支持数据库的标准需求:服务水平协议(SLA)可反映DBA推荐的、开发人员认可的方法,以确保数据完整性和数据安全性(all or nothing)。
为项目中的DBA角色设置期望值:在项目定义阶段就让DBA参与进来,有助于确保项目方法论贯穿整个软件开发生命周期。

1.3基本概念
数据库术语:数据库术语是专有的、技术性的,是数据工作者沟通统一语言。

数据库:数据库是存储数据的集合。

实例:通过数据库软件,执行某一特定区域的控制访问,每个实例与所有其他实例相互独立。

模式:模式是数据库或者实例中的数据库对象的一个子集,常见用法是将包含敏感数据的对象与普通用户群隔离,或在关系数据库中将只读视图与基础表隔离。

节点:一台单独计算机作为分布式数据库处理数据或存储数据的一个单元。

数据库抽象:通用应用接口(API)通常用来调用数据库函数,这样一个应用可以连接到不同的数据库,而开发者不需要知道所有的函数有哪些数据库。ODBC,JDBC就是常见的数据库抽象API。

数据生命周期: 贯穿数据设计、实现到使用的整个数据生命周期,数据生命周期管理包括数据的获取、迁移、保留、过期和处置进行的实施策略和过程。较为稳妥的生命周期管理管理是准备好检测表,确保所有任务都能高质量、高标准的完成。

数据库管理员:数据库管理员(DBA)是数据专业中最常见、也是最被广泛接纳的角色。DBA在数据存储与操作活动中承担主导角色,在数据安全活动、物理模型设计、数据库设计活动中也是关键角色。
数据架构类性:数据库可以分为集中式数据库和分布式数据库。集中式系统管理单一数据库、分布式系统管理多个系统上的数据库(称之为数据库集群),其示意图如下如所示。
集中式数据库:将所有数据存放在一个地方的一套系统中,所有用户连接到这套系统进行数据访问。

分布式数据库:通过扫描大量节点来快速获取数据。主流的分布式数据库技术是基于普通的商业硬件服务器来实现的,可以被横向扩展,从一台到成千上万台服务器,每台计算器提供本地的存储和计算能力。

可视化/云计算平台:云计算提供计算、软件、数据访问和存储服务,不要求终端用户了解提供服务系统的物理位置和相关配置。和电网的概念非常相似,即最终用户不用了解电力服务系统的相关配置和物理位置。云计算是虚拟化、SOA(面向服务架构)以及数据效用计算广泛使用的自然演进形态。(本质上是一种分布式,保证闲置资源的合理使用)

数据处理类型:数据库处理有两种基本类型,ACID和BASE(英文中分别对应“酸”和“碱”,巧合吗?)。CAP定理常用于界定分布式系统与ACID(强调一致性C)还是BASE(强调可用性A)更加接近。
ACID:是一个合成词,其含义是保证数据库事务可靠性不可或缺的约束,是关系型数据库中最核心的原则。原子性-Atomicity,所有操作要么完成、要么一个也不完成,事务不可分;一致性-Consistency,事务必须时刻完全符合系统定义的规则,未完成的事务必须进行回退,保持一致;隔离性-Isolation,每个事务都是独立的,相互之间只有顺序关系;持久性-Durability,事务一旦完成,不可撤销。
BASE:随着数据规模的空前增长,数据的类型不断增多,记录和存储非结构化数据的需求,记录和存储非结构化数据的需要,读取优化和数据负载性能需要以及后续在横向扩展、设计、处理、成本及灾难恢复方面有更大灵活性的需要,BASE应时而生。基本可用-Basically AvaIliable,即使某个节点发生故障,系统仍能够保证一定级别的数据可用性;软状态-Soft State,数据处于持续流动的状态,当给出响应时,数据不保证最新;最终一致性-Eventually Consistency,数据在所有节点的最终状态保持一致。

CAP:定理是集中式和分布式的exit方向发展过程中提出来的理论,分布式不可能同时满足ACID的所有要求,规模越大,满足的要求点就越小,因此需要在各属性之间进行权衡。一致性-Consistency,系统必须总是按照设计和预期的方式运行;可用性-AvaIliable,请求发生时系统时刻都保持可用状态,并对请求作出响应;分区容错-Partition Tolerance:偶尔发生数据丢失或部分系统故障时,系统依然能够持续运行提供服务。

数据存储介质:数据能存放到各种介质里,如磁盘、内存、闪存等,一些系统可能同时采用多种存储介质。
数据库环境:在系统的开发生命周期中,数据在不同的环境都会被用到,在不同的环境中,数据库的使用会有各自的特点。常见的数据库环境主要包括生产环境、非生产环境,其中非生产环境又可以分为开发环境和测试环境。
数据库组织模型:数据库存储系统提供了一种将数据放入放入磁盘并管理和处理这些数据所需质量的封装方法,因此开发人员可以直接使用这些指令来操作数据。数据库通常以3种形式进行组织,分别是层次型、关系型和非关系型(分类并不是完全互斥的)。

层次型数据库:层次型数据库是最古老的数据库类型,在层次型数据库中数据组织具有强制性的父子关系的树形结构,目录树是层次型数据库的一个典型示例,如xml也是典型的层次结构。
关系型数据库:关系型数据库是基于集合理论和关系代数而得名的,其中数据包含元素或属性(列)与元组(行)相关,如典型的excel表格中的行和列,对应的关系型数据库管理系统被称为RDBMS。关系型数据库有很多变种形态,如多维数据库(根据数据应用场景,对数据进行预处理,常用于数据仓库和商务智能系统中)、时态数据库(内置支持处理涉及事件数据的关系型数据库)。其中最典型的关系型数据库包括mysql、SqlSever、Oracle等。
非关系型数据库:非关系型数据库是针对关系型数据库进行对立划分的,通常非关系型数据库被称为NoSQL(Not Only SQL)。与关系型数据库的最主要区别是存储结构,不再是强制的表格关系设计,可以包括树结构、图结构、网络结构、键值对等。这些数据库通常是经过高度优化的存储设计,在简单的检索和插入时吞吐量优势比较明显(但是在数据计算时存在瓶颈),因此NoSQL数据库常用于大数据和实时web的应用程序中。其中常见的非关系型数据库包括Hbase、Redis、Kylin、MongoDB等。
常见的数据库过程:不管什么样的数据库,都会存在数据库通用的操作,常见的操作包括数据归档、容量和增长预测、变动数据捕获、清除数据、复制数据、恢复数据、保留数据、数据分片等。

2.活动

数据存储和操作包括数据库技术支持与数据库操作支持两个主要活动。数据库技术支持侧重选择和维护用户存储和管理数据的软件,而数据库操作支持侧重软件管理的数据和进程。
2.1管理数据库技术
理解数据库的技术特征:理解数据库技术,以及它在特定业务环境中如何提供价值是非常重要的。数据专业人员必须先理解候选数据库技术的特点,然后才能确定将哪种技术推荐为解决方案。不能假设单一类型的数据库架构或数据库管理系统可以满足所有业务需求,大多数都安装了多种数据库工具,完成从性能优化、备份,到数据库自身管理的一系列功能。
评估数据库技术:选择战略性的数据库管理系统软件非常重要,DBMS软件对集成、应用程序性能和业务产能都有比较大的影响,如下是一些需要考虑的因素:
产品架构和复杂性
容量和速度限制,包括数据流传送速率
应用类别,如事务处理、商务智能、个人资料
特殊功能,如时间计算支持
硬件平台及操作系统支持
软件支持工具的可用性
性能测评,包括实时统计信息
可扩展性
软件、内存和存储需求
韧性,包括错误处理和错误报告。
管理和监控数据库技术:DBA通常是作为后台技术支持与服务台和供应商的支持人员一起,理解、分析和解决用户问题。DBA要确保定期给数据库做备份,同时还要做恢复测试。当某项业务需要使用新技术时,DBA要与业务用户和应用程序开发人员合作,确保最有效地使用该技术,探索该技术的新应用,并解决使用过程中出现的任何问题。

2.2管理数据库操作
DBA和网络存储管理员提供的数据库支持是数据管理的核心,DBA通过分配存储结构、维护物理数据库以及在服务器上建立数据库环境来管理各种数据存储应用程序。整个的操作主要包括理解需求、规划业务连续性、创建数据库实例、管理数据库性能、管理测试数据集、管理数据迁移

3.工具

除了数据库管理系统之外,DBA还会使用很多其他工具来管理数据库。例如,数据建模工具和应用程序开发工具,允许用户编写和执行查询的接口,为实现数据质量改进的数据评估和修改工具,以及性能负载监控工具等。

3.1数据建模工具
数据建模工具可帮助数据建模人员自动化执行许多任务,一些数据建模工具允许生成数据库数据定义脚本语言(DDL)。大多数建模工具支持从数据库到数据模型进行逆向工程。更复杂的工具可验证命名标准、检查拼音、存储元数据(定义和血缘关系),甚至可以发布信息到网站上。
3.2数据库监控工具
数据库检测工具自动监测关键指标(如容量、可用性、缓存性能、用户统计等),并向DBA和网络存储管理员发出当前数据库问题报警。
3.3数据库管理工具
数据库系统通常自带管理工具,一些第三方软件(包括配置功能、安装补丁和升级、备份和回复、数据库克隆、测试管理和数据清理任务)可协助DBA管理多种数据库。
3.4开发支持工具
开发支持工具包含一个可视化界面,用于连接和执行数据库上的命令。

4.方法

4.1在低阶环境中测试
对于操作系统、数据库软件、数据库变更以及代码更改的升级和补丁,首先要在最低阶配置的环境中安装和测试(开发环境),测试后再在下一阶的环境继续验证,最后安装部署到生产环境中。
4.2物理命名标准
利用ISO/IEC11179-元数据注册表处理数据的语义、数据的表示和数据描述的注册。通过这些描述,可准确地理解数据语义,并对数据进行有用的描述。
4.3所有变更操作脚本化
在应用到生产之前,将更改脚本文件并在非生产环境下进行全面测试。

5.实施指南

5.1就绪评估/风险评估
就绪评估和风险评估主要围绕两个中心思想:数据丢失的风险与技术准备有关的风险。

数据丢失:由于技术或程序错误,或者出于恶意的目的,数据可能会丢失,组织需要制定一些制度来降低此类风险。随着王铎威胁的不断演变,建议进行SLA审计和数据审计来评估和规划风险缓存措施。

技术准备:对于新技术,如非关系型数据库(NoSQL)、大数据、三元组存储和任务空间功能描述等需要IT技能和经验准备。

5.2组织和文化变化
要了解利益相关方及其需求,制定清晰、简明、实用、以业务为中心的标准,尽可能以最好的方式完成工作。

在进行项目工作的时候,需要做到:主动沟通,站在对方的立场上与之沟通,保持专注于业务,对他人要有帮助,不断学习。

6.数据存储和操作治理

6.1度量指标
数据存储的度量指标:数据库类型的数量、汇总交易统计、容量指标、已使用存储的数量、存储容器的数量、数据对象中已提交和未提交块或页的数量、数据队列、存储服务使用情况、对存储服务提出的请求数量、对使用服务的应用程序性能的改进。

性能度量评估指标:事务频率和数量、查询性能、API服务性能。

操作度量指标:有关数据检索时间的汇总统计、备份的大小、数据质量评估可用性。

服务度量指标:按类型的问题提交、解决和升级数量、问题解决时间。

6.2信息资产跟踪
对软件使用许可、年度支持费用以及服务器租赁协议和其他固定费用,进行仔细跟踪和年度审计。不遵守许可协议会给组织带来严重的财务和法律风险。

6.3数据审计和数据有效性
数据审计是根据定义的标准对数据集进行评估的过程,目的是为了确定数据存储是否符合合同和方法要求,可能包括一个项目特定和全面的检查表、所需的可交付成果和质量监控标准。

数据验证是根据既定的验收标准评估存储数据的过程,以确定其质量和可用性,DBA对数据审计和验证提供部分支持工作,包括帮助制定和审查方法、进行初步的数据筛查和审查、开发数据监控方法、应用统计信息、地理统计信息、生物统计信息等技术来优化数据分析、支持采样及分析、审核数据、提供数据发现的支持、担任与数据库管理相关问题的主题专家。

四、思考与总结

数据的存储和操作是所有数据应用的基础,是数据管理项目的物理着力点,是组织数据应用和管理能力的核心体现。文中内容展示了数据存储和操作所涉及的数据库类型、数据库特点、数据库操作事项等,不仅对DBA有较大参考意义,对广大的数据从业同学也有较强的启发意义。
通过对数据库存储和操作的了解,我们对数据的流向从模型抽象层面下探到物理层面。不同的数据库有不同的特性,数据在不同的载体中需要用合适的方法,因此我们在使用数据的时候需要更好地了解其存储的设备和系统,只有这样我们才能因地制宜,更好地发挥数据的价值。
数据库的设计主要是为了面向应用,不同的应用场景对数据库的需求是不同的,如OLTP中Mysql和Redis共存,OLAP中Hive和GP、Kylin等各自发作用。很多数据库没有绝对的好坏优劣,更多的是与特定场景的适合程度。当前常见的数据库性能以及其应用场景的对比整理如下表所示,以供大家参考。

转载链接:https://mp.weixin.qq.com/s/XW0OIPtp3gvQFA0kuGsNew

以上是关于(数据存储与操作)的主要内容,如果未能解决你的问题,请参考以下文章

操作系统(Trochili RTOS)-线程管理与调度

类与对象-内存存储形态

数据结构与算法概念

数据结构与算法基础概念

Docker镜像分层存储与镜像精简

Recyclerview多种场景下的优化