是否可以使用kiba-etl gem跳过加载行?

时间:2015-10-01 16:36:12

标签: kiba-etl

如果我认为使用kiba-etl gem无效行,我是否可以跳过加载某些行?

例如,如果在将其加载到系统之前必须传递验证或发生错误,我仍然需要在记录问题时将数据推送到sys。

2 个答案:

答案 0 :(得分:1)

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

请告诉我这是否能正确回答您的问题,或者您是否需要更精确的答案。

答案 1 :(得分:0)

我是愚蠢的。我意识到你可以在转换/加载过程中捕获你的错误并返回nil。