Skip to content

How fast can you get ~10gb of CSV into a SQLite database with null awareness?

Notifications You must be signed in to change notification settings

kylerush/csv-to-sqlite-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

CSV to SQLite Challenge

Your goal is to get the 10085126 rows in big.csv into a SQLite table as quickly as possible, while respecting the Postgres null convention:

  • A totally empty CSV cell eg, FirstCell,,ThirdCell, should be treated as sql NULL.
  • A quoted empty CSV cell eg, FirstCell,"",ThirdCell should be treated as sql '' (empty string).

The sqlite3 cli that comes with SQLite will load both kinds of empty cell as sql '' (empty string), which means (for example) block.last_version could be ''.

Setup

  1. Download the compressed big.csv from Github releases and extract it.

  2. Create a database containing the block table: sqlite3 demo.sqlite < schema.sql

  3. Run your program to load big.csv into the block table. Note the first row is CSV header and shouldn't be included.

    Example (will fail due to null handling): sqlite3 demo.sqlite '.import --csv --skip 1 big.csv block'

About

How fast can you get ~10gb of CSV into a SQLite database with null awareness?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published