I’ve been using Kiba ETL for a client project and it is a great way to separate ETL concerns.
NOTES: I still envision using a rake task to download GeoNames data, but then to use the following ETL hierarchy to move that data into both SQLite3 tables and *.csv files for each of the following:
- Country
- State
- County
- Zipcode
Potential ETL Hierarchy
Under the etl or lib/etl directory:
- csv_source.rb - to read the downloaded
GeoNames data
- csv_destination.rb - to write discrete CSV files
- country_table_destination.rb - SQLite table destination
- state_table_destination.rb - SQLite table destination
- county_table_destination.rb - SQLite table destination
- zipcode_table_destination.rb - SQLite table destination
- free_zipcode_data.etl - the ETL source file
NOTE: I’m open to other suggestions.