kloeckner-i / genstage_importer

Example of data import pipeline using Flow library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

genstage_importer

Demo project showing a concept of CSV import with GenStage/Flow data pipeline in Elixir. This is an illustration for a blogpost in Kloeckner's dev blog. CSV files to import are products.csv and orders.csv.

Setup

Requirements:

$ docker-compose up -d --build

Create a database:

$ docker-compose exec app mix ecto.setup

To run the sync:

$ docker-compose exec app iex -S mix
iex(1) > GenstageImporter.Pipeline.Product.import()

Generate test data

Requirements:

Edit script files/gen_csv.rb:

PRODUCTS_NUMBER = 1_000 # set number of products in CSV file here

Then run it:

$ ./files/gen_csv.rb

It will replace existing CSV files in ./files folder with new autogenerated data.

About

Example of data import pipeline using Flow library

License:MIT License


Languages

Language:Elixir 87.4%Language:Ruby 7.1%Language:HTML 4.9%Language:Dockerfile 0.6%