目前大數據存儲有兩種方案可供選擇:行存儲和列存儲。業界對兩種存儲方案有很多爭持,集中焦點是:誰能夠更有效地處理海量數據,且兼顧安全、可靠、完整性。從目前發展情況看,關系資料庫已經不適應這種巨大的存儲量和計算要求,基本是淘汰出局。在已知的幾種大數據處理軟體中,Hadoop的HBase採用列存儲,MongoDB是文檔型的行存儲,Lexst是二進制型的行存儲。在這里,我不討論這些軟體的技術和優缺點,只圍繞機械磁碟的物理特質,分析行存儲和列存儲的存儲特點,以及由此產生的一些問題和解決辦法。
② 大數據常用哪些資料庫
通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如Mysql、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比較小型的Access等等資料庫,這些資料庫支持復雜的SQL操作和事務機制,適合小量數據讀寫場景;但是到了大數據時代,人們更多的數據和物聯網加入的數據已經超出了關系資料庫的承載范圍。
大數據時代初期,隨著數據請求並發量大不斷增大,一般都是採用的集群同步數據的方式處理,就是將資料庫分成了很多的小庫,每個資料庫的數據內容是不變的,都是保存了源資料庫的數據副本,通過同步或者非同步方式保證數據的一致性,每個庫設定特定的讀寫方式,比如主資料庫負責寫操作,從資料庫是負責讀操作,等等根據業務復雜程度以此類推,將業務在物理層面上進行了分離,但是這種方式依舊存在一定的負載壓力的問題,企業數據在不斷的擴增中,後面就採用分庫分表的方式解決,對讀寫負載進行分離,但是這種實現依舊存在不足,且需要不斷進行資料庫伺服器擴容。
NoSQL資料庫大致分為5種類型
1、列族資料庫:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面簡單介紹幾個
(1)Cassandra:Cassandra是一個列存儲資料庫,支持跨數據中心的數據復制。它的數據模型提供列索引,log-structured修改,支持反規范化,實體化視圖和嵌入超高速緩存。
(2)HBase:Apache Hbase源於Google的Bigtable,是一個開源、分布式、面向列存儲的模型。在Hadoop和HDFS之上提供了像Bigtable一樣的功能。
(3)Amazon SimpleDB:Amazon SimpleDB是一個非關系型數據存儲,它卸下資料庫管理的工作。開發者使用Web服務請求存儲和查詢數據項
(4)Apache Accumulo:Apache Accumulo的有序的、分布式鍵值數據存儲,基於Google的BigTable設計,建立在Apache Hadoop、Zookeeper和Thrift技術之上。
(5)Hypertable:Hypertable是一個開源、可擴展的資料庫,模仿Bigtable,支持分片。
(6)Azure Tables:Windows Azure Table Storage Service為要求大量非結構化數據存儲的應用提供NoSQL性能。表能夠自動擴展到TB級別,能通過REST和Managed API訪問。
2、鍵值資料庫:Redis、SimpleDB、Scalaris、Memcached等,下面簡單介紹幾個
(1)Riak:Riak是一個開源,分布式鍵值資料庫,支持數據復制和容錯。(2)Redis:Redis是一個開源的鍵值存儲。支持主從式復制、事務,Pub/Sub、Lua腳本,還支持給Key添加時限。
(3)Dynamo:Dynamo是一個鍵值分布式數據存儲。它直接由亞馬遜Dynamo資料庫實現;在亞馬遜S3產品中使用。
(4)Oracle NoSQL Database:來自Oracle的鍵值NoSQL資料庫。它支持事務ACID(原子性、一致性、持久性和獨立性)和JSON。
(5)Oracle NoSQL Database:具備數據備份和分布式鍵值存儲系統。
(6)Voldemort:具備數據備份和分布式鍵值存儲系統。
(7)Aerospike:Aerospike資料庫是一個鍵值存儲,支持混合內存架構,通過強一致性和可調一致性保證數據的完整性。
3、文檔資料庫:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面簡單介紹幾個
(1)MongoDB:開源、面向文檔,也是當下最人氣的NoSQL資料庫。
(2)CounchDB:Apache CounchDB是一個使用JSON的文檔資料庫,使用Javascript做MapRece查詢,以及一個使用HTTP的API。
(3)Couchbase:NoSQL文檔資料庫基於JSON模型。
(4)RavenDB:RavenDB是一個基於.NET語言的面向文檔資料庫。
(5)MarkLogic:MarkLogic NoSQL資料庫用來存儲基於XML和以文檔為中心的信息,支持靈活的模式。
4、圖資料庫:Neo4J、InfoGrid、OrientDB、GraphDB,下面簡單介紹幾個
(1)Neo4j:Neo4j是一個圖資料庫;支持ACID事務(原子性、獨立性、持久性和一致性)。
(2)InfiniteGraph:一個圖資料庫用來維持和遍歷對象間的關系,支持分布式數據存儲。
(3)AllegroGraph:AllegroGraph是結合使用了內存和磁碟,提供了高可擴展性,支持SPARQ、RDFS++和Prolog推理。
5、內存數據網格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面簡單介紹幾個
(1)Hazelcast:Hazelcast CE是一個開源數據分布平台,它允許開發者在資料庫集群之上共享和分割數據。
(2)Oracle Coherence:Oracle的內存數據網格解決方案提供了常用數據的快速訪問能力,一致性支持事務處理能力和數據的動態劃分。
(3)Terracotta BigMemory:來自Terracotta的分布式內存管理解決方案。這項產品包括一個Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop連接器。
(4)GemFire:Vmware vFabric GemFire是一個分布式數據管理平台,也是一個分布式的數據網格平台,支持內存數據管理、復制、劃分、數據識別路由和連續查詢。
(5)Infinispan:Infinispan是一個基於Java的開源鍵值NoSQL數據存儲,和分布式數據節點平台,支持事務,peer-to-peer 及client/server 架構。
(6)GridGain:分布式、面向對象、基於內存、SQL+NoSQL鍵值資料庫。支持ACID事務。
(7)GigaSpaces:GigaSpaces內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
③ 資料庫的類型都有哪些
資料庫有兩種類型,分別是關系型資料庫與非關系型資料庫。
資料庫,簡而言之可視為電子化的文件櫃——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。
關系型資料庫主要有:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。
非關系型資料庫主要有:
NoSql、Cloudant、MongoDb、redis、HBase等等。
(3)適合存儲鏈路的資料庫擴展閱讀:
非關系型資料庫的優勢:
1、性能高:NOSQL是基於鍵值對的,可以想像成表中的主鍵和值的對應關系,而且不需要經過SQL層的解析,所以性能非常高。
2、可擴展性好:同樣也是因為基於鍵值對,數據之間沒有耦合性,所以非常容易水平擴展。
關系型資料庫的優勢:
1、可以復雜查詢:可以用SQL語句方便的在一個表以及多個表之間做非常復雜的數據查詢。
2、事務支持良好:使得對於安全性能很高的數據訪問要求得以實現。
④ 互聯網時代處理大量流動性數據社交網路數據最好使用哪些類型資料庫
使用現有的主要吸引力一、可擴展的NoSQL資料庫
如果您的整個 _active set_ 適合單個機器的主內存(現代商品機器可以高達 128GB +),那麼您就沒有水平可擴展性問題:即,您絕對沒有理由進行分區(「分片") ) 你的資料庫和放棄關系。如果您的活動數據集適合內存,那麼任何帶有索引的適當調整的資料庫都將表現得足夠好,可以在資料庫本身成為限制之前使您的乙太網卡飽和。
如果您認為關系模型本身並不合適,您可以輕松地在 MySQL 之上構建一個「面向文檔的存儲」:這就是 Friendfeed 最終要做的,我會遵循他們的模型(除非我使用 Avro (軟體)、Apache Thrift 或 Google Protocol Buffers 而不是特定於語言的序列化)-
http://bret.appspot.com/entry/how-friendfeed-uses-mysql
如果您的站點變得非常成功,您將擁有一個不再適合您機器的主內存的活動集。在這種情況下,設計不當的存儲引擎的性能會迅速下降。但是,MySQL 的 InnoDB(或 Postgres 的存儲引擎)仍然允許您使用旋轉磁碟保持(取決於您的請求分布)大約 2:1-5:1 的數據與內存比率。一旦超出這個范圍,性能就會開始迅速下降(因為您要為每個請求進行多次磁碟搜索)。現在,您最好的做法是升級到 SSD(固態驅動器),這再次允許您在資料庫成為限制之前使乙太網卡飽和。
最後,當您遇到不適合的數據集大小時,例如,軟體 raid 1 + 0 配置中的多個 SSD(同時為備份、多個版本的數據等提供空間...),那麼您必須水平縮放。也就是說,您必須使用本質上支持分區的資料庫(例如 Riak、Voldemort、Cassandra、HBase),或者在基於 MySQL/Postgres 的數據存儲之上構建應用程序級分區層。我無法告訴您哪種解決方案是正確的,因為我(或您)都不知道您的數據及其訪問模式在那時會是什麼樣子。也就是說,編寫自己的分片層是您可以在代碼中引入額外錯誤的另一個地方:不必構建自己的分布式資料庫(您通過構建分片層有效地做的事情)是使用現有的主要吸引力一、可擴展的NoSQL數據
⑤ 哪一類數據更適合使用雲資料庫mysql來存儲
視頻、游戲等行業的核心存儲通常使用雲資料庫MySQL。
雲資料庫MySQL提供主從數據存儲,保障線上數據安全,具有高可靠性;完善的數據自動備份機制,數據可保留時間長,具有高可用性。高性能、高可靠等性能,因此可輕松應對移動在線游戲服務部署。
雲資料庫MySQL的性能優勢:第一,強大的彈性擴展能;第二,超高的性能;第三,方便實惠:只需單擊滑鼠就可完成操作;第四,擁有智能運維支撐;第五,安全可靠。
⑥ 常用的資料庫軟體有哪些
常用的資料庫軟體有:
1、Oracle
70年代 一間名為Ampex的軟體公司,正為中央情報局設計一套名叫Oracle的資料庫,Ellison是程序員之一。Oracle是世界領先的信息管理軟體開發商,因其復雜的關系資料庫產品而聞名。Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站、銀行、證券、電信等都選用了Oracle系統。
2、SQL Server
SQLServer(Structured Query Language Server) 是一個關系資料庫管理系統(DBMS)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發的,於1988 年推出了第一個OS/2 版本。
在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。
3、ACCESS
Access 是微軟公司推出的基於Windows的桌面關系資料庫管理系統(RDBMS,即Relational Database Management System),是Office系列應用軟體之一。
它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立資料庫系統的對象;提供了多種向導、生成器、模板,把數據存儲、數據查詢、界面設計、報表生成等操作規范化;為建立功能完善的資料庫管理系統提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分數據管理的任務。
4、DB2
IBM公司研製的一種關系型資料庫系統。DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於OS/2.Windows等平台下。
DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。
5、MySQL
MySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。
而2009年,SUN又被Oracle收購。對於Mysql的前途,沒有任何人抱樂觀的態度。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
(6)適合存儲鏈路的資料庫擴展閱讀:
Visual FoxPro原名FoxBase,最初是由美國Fox Software公司於1988年推出的資料庫產品,在DOS上運行,與xBase系列兼容。
FoxPro是FoxBase的加強版,最高版本曾出過2.6。之後於1992年,Fox Software公司被Microsoft收購,加以發展,使其可以在Windows上運行,並且更名為 Visual FoxPro。
FoxPro比FoxBASE在功能和性能上又有了很大的改進,主要是引入了窗口、按紐、列表框和文本框等控制項,進一步提高了系統的開發能力。
網路-資料庫軟體
⑦ 資料庫有哪幾種
常用資料庫有:
1、關系型資料庫
關系型資料庫是由IBM的E.F. Codd於1970年發明的,它是一個表格資料庫,其中定義了數據,因此可以以多種不同的方式對其進行重組和訪問。關系資料庫由一組表組成,其中的數據屬於預定義的類別。每個表在一個列中至少有一個數據類別,並且每一行對於列中定義的類別都有一個特定的數據實例。
2、分布式資料庫
分布式資料庫是一種資料庫,資料庫存儲在多個物理位置,處理在網路中的不同點之間分散或復制。分布式資料庫可以是同構的,也可以是異構的。同構分布式資料庫系統中的所有物理位置都具有相同的底層硬體,並運行相同的操作系統和資料庫應用程序。異構分布式資料庫中的硬體、操作系統或資料庫應用程序在每個位置上可能是不同的。
3、雲資料庫
雲資料庫是針對虛擬化環境優化或構建的資料庫。雲資料庫提供了一些好處,比如可以按每次使用支付存儲容量和帶寬的費用,還可以根據需要提供可伸縮性和高可用性。雲資料庫還為企業提供了在軟體即服務部署中支持業務應用程序的機會。
4、NoSQL資料庫
NoSQL資料庫對於大型分布式數據集非常有用。NoSQL資料庫對於關系資料庫無法解決的大數據性能問題非常有效。當組織必須分析大量非結構化數據或存儲在雲中多個虛擬伺服器上的數據時,它們是最有效的。
5、面向對象的資料庫
使用面向對象編程語言創建的項通常存儲在關系資料庫中,但是面向對象資料庫非常適合於這些項。面向對象的資料庫是圍繞對象(而不是操作)和數據(而不是邏輯)組織的。例如,關系資料庫中的多媒體記錄可以是可定義的數據對象,而不是字母數字值。
6、圖形資料庫
面向圖形的資料庫是一種NoSQL資料庫,它使用圖形理論存儲、映射和查詢關系。圖資料庫基本上是節點和邊的集合,其中每個節點表示一個實體,每個邊表示節點之間的連接。
⑧ 鏈路狀態路由選擇協議的路由器有哪三個資料庫
鏈路狀態路由協議:OSPF、IS-IS 距離矢量路由協議:RIP、EIGRP、IGRP、BGP
你的採納是我前進的動力,還有不懂的地方,請繼續「追問」
⑨ 常用的資料庫有哪幾種試著闡述每種資料庫的特點和使用范圍
關系資料庫、非關系型資料庫。
1、關系資料庫
特點:數據集中控制;減少數據冗餘等。
適用范圍:對於結構化數據的處理更合適,如學生成績、地址等,這樣的數據一般情況下需要使用結構化的查詢。
2、非關系資料庫
特點:易擴展;大數據量,高性能;靈活的數據模型等。
使用范圍:據模型比較簡單;需要靈活性更強的IT系統;對資料庫性能要求較高。
(9)適合存儲鏈路的資料庫擴展閱讀:
非關系資料庫的分類:
1、列存儲資料庫
這部分資料庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak。
2、文檔型資料庫
文檔型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型資料庫SequoiaDB,已經開源。
⑩ 資料庫有哪些
資料庫有:
1、MySQL
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB公司開發,屬於Oracle旗下產品。MySQL是最流行的關系型資料庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS(Relational Database Management System,關系資料庫管理系統)應用軟體之一。
2、Oracle
Oracle開發的關系資料庫產品因性能卓越而聞名,Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站也選用了Oracle系統,是世界最好的資料庫產品。
3、SqlServer
SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,並於1988年推出了第一個OS/2版本。
4、SQLite
SQLite,是一款輕型的資料庫,是遵守ACID的關系型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。
5、INFORMIX
Informix是IBM公司出品的關系資料庫管理系統(RDBMS)家族。作為一個集成解決方案,它被定位為作為IBM在線事務處理(OLTP)旗艦級數據服務系統。
6、Redis
Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSIC語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
7、MongoDB
MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。是非關系資料庫當中功能最豐富,最像關系資料庫的。
8、HBase
HBase是一個分布式的、面向列的開源資料庫,該技術來源於Fay Chang所撰寫的Google論文「Bigtable:一個結構化數據的分布式存儲系統」。就像Bigtable利用了Google文件系統(File System)所提供的分布式數據存儲一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。
9、Neo4J
Neo4j是一個高性能的,NOSQL圖形資料庫,它將結構化數據存儲在網路上而不是表中。它是一個嵌入式的、基於磁碟的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網路(從數學角度叫做圖)上而不是表中。10、CouchDB
10、CouchDB
CouchDB是一個開源的面向文檔的資料庫管理系統,可以通過 RESTful JavaScript Object Notation (JSON) API 訪問。它反映了 CouchDB 的目標具有高度可伸縮性,提供了高可用性和高可靠性,即使運行在容易出現故障的硬體上也是如此。