Flink1.9的sql-client初探

本文详细介绍如何使用 Apache Flink 1.9 版本搭建集群,配置 test-env.yaml 文件,并通过具体实例展示如何定义源表、目标表及视图,实现 CSV 文件的数据读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装flink1.9  start-cluster

编写test-env.yaml (一定注意格式和缩进! 对照  https://github.com/apache/flink/blob/release-1.9/flink-table/flink-sql-client/src/test/resources/test-sql-client-defaults.yaml  自己调整或者直接覆盖)

具体配置项:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sqlClient.html

tables:
 - name: MyTableSource
   type: source-table
   update-mode: append
   connector:
     type: filesystem
     path: "/tmp/input.csv"
   format:
     type: csv
     fields:
       - name: MyField1
         type: INT
       - name: MyField2
         type: VARCHAR
     line-delimiter: "\n"
     comment-prefix: "#"
   schema:
     - name: MyField1
       type: INT
     - name: MyField2
       type: VARCHAR
       
 - name: MyTableSink
   type: sink-table
   update-mode: append
   connector:
     type: filesystem
     path: "/tmp/ouput.csv"
   format:
     type: csv
     fields:
       - name: MyField1
         type: INT
       - name: MyField2
         type: VARCHAR
   schema:
     - name: MyField1
       type: INT
     - name: MyField2
       type: VARCHAR
       
       
 - name: MyCustomView
   type: view
   query: "SELECT MyField2 FROM MyTableSource"


execution:
  planner: old
  type: streaming
  time-characteristic: event-time
  periodic-watermarks-interval: 99
  parallelism: 1
  max-parallelism: 16
  min-idle-state-retention: 0
  max-idle-state-retention: 0
  result-mode: table
  max-table-result-rows: 100
  restart-strategy:
    type: failure-rate
    max-failures-per-interval: 10
    failure-rate-interval: 99000
    delay: 1000

configuration:
  table.optimizer.join-reorder-enabled: false

deployment:
  response-timeout: 5000
 

=============================================

cat /tmp/input.csv   文件内容如下
1,hello
2,world
3,hello world
1,ok
3,bye bye
4,yes
 

 

启动 ./bin/sql-client.sh embedded -e conf/env.yaml

就可以看见表了

 

### Flink SQL-client 1.19.1 版本特性 Flink 社区持续改进和完善 SQL-client 功能,在 1.19.1 版本中引入了一系列增强功能和优化措施。此版本增强了对复杂查询的支持,提升了性能表现,并增加了更多连接器选项来满足多样化的应用场景需求。 - **增强的查询处理能力**:支持更复杂的嵌套子查询结构以及多层聚合操作。 - **性能提升**:通过对内部执行计划生成机制进行了调整,减少了不必要的计算开销;同时针对分布式环境下的资源调度策略也做了相应优化[^1]。 - **新增加的数据源连接器**:除了已有的 Kafka 和 Hive 连接器外,还加入了对于 MongoDB、Elasticsearch 等多种外部存储系统的集成支持[^2]。 ### 安装指南 为了安装 Flink SQL-client 1.19.1,需先获取对应版本的二进制包并将其解压至目标目录: ```bash wget https://archive.apache.org/dist/flink/flink-1.19.1/flink-1.19.1-bin-scala_2.12.tgz tar -xzvf flink-1.19.1-bin-scala_2.12.tgz -C /opt/ cd /opt/flink-1.19.1 ``` 接着按照官方文档说明配置好必要的环境变量 `FLINK_HOME` 及路径设置,确保可以从任意位置调用 Flink 命令行工具[^3]。 最后根据实际应用情况下载所需的额外组件或插件,例如 MySQL CDC Connector: ```bash sudo -u flink wget https://repo1.maven.org/maven2/com/ververica/flink-connector-mysql-cdc/2.3.0/flink-connector-mysql-cdc-2.3.0.jar -P $FLINK_HOME/lib/ ``` 请注意上述命令中的链接指向的是特定版本(此处为 2.3.0),具体应依据项目需求选择合适的依赖项版本。 ### 使用教程 启动 Flink SQL-client 后可以通过交互式的命令提示符来进行各种数据库操作。下面是一个简单的例子展示如何创建一张基于 CSV 文件格式输入流上的表,并对其进行基本统计分析: ```sql CREATE TABLE my_table ( id BIGINT, name STRING, age INT ) WITH ( 'connector' = 'filesystem', 'path' = '/tmp/input.csv', 'format' = 'csv' ); SELECT COUNT(*), AVG(age) FROM my_table; ``` 此外还可以利用预加载好的 JDBC 或者其他类型的连接器实现与其他关系型数据库之间的无缝对接,方便快捷地完成数据迁移任务或是构建实时ETL管道[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值