<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Powered by Calcite</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.7.3">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/css/screen.css">
  <link rel="icon" type="image/x-icon" href="/favicon.ico">
  <!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
  <![endif]-->
</head>


<body class="wrap">
  <header role="banner">
  <div class="grid">
    <div class="unit center-on-mobiles">
      <h1>
        <a href="/">
          <span class="sr-only">Apache Calcite</span>
          <img src="/img/logo.svg" alt="Calcite Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav">
      <ul>
  <li class="">
    <a href="/">Home</a>
  </li>
  <li class="">
    <a href="/downloads/">Download</a>
  </li>
  <li class="">
    <a href="/community/">Community</a>
  </li>
  <li class="">
    <a href="/develop/">Develop</a>
  </li>
  <li class="">
    <a href="/news/">News</a>
  </li>
  <li class="current">
    <a href="/docs/">Docs</a>
  </li>
</ul>

    </nav>
  </div>
</header>


    <section class="docs">
    <div class="grid">

      <div class="docs-nav-mobile unit whole show-on-mobiles">
  <select onchange="if (this.value) window.location.href=this.value">
    <option value="">Navigate the docs…</option>
        <optgroup label="Overview">      
    </optgroup>
    <optgroup label="Advanced">      
    </optgroup>
    <optgroup label="Avatica">      
    </optgroup>
    <optgroup label="Reference">      
    </optgroup>
    <optgroup label="Meta">      
    </optgroup>

  </select>
</div>


      <div class="unit four-fifths">
        <article>
          <h1>Powered by Calcite</h1>
          <!--

-->

<p>The following companies and projects are powered by Apache Calcite.</p>

<p><img src="/img/powered-by.png" alt="Companies and projects" /></p>

<ul id="markdown-toc">
  <li><a href="#alibaba-maxcompute" id="markdown-toc-alibaba-maxcompute">Alibaba MaxCompute</a></li>
  <li><a href="#apache-apex" id="markdown-toc-apache-apex">Apache Apex</a></li>
  <li><a href="#apache-beam" id="markdown-toc-apache-beam">Apache Beam</a></li>
  <li><a href="#apache-drill" id="markdown-toc-apache-drill">Apache Drill</a></li>
  <li><a href="#apache-flink" id="markdown-toc-apache-flink">Apache Flink</a></li>
  <li><a href="#apache-hive" id="markdown-toc-apache-hive">Apache Hive</a></li>
  <li><a href="#apache-kylin" id="markdown-toc-apache-kylin">Apache Kylin</a></li>
  <li><a href="#apache-phoenix" id="markdown-toc-apache-phoenix">Apache Phoenix</a></li>
  <li><a href="#apache-samza" id="markdown-toc-apache-samza">Apache Samza</a></li>
  <li><a href="#apache-storm" id="markdown-toc-apache-storm">Apache Storm</a></li>
  <li><a href="#athenax" id="markdown-toc-athenax">AthenaX</a></li>
  <li><a href="#cascading" id="markdown-toc-cascading">Cascading</a></li>
  <li><a href="#dremio" id="markdown-toc-dremio">Dremio</a></li>
  <li><a href="#herddb" id="markdown-toc-herddb">HerdDB</a></li>
  <li><a href="#omnisci" id="markdown-toc-omnisci">OmniSci</a></li>
  <li><a href="#qubole-quark" id="markdown-toc-qubole-quark">Qubole Quark</a></li>
  <li><a href="#sql-gremlin" id="markdown-toc-sql-gremlin">SQL-Gremlin</a></li>
</ul>

<p>Is your company or project powered by Calcite?
<a href="https://github.com/apache/calcite/blob/master/site/_docs/powered_by.md">Add it to this page</a>
and then use the “powered by Apache Calcite” logo
(<a href="/img/pb-calcite-140.png">140 px</a>
or <a href="/img/pb-calcite-240.png">240 px</a>)
on your site.</p>

<p><img src="/img/pb-calcite-240.png" alt="Powered By" /></p>

<h3 id="alibaba-maxcompute">Alibaba MaxCompute</h3>

<p><a href="https://www.alibabacloud.com">Alibaba</a>’s
<a href="https://www.alibabacloud.com/product/maxcompute">MaxCompute</a>
big data computing and storage platform
uses Calcite for cost-based query optimization.</p>

<h3 id="apache-apex">Apache Apex</h3>

<p><a href="https://apex.apache.org">Apache Apex</a>
uses Calcite for parsing streaming SQL and query optimization.</p>

<h3 id="apache-beam">Apache Beam</h3>

<p><a href="https://beam.apache.org">Apache Beam</a>
uses Calcite for parsing and optimizing SQL.</p>

<h3 id="apache-drill">Apache Drill</h3>

<p><a href="https://drill.apache.org">Apache Drill</a>
uses Calcite for SQL parsing and query optimization.</p>

<h3 id="apache-flink">Apache Flink</h3>

<p><a href="https://flink.apache.org">Apache Flink</a>
uses Calcite for parsing both regular and streaming SQL,
and for query optimization.</p>

<h3 id="apache-hive">Apache Hive</h3>

<p><a href="https://hive.apache.org">Apache Hive</a>
uses Calcite for cost-based query optimization.</p>

<h3 id="apache-kylin">Apache Kylin</h3>

<p><a href="https://kylin.apache.org">Apache Kylin</a>
uses Calcite for SQL parsing and query optimization.</p>

