~/talk

Swiss Army Django: Small Footprint ETL

Talkat DjangoCon US 2023 · 2023-10-16..10-20· [django, data-visualization]
slides:none on file

Single-app ETL that scrapes and enriches a game’s deeply nested data (items monsters quests), runs on one box, and serves results via Strawberry GraphQL and Discord. It uses async Django with uvicorn, HTTP extractors via httpx, background loops spawned with create_task, lightweight scheduling with chonor, incremental loads and Postgres history triggers, avoids Celery/RabbitMQ, and proves practical in production for frequent (seconds-to-hours) refreshes.

AI-written summary · about

  1. 0:00ETL and side projects
  2. 1:26What is ETL
  3. 4:19Async Django for ETL
  4. 7:13Background tasks without Celery
  5. 10:45Async ORM limits
  6. 12:50HTTP clients for extractors
  7. 13:32Foreign keys in ETL
  8. 15:19Scheduling with Chon
  9. 16:22ETL history tracking
  10. 17:26Querying ETL with GraphQL
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.