如何搭建一个网站开发环境,中国室内设计联盟网站,在线做网站有哪些平台,成都周边旅游景点大全Flink系列之#xff1a;Flink SQL Gateway 一、Flink SQL Gateway二、部署三、启动SQL Gateway四、运行 SQL 查询五、SQL 网关启动选项六、SQL网关配置七、支持的端点 一、Flink SQL Gateway 
SQL 网关是一项允许多个客户端从远程并发执行 SQL 的服务。它提供了一种简单的方法… Flink系列之Flink SQL Gateway 一、Flink SQL Gateway二、部署三、启动SQL Gateway四、运行 SQL 查询五、SQL 网关启动选项六、SQL网关配置七、支持的端点 一、Flink SQL Gateway 
SQL 网关是一项允许多个客户端从远程并发执行 SQL 的服务。它提供了一种简单的方法来提交 Flink 作业、查找元数据并在线分析数据。 
SQL 网关由可插入端点和 SqlGatewayService 组成。 SqlGatewayService 是一个由端点重用来处理请求的处理器。端点是允许用户连接的入口点。根据端点的类型用户可以使用不同的实用程序进行连接。 二、部署 
本节介绍如何从命令行设置和运行您的第一个 Flink SQL 程序。 
SQL Gateway 捆绑在常规 Flink 发行版中因此可以开箱即用。它只需要一个正在运行的Flink集群可以在其中执行表程序。如果您只是想尝试 SQL 客户端您还可以使用以下命令启动一个由一名工作人员组成的本地集群 
$ ./bin/start-cluster.sh三、启动SQL Gateway 
SQL Gateway 脚本也位于 Flink 的二进制目录中。用户可以通过调用以下方式开始 
$ ./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.addresslocalhost该命令启动带有 REST 端点的 SQL 网关该端点侦听地址 localhost:8083。您可以使用curl命令检查REST端点是否可用。 
$ curl http://localhost:8083/v1/info
{productName:Apache Flink,version:1.20-SNAPSHOT}四、运行 SQL 查询 
要验证您的设置和集群连接您可以执行以下步骤。 
第 1 步打开会话 
$ curl --request POST http://localhost:8083/v1/sessions
{sessionHandle:...}SQL Gateway 使用返回结果中的 sessionHandle 来唯一标识每个活动用户。 
第 2 步执行查询 
$ curl --request POST http://localhost:8083/v1/sessions/${sessionHandle}/statements/ --data {statement: SELECT 1}
{operationHandle:...}返回结果中的operationHandle用于SQL Gateway唯一标识提交的SQL。 
第 3 步获取结果 
有了上面的sessionHandle和operationHandle就可以取到相应的结果了。 
$ curl --request GET http://localhost:8083/v1/sessions/${sessionHandle}/operations/${operationHandle}/result/0
{results: {columns: [{name: EXPR$0,logicalType: {type: INTEGER,nullable: false}}],data: [{kind: INSERT,fields: [1]}]},resultType: PAYLOAD,nextResultUri: ...
}结果中的nextResultUri如果不为null则用于获取下一批结果。 
$ curl --request GET ${nextResultUri}五、SQL 网关启动选项 
$ ./bin/sql-gateway.sh --helpUsage: sql-gateway.sh [start|start-foreground|stop|stop-all] [args]commands:start               - Run a SQL Gateway as a daemonstart-foreground    - Run a SQL Gateway as a console applicationstop                - Stop the SQL Gateway daemonstop-all            - Stop all the SQL Gateway daemons-h | --help         - Show this help message对于“start”或“start-foreground”命令您可以在 CLI 中配置 SQL 网关。 
$ ./bin/sql-gateway.sh start --helpStart the Flink SQL Gateway as a daemon to submit Flink SQL.Syntax: start [OPTIONS]-D propertyvalue   Use value for given property-h,--help             Show the help message with descriptions of alloptions.六、SQL网关配置 
您可以在下面启动 SQL Gateway 时配置 SQL Gateway或者任何有效的 Flink 配置条目 
$ ./sql-gateway -DkeyvaluekeyDefaultTypeDescriptionsql-gateway.session.check-interval1 minDuration空闲会话超时的检查间隔可以通过设置为零来禁用。sql-gateway.session.idle-timeout10 minDuration当会话在该时间间隔内没有被访问时关闭会话的超时时间。如果设置为零会话将不会关闭。sql-gateway.session.max-num1000000IntegerSQL Gateway 服务的最大活动会话数。sql-gateway.session.plan-cache.enabledfalseBoolean如果为 truesql gateway 将缓存并重用每个会话的查询计划。sql-gateway.session.plan-cache.size100Integer计划缓存大小当table.optimizer.plan-cache.enabled为true时生效。sql-gateway.session.plan-cache.ttl1 hourDurationplan缓存的TTL它控制缓存写入后多久过期当table.optimizer.plan-cache.enabled为true时生效。sql-gateway.worker.keepalive-time5 minDuration空闲工作线程的保持活动时间。当工作线程数超过最小工作线程数时在此时间间隔后多余的线程将被杀死。sql-gateway.worker.threads.max500Integersql gateway 服务的最大工作线程数。sql-gateway.worker.threads.min5Integersql gateway 服务的最小工作线程数。 
七、支持的端点 
Flink 原生支持 REST Endpoint 和 HiveServer2 Endpoint。默认情况下SQL 网关与 REST 端点捆绑在一起。凭借灵活的架构用户可以通过调用来启动具有指定端点的SQL Gateway 
$ ./bin/sql-gateway.sh start -Dsql-gateway.endpoint.typehiveserver2或者在Flink配置文件中添加以下配置 
sql-gateway.endpoint.type: hiveserver2注意如果 Flink 配置文件中还包含 sql-gateway.endpoint.type 选项则 CLI 命令具有更高的优先级。