【发布时间】:2019-04-16 00:19:43
【问题描述】:
我还没有选择流媒体框架,但我现在正在搞乱 Flink。但是,我愿意使用 Beam、Spark Streaming,只要我发现适合我的用例。您将如何执行以下 SQL 的等效操作:
SELECT a,b,c, avg(d), avg(e), ..., avg(z)
FROM whatever
GROUP BY a,b,c,d,e, ..., z
似乎对于 Flink 来说,平均是通过 AggregateFunction https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/api/common/functions/AggregateFunction.java#L61 完成的
但我不明白你是如何制作这个“规模”的。对于单个字段的平均值,这似乎是很多样板。如果我需要对多个不同字段的不同流进行平均怎么办?
Flink、Beam、Structured Streaming 等是否让这变得更容易?
顺便说一句,有没有一种简单的方法可以从 Postgres 中模拟这种漂亮的小计数过滤器语法,
SELECT
COUNT(*) AS unfiltered,
COUNT(*) FILTER (WHERE some_condition) AS filtered
FROM whatever
【问题讨论】:
标签: apache-spark-sql spark-streaming apache-flink apache-beam flink-streaming