Dinky的使用——实现多路输出
其实多路输出就是制定多个个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的三张不同的数据表查看结果:
育儿分类的新闻数据,我这里就拉了两个字段
运动分类的新闻数据
包含国足关键词的新闻数据