Flink 1.10版本支持SQL DDL的特性,本文章以从kafka消费数据,写入jdbc为例介绍整个流程。具体操作如下:
1.下载flink1.10的安装包并解压:https://www.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz 进入flink的lib目录,采用wget或是本地下载拷贝的方式下载依赖的connector ,需要的依赖有
flink-json-1.10.0.jar,flink-sql-connector-kafka_2.11-1.10.0.jar,
flink-jdbc_2.11-1.10.0.jar, mysql-connector-java-5.1.48.jar
2.执行./bin/start-cluster.sh启动flink集群,启动成功后可以在 http://localhost:8081 访问到 Flink Web UI。
3.执行./bin/sql-client.sh embedded 启动 SQL CLI。便会看到松鼠欢迎的界面,Flink SQL DDL_第1张图片

4.使用DDL建立数据源表

CREATE TABLE source_table (
    id BIGINT,    
    name STRING,
    score BIGINT
) WITH (
    'connector.type' = 'kafka',   使用kafka connector
    'connector.version' = 'universal', kafka版本,universal支持0.11以上的版本
    'connector.topic' = 'flink-ddl-test',   topic 
    'connector.properties.zookeeper.connect' = 'localhost:2181', zookeeper地址
    'connector.properties.bootstrap.servers' = 'localhost:6667',  broker service的地址
    'format.type' = 'json' 数据格式
);
  1. 建立数据sink表
create table sink_table(
  id BIGINT,
  name String,
  score BIGINT
  ) WITH (
 'connector.type' = 'jdbc', 使用jdbc connector
 'connector.url' = 'jdbc:mysql://localhost/test', jdbc url
 'connector.table' = 'my_test', 数据表名
 'connector.username' = 'root',  用户名
 'connector.password' = '123456', 密码
 'connector.write.flush.max-rows' = '1' 处理数据记录数,默认5000条
);

6.执行insert语句,提交flink任务

insert into sink_table select id,name,score from source_table;
  1. 在flink的web ui界面上可以看到提交的任务,可以消费kafka中的数据,并写入jdbc。