kiba-etl gem を使用して行が無効であると判断した場合、特定の行の読み込みをスキップする方法はありますか?
たとえば、システムにロードする前に検証に合格する必要がある場合や、エラーが発生した場合でも、問題のログに関係なくデータを sys にプッシュする必要があります。
kiba-etl gem を使用して行が無効であると判断した場合、特定の行の読み込みをスキップする方法はありますか?
たとえば、システムにロードする前に検証に合格する必要がある場合や、エラーが発生した場合でも、問題のログに関係なくデータを sys にプッシュする必要があります。
木場の作者はこちら!パイプラインから行を削除する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
これがあなたの質問に適切に答えているかどうか、またはより洗練された答えが必要かどうかをお知らせください。