Apache Calcite is a widespread SQL dialect used in big data processing with some streaming enhancements. Beam Calcite SQL is the default Beam SQL dialect.
Beam SQL has additional extensions leveraging Beam’s unified batch/streaming model and processing complex data types. You can use these extensions with all Beam SQL dialects, including Beam Calcite SQL.
Query statements scan one or more tables or expressions and return the computed result rows. For more information about query statements in Beam Calcite SQL, see the [Query syntax]({{ site.baseurl }}/documentation/dsls/sql/calcite/query-syntax) reference.
A Beam SQL statement comprises a series of tokens. For more information about tokens in Beam Calcite SQL, see the [Lexical structure]({{ site.baseurl }}/documentation/dsls/sql/calcite/lexical) reference.
Beam SQL supports standard SQL scalar data types as well as extensions including arrays, maps, and nested rows. For more information about scalar data in Beam Calcite SQL, see the [Data types]({{ site.baseurl }}/documentation/dsls/sql/calcite/data-types) reference.
The following table summarizes the Apache Calcite functions and operators supported by Beam Calcite SQL.