Flink SQL客户端

Flink SQL CLI启动

SQL客户端旨在提供一种简单的方式,无需一行Java或Scala代码,即可将表程序编写、调试和提交到Flink集群。SQL客户机CLI允许检索和可视化命令行上运行的分布式应用程序的实时结果。
SQL客户机绑定在常规Flink发行版中,因此可以开箱即用。它只需要一个正在运行的Flink集群,其中可以执行表程序。

环境准备

可以自己安装flink环境,也可以通过docker一键安装 :
github 下载sql-raining
https://github.com/ververica/sql-training
使用docker执行:
docker-compose up -d
我这里是在Linux虚拟机上安装的Docker,建议Docker内存4G左右。
使用 Docker Compose 来安装,包含了所需的各种服务的容器,包括:

  • Flink SQL Client:用来提交query,以及可视化结果
  • Flink JobManager 和 TaskManager:用来运行 Flink SQL 任务。
  • Apache Kafka:用来生成输入流和写入结果流。
  • Apache Zookeeper:Kafka 的依赖项
  • ElasticSearch:用来写入结果
    docker-compose 命令会启动所有所需的容器。第一次运行的时候,Docker 会自动地从 Docker Hub 下载镜像,这可能会需要一段时间(将近 2.3GB)。
    运行成功的话,可以在 http://localhost:8081 访问到 Flink Web UI
    在这里插入图片描述
运行 Flink SQL CLI 客户端

docker环境中运行方式:

docker-compose exec sql-client ./sql-client.sh

该命令会在容器中启动 Flink SQL CLI 客户端.

自己安装的环境(我这里使用自己安装的flink环境):

./bin/start-cluster.sh
./bin/sql-client.sh embedded

默认情况下,SQL客户端将读取环境文件./conf/sql-client-defaults.yaml中的配置
在这里插入图片描述

运行SQL查询

help

使用HELP命令列出所有可用的SQL语句
在这里插入图片描述

SELECT
select 'hello world';

该查询不需要表源,只生成一行结果。CLI将从集群中检索结果并将其可视化。您可以通过按Q键关闭结果视图。
在这里插入图片描述
CLI支持两种模式来维护和可视化结果。
表模式在内存中实现结果,并以规则的分页表表示将结果可视化。它可以通过在CLI中执行以下命令来启用:
SET execution.result-mode=table;

变更日志模式不会物化结果,而是可视化由插入(+)和撤销(-)组成的连续查询生成的结果流。
SET execution.result-mode=changelog;

使用如下代码验证,该查询执行一个有界word count示例:

SELECT name, COUNT(*) AS cnt FROM (VALUES ('Bob'), ('Alice'), ('Greg'), ('Bob')) AS NameTable(name) GROUP BY name;

表模式下结果:
在这里插入图片描述

变更日志模式结果:
在这里插入图片描述
在这两种模式中,结果都存储在SQL客户机的Java堆内存中。为了保持CLI接口的响应,变更日志模式只显示最新的1000个更改。table模式允许在较大的结果中导航,这些结果只受可用主内存和配置的最大行数(max-table-result-rows)的限制。

在批处理环境中执行的查询只能使用表结果模式检索。

配置

可以使用以下可选CLI命令启动SQL客户机。
通过help查看命令选项:

./bin/sql-client.sh embedded --help

我们可以看到,可以通过-e指定配置环境等。
在这里插入图片描述

环境文件

SQL查询需要一个执行它的配置环境。所谓的环境文件定义了可用的表源和接收、外部目录、用户定义的函数以及执行和部署所需的其他属性。
每个环境文件都是一个常规YAML文件。之前说了默认会选择读取环境文件./conf/sql-client-defaults.yaml中的配置。我们可以自己设置yaml文件。
文件的示例:

# Define tables here such as sources, sinks, views, or temporal tables.

tables:
  - name: MyTableSource
    type: source-table
    update-mode: append
    connector:
      type: filesystem
      path: "/path/to/something.csv"
    format:
      type
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值