订阅持久化流表写DFS 发现没有数据

请问为什么收盘后订阅流表subscribeTable(tableName="Market_Order_Live", actionName="order_write_into_dfs", offset=-2, handler=loadTable('dfs://baiyifan_HF', 'Order_Morning'), msgAsTable=true, batchSize=1000000, throttle=5, reconnect=true, timeTrigger=true),发现并没有数据写入到dfs中呢?

我设置 timeTrigger , getStreamingStat 会报错 Only a table can append to another table

不设置的话,会发现 subWorker 里没有这个任务。请问怎么修改?

请先 登录 后评论

1 个回答

Polly

设置成 -2 的 offset 是订阅端的 offset,比如你之前订阅了 100 条就记录 100,不是流表的 offset。此时若发起订阅后,流表无数据到来,则就没有数据被消费。此时你设置了 timeTrigger 强制触发,会把一个空对象 append 给流表,所以报错。如果要从持久化到磁盘的第一条数据开始订阅需要写成 offset=getPersistenceMeta(st).diskOffset。如果要 offset 设置成-2,需要开启 persistOffset 参数,此时订阅端会记录当前订阅到的数据的 offset 并持久化到磁盘,若发生断连或者宕机重连,则会从之前订阅的部分开始。

请先 登录 后评论