全部产品
云市场

Vertex Topology排查数据量问题

更新时间:2019-02-23 21:01:16

Vertex Topology数据量问题

Vertex
当某个operator为红色时,代表数据被该节点过滤。

过滤场景及排查方案:

一、Window节点过滤

window

排查方案

  1. 检查开窗的字段ts是否正常。有的用户的开窗时间是1970年、15*年。这种情况就是用户开窗字段的时间戳为10位、16位,需要使用计算列进行转换后再进行开窗操作。参见计算列文档。如果您不清楚自己的ts字段是否有问题,建议您写一个虚拟的sink,将ts字段print到日志中,参见debug模式怎么查找输出
    1. CREATE TABLE test_output (
    2. ts timestamp
    3. ) WITH (
    4. type = 'print'
    5. );
    6. INSERT into test_output
    7. SELECT
    8. ts
    9. FROM 源表;
  2. 查看数据曲线中有关WaterMark的三个曲线,如下图:
    watermark
    有关三条曲线的介绍请参见数据曲线
  3. 2.x以下的版本:看一下数据源表的并发是不是都有数据,只要有一个并发没有数据就不会触发WaterMark形成窗口输出。如下图:2.xbelow
  4. 假设窗口设置为1分钟的滚动窗口时,数据被窗口过滤,检查下一个窗口是否有数据到来,如果下个窗口没有数据到来,就不会触发上一个窗口的结束,因此窗口没有输出。
  5. 当上面四点经排查后都没有问题,请提交工单联系值班人员进行排查。

参考文献

Apache Flink 漫谈系列(03) - Watermark
Flink 原理与实现:Window 机制

二、Where节点过滤

where

排查方案

  1. 将where条件注释掉,然后将没有where的数据print到日志中,检查一下是否有数据满足where条件。请参见debug文档
  2. 当print后发现有符合where条件的数据时,请检查where条件的写法。比如:where条件中使用了to_timestamp、date_format等函数时,函数使用的方法是否正确。请将where中使用的函数print到虚拟sink中进行检查。如下所示:
    1. CREATE TABLE test_output (
    2. t1 varchar
    3. ) WITH (
    4. type = 'print'
    5. );
    6. INSERT into test_output
    7. SELECT
    8. DATE_FORMAT(datetime1, 'yyMMdd')
    9. FROM 源表;
  3. 当上面两点经排查后都没有问题,请提交工单联系值班人员进行排查。

三、JOIN节点过滤

join

排查方案

  1. 检查一下on条件,如果不确定是否是条件的问题,建议将左右两个表的数据print到日志中检查一下。请参见debug文档
  2. 经排查后on条件没有问题,请提交工单联系值班人员进行排查。