通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如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內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。
❷ 微服務容器平檯面對大數據存儲是怎麼做的
整體而言,大數據平台從平台部署和數據分析過程可分為如下幾步:
1、linux系統安裝
一般使用開源版的Redhat系統--CentOS作為底層平台。為了提供穩定的硬體基礎,在給硬碟做RAID和掛載數據存儲節點的時,需要按情況配置。例如,可以選擇給HDFS的namenode做RAID2以提高其穩定性,將數據存儲與操作系統分別放置在不同硬碟上,以確保操作系統的正常運行。
2、分布式計算平台/組件安裝
目前國內外的分布式系統的大多使用的是Hadoop系列開源系統。Hadoop的核心是HDFS,一個分布式的文件系統。在其基礎上常用的組件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。
先說下使用開源組件的優點:1)使用者眾多,很多bug可以在網上找的答案(這往往是開發中最耗時的地方)。2)開源組件一般免費,學習和維護相對方便。3)開源組件一般會持續更新,提供必要的更新服務『當然還需要手動做更新操作』。4)因為代碼開源,若出bug可自由對源碼作修改維護。
再簡略講講各組件的功能。分布式集群的資源管理器一般用Yarn,『全名是Yet Another Resource Negotiator』。常用的分布式數據數據『倉』庫有Hive、Hbase。Hive可以用SQL查詢『但效率略低』,Hbase可以快速『近實時』讀取行。外部資料庫導入導出需要用到Sqoop。Sqoop將數據從Oracle、MySQL等傳統資料庫導入Hive或Hbase。Zookeeper是提供數據同步服務,Yarn和Hbase需要它的支持。Impala是對hive的一個補充,可以實現高效的SQL查詢。ElasticSearch是一個分布式的搜索引擎。針對分析,目前最火的是Spark『此處忽略其他,如基礎的MapRece 和 Flink』。Spark在core上面有ML lib,Spark Streaming、Spark QL和GraphX等庫,可以滿足幾乎所有常見數據分析需求。
值得一提的是,上面提到的組件,如何將其有機結合起來,完成某個任務,不是一個簡單的工作,可能會非常耗時。
3、數據導入
前面提到,數據導入的工具是Sqoop。用它可以將數據從文件或者傳統資料庫導入到分布式平台『一般主要導入到Hive,也可將數據導入到Hbase』。
4、數據分析
數據分析一般包括兩個階段:數據預處理和數據建模分析。
數據預處理是為後面的建模分析做准備,主要工作時從海量數據中提取可用特徵,建立大寬表。這個過程可能會用到Hive SQL,Spark QL和Impala。
數據建模分析是針對預處理提取的特徵/數據建模,得到想要的結果。如前面所提到的,這一塊最好用的是Spark。常用的機器學習演算法,如樸素貝葉斯、邏輯回歸、決策樹、神經網路、TFIDF、協同過濾等,都已經在ML lib裡面,調用比較方便。
5、結果可視化及輸出API
可視化一般式對結果或部分原始數據做展示。一般有兩種情況,行熟悉展示,和列查找展示。在這里,要基於大數據平台做展示,會需要用到ElasticSearch和Hbase。Hbase提供快速『ms級別』的行查找。 ElasticSearch可以實現列索引,提供快速列查找。
平台搭建主要問題:
1、穩定性 Stability
理論上來說,穩定性是分布式系統最大的優勢,因為它可以通過多台機器做數據及程序運行備份以確保系統穩定。但也由於大數據平台部署於多台機器上,配置不合適,也可能成為最大的問題。 曾經遇到的一個問題是Hbase經常掛掉,主要原因是采購的硬碟質量較差。硬碟損壞有時會到導致Hbase同步出現問題,因而導致Hbase服務停止。由於硬碟質量較差,隔三差五會出現服務停止現象,耗費大量時間。結論:大數據平台相對於超算確實廉價,但是配置還是必須高於家用電腦的。
2、可擴展性 Scalability
如何快速擴展已有大數據平台,在其基礎上擴充新的機器是雲計算等領域應用的關鍵問題。在實際2B的應用中,有時需要增減機器來滿足新的需求。如何在保留原有功能的情況下,快速擴充平台是實際應用中的常見問題。
上述是自己項目實踐的總結。整個平台搭建過程耗時耗力,非一兩個人可以完成。一個小團隊要真正做到這些也需要耗費很長時間。
目前國內和國際上已有多家公司提供大數據平台搭建服務,國外有名的公司有Cloudera,Hortonworks,MapR等,國內也有華為、明略數據、星環等。另外有些公司如明略數據等還提供一體化的解決方案,尋求這些公司合作對 於入門級的大數據企業或沒有大數據分析能力的企業來說是最好的解決途徑。
對於一些本身體量較小或者目前數據量積累較少的公司,個人認為沒有必要搭建這一套系統,暫時先租用AWS和阿里雲就夠了。對於數據量大,但數據分析需求較簡單的公司,可以直接買Tableau,Splunk,HP Vertica,或者IBM DB2等軟體或服務即可。
-
❸ 大數據分析需要哪些工具
說到大數據,肯定少不了分析軟體,這應該是大數據工作的根基,但市面上很多各種分析軟體,如果不是過來人,真的很難找到適合自己或符合企業要求的。小編通過各大企業對大數據相關行業的崗位要求,總結了以下幾點:
(1)SQL資料庫的基本操作,會基本的數據管理
(2)會用Excel/SQL做基本的數據分析和展示
(3)會用腳本語言進行數據分析,Python or R
(4)有獲取外部數據的能力,如爬蟲
(5)會基本的數據可視化技能,能撰寫數據報告
(6)熟悉常用的數據挖掘演算法:回歸分析、決策樹、隨機森林、支持向量機等
對於學習大數據,總體來說,先學基礎,再學理論,最後是工具。基本上,每一門語言的學習都是要按照這個順序來的。
1、學習數據分析基礎知識,包括概率論、數理統計。基礎這種東西還是要掌握好的啊,基礎都還沒扎實,知識大廈是很容易倒的哈。
2、你的目標行業的相關理論知識。比如金融類的,要學習證券、銀行、財務等各種知識,不然到了公司就一臉懵逼啦。
3、學習數據分析工具,軟體結合案列的實際應用,關於數據分析主流軟體有(從上手度從易到難):Excel,SPSS,stata,R,Python,SAS等。
4、學會怎樣操作這些軟體,然後是利用軟體從數據的清洗開始一步步進行處理,分析,最後輸出結果,檢驗及解讀數據。
❹ 大數據都需要什麼技術
、數據採集:ETL工具負責將分布的、異構數據源中的數據如關系數據、平面數據文件等抽取到臨時中間層後
❺ 國內有哪些公司能提供大數據服務
國內大數據服務公司很多,但需要判斷是否合規,目前國家對於數據行業極力支持但同時監管也在加強,合規將是企業挑選合規產品與否的關鍵要素,例如,MobTech是一家數據智能科技平台,覆蓋設備數超138億,累計App數超64萬,重量的是合規自有數據,幾乎覆蓋全國95%以上設備,並通過多年線上大數據積累,進一步融合線下真實場景數據,形成業內獨一無二的第三方全景大數據服務平台,更智能的洞察用戶多方面的個性化特徵,形成6000+用戶標簽維度,涵蓋人口屬性、經濟水平、地理屬性、興趣愛好、金融理財、餐飲美食、居家建材、旅遊出行、媒介使用傾向等更多垂直分類,滿足零售、營銷、金融風控、地產商圈分析、汽車等多場景需求。在數據服務商篩選中,一定要注意數據合規性,數據體量,以及數據細分維度,是否能滿足你的需求。
❻ 簡述操作系統層面可以對大數據處理提供哪些支持
大數據是指以多元形式,自許多來源搜集而來的龐大數據組,往往具有實時性。在企業對企業銷售的情況下,這些數據可能得自社交網路、電子商務網站、顧客來訪紀錄,還有許多其他來源。這些數據,並非公司顧客關系管理資料庫的常態數據組。從技術上看,大數據與雲計算的關系就像一枚硬幣的正反面一樣密不可分。大數據必然無法用單台的計算機進行處理,必須採用分布式計算架構。它的特色在於對海量數據的挖掘,但它必須依託雲計算的分布式處理、分布式資料庫、雲存儲和/或虛擬化技術。大數據的意義是由人類日益普及的網路行為所伴生的,受到相關部門、企業採集的,蘊含數據生產者真實意圖、喜好的,非傳統結構和意義的數據 。
❼ 大數據存儲需要具備什麼
大數據之大 大是相對而言的概念。例如,對於像SAPHANA那樣的內存資料庫來說,2TB可能就已經是大容量了;而對於像谷歌這樣的搜索引擎,EB的數據量才能稱得上是大數據。 大也是一個迅速變化的概念。HDS在2004年發布的USP存儲虛擬化平台具備管理32PB內外部附加存儲的能力。當時,大多數人認為,USP的存儲容量大得有些離譜。但是現在,大多數企業都已經擁有PB級的數據量,一些搜索引擎公司的數據存儲量甚至達到了EB級。由於許多家庭都保存了TB級的數據量,一些雲計算公司正在推廣其文件共享或家庭數據備份服務。有容乃大 由此看來,大數據存儲的首要需求存儲容量可擴展。大數據對存儲容量的需求已經超出目前用戶現有的存儲能力。我們現在正處於PB級時代,而EB級時代即將到來。過去,許多企業通常以五年作為IT系統規劃的一個周期。在這五年中,企業的存儲容量可能會增加一倍。現在,企業則需要制定存儲數據量級(比如從PB級到EB級)的增長計劃,只有這樣才能確保業務不受干擾地持續增長。這就要求實現存儲虛擬化。存儲虛擬化是目前為止提高存儲效率最重要、最有效的技術手段。它為現有存儲系統提供了自動分層和精簡配置等提高存儲效率的工具。擁有了虛擬化存儲,用戶可以將來自內部和外部存儲系統中的結構化和非結構化數據全部整合到一個單一的存儲平台上。當所有存儲資產變成一個單一的存儲資源池時,自動分層和精簡配置功能就可以擴展到整個存儲基礎設施層面。在這種情況下,用戶可以輕松實現容量回收和容量利用率的最大化,並延長現有存儲系統的壽命,顯著提高IT系統的靈活性和效率,以滿足非結構化數據增長的需求。中型企業可以在不影響性能的情況下將HUS的容量擴展到近3PB,並可通過動態虛擬控制器實現系統的快速預配置。此外,通過HDSVSP的虛擬化功能,大型企業可以創建0.25EB容量的存儲池。隨著非結構化數據的快速增長,未來,文件與內容數據又該如何進行擴展呢?不斷生長的大數據 與結構化數據不同,很多非結構化數據需要通過互聯網協議來訪問,並且存儲在文件或內容平台之中。大多數文件與內容平台的存儲容量過去只能達到TB級,現在則需要擴展到PB級,而未來將擴展到EB級。這些非結構化的數據必須以文件或對象的形式來訪問。基於Unix和Linux的傳統文件系統通常將文件、目錄或與其他文件系統對象有關的信息存儲在一個索引節點中。索引節點不是數據本身,而是描述數據所有權、訪問模式、文件大小、時間戳、文件指針和文件類型等信息的元數據。傳統文件系統中的索引節點數量有限,導致文件系統可以容納的文件、目錄或對象的數量受到限制。HNAS和HCP使用基於對象的文件系統,使得其容量能夠擴展到PB級,可以容納數十億個文件或對象。位於VSP或HUS之上的HNAS和HCP網關不僅可以充分利用模塊存儲的可擴展性,而且可以享受到通用管理平台HitachiCommandSuite帶來的好處。HNAS和HCP為大數據的存儲提供了一個優良的架構。大數據存儲平台必須能夠不受干擾地持續擴展,並具有跨越不同時代技術的能力。數據遷移必須在最小范圍內進行,而且要在後台完成。大數據只要復制一次,就能具有很好的可恢復性。大數據存儲平台可以通過版本控制來跟蹤數據的變更,而不會因為大數據發生一次變更,就重新備份一次所有的數據。HDS的所有產品均可以實現後台的數據移動和分層,並可以增加VSP、HUS數據池、HNAS文件系統、HCP的容量,還能自動調整數據的布局。傳統文件系統與塊數據存儲設備不支持動態擴展。大數據存儲平台還必須具有彈性,不允許出現任何可能需要重建大數據的單點故障。HDS可以實現VSP和HUS的冗餘配置,並能為HNAS和HCP節點提供相同的彈性。
❽ 支持大型資料庫的伺服器需要什麼配置
選擇資料庫伺服器的原則:
1、高性能原則:保證所選購的伺服器,不僅能夠滿足運營系統的運行和業務處理的需要,而且能夠滿足一定時期業務量的增長。一般可以根據經驗公式計算出所需的伺服器TpmC值(Tpmc是衡量計算機系統的事務處理能力的程序)。
後比較各伺服器廠商和TPC組織公布的TpmC值,選擇相應的機型。同時,用伺服器的市場價/報價除去計算出來的TpmC值得出單位TpmC值的價格,進而選擇高性能價格比的伺服器。
2、可靠性原則:可靠性原則是所有選擇設備和系統中首要考慮的,尤其是在大型的、有大量處理要求的、需要長期運行的系統上。考慮伺服器系統的可靠性,不僅要考慮伺服器單個節點的可靠性或穩定性,而且要考慮伺服器與相關輔助系統之間連接的整體可靠性。
(8)大數據微服務需要哪些數據支持擴展閱讀:
優點:
1、編程量減少
資料庫伺服器提供了用於數據操縱的標准介面API(Application Programming Interface,應用程序編程接 口)。
2、資料庫安全高
資料庫伺服器提供監控性能、並發控制等工具。由DBA(Database Administrator,資料庫管理員)統一負 責授權訪問資料庫及網路管理。
3、數據可靠性管理
資料庫伺服器提供統一的資料庫備份/恢復、啟動/停止資料庫的管理工具。
4、計算機資源利用充分
資料庫伺服器把數據管理及處理工作從客戶機上分離出來,使網路中各計算機資源能靈活分配、各盡其用。