nosql对象存储
㈠ 数据治理说起来容易,做起来难,华为云Stack有解
移动互联网和大数据日益发展,沉淀的数据越来越多,数据的质量、使用效率、数据安全等等各类的问题迎面而来。为了让数据发挥最大的价值,数据治理作为数智化战略的一项必要举措,列入了大多数企业的战略行动计划,业界也有“数字转型、治理先行”的说法。但是谈到数据治理,业界有一个普遍的共识,那就是 “数据治理说起来容易,做起来难”。怎么通过数据治理解决这些难题?数据治理究竟难在哪里?华为作为典型的非云原生企业是如何应对的呢?
2018到2021年间全球8300家标杆企业中,全面拥抱数字技术的前10%企业相比后25%企业营收增速超过5倍。数字化转型浪潮下,数据资产将成为关键生产要素支撑未来数据产业化升级,是未来政企实现跨越式发展的必然选择。
根据华为在政企行业多年的深入耕耘和自身转型的实践,我们发现,优质高效的数据底座,是保障政企运营效率持续提升和业务创新升级的重要基石。我们深知打破数据孤岛、确保数据准确、促进数据共享、保障数据隐私与安全,是政企数据治理的关键。当前很多企业数据体系建设呈现出“烟囱化”的趋势,为政企数据治理带来了四大挑战:
l 进不来 :数据来源复杂,集成难;
l 质量差 :数据质量要求高,规则校验多,落地难;
l 出不去 :数据烟囱林立,业务和数据匹配难,共享难;
l 不放心 :数据安全、交互风险高。
早期的华为是典型的非数字原生企业。从2007年开始,我们通过两个阶段的持续变革,系统地完成了数据管理体系建设,实现业务感知和ROADS体验的数字化转型:
l 阶段一(2007-2017) :设立数据管理专业组织,建立数据管理框架,发布数据管理政策,通过统一信息架构与标准、有效的数据质量改进机制,提升数据质量,实现数据全流程贯通,业务运作效率整体提升。
l 阶段二(2017-至今): 建设数据底座,汇聚和联接全域数据,实现数据业务可视、随需共享、敏捷自助、安全透明的目标,支撑准确决策和数据创新,构筑差异化竞争力。
华为经过十多年的实践,我们总结出 “4层保障”和“2个抓手”(信息架构、数据质量) ,实现清洁数据,充分释放数据价值的核心手段。
4层保障包括:
l 政策保障: 从目的、适用范围、管理原则、问责等方面进行政策制定,公司层面需统一遵从,确保业务与IT共同参与数据治理。
l 流程保障: 建立数据管理流程,重大决议由企业变革指导委员会决策,通过变革管理体系和流程运营体系落地。
l 组织保障: 按领域任命数据管理Owner和团队,建立实体化数据管理组织承接数据管理改进目标。
l IT落地保障: 建设承载面向“联接共享”的数据底座和数据服务融合的统一IT平台,完成数据全流程流转与价值变现。
2个抓手是指:
l 信息架构: 构建面向“业务交易”的信息架构,描述业务运作和管理决策所需要的各类数据及其关系,保障企业内统一“数据语言”。
l 数据质量: 建立数据质量管理框架和运作机制,例行开展公司级数据质量评估,由企业数据管理组织定期发布报告,牵引各业务领域持续改进。
上述的4层保障和2个抓手,构成了企业数据战略资产综合治理体系,能够确保关键数据资产的有清晰的业务管理责任,IT落地有稳定清晰的原则依据,作业人员有规范的流程指导。遇到争议时,有裁决和升级处理机制,治理过程有充足的人力、组织、预算保障。只有建立起有效的数据治理环境,数据的质量和安全才能得到保障,数据的价值才能真正发挥。
作为华为数字化转型的底座,华为云沉淀了大量的实践经验和方案能力,并通过华为云Stack来赋能政企,加速各行各业的数字化转型。在数据治理领域,华为云Stack为政企提供数据湖治理中心服务(DGC)来帮助企业客户快速构建数据运营能力。DGC是数据全生命周期一站式开发运营平台,提供数据集成、数据开发、数据治理、数据服务、数据可视化等功能,支持行业知识库智能化建设,支持大数据存储、大数据计算分析引擎等数据底座。下面我们就来一起看看DGC是怎样应对我们前面提到的挑战:
l 进的来:简单高效的物理和逻辑数据集成保障数据全面入湖
非数字原生企业发展普遍有较长的 历史 ,随着不同阶段的发展需求,业务系统间存在大量复杂的集成和嵌套,数据来源多样,数据形成孤岛难以集中共享。
数据集成:简单易用的多源异构数据批量和实时接入
DGC能够提供活易用的可视化配置与迁移任务编排,将数据迁移和集成的效率提升数十倍。除主流关系型数据库支持外,还支持对象存储、Nosql等40余种同/异构数据源及三方大数据平台批量迁移入湖。 DGC物理入湖与HetuEngine跨湖跨仓协同的逻辑入湖 作为两种重要数据集成方式协同互补,满足数据联接和用户数据消费不同场景需求,支撑客户数据湖从离线走向实时,构建物理分散、逻辑统一的逻辑数据湖。
l 理的清:从源端架构到平台工具端到端数据质量保障
企业级信息架构:结构化的方式实施有效的治理
企业在运转过程中,需要定义业务流程中涉及的人、事、物资源,实施有效的数据治理,确保各类数据在企业业务单元间高效、准确地传递,上下游流程快速执行和运作。企业长期存在信息架构与IT开发实施“两张皮”的现象,数据人员和IT人员缺乏统一协同,企业数据架构混乱,信息架构资产和产品实现逻辑割裂,数据模型资产缺失。
平台工具和服务:一体化开发设计,端到端专业服务,有机联动保障数据质量
结合华为数据治理专家团队与项目实践经验,DGC规范设计实现了一体化设计和开发,不仅确保了元数据验证、发布和注册的一致性,而且实现了产品数据模型管理和资产可视,同时辅以专业的数据治理服务团队、成熟项目管理机制和丰富的实践经验,支撑企业构建高质量的清洁数据架构和能力。在政务大数据中心通过DGC一体化平台和专业服务,完成多个委办局全量数据接入,落地数据分层架构模型设计,完成基础库与主题库的建设,实现委办局数据全流程生命周期设计与落地,涵盖数据架构和模型设计、数据标准设计、数据模型物化、数据质量稽核作业等,助力领导决策支持、宏观经济云图和惠民APP示范应用系统上线。
l 出得去:通过数据服务和数据地图实现数据自助消费
数据底座建设的目标是便捷地支撑数据消费,确保用户安全可靠地获取数据,并通过灵活的数据分析等方式,按需快捷的消费数据。
数据服务:服务化方式供应数据
通过服务化方式对外提供,用户不再直接集成数据,而是通过聚合应用模型可视化构建,涵盖API发布、管理、运维、售卖的全生命周期管理,作为业务的“可消费产品”的关键要素之一,解决了数据的可供应性。
数据地图:从查询到分析到使用一站式自助
以数据搜索为核心,综合反映数据的来源、数量、质量、分布、标准、流向、关联关系,满足多用户、多场景的数据消费需求,解决了数据“可搜索/可获取性”的难点问题。消费方获取数据后,还支持从数据查询到拖拽式分析的端到端的一站式自助作业,帮助数据消费者结合自身需要获取分析结果,满足业务运营中数据实时可视化需求。
l 用的安:从模型、制度到平台多维度打造立体化数据安全体系
安全能力模型评估:系统化安全管理抓手
数据安全能力成熟度模型是数据安全建设中的系统化框架,围绕数据全生命周期,结合业务的需求以及监管法规的要求,持续不断的提升组织整体的数据安全能力,提升数据安全水平和行业竞争力,确保数据生产要素安全流通和数字经济 健康 发展。在多个项目中,华为通过安全评估、安全加固等专业服务,助力客户高分通过等保评估,实现数据安全流通。
从制度到工具和服务:统一安全治理框架落地
数据安全治理需要从决策层到技术层,从管理制度到工具支撑和服务体系,自上而下形成贯穿整个组织架构的完整链条。企业组织内的各个层级之间需要对数据安全治理的目标达成共识,确保采取合理和适当的措施;DGC数据安全定义数据密级、认证数据源、对数据动静态脱敏及添加水印等方式以最有效的方式保护数字资产。
企业数字化转型逐步进入深水区,如何提升海量数据治理的效率和准确率,如何将专家经验固化传递都面临巨大的挑战。人工智能与数据治理深度融合将会开启数据治理的新阶段,通过AI加速企业数据生产要素的变现、进一步释放数据价值。
l 智能数据资产编目
基于AI的智能数据编目系统具备数据的学习、理解和推理能力,帮助团队实现数据自主、简化数据 探索 、实现重要数据资产智能编目推荐。
l 智能数据标准推荐/去重
通过机器学习技术,自动扫描元数据信息,提炼关键数据项,智能识别新增数据标准、冗余存量数据标准去重,提高智能化程度。
l 智能重复/异常数据检测
智能重复/异常数据检测技术,将数据根据相似读音、相似数据类型分组,通过模型计算相似度得分,超出规定阈值时,自动异常检测和识别。
l 智能主外键识别
通过筛选候选主外键时构造特征向量,并调用分类器智能判别该元数据是否为主外键,提升数据模型质量,进而优化和简化后续资产梳理和对外提供数据服务。
数据是物理世界、数字世界和认知世界相互联接转换的纽带,大规模数据交互将构成庞大的政企数据生态。政企数字化转型不能一蹴而就,数据治理亦非一朝一夕之功,治理的数据规模日趋庞大,类型千变万化,手段也更智能丰富,需要我们共同携手从制度、流程、技术、生态多维度一起努力,构建数据智能新世界。
㈡ 哪个属于Nosql数据库
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
常见的Nosql数据库有:
一、Redis数据库
Redis(RemoteDictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
二、MongoDB数据库
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
(2)nosql对象存储扩展阅读:
对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
一、易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。
二、大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。
三、灵活的数据模型
NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web2.0时代尤其明显。
四、高可用
NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。
㈢ 不属于对象存储的存储类型
块存储和文件存储不属于对象储存
对象数据组成结构
与块存储和文件存储管理数据的方式不同,对象存储是以对象的形式管理数据的。对象和文件最大的不同,就是在文件基础之上增加了元数据。一般情况下,对象分为三个部分:数据、元数据以及对象id。
对象的数据通常是无结构的数据,比如:图片、视频或文档等;对象的元数据则指的是对象的相关描述,比如:图片的大小、文档的拥有者等;对象id则是一个全局的唯一标识符,用来区分对象的。
从数据结构来看,这三种存储有着根本不同。块存储的数据结构是数组,而文件存储是二叉树(B,B-,B+,B*各种树),对象存储基本上都是哈希表。
数组和二叉树都是老生常谈,没有太多值得说的,而对象存储使用的哈希表也就是常听说的键值(KeyVaule型)存储的核心数据结构,每个对象找一个UID(所谓的“键”KEY),算哈希值(所谓的“值Vaule”)以后和目标对应。找了一个哈希表例子如下:
键值对应关系简单粗暴,毕竟算个hash值是很快的,这种扁平化组织形式可以做得非常大,避免了二叉树的深度,对于真·海量的数据存储和大规模访问都能给力支持。所以不仅是对象存储,很多NoSQL的分布式数据库都会使用它,比如Redis,MongoDB,Cassandra 还有Dynamo等等。
㈣ 使用NOSQL存储一个对象应该用哪个比较好
mongodb就很好
㈤ 不属于对象存储的存储类型
块存储和文件存储。
1、块存储
以下列出的两种存储方式都是块存储类型:
1) DAS(Direct AttachSTorage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。
2)SAN(Storage Area Network):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如 SCSI, ESCON及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。它采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
2、文件存储
通常,NAS产品都是文件级存储。NAS(Network Attached Storage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。
它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
下面,我们对DAS、NAS、SAN三种技术进行比较和分析:
表格 1 三种技术的比较
㈥ nosql数据库有哪些
nosql数据库有哪些?
1. In-Memory KV Store : Redis
2. Disk-Based KV Store: Leveldb
3. Document Store: Mongodb
4. Column Table Store: HBase
㈦ nosql数据库是什么 具有代表性以key-value的形式存储的
什么是NoSQL
大家有没有听说过“NoSQL”呢?近年,这个词极受关注。看到“NoSQL”这个词,大家可能会误以为是“No!SQL”的缩写,并深感愤怒:“SQL怎么会没有必要了呢?”但实际上,它是“Not Only SQL”的缩写。它的意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。
为弥补关系型数据库的不足,各种各样的NoSQL数据库应运而生。
为了更好地了解本书所介绍的NoSQL数据库,对关系型数据库的理解是必不可少的。那么,就让我们先来看一看关系型数据库的历史、分类和特征吧。
关系型数据库简史
1969年,埃德加?6?1弗兰克?6?1科德(Edgar Frank Codd)发表了划时代的论文,首次提出了关系数据模型的概念。但可惜的是,刊登论文的《IBM Research Report》只是IBM公司的内部刊物,因此论文反响平平。1970年,他再次在刊物《Communication of the ACM》上发表了题为“A Relational Model of Data for Large Shared Data banks”(大型共享数据库的关系模型)的论文,终于引起了大家的关注。
科德所提出的关系数据模型的概念成为了现今关系型数据库的基础。当时的关系型数据库由于硬件性能低劣、处理速度过慢而迟迟没有得到实际应用。但之后随着硬件性能的提升,加之使用简单、性能优越等优点,关系型数据库得到了广泛的应用。
通用性及高性能
虽然本书是讲解NoSQL数据库的,但有一个重要的大前提,请大家一定不要误解。这个大前提就是“关系型数据库的性能绝对不低,它具有非常好的通用性和非常高的性能”。毫无疑问,对于绝大多数的应用来说它都是最有效的解决方案。
突出的优势
关系型数据库作为应用广泛的通用型数据库,它的突出优势主要有以下几点:
保持数据的一致性(事务处理)
由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
可以进行JOIN等复杂查询
存在很多实际成果和专业技术信息(成熟的技术)
这其中,能够保持数据的一致性是关系型数据库的最大优势。在需要严格保证数据一致性和处理完整性的情况下,用关系型数据库是肯定没有错的。但是有些情况不需要JOIN,对上述关系型数据库的优点也没有什么特别需要,这时似乎也就没有必要拘泥于关系型数据库了。
关系型数据库的不足
不擅长的处理
就像之前提到的那样,关系型数据库的性能非常高。但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途。具体来说它并不擅长以下处理:
大量数据的写入处理
为有数据更新的表做索引或表结构(schema)变更
字段不固定时应用
对简单查询需要快速返回结果的处理
。。。。。。
NoSQL数据库
为了弥补关系型数据库的不足(特别是最近几年),NoSQL数据库出现了。关系型数据库应用广泛,能进行事务处理和JOIN等复杂处理。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。
易于数据的分散
如前所述,关系型数据库并不擅长大量数据的写入处理。原本关系型数据库就是以JOIN为前提的,就是说,各个数据之间存在关联是关系型数据库得名的主要原因。为了进行JOIN处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散。相反,NoSQL数据库原本就不支持JOIN处理,各个数据都是独立设计的,很容易把数据分散到多个服务器上。由于数据被分散到了多个服务器上,减少了每个服务器上的数据量,即使要进行大量数据的写入操作,处理起来也更加容易。同理,数据的读入操作当然也同样容易。
提升性能和增大规模
下面说一点题外话,如果想要使服务器能够轻松地处理更大量的数据,那么只有两个选择:一是提升性能,二是增大规模。下面我们来整理一下这两者的不同。
首先,提升性能指的就是通过提升现行服务器自身的性能来提高处理能力。这是非常简单的方法,程序方面也不需要进行变更,但需要一些费用。若要购买性能翻倍的服务器,需要花费的资金往往不只是原来的2倍,可能需要多达5到10倍。这种方法虽然简单,但是成本较高。
另一方面,增大规模指的是使用多台廉价的服务器来提高处理能力。它需要对程序进行变更,但由于使用廉价的服务器,可以控制成本。另外,以后只要依葫芦画瓢增加廉价服务器的数量就可以了。
不对大量数据进行处理的话就没有使用的必要吗?
NoSQL数据库基本上来说为了“使大量数据的写入处理更加容易(让增加服务器数量更容易)”而设计的。但如果不是对大量数据进行操作的话,NoSQL数据库的应用就没有意义吗?
答案是否定的。的确,它在处理大量数据方面很有优势。但实际上NoSQL数据库还有各种各样的特点,如果能够恰当地利用这些特点将会是非常有帮助。具体的例子将会在第2章和第3章进行介绍,这些用途将会让你感受到利用NoSQL的好处。
希望顺畅地对数据进行缓存(Cache)处理
希望对数组类型的数据进行高速处理
希望进行全部保存
多样的NoSQL数据库
NoSQL数据库存在着“key-value存储”、“文档型数据库”、“列存储数据库”等各种各样的种类,每种数据库又包含各自的特点。下一节让我们一起来了解一下NoSQL数据库的种类和特点。
NoSQL数据库是什么
NoSQL说起来简单,但实际上到底有多少种呢?我在提笔的时候,到NoSQL的官方网站上确认了一下,竟然已经有122种了。另外官方网站上也介绍了本书没有涉及到的图形数据库和对象数据库等各个类别。不知不觉间,原来已经出现了这么多的NoSQL数据库啊。
本节将为大家介绍具有代表性的NoSQL数据库。
key-value存储
这是最常见的NoSQL数据库,它的数据是以key-value的形式存储的。虽然它的处理速度非常快,但是基本上只能通过key的完全一致查询获取数据。根据数据的保存方式可以分为临时性、永久性和两者兼具三种。
临时性
memcached属于这种类型。所谓临时性就是 “数据有可能丢失”的意思。memcached把所有数据都保存在内存中,这样保存和读取的速度非常快,但是当memcached停止的时候,数据就不存在了。由于数据保存在内存中,所以无法操作超出内存容量的数据(旧数据会丢失)。
在内存中保存数据
可以进行非常快速的保存和读取处理
数据有可能丢失
永久性
Tokyo Tyrant、Flare、ROMA等属于这种类型。和临时性相反,所谓永久性就是“数据不会丢失”的意思。这里的key-value存储不像memcached那样在内存中保存数据,而是把数据保存在硬盘上。与memcached在内存中处理数据比起来,由于必然要发生对硬盘的IO操作,所以性能上还是有差距的。但数据不会丢失是它最大的优势。
在硬盘上保存数据
可以进行非常快速的保存和读取处理(但无法与memcached相比)
数据不会丢失
两者兼具
Redis属于这种类型。Redis有些特殊,临时性和永久性兼具,且集合了临时性key-value存储和永久性key-value存储的优点。Redis首先把数据保存到内存中,在满足特定条件(默认是15分钟一次以上,5分钟内10个以上,1分钟内10000个以上的key发生变更)的时候将数据写入到硬盘中。这样既确保了内存中数据的处理速度,又可以通过写入硬盘来保证数据的永久性。这种类型的数据库特别适合于处理数组类型的数据。
同时在内存和硬盘上保存数据
可以进行非常快速的保存和读取处理
保存在硬盘上的数据不会消失(可以恢复)
适合于处理数组类型的数据
面向文档的数据库
MongoDB、CouchDB属于这种类型。它们属于NoSQL数据库,但与key-value存储相异。
不定义表结构
面向文档的数据库具有以下特征:即使不定义表结构,也可以像定义了表结构一样使用。关系型数据库在变更表结构时比较费事,而且为了保持一致性还需修改程序。然而NoSQL数据库则可省去这些麻烦(通常程序都是正确的),确实是方便快捷。
可以使用复杂的查询条件
跟key-value存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据。虽然不具备事务处理和JOIN这些关系型数据库所具有的处理能力,但除此以外的其他处理基本上都能实现。这是非常容易使用的NoSQL数据库。
不需要定义表结构
可以利用复杂的查询条件
面向列的数据库
Cassandra、Hbase、HyperTable属于这种类型。由于近年来数据量出现爆发性增长,这种类型的NoSQL数据库尤其引人注目。
面向行的数据库和面向列的数据库
普通的关系型数据库都是以行为单位来存储数据的,擅长进行以行为单位的读入处理,比如特定条件数据的获取。因此,关系型数据库也被称为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为单位读入数据。
高扩展性
面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。另外,利用面向列的数据库的优势,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。但由于面向列的数据库跟现行数据库存储的思维方式有很大不同,应用起来十分困难。
高扩展性(特别是写入处理)
应用十分困难
最近,像Twitter和Facebook这样需要对大量数据进行更新和查询的网络服务不断增加,面向列的数据库的优势对其中一些服务是非常有用的,但是由于这与本书所要介绍的内容关系不大,就不进行详细介绍了。
总结:
NoSQL并不是No-SQL,而是指Not Only SQL。
NoSQL的出现是为了弥补SQL数据库因为事务等机制带来的对海量数据、高并发请求的处理的性能上的欠缺。
NoSQL不是为了替代SQL而出现的,它是一种替补方案,而不是解决方案的首选。
绝大多数的NoSQL产品都是基于大内存和高性能随机读写的(比如具有更高性能的固态硬盘阵列),一般的小型企业在选择NoSQL时一定要慎重!不要为了NoSQL而NoSQL,可能会导致花了冤枉钱又耽搁了项目进程。
NoSQL不是万能的,但在大型项目中,你往往需要它!
㈧ nosql解决方案为什么需要固态硬盘
Membase
Membase 是 NoSQL 家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,可以下载beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。
Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。
通过兼容多种编程语言和框架,Membase具备了很好的复用性。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置 的告警信息。
Membase的目标是提供对外的线性扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。 另外,对存储的数据进行再分配仍然是必要的。
这方面的一个有趣的特性是NoSQL解决方案所承诺的可预测的性能,类准确性的延迟和吞吐量。通过如下方式可以获得上面提到的特性:
◆ 自动将在线数据迁移到低延迟的存储介质的技术(内存,固态硬盘,磁盘)
◆ 可选的写操作一一异步,同步(基于复制,持久化)
◆ 反向通道再平衡[未来考虑支持]
◆ 多线程低锁争用
◆ 尽可能使用异步处理
◆ 自动实现重复数据删除
◆ 动态再平衡现有集群
◆ 通过把数据复制到多个集群单元和支持快速失败转移来提供系统的高可用性。
MongoDB
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
主要功能特性:
◆ 面向集合存储,易存储对象类型的数据
“面向集合”(Collenction-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定 义任何模式(schema)。
◆ 模式自由
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
◆支持动态查询
◆支持完全索引,包含内部对象
◆支持查询
◆支持复制和故障恢复
◆使用高效的二进制数据存储,包括大型对象(如视频等)
◆自动处理碎片,以支持云计算层次的扩展性
◆支持RUBY,PYTHON,JAVA,C++,PHP等多种语言
◆文件存储格式为BSON(一种JSON的扩展)
BSON(Binary Serialized document Format)存储形式是指:存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。
◆可通过网络访问
MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。
MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。
Hypertable
Hypertable是一个开源、高性能、可伸缩的数据库,它采用与Google的Bigtable相似的模型。在过去数年中,Google为在PC集群 上运行的可伸缩计算基础设施设计建造了三个关键部分。第一个关键的基础设施是Google File System(GFS),这是一个高可用的文件系统,提供了一个全局的命名空间。它通过跨机器(和跨机架)的文件数据复制来达到高可用性,并因此免受传统 文件存储系统无法避免的许多失败的影响,比如电源、内存和网络端口等失败。第二个基础设施是名为Map-Rece的计算框架,它与GFS紧密协作,帮 助处理收集到的海量数据。第三个基础设施是Bigtable,它是传统数据库的替代。Bigtable让你可以通过一些主键来组织海量数据,并实现高效的 查询。Hypertable是Bigtable的一个开源实现,并且根据我们的想法进行了一些改进。
Apache Cassandra
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook在使用此系统。
主要特性:
◆ 分布式
◆ 基于column的结构化
◆ 高伸展性
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。
CouchDB
所用语言: Erlang
特点:DB一致性,易于使用
使用许可: Apache
协议: HTTP/REST
双向数据复制,持续进行或临时处理,处理时带冲突检查,因此,采用的是master-master复制
MVCC – 写操作不阻塞读操作
可保存文件之前的版本
Crash-only(可靠的)设计
需要不时地进行数据压缩
视图:嵌入式 映射/减少
格式化视图:列表显示
支持进行服务器端文档验证
支持认证
根据变化实时更新
支持附件处理
因此, CouchApps(独立的 js应用程序)
需要 jQuery程序库
最佳应用场景:适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。
例如:CRM、CMS系统。 master-master复制对于多站点部署是非常有用的。
和其他数据库比较,其突出特点是:
◆ 模式灵活 :使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部 署上。
◆ 真正的可扩展性 :Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。
◆ 多数据中心识别 :你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。
◆ 范围查询 :如果你不喜欢全部的键值查询,则可以设置键的范围来查询。
◆ 列表数据结构 :在混合模式可以将超级列添加到5维。对于每个用户的索引,这是非常方便的。
◆ 分布式写操作 :有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败。
问度娘,啥都有。
㈨ NoSQL 数据库和对象云存储的区别
1、使用冗余,每个人的好友信息都在数据库中有存储,就是你说的记录一对一关系
2、数据缓存到内存,数据访问很快
3、状态信息修改异步,比如一个人登陆了,他的好友不是马上就知道,中间间隔几秒也没有关系
4、数据可能不放在关系数据库中,可能使用nosql数据库,比如mongodb,bigtable,cassandra等