2

是否可以使用 Kiba 进行“查找”。

因为这在 etl 中是一个非常正常的过程。

如果可以,您能否展示一个演示,谢谢。

4

1 回答 1

2

是的,可以使用 Kiba 进行查找!

有关教程,请参阅我录制的这个实时编码会话,我创建了一个查找转换,通过在 MovieDB 数据库中点击来使用给定字段查找额外字段

利用这个例子,你可以例如使用块变换实现一个简单的 ActiveRecord 查找:

# assuming you have a 'country_iso_2' field in the row above
transform do |row|
  country = Country.where(iso_2: row['country_iso_2']).first
  row['country_name'] = country.try(:name) || 'Unknown'
  row
end

或者您可以提取一个更可重用的类转换,您可以像这样调用它:

transform ActiveRecordLookup, model: Country, 
  lookup_on: 'country_iso_2', 
  fetch_fields: { 'name' => 'country_name' }
transform DefaultValue, 'name' => 'Unknown'

显然,如果您需要大容量,您将不得不实施一些改进(例如缓存、批量读取)。

希望这可以帮助!

于 2015-11-23T10:00:53.630 回答