【Apache之Calcite介绍】

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分析;

支持对流数据的查询。

猜你喜欢

转载自gaojingsong.iteye.com/blog/2365505