如果我认为使用kiba-etl宝石行无效,是否可以跳过加载某些行?
例如,如果在将验证加载到系统或出现错误之前必须通过验证,那么在记录问题时,我仍然需要将数据推入sys。
发布于 2015-10-01 19:02:40
这里是Kiba的作者!要从管道中删除一行,只需在转换结束时返回nil:
transform do |row|
row_valid = some_custom_operation
row_valid ? row : nil
end您还可以“写下”违规行,并在以后使用类似于此的post_process块报告它们(在本例中,需要中等到低数量的伪行):
@bogus_row_ids = []
transform do |row|
# SNIP
if row_valid(row)
row
else
@bogus_row_ids << row[:id]
nil # remove from pipeline
end
end
post_process do
# do something with @bogus_row_ids, send an email, write a file etc
end让我知道这是否正确地回答了你的问题,或者如果你需要一个更精确的答案。
发布于 2015-10-01 16:47:52
我是哑巴。我意识到您可以在转换/加载过程中捕获错误并返回零。
https://stackoverflow.com/questions/32892608
复制相似问题