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


##########
_posts/2023-01-07-datafusion-16.0.0.md:
##########
@@ -0,0 +1,308 @@
+---
+layout: post
+title: "Apache Arrow DataFusion 16.0.0 Project Update"
+date: "2023-01-07 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
+
+[DataFusion](https://arrow.apache.org/datafusion/) is an extensible
+query execution framework, written in [Rust](https://www.rust-lang.org/),
+that uses [Apache Arrow](https://arrow.apache.org) as its
+in-memory format. It is targeted primarily at developers creating data
+intensive analytics, and offers mature
+[SQL support](https://arrow.apache.org/datafusion/user-guide/sql/index.html),
+a DataFrame API, and many extension points.
+
+Systems based on DataFusion perform very well in benchmarks,
+especially considering they operate directly on parquet files rather
+than first loading into a specialized format.  Some recent highlights
+include [clickbench](https://benchmark.clickhouse.com/) and the
+[Cloudfuse.io standalone query
+engines](https://www.cloudfuse.io/dashboards/standalone-engines) page.
+
+DataFusion is also part of a longer term trend, articulated clearly by
+[Andy Pavlo](http://www.cs.cmu.edu/~pavlo/) in his [2022 Databases
+Retrospective](https://ottertune.com/blog/2022-databases-retrospective/).
+Database frameworks are proliferating and it is likely that all OLAP
+DBMSs and other data heavy applications, such as machine learning,
+will **require** a vectorized, highly performant query engine in the next
+5 years to remain relevant.  The only practical way to make such
+technology so widely available without many millions of dollars of
+investment is though open source engine such as DataFusion or
+[Velox](https://github.com/facebookincubator/velox).
+
+The rest of this post describes the improvements made to DataFusion
+over the last three months and some hints of where we are heading.
+
+
+## Community Growth
+
+We again saw significant growth in the DataFusion community since [our last 
update](https://arrow.apache.org/blog/2022/10/25/datafusion-13.0.0/). There are 
some interesting metrics on 
[OSSRank](https://ossrank.com/p/1573-apache-arrow-datafusion).
+
+The DataFusion 16.0.0 release consists of 524 PRs from 70 distinct 
contributors, not including all the work that goes into dependencies such as 
[arrow](https://crates.io/crates/arrow), 
[parquet](https://crates.io/crates/parquet), and 
[object_store](https://crates.io/crates/object_store), that much of the same 
community helps support. Thank you all for your help
+
+<!--
+git log --pretty=oneline 13.0.0..16.0.0-rc1 . | wc -l
+524
+
+    $ git shortlog -sn 13.0.0..16.0.0-rc1 . | wc -l
+70
+-->
+Several [new systems based on 
DataFusion](https://github.com/apache/arrow-datafusion#known-uses) were 
recently added:
+
+* [Greptime DB](https://github.com/GreptimeTeam/greptimedb)
+* [Synnada](https://synnada.ai/)
+* [PRQL](https://github.com/PRQL/prql-query)
+- [Parseable](https://github.com/parseablehq/parseable)
+* [SeaFowl](https://github.com/splitgraph/seafowl)
+
+
+## Performance 🚀
+
+Performance and efficiency are core values for
+DataFusion. While there is still a gap between DataFusion and the best of
+breed, tightly integrated systems such as [DuckDB](https://duckdb.org)
+and [Polars](https://www.pola.rs/), DataFusion is
+closing the gap quickly. Performance highlights from the last three
+months:
+
+* Up to 30% Faster Sorting and Merging using the new [Row 
Format](https://arrow.apache.org/blog/2022/11/07/multi-column-sorts-in-arrow-rust-part-1/)
+* [Advanced predicate 
pushdown](https://arrow.apache.org/blog/2022/12/26/querying-parquet-with-millisecond-latency/),
 directly on parquet, directly from object storage, enabling sub millisecond 
filtering. <!-- Andrew nots: we should really get this turned on by default -->
+* `70%` faster `IN` expressions evaluation ([#4057])
+* Sort and partition aware optimizations ([#3969] and  [#4691])
+* Filter selectivity analysis ([#3868])
+
+## Runtime Resource Limits
+
+Previously, DataFusion could potentially use unbounded amounts of memory for 
certain queries that included Sorts, Grouping or Joins.
+
+In version 16.0.0, it is possible to limit DataFusion's memory usage for 
Sorting and Grouping. We are looking for help adding similar limiting for Joins 
as well as expanding our algorithms to optionally spill to secondary storage. 
See [#3941] for more detail.
+
+
+## SQL Window Functions
+
+[SQL Window Functions](https://en.wikipedia.org/wiki/Window_function_(SQL)) 
are useful for a variety of analysis and DataFusion's implementation support 
expanded significantly:
+
+- Custom window frames such as `... OVER (ORDER BY ... RANGE BETWEEN 0.2 
PRECEDING AND 0.2 FOLLOWING)`
+- Unbounded window frames such as `... OVER (ORDER BY ... RANGE UNBOUNDED ROWS 
PRECEDING)`
+- Support for the `NTILE` window function ([#4676])
+- Support for `GROUPS` mode ([#4155])
+
+
+# Improved Joins
+
+Joins are often the most complicated operations to handle well in
+analytics systems and DataFusion 16.0.0 offers significant improvements
+such as
+
+- Cost based optimizer (CBO) automatically reorders join evaluations, selects 
algorithms (Merge / Hash), and pick build side based on available statistics 
and join type (`INNER`, `LEFT`, etc) ([#4219])
+- Fast non `column=column` equijoins such as `JOIN ON a.x + 5 = b.y`
+- Better performance on non-equijoins ([#4562]) <!-- TODO is this a good thing 
to mention as any time this is usd the query is going to go slow or the data 
size is small -->
+
+# Streaming Execution
+
+One emerging use case for Datafusion is as a foundation for
+streaming-first data platforms. An important prerequisite
+is support for incremental execution if queries that can be computed

Review Comment:
   ```suggestion
   is support for incremental execution for queries that can be computed
   ```



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to