alamb commented on code in PR #254:
URL: https://github.com/apache/arrow-site/pull/254#discussion_r1002434601


##########
_posts/2022-10-20-datafusion-13.0.0.md:
##########
@@ -0,0 +1,226 @@
+---
+layout: post
+title: "Apache Arrow DataFusion 13.0.0 Project Update"
+date: "2022-10-20 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+# Introduction
+
+[Apache Arrow DataFusion](https://arrow.apache.org/datafusion/) 
[`13.0.0`](https://crates.io/crates/datafusion) is released, and this blog 
contains an update on the project for the 5 months since our [last update in 
May 2022](https://arrow.apache.org/blog/2022/05/16/datafusion-8.0.0/).
+
+DataFusion is an extensible and embeddable query engine, written in Rust used 
to create modern, fast and efficient data pipelines, ETL processes, and 
database systems. You may want to check out DataFusion to extend your Rust 
project with:
+
+- [SQL 
support](https://arrow.apache.org/datafusion/user-guide/sql/sql_status.html),
+- [DataFrame 
API](https://docs.rs/datafusion/13.0.0/datafusion/dataframe/struct.DataFrame.html),
+- A custom Domain Specific Query Language
+- The ability to easily and quickly read and process Parquet, JSON, Avro or 
CSV data.
+- To read from remote object stores such as AWS S3, Azure Blob Storage, GCP.
+
+Even though DataFusion is 4 years "young," it has seen significant community 
growth in the last few months and the momentum continues to accelerate.
+
+# Background
+
+
+DataFusion is used as the engine in [many open source and commercial 
projects](https://github.com/apache/arrow-datafusion#known-uses) and was one of 
the early open source projects to provide this capability. 2022 has validated 
our belief in the need for such a ["LLVM for database and AI 
systems"](https://www.slideshare.net/AndrewLamb32/20220623-apache-arrow-and-datafusion-changing-the-game-for-implementing-database-systemspdf)
 with announcements such as the [release of FaceBook's 
Velox](https://engineering.fb.com/2022/08/31/open-source/velox/) engine, the 
major investments in 
[Acero](https://arrow.apache.org/docs/cpp/streaming_execution.html) as well as 
the continued popularity of [Apache Calcite](https://calcite.apache.org/) and 
other similar technologies.
+
+While Velox and Acero focus on execution engines, DataFusion provides the 
entire suite of components needed to build most analytic systems, including a 
SQL frontend, a dataframe API, and  extension points for just about everything. 
Some [DataFusion users](https://github.com/apache/arrow-datafusion#known-uses) 
use a subset of the features such as the frontend (e.g. 
(dask-sql)[https://dask-sql.readthedocs.io/en/latest/] or the execution engine, 
such as [Blaze](https://github.com/blaze-init/blaze), and some users use many 
different components to build both SQL based and customized DSL based systems 
such as [InfluxDB IOx](https://github.com/influxdata/influxdb_iox/pulls) and 
[VegaFusion](https://github.com/vegafusion/vegafusion).
+
+One of DataFusion’s advantages is its implementation in 
[Rust](https://www.rust-lang.org/) and thus its easy integration with the 
broader Rust ecosystem. Rust continues to be a major source of benefit, from 
the [ease of parallelization with the high quality and standardized `async` 
ecosystem](https://www.influxdata.com/blog/using-rustlangs-async-tokio-runtime-for-cpu-bound-tasks/)
 , as well as its modern dependency management system and wonderful 
performance. <!-- I wonder if we should link to clickbench?? -->
+<!--While we haven’t invested in the benchmarking ratings game datafusion 
continues to be quite speedy (todo quantity this, with some evidence) – maybe 
clickbench?-->
+
+<!-- I am not sure this section needed -->
+DataFusion belongs to and builds on the Apache Arrow ecosystem and its family 
of related technologies and projects in rust. This include
+- [Arrow](https://arrow.apache.org/): low level array representation
+- [Parquet](https://parquet.apache.org/): high performance, full featured 
support for the parquet file format
+
+
+
+# DataFusion in Action
+
+While DataFusion really shines as an embeddable query engine, if you want to 
try it out and get a feel for its power, you can use the 
basic[`datafusion-cli`](https://docs.rs/datafusion-cli/13.0.0/datafusion_cli/) 
tool to get a sense for what is possible to add in your application
+
+(TODO example here of using datafusion-cli to query from local parquet files 
on disk)
+
+TODO: also mention you can use the same thing to query data from S3
+
+
+
+# Summary
+
+We have increased the frequency of DataFusion releases to monthly instead of 
quarterly. This
+makes it easier for the increasing number of projects that now depend on 
DataFusion.
+
+We have also completed the "graduation" of [Ballista to its own top-level 
arrow-ballista 
repository](https://docs.google.com/document/d/1jNRbadyStSrV5kifwn0khufAwq6OnzGczG4z8oTQJP4/edit?usp=sharing)
+which decouples the two projects and allows each project to move even faster.
+
+Along with numerous other bug fixes and smaller improvements, here are some of 
the major advances:
+
+## Advanced SQL
+- Support for GROUPING SETS/CUBE/ROLLUP (#2716)
+- Custom window frame logic (support `ROWS`, `RANGE`, `PRECEDING` and 
`FOLLOWING` for window functions) (#3570)
+- Add support for correlated subqueries (#2885)
+- `ROLLUP` and `CUBE` grouping set expressions (#2446)
+- #2405 SUM DISTINCT aggregate support Sum distinct support
+- Support for `IN` and `NOT IN` Subqueries by rewriting them to `SEMI` / 
`ANTI` (#2421)
+- Support for non equality predicates in  `ON` clause of  `LEFT`, `RIGHT, `and 
`FULL` joins (#2591)
+- Exact `MEDIAN` (#3009)
+
+# More DDL Support
+ - `CREATE VIEW` (#2279)
+ - `DESCRIBE <table>` (#2642)
+ - Custom / Dynamic table provider factories (#3311)
+ - `SHOW CREATE TABLE` for support for views (#2830)
+
+# Faster Execution
+ - Optimizations of TopK (queries with a `LIMIT` or `OFFSET` clause):  
(#3527), (#2521)
+ - Reduce `left`/`right`/`full` joins to `inner` join (#2750)
+ - Convert  cross joins to inner joins when possible (#3482)
+ - Sort preserving `SortMergeJoin` (#2699)
+ - Improvements in group by and sort performance (#2375)
+
+# Optimizer Enhancements
+- Casting / coercion now happens logical planning (#3185) (#3396) (#3636)
+- More sophisticated expression analysis and simplification
+
+# Parquet
+ - Parquet reader can now read directly from remote parquet files on object 
storage (#2489) (#2677) (#3051)
+ - Experimental support for “predicate pushdown” that implements late 
materialization after filtering during the scan (we plan another blog post on 
this soon).
+ - Support reading directly from S3 via `datafusion-cli ` (#3631)
+
+# DataType Support
+- Support for `IN` LIST,  support, casting, etc for `Decimal`
+- Timestamps: `date_bin` built-in function (#3034), timestamp plus minus 
interval (#3110), TIME literal values (#3010)
+- Binary operations (AND, XOR, etc):  (#3037) (#1619) (#3420) (#3430)
+
+
+
+## Upcoming Work
+With the community growing and code accelerating, there is so much great stuff 
on the horizon. Some features we expect to land in the next few months:
+
+- [Complete Parquet 
Pushdown](https://github.com/apache/arrow-datafusion/issues/3462)
+- [Additional date/time 
support](https://github.com/apache/arrow-datafusion/issues/3148)
+- improve / make it easier to implement FlightSQL using DataFusion (TODO LINK)
+

Review Comment:
   Absolutely -- done in 824648efdf



##########
_posts/2022-10-20-datafusion-13.0.0.md:
##########
@@ -0,0 +1,226 @@
+---
+layout: post
+title: "Apache Arrow DataFusion 13.0.0 Project Update"
+date: "2022-10-20 00:00:00"
+author: pmc
+categories: [release]
+---
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+# Introduction
+
+[Apache Arrow DataFusion](https://arrow.apache.org/datafusion/) 
[`13.0.0`](https://crates.io/crates/datafusion) is released, and this blog 
contains an update on the project for the 5 months since our [last update in 
May 2022](https://arrow.apache.org/blog/2022/05/16/datafusion-8.0.0/).
+
+DataFusion is an extensible and embeddable query engine, written in Rust used 
to create modern, fast and efficient data pipelines, ETL processes, and 
database systems. You may want to check out DataFusion to extend your Rust 
project with:
+
+- [SQL 
support](https://arrow.apache.org/datafusion/user-guide/sql/sql_status.html),
+- [DataFrame 
API](https://docs.rs/datafusion/13.0.0/datafusion/dataframe/struct.DataFrame.html),
+- A custom Domain Specific Query Language
+- The ability to easily and quickly read and process Parquet, JSON, Avro or 
CSV data.
+- To read from remote object stores such as AWS S3, Azure Blob Storage, GCP.
+
+Even though DataFusion is 4 years "young," it has seen significant community 
growth in the last few months and the momentum continues to accelerate.
+
+# Background
+
+
+DataFusion is used as the engine in [many open source and commercial 
projects](https://github.com/apache/arrow-datafusion#known-uses) and was one of 
the early open source projects to provide this capability. 2022 has validated 
our belief in the need for such a ["LLVM for database and AI 
systems"](https://www.slideshare.net/AndrewLamb32/20220623-apache-arrow-and-datafusion-changing-the-game-for-implementing-database-systemspdf)
 with announcements such as the [release of FaceBook's 
Velox](https://engineering.fb.com/2022/08/31/open-source/velox/) engine, the 
major investments in 
[Acero](https://arrow.apache.org/docs/cpp/streaming_execution.html) as well as 
the continued popularity of [Apache Calcite](https://calcite.apache.org/) and 
other similar technologies.
+
+While Velox and Acero focus on execution engines, DataFusion provides the 
entire suite of components needed to build most analytic systems, including a 
SQL frontend, a dataframe API, and  extension points for just about everything. 
Some [DataFusion users](https://github.com/apache/arrow-datafusion#known-uses) 
use a subset of the features such as the frontend (e.g. 
(dask-sql)[https://dask-sql.readthedocs.io/en/latest/] or the execution engine, 
such as [Blaze](https://github.com/blaze-init/blaze), and some users use many 
different components to build both SQL based and customized DSL based systems 
such as [InfluxDB IOx](https://github.com/influxdata/influxdb_iox/pulls) and 
[VegaFusion](https://github.com/vegafusion/vegafusion).
+
+One of DataFusion’s advantages is its implementation in 
[Rust](https://www.rust-lang.org/) and thus its easy integration with the 
broader Rust ecosystem. Rust continues to be a major source of benefit, from 
the [ease of parallelization with the high quality and standardized `async` 
ecosystem](https://www.influxdata.com/blog/using-rustlangs-async-tokio-runtime-for-cpu-bound-tasks/)
 , as well as its modern dependency management system and wonderful 
performance. <!-- I wonder if we should link to clickbench?? -->
+<!--While we haven’t invested in the benchmarking ratings game datafusion 
continues to be quite speedy (todo quantity this, with some evidence) – maybe 
clickbench?-->
+
+<!-- I am not sure this section needed -->
+DataFusion belongs to and builds on the Apache Arrow ecosystem and its family 
of related technologies and projects in rust. This include
+- [Arrow](https://arrow.apache.org/): low level array representation
+- [Parquet](https://parquet.apache.org/): high performance, full featured 
support for the parquet file format
+
+
+
+# DataFusion in Action
+
+While DataFusion really shines as an embeddable query engine, if you want to 
try it out and get a feel for its power, you can use the 
basic[`datafusion-cli`](https://docs.rs/datafusion-cli/13.0.0/datafusion_cli/) 
tool to get a sense for what is possible to add in your application
+
+(TODO example here of using datafusion-cli to query from local parquet files 
on disk)
+
+TODO: also mention you can use the same thing to query data from S3
+
+
+
+# Summary
+
+We have increased the frequency of DataFusion releases to monthly instead of 
quarterly. This
+makes it easier for the increasing number of projects that now depend on 
DataFusion.
+
+We have also completed the "graduation" of [Ballista to its own top-level 
arrow-ballista 
repository](https://docs.google.com/document/d/1jNRbadyStSrV5kifwn0khufAwq6OnzGczG4z8oTQJP4/edit?usp=sharing)
+which decouples the two projects and allows each project to move even faster.
+
+Along with numerous other bug fixes and smaller improvements, here are some of 
the major advances:
+
+## Advanced SQL
+- Support for GROUPING SETS/CUBE/ROLLUP (#2716)
+- Custom window frame logic (support `ROWS`, `RANGE`, `PRECEDING` and 
`FOLLOWING` for window functions) (#3570)
+- Add support for correlated subqueries (#2885)
+- `ROLLUP` and `CUBE` grouping set expressions (#2446)
+- #2405 SUM DISTINCT aggregate support Sum distinct support
+- Support for `IN` and `NOT IN` Subqueries by rewriting them to `SEMI` / 
`ANTI` (#2421)
+- Support for non equality predicates in  `ON` clause of  `LEFT`, `RIGHT, `and 
`FULL` joins (#2591)
+- Exact `MEDIAN` (#3009)
+
+# More DDL Support
+ - `CREATE VIEW` (#2279)
+ - `DESCRIBE <table>` (#2642)
+ - Custom / Dynamic table provider factories (#3311)
+ - `SHOW CREATE TABLE` for support for views (#2830)
+
+# Faster Execution
+ - Optimizations of TopK (queries with a `LIMIT` or `OFFSET` clause):  
(#3527), (#2521)
+ - Reduce `left`/`right`/`full` joins to `inner` join (#2750)
+ - Convert  cross joins to inner joins when possible (#3482)
+ - Sort preserving `SortMergeJoin` (#2699)
+ - Improvements in group by and sort performance (#2375)
+
+# Optimizer Enhancements
+- Casting / coercion now happens logical planning (#3185) (#3396) (#3636)
+- More sophisticated expression analysis and simplification
+
+# Parquet
+ - Parquet reader can now read directly from remote parquet files on object 
storage (#2489) (#2677) (#3051)
+ - Experimental support for “predicate pushdown” that implements late 
materialization after filtering during the scan (we plan another blog post on 
this soon).
+ - Support reading directly from S3 via `datafusion-cli ` (#3631)
+
+# DataType Support
+- Support for `IN` LIST,  support, casting, etc for `Decimal`
+- Timestamps: `date_bin` built-in function (#3034), timestamp plus minus 
interval (#3110), TIME literal values (#3010)
+- Binary operations (AND, XOR, etc):  (#3037) (#1619) (#3420) (#3430)
+
+
+
+## Upcoming Work
+With the community growing and code accelerating, there is so much great stuff 
on the horizon. Some features we expect to land in the next few months:
+
+- [Complete Parquet 
Pushdown](https://github.com/apache/arrow-datafusion/issues/3462)
+- [Additional date/time 
support](https://github.com/apache/arrow-datafusion/issues/3148)
+- improve / make it easier to implement FlightSQL using DataFusion (TODO LINK)
+

Review Comment:
   Absolutely -- done in 824648efdf



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to