在使用 seatunnel 将 InfluxDB 数据抽取到阿里云 DataHub 时,遇到了一个问题:在一条数据中只有一个字段有值,而其他字段的值为 null。经过调查,发现这是 seatunnel-datahub 连接器的一个 bug。
具体来说,在源码的 connector-datahub 连接器组件的 DatahubWriter 中的 write 函数中,存在一个问题。在 for 循环中,使用了以下代码:
data.setField(fieldNames[i],fields[i])
这样的写法导致每行只会写入一个值,导致其他字段为 null。为了解决这个问题,需要对源码进行修改,将数据正确地写入每个字段。
修改源码后,重新编译 seatunnel,然后重新部署即可解决这个问题。这样,在使用 seatunnel 将 InfluxDB 数据传输到阿里云 DataHub 时,每行数据的所有字段都会被正确地写入,不再出现其他字段为 null 的情况。