如何在 Flink 中使用本地执行模式执行批处理 sql?

Posted

技术标签:

【中文标题】如何在 Flink 中使用本地执行模式执行批处理 sql?【英文标题】:How to execute batch sql using local execution mode in Flink? 【发布时间】:2021-11-16 09:04:58 【问题描述】:

据我所知,Flink 支持本地执行模式(参考https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/dataset/local_execution/)。

但我想在 flink 中使用本地执行 CollectionEnvironment 执行批处理 sql,以与在线服务和离线训练数据集特征工程保持一致。

谁能告诉我如何使用本地模式执行批处理sql?

【问题讨论】:

【参考方案1】:

DataSet API 在 Flink 中已被弃用,所以我建议你改用 Table API/SQL。

使用 Flink SQL 客户端,可以设置执行模式。见https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/table/sqlclient

您要查找的设置是: SET 'execution.runtime-mode' = 'batch';

【讨论】:

谢谢。 TableApi/SQL 没问题。以及如何在批处理sql中指定collectionExecutor(CollectionEnvironment)?

以上是关于如何在 Flink 中使用本地执行模式执行批处理 sql?的主要内容,如果未能解决你的问题,请参考以下文章

Flink 流处理API之一

Flink:在Flink集群上执行Jar文件

Apache Flink:使用本地的Flink方式执行作业(调试使用)

Flink中并行度相关问题

FlinkFlink 源码阅读笔记(15)- Flink SQL 整体执行框架

Flink集群模式部署及案例执行