百里登风

导航

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的三张不同的数据表查看结果:

育儿分类的新闻数据,我这里就拉了两个字段

 

 

 

 

运动分类的新闻数据

 

 

 

包含国足关键词的新闻数据

 

posted on 2022-10-19 16:29  百里登峰  阅读(344)  评论(0编辑  收藏  举报