<h3 id="apache-phoenix">Apache Phoenix</h3>

<p><a href="https://phoenix.apache.org">Apache Phoenix</a>
uses Calcite for SQL parsing and query optimization (under development),
and also uses Avatica for its remote JDBC driver.</p>

<h3 id="apache-samza">Apache Samza</h3>

<p><a href="https://github.com/milinda/samza-sql">SamzaSQL</a>,
an extension to
<a href="https://samza.apache.org">Apache Samza</a>,
uses Calcite for parsing streaming SQL and query optimization.</p>

<h3 id="apache-storm">Apache Storm</h3>

<p><a href="https://storm.apache.org">Apache Storm</a>
uses Calcite for parsing streaming SQL and query optimization.</p>

<h3 id="athenax">AthenaX</h3>

<p><a href="https://www.uber.com/">Uber</a>’s SQL-based streaming analytics platform
<a href="https://github.com/uber/AthenaX/">AthenaX</a>
uses Calcite for parsing SQL and query optimization.</p>

<h3 id="cascading">Cascading</h3>

<p><a href="https://github.com/Cascading/lingual">Lingual</a>
component provides a SQL interface to
<a href="https://www.cascading.org/">Cascading</a>.</p>

<h3 id="dremio">Dremio</h3>

<p><a href="https://www.dremio.com">Dremio</a>
uses Calcite for SQL parsing and cost-based query optimization.</p>

<h3 id="herddb">HerdDB</h3>

<p><a href="https://herddb.org">HerdDB</a>
is a distributed JVM-Embeddable Database built on top of
<a href="https://bookkeeper.apache.org/">Apache BookKeeper</a>.
It uses Calcite as its SQL Planner.</p>

<h3 id="omnisci">OmniSci</h3>

<p><a href="https://www.omnisci.com">OmniSci</a>
is a GPU-powered database and visual analytics platform for
interactive exploration of large datasets.</p>

<h3 id="qubole-quark">Qubole Quark</h3>

<p><a href="https://github.com/qubole/quark">Quark</a>
is a data virtualization engine over analytic databases.
It uses Calcite to transparently rewrite queries to use materialized views.</p>

<h3 id="sql-gremlin">SQL-Gremlin</h3>

<p><a href="https://github.com/twilmes/sql-gremlin">SQL-Gremlin</a>
is a SQL interface to a
<a href="https://tinkerpop.apache.org/">Apache TinkerPop</a>-enabled
graph database.</p>

          





  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  
    <div class="section-nav">
      <div class="left align-right">
          
            
            
            <a href="/docs/history.html" class="prev">Previous</a>
          
      </div>
      <div class="right align-left">
          
            
            

            
            <a href="/apidocs/" class="next">Next</a>
          
      </div>
    </div>
    <div class="clear"></div>
    

        </article>
      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    
    <h4>Overview</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/docs/index.html">Background</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/tutorial.html">Tutorial</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/algebra.html">Algebra</a></li>


</ul>

    
    <h4>Advanced</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/docs/adapter.html">Adapters</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/spatial.html">Spatial</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/stream.html">Streaming</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/lattice.html">Lattices</a></li>


</ul>

    
    <h4>Avatica</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/docs/avatica_overview.html">Overview</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/avatica_roadmap.html">Roadmap</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/avatica_json_reference.html">JSON Reference</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/avatica_protobuf_reference.html">Protobuf Reference</a></li>


</ul>

    
    <h4>Reference</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/docs/reference.html">SQL language</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>


  
  
  
  

  

  <li class=""><a href="/docs/howto.html">HOWTO</a></li>


</ul>

    
    <h4>Meta</h4>
    

<ul>

  
  
  
  

  

  <li class=""><a href="/docs/history.html">History</a></li>


  
  
  
  

  

  <li class="current"><a href="/docs/powered_by.html">Powered by Calcite</a></li>


  
  
  
  

  

  <li class=""><a href="/apidocs">API</a></li>


  
  
  
  

  

  <li class=""><a href="/testapidocs">Test API</a></li>


</ul>

    
  </aside>
</div>


      <div class="clear"></div>

    </div>
  </section>


  <footer role="contentinfo">
  <div id="poweredby">
    <a href="http://www.apache.org/">
      <span class="sr-only">Apache</span>
      <img src="/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
  </div>
  <div id="copyright">
  <p>The contents of this website are Copyright &copy;&nbsp;2019
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of
     the <a href="https://www.apache.org/licenses/">
     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
     trademarks of the Apache Software Foundation.</p>
  </div>
</footer>

  <script>
  var anchorForId = function (id) {
    var anchor = document.createElement("a");
    anchor.className = "header-link";
    anchor.href      = "#" + id;
    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
    anchor.title = "Permalink";
    return anchor;
  };

  var linkifyAnchors = function (level, containingElement) {
    var headers = containingElement.getElementsByTagName("h" + level);
    for (var h = 0; h < headers.length; h++) {
      var header = headers[h];

      if (typeof header.id !== "undefined" && header.id !== "") {
        header.appendChild(anchorForId(header.id));
      }
    }
  };

  document.onreadystatechange = function () {
    if (this.readyState === "complete") {
      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
      if (!contentBlock) {
        return;
      }
      for (var level = 1; level <= 6; level++) {
        linkifyAnchors(level, contentBlock);
      }
    }
  };
</script>


</body>
</html>
