---
author: Amber Ankerholz
category: 观点
comments_data:
- date: '2019-07-02 20:24:09'
  message: 111 垃圾
  postip: 106.38.115.21
  username: 来自北京的 Chrome 75.0|Mac 10.14 用户
- date: '2019-07-02 20:24:14'
  message: 111 垃圾
  postip: 106.38.115.21
  username: 来自北京的 Chrome 75.0|Mac 10.14 用户
- date: '2019-07-02 20:24:14'
  message: 111 垃圾
  postip: 106.38.115.21
  username: 来自北京的 Chrome 75.0|Mac 10.14 用户
- date: '2019-07-02 20:24:14'
  message: 111 垃圾
  postip: 106.38.115.21
  username: 来自北京的 Chrome 75.0|Mac 10.14 用户
count:
  commentnum: 4
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 9176
date: '2017-04-04 11:33:00'
editorchoice: false
excerpt: Calcite 是一个数据框架，它允许你创建自定义数据库功能。
fromurl: https://www.linux.com/news/build-strong-real-time-streaming-apps-apache-calcite
id: 8375
islctt: true
largepic: /images/p/201704/04/063524fq4v4dvrqn4vmrsj.jpg
permalink: /article-8375-1.html
pic: /images/p/201704/04/063524fq4v4dvrqn4vmrsj.jpg.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: Calcite 是一个数据框架，它允许你创建自定义数据库功能。
tags:
- 数据库
- Calcite
thumb: false
title: 用 Apache Calcite 构建强大的实时流式应用
titlepic: true
translator: geekpi
updated: '2017-04-04 11:33:00'
---

![Calcite](/images/p/201704/04/063524fq4v4dvrqn4vmrsj.jpg "Calcite ")


Calcite 是一个数据框架，它允许你创建自定义数据库功能，微软开发者 Atri Sharma 在 Apache 2016 年 11 月 14-16 日在西班牙塞维利亚举行的 Big Data Europe 中对此进行了讲演。


[Apache Calcite](https://calcite.apache.org/) 数据管理框架包含了典型的数据库管理系统的许多部分，但省略了如数据的存储和处理数据的算法等其他部分。 Microsoft 的 Azure Data Lake 的软件工程师 Atri Sharma 在西班牙塞维利亚的 [Apache：Big Data](http://events.linuxfoundation.org/events/apache-big-data-europe) 会议上的演讲中讨论了使用 [Apache Calcite](https://calcite.apache.org/) 的高级查询规划能力。我们与 Sharma 讨论了解有关 Calcite 的更多信息，以及现有程序如何利用其功能。


**Linux.com：**你能提供一些关于 Apache Calcite 的背景吗？ 它有什么作用？


Atri Sharma：Calcite 是一个框架，它是许多数据库内核的基础。Calcite 允许你构建自定义的数据库功能来使用 Calcite 所需的资源。例如，Hive 使用 Calcite 进行基于成本的查询优化、Drill 和 Kylin 使用 Calcite 进行 SQL 解析和优化、Apex 使用 Calcite 进行流式 SQL。


**Linux.com：**有哪些是使得 Apache Calcite 与其他框架不同的特性？


Atri：Calcite 是独一无二的，它允许你建立自己的数据平台。 Calcite 不直接管理你的数据，而是允许你使用 Calcite 的库来定义你自己的组件。 例如，它允许使用 Calcite 中可用的 Planner 定义你的自定义查询优化器，而不是提供通用查询优化器。


**Linux.com：**Apache Calcite 本身不会存储或处理数据。 它如何影响程序开发？


Atri：Calcite 是数据库内核中的依赖项。它针对的是希望扩展其功能，而无需从头开始编写大量功能的的数据管理平台。


**Linux.com：**谁应该使用它？ 你能举几个例子吗？\*\*


Atri：任何旨在扩展其功能的数据管理平台都应使用 Calcite。 我们是你下一个高性能数据库的基础！


具体来说，我认为最大的例子是 Hive 使用 Calcite 用于查询优化、Flink 解析和流 SQL 处理。 Hive 和 Flink 是成熟的数据管理引擎，并将 Calcite 用于相当专业的用途。这是对 Calcite 应用进一步加强数据管理平台核心的一个好的案例研究。


**Linux.com：**你有哪些期待的新功能？


Atri：流式 SQL 增强是令我非常兴奋的事情。这些功能令人兴奋，因为它们将使 Calcite 的用户能够更快地开发实时流式应用程序，并且这些程序的强大和功能将是多方面的。流式应用程序是新的事实，并且在流式 SQL 中具有查询优化的优点对于大部分人将是非常有用的。此外，关于暂存表的讨论还在进行，所以请继续关注！




---


via: <https://www.linux.com/news/build-strong-real-time-streaming-apps-apache-calcite>


作者：[AMBER ANKERHOLZ](https://www.linux.com/users/aankerholz) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 组织编译，[Linux中国](https://linux.cn/) 荣誉推出