大數據資料庫頂層
Ⅰ 大數據資料庫有哪些
分享10個超好用的資料庫:
1、CouchDB
CouchDB是一款完全擁抱互聯網的資料庫,它將數據存儲在文檔中,這種文檔可以通過Web瀏覽器來查詢,並且用JavaScript來處理。它易於使用,在分布式上網路上具有高可用性和高擴展性。支持的操作系統:Windows、Linux、OS X和安卓。
2、Blazegraph
Blazegraph是一種高度擴展、高性能的資料庫。它既有使用開源許可證的版本,也有使用商業許可證的版本。
3、Cassandra
Cassandra資料庫最初由Facebook開發,現已被1500多家企業組織使用,它能支持超大規模集群;比如 說,蘋果部署的Cassandra系統就包括75000多個節點,擁有的數據量超過10 PB。
4、FlockDB
FlockDB是一種非常快、擴展性非常好的圖形資料庫,擅長存儲社交網路數據。雖然這個項目的開源版已有一段時間沒有更新了,但它仍可用於下載。
5、Neo4j
Neo4j是速度快、擴展性佳的原生圖形資料庫,它具有大規模擴展性、快速的密碼查詢性能和經過改進的開發效率。支持的操作系統:Windows和Linux。
6、Pivotal Greenplum Database
Greenplum是同類中不錯的企業級分析資料庫,能夠非常快速地對龐大的海量數據進行功能強大的分析。它是Pivotal大資料庫套件的一部分。支持的操作系統:Windows、Linux和OS X。
7、Impala
Cloudera基於SQL的Impala資料庫是面向Apache Hadoop的開源分析資料庫。它可以作為一款獨立產品來下載,又是Cloudera的商業大數據產品的一部分。支持的操作系統:Linux和OS X。
8、InfoBright社區版
InfoBright為數據分析而設計,這是一種面向列的資料庫,具有很高的壓縮比。InfoBright.com提供基於同一代碼的收費產品,提供支持服務。支持的操作系統:Windows和Linux。
9、Hibari
這個基於Erlang的項目是一種分布式有序鍵值存儲系統,有很強的一致性。它最初是由Gemini Mobile Technologies開發的,現在已被歐洲和亞洲的幾家電信運營商所使用。支持的操作系統:與操作系統無關。
10、MongoDB
mongoDB的下載量已超過1000萬人次,是一款極其受歡迎的NoSQL資料庫。MongoDB.com上提供了企業版、支持、培訓及相關產品和服務。支持的操作系統:Windows、Linux、OS X和Solaris。
Ⅱ 資料庫 大數據操作
下面以關系資料庫系統Informix為例,介紹改善用戶查詢計劃的方法。 1.合理使用索引 索引是資料庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的資料庫產品都採用IBM最先提出的ISAM索引結構。索引的使用要恰到好處,其使用原則如下: ●在經常進行連接,但是沒有指定為外鍵的列上建立索引,而不經常連接的欄位則由優化器自動生成索引。 ●在頻繁進行排序或分組(即進行group by或order by操作)的列上建立索引。 ●在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。比如在雇員表的「性別」列上只有「男」與「女」兩個不同值,因此就無必要建立索引。如果建立索引不但不會提高查詢效率,反而會嚴重降低更新速度。 ●如果待排序的列有多個,可以在這些列上建立復合索引(compound index)。 ●使用系統工具。如Informix資料庫有一個tbcheck工具,可以在可疑的索引上進行檢查。在一些資料庫伺服器上,索引可能失效或者因為頻繁操作而使得讀取效率降低,如果一個使用索引的查詢不明不白地慢下來,可以試著用tbcheck工具檢查索引的完整性,必要時進行修復。另外,當資料庫表更新大量數據後,刪除並重建索引可以提高查詢速度。 2.避免或簡化排序 應當簡化或避免對大型表進行重復的排序。當能夠利用索引自動以適當的次序產生輸出時,優化器就避免了排序的步驟。以下是一些影響因素: ●索引中不包括一個或幾個待排序的列; ●group by或order by子句中列的次序與索引的次序不一樣; ●排序的列來自不同的表。 為了避免不必要的排序,就要正確地增建索引,合理地合並資料庫表(盡管有時可能影響表的規范化,但相對於效率的提高是值得的)。如果排序不可避免,那麼應當試圖簡化它,如縮小排序的列的范圍等。 3.消除對大型錶行數據的順序存取 在嵌套查詢中,對表的順序存取對查詢效率可能產生致命的影響。比如採用順序存取策略,一個嵌套3層的查詢,如果每層都查詢1000行,那麼這個查詢就要查詢10億行數據。避免這種情況的主要方法就是對連接的列進行索引。例如,兩個表:學生表(學號、姓名、年齡……)和選課表(學號、課程號、成績)。如果兩個表要做連接,就要在「學號」這個連接欄位上建立索引。 還可以使用並集來避免順序存取。盡管在所有的檢查列上都有索引,但某些形式的where子句強迫優化器使用順序存取。下面的查詢將強迫對orders表執行順序操作: SELECT * FROM orders WHERE (customer_num=104 AND order_num>1001) OR order_num=1008 雖然在customer_num和order_num上建有索引,但是在上面的語句中優化器還是使用順序存取路徑掃描整個表。因為這個語句要檢索的是分離的行的集合,所以應該改為如下語句: SELECT * FROM orders WHERE customer_num=104 AND order_num>1001 UNION SELECT * FROM orders WHERE order_num=1008 這樣就能利用索引路徑處理查詢。 4.避免相關子查詢 一個列的標簽同時在主查詢和where子句中的查詢中出現,那麼很可能當主查詢中的列值改變之後,子查詢必須重新查詢一次。查詢嵌套層次越多,效率越低,因此應當盡量避免子查詢。如果子查詢不可避免,那麼要在子查詢中過濾掉盡可能多的行。 5.避免困難的正規表達式 MATCHES和LIKE關鍵字支持通配符匹配,技術上叫正規表達式。但這種匹配特別耗費時間。例如:SELECT * FROM customer WHERE zipcode LIKE 「98_ _ _」 即使在zipcode欄位上建立了索引,在這種情況下也還是採用順序掃描的方式。如果把語句改為SELECT * FROM customer WHERE zipcode >「98000」,在執行查詢時就會利用索引來查詢,顯然會大大提高速度。 另外,還要避免非開始的子串。例如語句:SELECT * FROM customer WHERE zipcode[2,3]>「80」,在where子句中採用了非開始子串,因而這個語句也不會使用索引。 6.使用臨時表加速查詢 把表的一個子集進行排序並創建臨時表,有時能加速查詢。它有助於避免多重排序操作,而且在其他方面還能簡化優化器的工作。例如: SELECT cust.name,rcvbles.balance,……other columns FROM cust,rcvbles WHERE cust.customer_id = rcvlbes.customer_id AND rcvblls.balance>0 AND cust.postcode>「98000」 ORDER BY cust.name 如果這個查詢要被執行多次而不止一次,可以把所有未付款的客戶找出來放在一個臨時文件中,並按客戶的名字進行排序: SELECT cust.name,rcvbles.balance,……other columns FROM cust,rcvbles WHERE cust.customer_id = rcvlbes.customer_id AND rcvblls.balance>0 ORDER BY cust.name INTO TEMP cust_with_balance 然後以下面的方式在臨時表中查詢: SELECT * FROM cust_with_balance WHERE postcode>「98000」 臨時表中的行要比主表中的行少,而且物理順序就是所要求的順序,減少了磁碟I/O,所以查詢工作量可以得到大幅減少。 注意:臨時表創建後不會反映主表的修改。在主表中數據頻繁修改的情況下,注意不要丟失數據。 7.用排序來取代非順序存取 非順序磁碟存取是最慢的操作,表現在磁碟存取臂的來回移動。SQL語句隱藏了這一情況,使得我們在寫應用程序時很容易寫出要求存取大量非順序頁的查詢。 有些時候,用資料庫的排序能力來替代非順序的存取能改進查詢。 實例分析 下面我們舉一個製造公司的例子來說明如何進行查詢優化。製造公司資料庫中包括3個表,模式如下所示: 1.part表 零件號?????零件描述????????其他列 (part_num)?(part_desc)??????(other column) 102,032???Seageat 30G disk?????…… 500,049???Novel 10M network card??…… …… 2.vendor表 廠商號??????廠商名??????其他列 (vendor _num)?(vendor_name) (other column) 910,257?????Seageat Corp???…… 523,045?????IBM Corp?????…… …… 3.parven表 零件號?????廠商號?????零件數量 (part_num)?(vendor_num)?(part_amount) 102,032????910,257????3,450,000 234,423????321,001????4,000,000 …… 下面的查詢將在這些表上定期運行,並產生關於所有零件數量的報表: SELECT part_desc,vendor_name,part_amount FROM part,vendor,parven WHERE part.part_num=parven.part_num AND parven.vendor_num = vendor.vendor_num ORDER BY part.part_num 如果不建立索引,上述查詢代碼的開銷將十分巨大。為此,我們在零件號和廠商號上建立索引。索引的建立避免了在嵌套中反復掃描。關於表與索引的統計信息如下: 表?????行尺寸???行數量?????每頁行數量???數據頁數量 (table)?(row size)?(Row count)?(Rows/Pages)?(Data Pages) part????150?????10,000????25???????400 Vendor???150?????1,000???? 25???????40 Parven???13????? 15,000????300?????? 50 索引?????鍵尺寸???每頁鍵數量???頁面數量 (Indexes)?(Key Size)?(Keys/Page)???(Leaf Pages) part?????4??????500???????20 Vendor????4??????500???????2 Parven????8??????250???????60 看起來是個相對簡單的3表連接,但是其查詢開銷是很大的。通過查看系統表可以看到,在part_num上和vendor_num上有簇索引,因此索引是按照物理順序存放的。parven表沒有特定的存放次序。這些表的大小說明從緩沖頁中非順序存取的成功率很小。此語句的優化查詢規劃是:首先從part中順序讀取400頁,然後再對parven表非順序存取1萬次,每次2頁(一個索引頁、一個數據頁),總計2萬個磁碟頁,最後對vendor表非順序存取1.5萬次,合3萬個磁碟頁。可以看出在這個索引好的連接上花費的磁碟存取為5.04萬次。
Ⅲ 爆棚的巨大資料庫跟系統默認的大資料庫有多大區別
從以下定義中很容易理解3者之間的關系: 資料庫系統(database systems),是由數據版庫及其管理軟體組成的系統權。資料庫系統一般由資料庫、資料庫管理系統(DBMS)、應用系統、資料庫管理員和用戶構成。DBMS是資料庫系統的基礎和核心。 資料庫管理系統(database management system)是一種操縱和管理資料庫的大型軟體,是用於建立、使用和維護資料庫,簡稱DBMS。常見的資料庫管理系統有:Oracle、Sybase、Informix、Microsoft SQL Server等。
Ⅳ 大數據常用哪些資料庫
通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如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內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
Ⅳ 大數據正在如何改變資料庫格局
大數據正在如何改變資料庫格局
提及「資料庫」,大多數人會想到擁有30多年風光歷史的RDBMS。然而,這可能很快就會發生改變。
一大批新的競爭者都在爭奪這一塊重要市場,他們的方法是多種多樣的,卻都有一個共同點:極其專注於大數據。推動新的數據迭代衍生品大部分都是基於底層大數據的3V特徵:數量,速度和種類。本質上來講,今天的數據比以往任何時候都要傳輸更快,體積更大, 同時更加多樣化。這是一個新的數據世界,換言之,傳統的關系資料庫管理系統並沒有真正為此而設計。「基本上,他們不能擴展到大量,或快速,或不同種類的數據。」一位數據分析、數據科學咨詢機構的總裁格雷戈里認為。這就是哈特漢克斯最近發現。截至到2013年左右,營銷服務機構使用不同的資料庫,包括Microsoft SQL Server和Oracle真正應用集群(RAC)的組合。「我們注意到,數據隨著時間的增長,我們的系統不能足夠快速的處理信息」一位科技發展公司的負責人肖恩說到。「如果你不斷地購買伺服器,你只能繼續走到這幺遠,我們希望確保自己有向外擴展的平台。」最小化中斷是一個重要的目標,Iannuzzi說到,因此「我們不能只是切換到Hadoop。」相反,卻選擇了拼接機器,基本上把完整的SQL資料庫放到目前流行的Hadoop大數據平台之上,並允許現有的應用程序能夠與它連接,他認為。哈特漢克斯現在是在執行的初期階段,但它已經看到了好處,Iannuzzi說,包括提高容錯性,高可用性,冗餘性,穩定性和「性能全面提升」。一種完美風暴推動了新的資料庫技術的出現,IDC公司研究副總裁Carl Olofson說到。首先,「我們正在使用的設備與過去對比,處理大數據集更加快速,靈活性更強」Olofson說。在過去,這樣的集合「幾乎必須放在旋轉磁碟上」,而且數據必須以特定的方式來結構化,他解釋說。現在有64位定址,使得能夠設置更大的存儲空間以及更快的網路,並能夠串聯多台計算器充當單個大型資料庫。「這些東西在不可用之前開辟了可能性」Olofson說。與此同時,工作負載也發生了變化。10年前的網站主要是靜態的,例如,今天我們享受到的網路服務環境和互動式購物體驗。反過來,需要新的可擴展性,他說。公司正在利用新的方式來使用數據。雖然傳統上我們大部分的精力都放在了對事務處理 – 銷售總額的記錄,比如,數據存儲在可以用來分析的地方 – 現在我們做的更多。應用狀態管理就是一個例子假設你正在玩一個網路游戲。該技術會記錄你與系統的每個會話並連接在一起,以呈現出連續的體驗,即使你切換設備或各種移動,不同的伺服器都會進行處理,Olofson解釋說。數據必須保持連續性,這樣企業才可以分析問題,例如「為什麼從來沒有人穿過水晶廳」。在網路購物方面,為什麼對方點擊選擇顏色後大多數人不會購買某個特殊品牌的鞋子。「以前,我們並沒試圖解決這些問題,或者我們試圖扔進盒子也不太合適」Olofson說。Hadoop是當今新的競爭者中一個重量級的產品。雖然他本身不是一個資料庫,它的成長為企業解決大數據扮演關鍵角色。從本質上講,Hadoop是一個運行高度並行應用程序的數據中心平台,它有很強的可擴展性。通過允許企業擴展「走出去」的分布方式,而不是通過額外昂貴的伺服器「向上」擴展,「它使得我們可以低成本地把一個大的數據集匯總,然後進行分析研究成果」Olofson說。其他新的RDBMS的替代品如NoSQL家族產品,其中包括MongoDB -目前第四大流行資料庫管理系統,比照DB引擎和MarkLogic非結構化數據存儲服務。「關系型資料庫一直是一項偉大的技術持續了30年,但它是建立在不同的時代有不同的技術限制和不同的市場需求,」MarkLogic的執行副總裁喬·產品帕卡說。大數據是不均勻的,他說。許多傳統的技術,這仍然是一個基本要求。「想像一下,你的筆記本電腦上唯一的程序是Excel」帕卡說。「設想一下,你要和你的朋友利用網路保持聯系 – 或者你正在寫一個合約卻不適合放進行和列中。」拼接數據集是特別棘手的「關系型,你把所有這些數據集中在一起前,必須先決定如何去組織所有的列,」他補充說。「我們可以採取任何形式或結構,並立即開始使用它。」NoSQL資料庫沒有使用關系數據模型,並且它們通常不具有SQL介面。盡管許多的NoSQL存儲折中支持速度等其他因素,MarkLogic為企業定身量做,提供更為周全的選擇。NoSQL儲存市場有相當大的增長,據市場研究媒體,不是每個人都認為這是正確的做法-至少,不是在所有情況下。NoSQL系統「解決了許多問題,他們橫向擴展架構,但他們卻拋出了SQL,」一位CEO-Monte Zweben說。這反過來,又為現有的代碼構成問題。Splice Machine是一家基於Hadoop的實時大數據技術公司,支持SQL事務處理,並針對OLAP 和OLAP應用進行實時優化處理。它被稱為替代NewSQL的一個例子,另一類預期會在未來幾年強勁增長。「我們的理念是保持SQL,但橫向擴展架構」Zweben說。「這是新事物,但我們正在努力試圖使它讓人們不必重寫自己的東西。」深度信息科學選擇並堅持使用SQL,但需要另一種方法。公司的DeepSQL資料庫使用相同的應用程序編程介面(API)和關系模型如MySQL,意味著沒有應用變化的需求而使用它。但它以不同的方式處理數據,使用機器學習。DeepSQL可以自動適應使用任何工作負載組合的物理,虛擬或雲主機,該公司表示,從而省去了手動優化資料庫的需要。該公司的首席戰略官Chad Jones表示,在業績大幅增加的同時,也有能力將「規模化」為上千億的行。一種來自Algebraix數據完全不同的方式,表示已經開發了數據的第一個真正的數學化基礎。而計算器硬體需在數學建模前建成,這不是在軟體的情況下,Algebraix首席執行官查爾斯銀說。「軟體,尤其是數據,從未建立在數學的基礎上」他說,「軟體在很大程度上是語言學的問題。」經過五年的研發,Algebraix創造了所謂的「數據的代數」集合論,「數據的通用語言」Silver說。「大數據骯臟的小秘密是數據仍然放在不與其他數據小倉融合的地方」Silver解釋說。「我們已經證明,它都可以用數學方法來表示所有的集成。」配備一個基礎的平台,Algebraix現在為企業提供業務分析作為一種服務。改進的性能,容量和速度都符合預期的承諾。時間會告訴我們哪些新的競爭者取得成功,哪些沒有,但在此期間,長期的領導者如Oracle不會完全停滯不前。「軟體是一個非常時尚行業」安德魯·門德爾松,甲骨文執行副總裁資料庫伺服器技術說。「事情經常去從流行到不受歡迎,回再次到流行。」今天的許多創業公司「帶回炒冷飯少許拋光或旋轉就可以了」他說。「這是一個新一代孩子走出學校和重塑的東西。」SQL是「唯一的語言,可以讓業務分析師提出問題並得到答案,他們沒有程序員,」門德爾松說。「大市場將始終是關系型。」至於新的數據類型,關系型資料庫產品早在上世紀90年代發展為支持非結構化數據,他說。在2013年,甲骨文的同名資料庫版本12C增加了支持JSON(JavaScript對象符號)。與其說需要一個不同類型的資料庫,它更是一種商業模式的轉變,門德爾松說。「雲,若是每個人都去,這將破壞這些小傢伙」他說。「大家都在雲上了,所以在這里有沒有地方來放這些小傢伙?「他們會去亞馬遜的雲與亞馬遜競爭?」 他補充說。「這將是困難的。」甲骨文有「最廣泛的雲服務」門德爾松說。「在現在的位置,我們感覺良好。」Gartner公司的研究主任里克·格林沃爾德,傾向於採取了類似的觀點。「對比傳統強大的RDBMS,新的替代品並非功能齊全」格林沃爾德說。「一些使用案例可以與新的競爭者來解決,但不是全部,並非一種技術」。展望未來,格林沃爾德預計,傳統的RDBMS供貨商感到價格壓力越來越大,並為他們的產品增加新的功能。「有些人會自由地帶來新的競爭者進入管理自己的整個數據生態系統」他說。至於新的產品,有幾個會生存下來,他預測「許多人將被收購或資金耗盡」。今天的新技術並不代表傳統的RDBMS的結束,「正在迅速發展自己」IDC的Olofson。贊成這種說法,「RDBMS是需要明確定義的數據 – 總是會有這樣一個角色。」但也會有一些新的競爭者的角色,他說,特別是物聯網技術和新興技術如非易失性內存晶元模塊(NVDIMM)占據上風。以上是小編為大家分享的關於大數據正在如何改變資料庫格局的相關內容,更多信息可以關注環球青藤分享更多干貨
Ⅵ 大數據量的系統的資料庫結構如何設計
1、把你表中經常查詢的和不常用的分開幾個表,也就是橫向切分
2、把不同類型的分成幾個表,縱向切分
3、常用聯接的建索引
4、伺服器放幾個硬碟,把數據、日誌、索引分盤存放,這樣可以提高IO吞吐率
5、用優化器,優化你的查詢
6、考慮冗餘,這樣可以減少連接
7、可以考慮建立統計表,就是實時生成總計表,這樣可以避免每次查詢都統計一次
mrzxc 等說的好,考慮你的系統,注意負載平衡,查詢優化,25 萬並不大,可以建一個表,然後按mrzxc 的3 4 5 7 優化。 速度,影響它的因數太多了,且數據量越大越明顯。
1、存儲 將硬碟分成NTFS格式,NTFS比FAT32快,並看你的數據文件大小,1G以上你可以採用多資料庫文件,這樣可以將存取負載分散到多個物理硬碟或磁碟陣列上。
2、tempdb tempdb也應該被單獨的物理硬碟或磁碟陣列上,建議放在RAID 0上,這樣它的性能最高,不要對它設置最大值讓它自動增長
3、日誌文件 日誌文件也應該和數據文件分開在不同的理硬碟或磁碟陣列上,這樣也可以提高硬碟I/O性能。
4、分區視圖 就是將你的數據水平分割在集群伺服器上,它適合大規模OLTP,SQL群集上,如果你資料庫不是訪問特別大不建議使用。
5、簇索引 你的表一定有個簇索引,在使用簇索引查詢的時候,區塊查詢是最快的,如用between,應為他是物理連續的,你應該盡量減少對它的updaet,應為這可以使它物理不連續。
6、非簇索引 非簇索引與物理順序無關,設計它時必須有高度的可選擇性,可以提高查詢速度,但對表update的時候這些非簇索引會影響速度,且佔用空間大,如果你願意用空間和修改時間換取速度可以考慮。
7、索引視圖 如果在視圖上建立索引,那視圖的結果集就會被存儲起來,對與特定的查詢性能可以提高很多,但同樣對update語句時它也會嚴重減低性能,一般用在數據相對穩定的數據倉庫中。
8、維護索引 你在將索引建好後,定期維護是很重要的,用dbcc showcontig來觀察頁密度、掃描密度等等,及時用dbcc indexdefrag來整理表或視圖的索引,在必要的時候用dbcc dbreindex來重建索引可以受到良好的效果。 不論你是用幾個表1、2、3點都可以提高一定的性能,5、6、8點你是必須做的,至於4、7點看你的需求,我個人是不建議的。打了半個多小時想是在寫論文,希望對你有幫助。
Ⅶ 大數據用什麼資料庫
大數據現在通常採用的都是雲資料庫。
Ⅷ 大數據量的資料庫表設計技巧
大數據量的資料庫表設計技巧
即使是一個非常簡單的資料庫應用系統,它的數據量增加到一定程度也會引起發一系列問題。如果在設計資料庫的時候,就提前考慮這些問題,可以避免由於系統反映遲緩而引起的用戶抱怨。
技巧1:盡量不要使用代碼。比如性別這個欄位常見的做法:1代表男,0代表女。這樣的做法意味著每一次查詢都需要關聯代碼表。
技巧2:歷史數據中所有欄位與業務表不要有依賴關系。如保存列印發票的時候,不要只保留單位代碼,而應當把單位名稱也保存下來。
技巧3:使用中間表。比如職工工資,可以把每一位職工工資的合計保存在一張中間表中,當職工某一工資項目發生變化的時候,同時對中間表的數據做相應更新。
技巧4:使用統計表。需要經常使用的統計數據,生成之後可以用專門的表來保存。
技巧5:分批保存歷史數據。歷史數據可以分段保存,比如2003年的歷史數據保存在 《2003表名》中,而2004年的歷史數據則保存在《2004表名》中。
技巧6:把不常用的數據從業務表中移到歷史表。比如職工檔案表,當某一職工離開公司以後,應該把他的職工檔案表中的信息移動到《離職職工檔案表》中。
1、經常查詢的和不常用的分開幾個表,也就是橫向切分
2、把不同類型的分成幾個表,縱向切分
3、常用聯接的建索引
4、伺服器放幾個硬碟,把數據、日誌、索引分盤存放,這樣可以提高IO吞吐率
5、用優化器,優化你的查詢
6、考慮冗餘,這樣可以減少連接
7、可以考慮建立統計表,就是實時生成總計表,這樣可以避免每次查詢都統計一次
8、用極量數據測試一下數據
速度,影響它的因數太多了,且數據量越大越明顯。
1、存儲將硬碟分成NTFS格式,NTFS比FAT32快,並看你的數據文件大小,1G以上你可以採用多資料庫文件,這樣可以將存取負載分散到多個物理硬碟或磁碟陣列上。
2、tempdbtempdb也應該被單獨的物理硬碟或磁碟陣列上,建議放在RAID0上,這樣它的性能最高,不要對它設置最大值讓它自動增長
3、日誌文件日誌文件也應該和數據文件分開在不同的理硬碟或磁碟陣列上,這樣也可以提高硬碟I/O性能。
4、分區視圖就是將你的數據水平分割在集群伺服器上,它適合大規模OLTP,SQL群集上,如果你資料庫不是訪問特別大不建議使用。
5、簇索引你的表一定有個簇索引,在使用簇索引查詢的時候,區塊查詢是最快的,如用between,應為他是物理連續的,你應該盡量減少對它的updaet,應為這可以使它物理不連續。
6、非簇索引非簇索引與物理順序無關,設計它時必須有高度的可選擇性,可以提高查詢速度,但對表update的時候這些非簇索引會影響速度,且佔用空間大,如果你願意用空間和修改時間換取速度可以考慮。
7、索引視圖如果在視圖上建立索引,那視圖的結果集就會被存儲起來,對與特定的查詢性能可以提高很多,但同樣對update語句時它也會嚴重減低性能,一般用在數據相對穩定的數據倉庫中。
8、維護索引你在將索引建好後,定期維護是很重要的,用dbccshowcontig來觀察頁密度、掃描密度等等,及時用dbccindexdefrag來整理表或視圖的索引,在必要的時候用dbccdbreindex來重建索引可以受到良好的效果。
不論你是用幾個表1、2、3點都可以提高一定的性能,5、6、8點你是必須做的,至於4、7點看你的需求,我個人是不建議的。
Ⅸ 大數據和傳統資料庫的區別是什麼
現在的大數據分析,跟傳統意義的分析有一個本質區別,就是傳統的分析是基於結構化、關系性的數據。
而且往往是取一個很小的數據集,來對整個數據進行預測和判斷。但現在是大數據時代,理念已經完全改變了,現在的大數據分析,是對整個數據全集直接進行存儲和管理分析