發表文章

目前顯示的是 1月, 2015的文章

IT|資料庫|Phoenix SQL 初識

Phoenix  效能 對於 10M 到 100M 的行的簡單查詢來說, Phoenix  要勝過  Hive 。對於使用了  HBase API 、協同處理器及自定義過濾器的  Impala  與  OpenTSDB  來說,進行相似的查詢  Phoenix  的速度也會更快一些。 Phoenix  查詢引擎會將  SQL 查詢轉換為一個或多個  HBase scan ,並編排執行以生成標準的  JDBC  結果集。直接使用  HBase API 、協同處理器與自定義過濾器,對於簡單查詢來說,其性能量級是毫秒,對於百萬級別的行數來說,其性能量級是秒。 [特色] - 嵌入式的 JDBC 驅動,實現了大部分的 java.sql 接口,包括元數據 API - 可以通過多部行鍵或是鍵 / 值單元對列進行建模 - 完善的查詢支持,可以使用多個謂詞以及優化的掃描鍵 - DDL 支持:通過 CREATE TABLE 、 DROP TABLE 及 ALTER TABLE 來添加 / 刪除列 - 版本化的模式倉庫:當寫入數據時,快照查詢會使用恰當的模式 - DML 支持:用於逐行插入的 UPSERT VALUES 、用於相同或不同表之間大量數據傳輸的 UPSERT SELECT 、用於刪除行的 DELETE - 通過客戶端的批處理實現的有限的事務支持 - 單表 —— 還沒有連接,同時二級索引也在開發當中 - 緊跟 ANSI SQL 標準

IT|軟體|Kafka MQ 高吞吐量分佈式訊息

介紹 Kafka MQ 是一個高吞吐量分布式訊息系統。是由 linkedin  開源的 消息中間件 。   Kafka MQ  的目的是提供一個發佈訂閱解決方案,它可以處理消費者規模的網站中的所有動作 流數據 。 這種動作(網頁瀏覽,搜索和其他用戶的行動是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據通常是由於 吞吐量 的要求而通過處理日誌和日誌聚合來解決。 對於像  Hadoop  的一樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。 Kafka MQ  的目的是通過 Hadoop 的並行加載機制來統一線上和離線的消息處理,也是為了通過 集群 機來提供實時的消費。  傳統的離線分析方案是使用日誌文件記錄數據,然後集中批量處理分析。這種方式對於實時性要求很高的活動 流數據 不適合,而大部分的 消息中間件 能夠處理實時性要求高的消息 / 數據,但是對於 隊列 中大量未處理的消息 / 數據在持久性方面比較弱。 Kafka   是一種高吞吐量的分布式發佈訂閱消息系統,有如下特性:   1.通過 磁盤數據結構 提供消息的持久化,這種結構對於即使數以  TB  的消息 存儲 也能夠保持長時間的穩定性能。   2.高吞吐量:即使是非常普通的硬件 kafka 也可以支持每秒數十萬的消息。   3.支持通過 kafka 服務器和消費機集群來分區消息。   4.支持 Hadoop 並行數據加載。   [特點] Kafka MQ  的開發者們認為不需要在內存里緩存什麼數據,操作系統的文件緩存已經足夠完善和強大,只要不搞隨機寫,順序讀寫的性能是非常高效的。 Kafka MQ  數據只會順序  append ,數據的刪除策略是累積到一定程度或者超過一定時間再刪除。 Kafka MQ  另一個獨特的地方是將消費者信息保存在 客戶端 而不是  MQ  服務器,這樣服務器就不用記錄消息的投遞過程,每個客戶端都自己知道自己下一次應該從什麼地方什麼位置讀取消息,消息的投遞過程也是採用客戶端主動 pull 的模型,這樣大大減輕了服務器的負擔。 Kafka MQ  還強調減少數據的序列化和拷貝開銷,它會將一些消息組織成  Message Set  做批量 存