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查詢這些數據
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分析;
支持對流數據的查詢。