TGViewer
partially unsupervised partially unsupervised @partially_unsupervised · 10.3K subscribers
Post #171 6.26K
Недавно нужно было наколхозить простую тулзу для поиска семплов в большом датасете. Условно есть 200М семплов, доступных через AWS Athena, и к ним делаются запросы в духе select * from big_table where blah like '%blah%' and foo like '%bar%' limit 10;.

Делать все через Athena очень просто, но медленно (запросы редко занимают меньше 10 секунд) и небесплатно (получалось что-то вроде $0.05 за запрос, некритично, но не приятно). Напрашивается решение с частичным кэшированием: возьмем сабсет на 5% данных, положим его локально и будем обращаться к нему, а если не нашли достаточно семплов в локальном сабсете, тогда уже пойдем в Athena с медленным запросом. На практике оказалось, что 95%+ запросов можно удовлетворить сабсетом, все довольно быстро (до полутора секунды на запрос) и бесплатно.

Так как я ленивый, сперва уложил локальный сабсет в SQLite, чтобы не возиться с поднятием более серьезной базы. В принципе, этого было достаточно, но в познавательных целях решил потрогать DuckDB - это embedded OLAP (т.е. колоночная) SQL база данных. DuckDB ставится через pip install (впрочем, есть поддержка и для других языков), плотно интегрирована с pandas и parquet. Замена SQLite на DuckDB потребовала всего нескольких строк и ускорила поиск почти в два с половиной раза до малозаметных 600 мс.

Жду комментариев, что Настоящий Мужик бы поднял кластер Clickhouse, а не это все.
DuckDB An analytical SQL database management system DuckDB is a SQL OLAP database management system. Simple, feature-rich, fast & open source.
  • 👍 60
  • 🔥 16
  • ❤ 6
  • 😁 4
More from @partially_unsupervised
  1. Sep 21, 2026Jev, про который говорят на каждом углу - это может и не революция технически, но чертовск…
  2. Sep 17, 2026Минутка рекламы. Если вы ненавидите двигать квадратики в джире так же люто, как и я, но ещ…
  3. Sep 8, 2026Не люблю комментировать релизы, но Astra (и, внезапно, gemini 3.8) вернули забытое чувство…
  4. Aug 24, 2026Мой соавтор по первой книжке не удержался и недавно заспойлерил вторую. А если шило в мешк…
  5. Aug 9, 2026Когда я учился в школе, на каком-то этапе мои учителя математики и информатики объявили, ч…
  6. Jul 28, 2026Четыре недели плотно работал над нечетко поставленной задачей на грани агентов и informati…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →