当您需要检验作业是否可以正常运行、逻辑是否正确时,为了减少外部系统开销和避免干扰因素,可以选择使用一些调试专用的 Connector。
Print 连接器是一个系统内置的调试专用结果表,可以将作业结果输出并打印到 Stdout(标准输出)日志中。
请不要在正式环境的任务中使用 Print 调试连接器,会影响任务性能,存在写满磁盘的风险。
CREATE TABLE print_sink ( name String, score INT ) WITH ( 'connector' = 'print', 'print-identifier' = 'out', --为输出数据设置的前置标识符。 'print-sample-ratio' = '0.01' --输出的采样率。 );
参数 | 是否必选 | 默认值 | 数据类型 | 描述 |
---|---|---|---|---|
connector | 是 | (none) | String | 指定使用的连接器,此处是 Print 连接器。 |
print-identifier | 否 | (none) | String | 为输出数据设置一个前置标识符,以便更准确的分辨打印数据。 |
print-sample-ratio | 否 | 0.01 | Double | 输出的采样率,取值范围为 0~1。
|
sink.parallelism | 否 | (none) | Integer | 并行度。与上下游算子的并行度保持一致。 说明 并发度建议设置成 1,这样可以避免每个 TaskManager 的 Stdout 都输出内容。 |
CREATE TABLE datagen_source ( siteid INT, citycode SMALLINT, username VARCHAR, pv BIGINT ) WITH ( 'connector' = 'datagen', 'rows-per-second' = '5', 'fields.username.length' = '30', 'fields.siteid.max' = '1000', 'fields.siteid.min' = '100' ); CREATE TABLE print_sink ( siteid INT, citycode SMALLINT, username VARCHAR, pv BIGINT ) WITH ( 'connector' = 'print', 'print-identifier' = 'out', 'print-sample-ratio' = '0.01' ); INSERT INTO print_sink SELECT * FROM datagen_source;
如何查看 Print 输出数据结果?
目前支持两种方式查看 Print 输出结果:可以在控制台的 TaskManager 运行日志中查看;也可以在 Flink UI 的 Stdout 输出日志中查看。
说明
如果没有查看到 Print 输出结果,有可能是抽样频率(print-sample-ratio)设置太小所导致。