NoSQL數據庫 SenseiDB
SenseiDB是一個NoSQL數據庫,它專注于高更新率以及復雜半結構化搜索查詢。熟悉Lucene和Solor的用戶會發現,SenseiDB背后有許多似曾相識的概念。SenseiDB部署在多節點集群中,其中每個節點可以包括N塊數據片。Apache Zookeeper用于管理節點,它能夠保持現有配置,并可以將任意改動(如拓撲修改)傳輸到整個節點群中。SenseiDB集群還需要一種模式用于定義將要使用的數據模型。
從SenseiDB集群中獲取數據的唯一方法是通過Gateways(它 沒有“INSERT”方法)。每個集群都連接到一個單一gateway。你需要了解很重要的一點是,由于SenseiDB本身沒法處理原子性 (Atomicity)和隔離性(Isolation),因此只能通過外部在gateway層進行限制。另外,gateway必須確保數據流按照預期的方 式運作。內置的gateway有以下幾種形式:
- 來自文件
- 來自JMS隊列
- 通過JDBC
- 來自Apache Kafka
應用程序開發人員還可以自定義gateway。這里是一個gateway示例,它從推ter更新中獲取數據。
通過借助輸入數據流將數據送入集群,SenseiDB允許使用定義好的模式進行多方位查詢。為此,它還提供了一個可由任意HTTP客戶端訪問的 REST API。該API的靈感來源于ElasticSearch's Query DSL。SenseiDb還為API提供了Java和Python封裝,相信Ruby版本很快也會出現。
最后,SenseiDB提供了瀏覽查詢語言(Browse Query Language,簡稱BQL)作為另一種查詢方式。BQL類似SQL(目前僅包含SELECT語句),它可以用一種更方便的方式查詢SenseiDB。 此外,集群安裝還附帶了一個圖形化Web控制臺,用作對BQL查詢進行檢查和調試。
介紹內容來自 InfoQ