试着在这里尝试编程模型.场景是我正在使用Pub/Sub + Dataflow来为网络论坛进行分析.我有来自Pub/Sub的数据流,如下所示:
ID | TS | EventType
1 | 1 | Create
1 | 2 | Comment
2 | 2 | Create
1 | 4 | Comment
Run Code Online (Sandbox Code Playgroud)
我想最终得到一个来自Dataflow的流,看起来像:
ID | TS | num_comments
1 | 1 | 0
1 | 2 | 1
2 | 2 | 0
1 | 4 | 2
Run Code Online (Sandbox Code Playgroud)
我希望执行此汇总的作业作为流进程运行,并在新事件进入时填充新计数.我的问题是,作业存储当前主题ID和注释计数的状态的惯用位置在哪里?假设主题可以存活多年.目前的想法是:
编辑:只是为了澄清,我不会在实现这三种策略中的任何一种,或者百万种不同的其他方式时遇到任何麻烦,我对使用Dataflow这样做的最佳方式更感兴趣.什么是最有弹性的失败,必须重新处理回填历史等等.
编辑2:数据流服务目前存在一个错误,如果向展平转换添加输入,则更新失败,这意味着如果您对包含添加的作业进行更改,则需要丢弃并重建作业中累积的任何状态事情是扁平化的.
我正在试图弄清楚我们如何"播种"某些流式数据流作业的窗口状态.场景是我们有一个论坛消息流,我们希望一直为每个主题发出一个运行的消息计数,因此我们有一个带有全局窗口的流数据流作业,并且每次有一个主题的记录进入时都会触发到目前为止一切都很好.但是在流源之前,我们有一个大文件,我们想要处理这些文件以获取历史记录,因为主题永远存在,我们需要历史计数来通知流源的输出,所以我们很友好'我需要相同的逻辑来运行文件,然后在文件耗尽时开始在流源上运行,同时保持窗口状态.
目前的想法:
编辑:最新选项,以及我们要做的是,编写计算工作,使事件到达的顺序无关紧要,因此我们只需将存档推送到pub/sub主题,一切都会奏效.这适用于这种情况,但显然它影响下游消费者(需要支持更新或撤消),所以我有兴趣知道人们有什么其他解决方案来播种他们的窗口状态.
我有以下代码:
cell_val = CStr(Nz(fld.value, ""))
Dim iter As Long
For iter = 0 To Len(cell_val) - 1 Step 1
If Asc(Mid(cell_val, iter, 1)) > 127 Then
addlog "Export contains ascii character > 127"
End If
Next iter
Run Code Online (Sandbox Code Playgroud)
此代码不起作用.有人知道怎么做吗?我根本不知道VB或VBA.