其实多路输出就是制定多个个insert into语句,我这里以mysql数据库为例,实现三路输出的一个小案例
一、创建作业
二、编写flinksql代码
CREATE TABLE source_news(
`id` INT,
`timestamp` TIMESTAMP,
`title` STRING,
`source` STRING,
`head_img` STRING,
`url` STRING,
`category` STRING,
`keyword` STRING,
`tag` STRING,
`description` STRING,
`content` STRING
) COMMENT 'source_news'
WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://172.16.119.50:3306/test?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8',
'username' = 'root',
'password' = 'Tj@20220710',
'table-name' = 'source_news'
);
CREATE TABLE sport_count(
`id` INT,
`timestamp` TIMESTAMP,
`title` STRING,
`source` STRING,
`head_img` STRING,
`url` STRING,
`category` STRING,
`keyword` STRING,
`tag` STRING,
`description` STRING,
`content` STRING
) COMMENT 'sport_count' WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://172.16.119.50:3306/test?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8',
'username' = 'root',
'password' = 'Tj@20220710',
'table-name' = 'sport_count'
);
CREATE TABLE sport_football(
`id` INT,
`timestamp` TIMESTAMP,
`title` STRING,
`source` STRING,
`head_img` STRING,
`url` STRING,
`category` STRING,
`keyword` STRING,
`tag` STRING,
`description` STRING,
`content` STRING
) COMMENT 'sport_football' WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://172.16.119.50:3306/test?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8',
'username' = 'root',
'password' = 'Tj@20220710',
'table-name' = 'sport_football'
);
create table raise_children_count(
`id` int,
`category` string,
`title` string
-- PRIMARY KEY (id) NOT ENFORCED
) COMMENT 'raise_children_count' with(
'connector' = 'jdbc',
'url' = 'jdbc:mysql://172.16.119.50:3306/test?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8',
'username' = 'root',
'password' = 'Tj@20220710',
'table-name' = 'raise_children_count'
);
insert into raise_children_count(category,title)
select category,title from source_news where category='育儿';
insert into sport_count
SELECT * FROM source_news where category='运动';
insert into sport_football
select * from source_news where tag like '%国足%';
我这里下载了一个20万条的新闻数据集
输出一:获取属于育儿分类的新闻数据
输出二:获取运动分类的新闻数据
输出三:获取tag字段带有“国足”关键词的新闻数据
三、运行作业
检查sql语法没有问题,选择提前部署好的flink集群,同时选定开启insert语句集按钮,不然只会执行一条insert语句
通过查看mysql的三张不同的数据表查看结果:
育儿分类的新闻数据,我这里就拉了两个字段
运动分类的新闻数据
包含国足关键词的新闻数据