更新时间:2024-09-27 GMT+08:00

Print

功能描述

Print connector用于将用户输出的数据打印到taskmanager中的error文件或者out文件中,方便用户查看,主要用于代码调试,查看输出结果。

前提条件

无。

注意事项

  • Print结果表支持以下四种格式内容输出:

    打印内容

    条件1

    条件2

    标识符:任务 ID> 输出数据

    需要提供前缀打印标识符,即创建Print表时在with参数中指定print-identifier。

    parallelism > 1

    标识符> 输出数据

    需要提供前缀打印标识符,即创建Print表时在with参数中指定print-identifier。

    parallelism == 1

    任务 ID> 输出数据

    不需要提供前缀打印标识符,即创建Print表时在with参数中不指定print-identifier。

    parallelism > 1

    输出数据

    不需要提供前缀打印标识符,即创建Print表时在with参数中不指定print-identifier。

    parallelism == 1

  • 创建Flink OpenSource SQL作业时,在作业编辑界面的“运行参数”处,“Flink版本”需要选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。

语法格式

1
2
3
4
5
6
7
8
9
create table printSink (
  attr_name attr_type 
  (',' attr_name attr_type) * 
  (',' PRIMARY KEY (attr_name,...) NOT ENFORCED)
) with (
  'connector' = 'print',
  'print-identifier' = '',
  'standard-error' = ''
);

参数说明

表1 参数说明

参数

是否必选

默认值

数据类型

说明

connector

String

固定为:print。

print-identifier

String

配置一个标识符作为输出数据的前缀。

standard-error

false

Boolean

该值只能为true或false,默认为false。

  • 如果为true,则表示输出数据到taskmanager的error文件中。
  • 如果为false,则表示输出数据到taskmanager的out中。

sink.parallelism

Integer

为Print结果表定义并行度。默认情况下,并行度由框架决定,与上游并行度一致。

示例

创建flink opensource sql作业,运行如下作业脚本,通过DataGen表产生随机数据并输出到Print结果表中。

create table dataGenSource(
  user_id string,
  amount int
) with (
  'connector' = 'datagen',
  'rows-per-second' = '1', --每秒生成一条数据
  'fields.user_id.kind' = 'random', --为字段user_id指定random生成器
  'fields.user_id.length' = '3' --限制user_id长度为3
);

create table printSink(
  user_id string,
  amount int
) with (
  'connector' = 'print',
  'print-identifier' = '', --配置数据前缀
  'standard-error' = 'false', --输出数据到taskmanager的out文件中
  'sink.parallelism' = '2' --配置并行度
);

insert into printSink select * from dataGenSource;

该作业提交后,作业状态变成“运行中”,后续您可通过如下操作查看输出结果。

  • 方法一:
    1. 登录DLI管理控制台,选择“作业管理 > Flink作业”。
    2. 在对应Flink作业所在行的“操作”列,选择“更多 > FlinkUI”。
    3. 在FlinkUI界面,选择“Task Managers”,单击对应的任务名称,选择“Stdout”查看作业运行日志。
  • 方法二:如果在提交运行作业前“运行参数”选择了“保存作业日志”,可以通过如下操作查看。
    1. 登录DLI管理控制台,选择“作业管理 > Flink作业”。
    2. 单击对应的Flink作业名称,选择“运行日志”,单击“OBS桶”,根据作业运行的日期,找到对应日志的文件夹。
    3. 进入对应日期的文件夹后,找到名字中包含“taskmanager”的文件夹进入,下载获取taskmanager.out文件查看结果日志。
  • 方法三:如果是新版本队列,可以通过如下操作查看。
    1. 登录DLI管理控制台,选择“作业管理 > Flink作业”。
    2. 单击对应的Flink作业名称,选择“日志列表”。
    3. 在左上角下拉框选择对应的taskmanager名称,单击taskmanager.out文件查看结果日志。