Apache之Calcite介紹

NoSQL Apache Hive MySQL 科技優家 2017-03-28

Calcite(https://calcite.apache.org/)是Apache的一個孵化器項目,它是一個構建JDBC或者ODBC訪問數據庫的框架,通過自定義一些adapter通過sql訪問任意類型的數據,回想起我們之前使用SQL的場景只有使用訪問關係數據庫如MYSQL、ORACLE等,通過hive查詢HDFS上的數據,但是如果我們希望通過SQL接口訪問內存中的某個數據結構(首先這個結構有關係模型)、文件裡面的內容(例如CSV文件、有一定結構的普通文件,其實這些可以通過hive訪問)、訪問hbase和一些NOSQL數據庫,甚至想要跨數據源訪問(hive裡面的數據和mysql裡面的數據進行join查詢)。以上基本上代表了我們平時接觸到的各種各樣的數據存儲的位置,而Calcite要解決的問題就是讓你想辦法將這些數據建立一個關係模型,然後通過SQL查詢這些數據

Apache之Calcite介紹

Adapters

Schema adaptersPermalink

A schema adapter allows Calcite to read particular kind of data, presenting the data as tables within a schema.

1)Cassandra adapter (calcite-cassandra)

2)CSV adapter (example/csv)

3)Druid adapter (calcite-druid)

4)Elasticsearch adapter (calcite-elasticsearch)

5)File adapter (calcite-file)

6)JDBC adapter (part of calcite-core)

7)MongoDB adapter (calcite-mongodb)

8)Pig adapter (calcite-pig)

9)Solr cloud adapter (solr-sql)

10)Spark adapter (calcite-spark)

11)Splunk adapter (calcite-splunk)

12)Eclipse Memory Analyzer (MAT) adapter (mat-calcite-plugin)

Apache Calcite具有以下幾個技術特性:

支持標準SQL語言;

獨立於編程語言和數據源,可以支持不同的前端和後端;

支持關係代數、可定製的邏輯規劃規則和基於成本模型優化的查詢引擎;

支持物化視圖(materialized view)的管理(創建、丟棄、持久化和自動識別);

基於物化視圖的Lattice和Tile機制,以應用於OLAP分析;

支持對流數據的查詢。

相關推薦

推薦中...