常見的資料庫和分布式資料計算平台有:mysql、redis、hybriddb for mysql、hbase(100億)、mongodb(10億)、memcachedb;spark、hadoop、hive、kafka、flume、zookeper、mybatis
rdbms:relational database management system
hbase:是乙個分布式的、面向 列 的開源資料庫。乙個非結構化資料的分布式儲存系統,hbase基於列的而不是基於行的模式。hbase更適合低延時的資料訪問
hbase和redis在功能上比較類似:比如它們都屬於 nosql 級別的資料庫,都支援資料分片等
hbase:適用於簡單資料寫入(如「訊息類」應用)和海量、結構簡單資料的查詢(如「詳單類」應用)
mongodb:是乙個基於分布式檔案儲存的資料庫,由 c++ 語言編寫,旨在為 web 應用提供可擴充套件的高效能資料儲存解決方案
memcachedb:是一款分布式鍵值持久儲存系統。memcachedb
支援memcached協議,但是 memcachedb
系統是持久化儲存,memcachedb
和mysql組合使用提高mysql寫的效率
spark:是乙個快速、通用的大規模資料處理引擎
hadoop:是乙個分布式系統基礎架構
hive:是基於hadoop的乙個資料倉儲工具,用來進行資料提取、轉化、載入(etl工具:extract 抽取-transform 轉換-load 載入)。這是一種可以儲存、查詢和分析儲存在hadoop中的大規模資料的機制。底層是基於mapreduce,但是是符合sql語法
kafka:
是乙個分布式、支援分割槽的(partition)、多副本的(replica),基於 zookeeper 協調的分布式訊息系統,可以實時的處理大量資料以滿足各種需求場景
flume:是cloudera提供的乙個高可用的,高可靠的,分布式的海量日誌採集、聚合和傳輸的系統,flume為了保證輸送的過程一定成功,在送到目的地(sink)之前,會先快取資料(channel),待資料真正到達目的地(sink)後,flume再刪除自己快取的資料
zookeeper:是乙個分布式服務框架。zookeeper主要用來解決分布式應用中經常遇到的一些資料管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等
mybatis:是一款優秀的持久層框架,它支援定製化 sql、儲存過程以及高階對映。ibatis提供的持久層框架包括 sql maps 和data access objects(daos)
1、hadoop/mapreduce和spark最適合的都是做脫機型的資料分析,但hadoop特別適合是單次分析的資料量「很大」的情景,而spark則適用於資料量不是很大的情景。資料量是相對於整個集群中的記憶體容量而言的,因為spark是需要將資料hold在記憶體
2、基於flume採集到 hdfs 中的資料,mapreduce 將資料清理(選擇合適的資訊字段,或者根據業務需求解析源資料中的資訊字段包含的資訊並增加新的資訊字段)之後將資料儲存到 hdfs,根據 hdfs 中規整的資料按照業務需求進行資料的統計分析。
4、hive資料倉儲工具能將結構化的資料檔案對映為一張資料庫表,並提供sql查詢功,能將sql語句轉變成mapreduce任務來執行。由於底層是mapreduce,與shark(改進hive中的記憶體管理,執行等部分)和spark相比,執行速度不佳。
圖-1 資料處理架構圖
7、資料處理軟體架構示例:
分布式資料庫資料
hadoop是很多元件的集合,主要包括但不限於mapreduce,hdfs,hbase,zookeeper。mapreduce模仿了google mapreduce,hdfs模仿了google file system,hbase模仿了google bigtable,zookeeper或多或少模仿了g...
分布式資料庫
網路選課系統中分布式資料庫設計 何翠雙王巧雲張麗麗 摘要 關鍵字 選課 分布式 資料庫 distributed system of on line course choosing abstract key words course choosing distributed database 隨著學校...
分布式資料庫
1 背景 我們知道資料是乙個公司的命脈,隨著業務越做越大,資料量也會越來越大,計算也會越來越複雜,效能,可靠性,可擴充套件性的需求就會越來越強烈,這個時候乙個集中式的資料庫顯然已經滿足不了需求了。對於技術決策者來說有兩條路可以走,第一 按照現有的大型資料庫的解決方案,比如sql server clu...