Kettle:按顺序填充字段而不发生冲突
我有一个具有以下结构的数据流
user_id (integer)
user_name (string)
user_id
是 100 到 65536 之间的任何值。我想根据以下逻辑添加 target_user_id
(整数)字段:
- If < code>user_id 在 1000..9999 范围内,则让
target_user_id
字段等于user_id
- 如果不是,然后用 1000..9999 范围内的内容填充
target_user_id
,而不会引起冲突。最好尽可能最低。
流的长度小于9000。user_id
字段在原始流中是唯一的。
I have a data stream with the following structure
user_id (integer)
user_name (string)
The user_id
is anything between 100 and 65536. I want to add a target_user_id
(integer) field according to the following logic:
- If
user_id
is in range 1000..9999, then let thetarget_user_id
field be equal to theuser_id
- If not, then fill
target_user_id
with something in range 1000..9999 without causing a conflict. Preferably the lowest possible.
The length of the stream is under 9000. The user_id
field is unique in the original stream.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定您使用的是什么 Kettle 环境,但一般过程可能如下:
通过以下方式处理 user_id 不在 1000..9999 的每个输入流记录:
通过执行 SQL 查询 (DBLookup) 获取最低的未使用 user_id
使用当前用户名更新此记录(使用更新)
希望这有帮助
I am not sure what Kettle environment you are using but a general procedure could be as follows:
Process each input stream record with user_id not in 1000..9999 by:
get the lowest unused user_id by executing a SQL query (DBLookup)
Update this record with the current user_name (use Update)
Hope this helps