Ⅰ 大數據知識點裡面的 HBase 是什麼意思
HBase是一個分布式的、面向列的開源資料庫,基於Hadoop生態圈,在Nosql蓬勃發展的今天被國內外眾多公司選擇,應用於現代互聯網系統的不同業務。
HBase業務場景
1.標簽數據的存儲
標簽數據是稀疏矩陣的代表,描述了實體的各類屬性,主要應用於智能推薦、商務智能或營銷引擎等領域。
2. 車聯網數據的收集
車聯網系統是利用車載設備收集車輛運行時產生的各項數據,通過網路實時上傳,在平台進行動態分析和利用。
3. 交易記錄的保存
在移動支付領域,保證歷史交易記錄等敏感信息的安全性是一個重要的話題。當數據中心遭遇自然災害、外部攻擊時,必須保證這些信息不丟,而且從業務角度要保證RTO盡可能短、RPO盡可能為0。
HBase基於底層的HDFS作為存儲系統,HDFS實現了三副本策略,按照一定的規則將副本放在不同的節點或機架中,本身具有較高的容災能力。在工程實踐中,也產生了Region replica、主備集群、互備雙活等策略來盡可能進行災備並保證高可用。
Ⅱ 基於spark SQL之上的檢索與排序對比性能測試
之前做過一年的spark研發,之前在阿里與騰訊也做了很久的hive,所以對這方面比較了解。
第一:其實快多少除了跟spark與hive本身的技術實現外,也跟機器性能,底層操作系統的參數優化息息相關,不能一概而論。
第二:hive 目前應該還是業界的主流,畢竟快與慢很多時候並非是至關重要的,對於一個生產系統來說,更重要的應該是穩定性,spark畢竟還算是比較新興的事務,快確實快,但是穩定性上距離hive相差甚遠。關於spark我們也修復了很多關於內存泄露的BUG,因為您問的是性能,所以不過多介紹(可以跟我要YDB編程指南,裡面有我對這些BUG的修正)
第三:關於性能,我測試的可能不夠全面,只能在排序與檢索過濾上提供我之前的基於YDB的BLOCK sort測試報告供您參考(網路上貼word太費勁,您可以跟我要 word文檔)。
排序可以說是很多日誌系統的硬指標(如按照時間逆序排序),如果一個大數據系統不能進行排序,基本上是這個系統屬於不可用狀態,排序算得上是大數據系統的一個「剛需」,無論大數據採用的是hadoop,還是spark,還是impala,hive,總之排序是必不可少的,排序的性能測試也是必不可少的。
有著計算奧運會之稱的Sort Benchmark全球排序每年都會舉行一次,每年巨頭都會在排序上進行巨大的投入,可見排序速度的高低有多麼重要!但是對於大多數企業來說,動輒上億的硬體投入,實在劃不來、甚至遠遠超出了企業的項目預算。相比大數據領域的暴力排序有沒有一種更廉價的實現方式?
在這里,我們為大家介紹一種新的廉價排序方法,我們稱為blockSort。
500G的數據300億條數據,只使用4台 16核,32G內存,千兆網卡的虛擬機即可實現 2~15秒的 排序 (可以全表排序,也可以與任意篩選條件篩選後排序)。
一、基本的思想是這樣的,如下圖所示:
1.將數據按照大小預先劃分好,如劃分成 大、中、小三個塊(block)。
2.如果想找最大的數據,那麼只需要在最大的那個塊里去找就可以了。
3.這個快還是有層級結構的,如果每個塊內的數據量很多,可以到下面的子快內進行繼續查找,可以分多個層進行排序。
4.採用這種方法,一個億萬億級別的數據(如long類型),最壞最壞的極端情況也就進行2048次文件seek就可以篩選到結果。
五、哪些用戶適合使用YDB?
1.傳統關系型數據,已經無法容納更多的數據,查詢效率嚴重受到影響的用戶。
2.目前在使用SOLR、ES做全文檢索,覺得solr與ES提供的分析功能太少,無法完成復雜的業務邏輯,或者數據量變多後SOLR與ES變得不穩定,在掉片與均衡中不斷惡性循環,不能自動恢復服務,運維人員需經常半夜起來重啟集群的情況。
3.基於對海量數據的分析,但是苦於現有的離線計算平台的速度和響應時間無滿足業務要求的用戶。
4.需要對用戶畫像行為類數據做多維定向分析的用戶。
5.需要對大量的UGC(User Generate Content)數據進行檢索的用戶。
6.當你需要在大數據集上面進行快速的,互動式的查詢時。
7.當你需要進行數據分析,而不只是簡單的鍵值對存儲時。
8.當你想要分析實時產生的數據時。
ps:說了一大堆,說白了最適合的還是蹤跡分析因為數據量大,數據還要求實時,查詢還要求快。這才是關鍵。
Ⅲ 資料庫的開發工具有哪些
目前流行的資料庫系統有兩類:
一類是關系型的資料庫,有Oracle、MySQL、DB2、MSSQLServer,等
一類是所謂的NoSQL,有mongoDB、HBase等等等
資料庫軟體,看你怎麼定義了,是資料庫應用軟體,資料庫開發軟體,數悔亮據庫管理軟體?
基本灶前嫌上所有的ERP等企業管理軟體都是基於資料庫的,應該屬於資料庫應用軟體的一類
比如Oracle、SAP等等都是知名的ERP軟體
還有CRM軟體也是基於資料庫的。
資料庫開發和管理軟體就很多了,我個人將其隱手分為兩類,
一類是基於java的,一般是通用的,即支持多個資料庫;比如AquaDataStudio、DbVisualizer等等等
一類是非java的,大多數都是專門用於某一類資料庫的,比如plsqldeveloper、toad等等等;不過其中也有一些軟體可以支持多種資料庫。比如navicat、RapidSQL等等等
Ⅳ hbase 有沒有類似pl/sql developer這樣的工具
這個目前還真找不到,
hbase屬於NoSQL/列式 資料庫,
而現在的資料庫開發工具 都是 管理的關系型資料庫。
比如 dbvisualizer
AquaDataStudio
Ⅳ HBase數據結構是什麼
RowKey
與nosql資料庫們一樣,RowKey是用來檢索記錄的主鍵。訪問HBASE table中的行,只有三種方式:
通過單個RowKey訪問(get)
通過RowKey的range(正則)(like)
全表掃描(scan)
RowKey行鍵 (RowKey)可以是任意字元串(最大長度是64KB,實際應用中長度一般為 10-100bytes),在HBASE內部,RowKey保存為位元組數組。存儲時,數據按照RowKey的字典序(byte order)排序存儲。設計RowKey時,要充分排序存儲這個特性,將經常一起讀取的行存儲放到一起。(位置相關性)Table:表,所有的表都是命名空間的成員,即表必屬於某個命名空間,如果沒有指定,則在default默認的命名空間中。
RegionServer group:一個命名空間包含了默認的RegionServer Group。
Permission:許可權,命名空間能夠讓我們來定義訪問控制列表ACL(Access Control List)。例如,創建表,讀取表,刪除,更新等等操作。
Quota:限額,可以強制一個命名空間可包含的region的數量。
Column Family
列族:HBASE表中的每個列,都歸屬於某個列族。列族是表的schema的一部 分(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如 courses:history,courses:math都屬於courses 這個列族。
Cell
由{rowkey, column Family:columu, version} 唯一確定的單元。cell中的數據是沒有類型的,全部是位元組碼形式存貯。
關鍵字:無類型、位元組碼
Time Stamp
HBASE 中通過rowkey和columns確定的為一個存貯單元稱為cell。每個 cell都保存 著同一份數據的多個版本。版本通過時間戳來索引。時間戳的類型是 64位整型。時間戳可以由HBASE(在數據寫入時自動 )賦值,此時時間戳是精確到毫秒 的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數據版 本沖突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。
為了避免數據存在過多版本造成的的管理 (包括存貯和索引)負擔,HBASE提供 了兩種數據版本回收方式。一是保存數據的最後n個版本,二是保存最近一段 時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。
命名空間
命名空間的結構: