Ivan Begtin
8.09K subscribers
1.99K photos
3 videos
102 files
4.7K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech
Download Telegram
Пока я рассуждал о том что новые инструменты data wrangling'а (манипуляция и трансформация данных) появятся уже на базе движков вроде DuckDB или Clickhouse, они начали появляться. Свежее видео выступления Hannes Mühleisen - Data Wrangling [for Python or R] Like a Boss With DuckDB [1] ровно про это и слайды к нему же [2].

Автор/докладчик там сравнивает DuckDB в загрузке файлов и упоминает duckplyr [3] очень производительный заменитель популярной библиотеки Dplyr [4] для языка R.

Всю презентацию можно свести к утверждению что DuckDB - это круто для манипуляции данными и я склонен с этим согласиться.

Я бы ещё добавил что хорошо и правильно сравнивать и с интерактивными инструментами вроде OpenRefine, Talend, Trifacta и ещё рядом других. Собственно только отсутствие UI поверх движка DuckDB или Clickhouse ограничивает их популярность.

Если бы, к примеру, OpenRefine авторы переделали на движок DuckDB то цены бы ему не было и возможность работать с большими данными стала бы естественной. Но OpenRefine так просто не переделать, так что больше надежды что это создаст кто-то другой.

Я какое-то время назад проектировал такой движок и могу сказать что это не так сложно. Если бы не прорыв в индексации каталогов данных превратившийся в Dateno, я может быть такой data wrangling инструмент бы даже попробовал сделать, но сейчас просто мало времени на такое, тоже интересное занятие.

P.S. Кстати, для Python есть аналог dplyr под названием dplython [5], но попроще.

Ссылки:
[1] https://www.youtube.com/watch?v=GELhdezYmP0&list=PL9HYL-VRX0oSFkdF4fJeY63eGDvgofcbn&index=66
[2] https://blobs.duckdb.org/posit-conf-2024-keynote-hannes-muehleisen-data-wrangling-duckdb.pdf
[3] https://github.com/tidyverse/duckplyr?tab=readme-ov-file
[4] https://dplyr.tidyverse.org/
[5] https://github.com/dodger487/dplython

#opensource #data #datatools #rdbms #duckdb #dataengineering
Я тут регулярно рассуждал про форматы файлов для публикации данных онлайн, в последний раз в тексте на Substack и постоянно говорю о том что надо публиковать данные в формате parquet везде где только можно, а те кто создают корпоративные озёра данных уже изучают и пишут про формат Hoodie из проекта Apache Hudi.

То что я могу сказать, так то что для открытых и иных общедоступных данных он будет применяться ещё очень нескоро. Даже формат файлов Apache Parquet, которому уже более 11 лет, за пределами data science стал применяться сравнительно недавно.

Тем не менее, за пределами форматов файлов находится платформенный режим доступа к данным. Google BigQuery как наиболее яркий пример, но есть ещё дата продукты в маркетплейсе Databricks, дата продуктах на Amazon и многих других.

#opendata #data #dataformats #datatools
Teable [1] опенсорс продукт и онлайн сервис по созданию интерфейса а ля Airtable поверх баз Postgresql и Sqlite.

Для тех кто ранее сталкивался с Airtable и редактировал онлайн свои таблицы - это более чем идеальная замена. Если Airtable ушли по пути стремительной монетизации и превращения онлайн таблиц в конструкторы приложений, то тут продукт куда более близкий к изначальной идее таблиц онлайн. Фактически это онлайн замена MS Access, но, и это важно, поверх классической СУБД. А то есть данные можно править и вручную и автоматизировано.

Я теста ради загрузил одну из наиболее крупных таблиц из Airtable что у меня были, это таблица российских госдоменов для проекта @ruarxive (Национальный цифровой архив) и работает сервис прекрасно.

Ещё одна важная его особенность - это его можно разворачивать локально и работать со своими данным на собственном экземпляре продукта.

Ну а также они в бета режиме сейчас предоставляют сам сервис онлайн бесплатно, но монетизацию рано или поздно введут, так что open source выглядит интереснее.

Ссылки:
[1] https://teable.io

#opensource #datasets #datatools
В рубрике интересных проектов по работе с данными LOTUS: A semantic query engine for fast and easy LLM-powered data processing [1] движок для обработки данных с помощью LLM поверх Pandas. Принимает на вход человеческим языком описанные конструкции, переводит их в программные операции над датафреймом.

Является демонстрацией работы из научной работы Semantic Operators: A Declarative Model for Rich, AI-based Analytics Over Text Data [2].

Выглядит весьма интересно как задумка и как реализация, вполне можно рассматривать как внутренний движок поверх которого можно сделать обёртку, как для манипуляции данными в командной строке, так и хоть с подключением голосового ассистента.

Если ещё и Pandas заменить на Polars или иную drop-in альтернативу, то ещё и обработка данных приобретёт хорошую скорость и производительность.

Я лично вижу одним из трендов ближайшего года появление всё большего числа инструментов для обработки данных с LLM внутри.

Ссылки:
[1] https://github.com/guestrin-lab/lotus
[2] https://arxiv.org/abs/2407.11418

#opensource #datatools #dataengineering #data #ai #llm
Оказывается в декабре команда OpenRefine [1], инструмента по ручной очистке данных, опубликовала результаты опроса пользователей о том к какой группе те себя относят, как пользуются и так далее.

И по группам результаты даже чуть удивительные.
Основные пользователи (38%) - это исследователи, а вот следом за ними следующие - это библиотекари.
Далее идут по сообществам:
- Data Science
- Wikimedian
- GLAM

И где-то там же ещё и дата журналисты, digital humanities и тд.

По сути это инструмент как раз для обработки данных в гуманитарных профессиях, относительно небольшого объёма, но с прицелом на работу со связанными данными, Wikipedia/Wikimedia и так далее.

Подозреваю что и Data Science там тоже в контексте не корпоративных, а исследовательских данных.

Кстати, в дата инженерии и корпоративной дата аналитики он почти не применяется. Всё это про разницу в стеках инструментов работы с данными, их достаточно давно можно нарезать группами по областям применения.

Например, дата журналистам или историкам OpenRefine полезен, аналитиков логичнее учить делать то же самое с помощью дата фреймов, дата инженеров с помощью конвееров данных и так далее.

А сам OpenRefine хороший инструмент, но упершийся в жёсткие ограничения внутреннего движка. Если бы я не был так увлечен Dateno я бы всерьёз озадачился созданием UI похожего на OpenRefine, но на движке DuckDB или Polars.

Ссылки:
[1] https://openrefine.org
[2] https://openrefine.org/blog/2024/12/20/2024-survey-results

#opendata #opensource #datatools
Продолжая рассуждения про OpenRefine, я какое-то время довольно быстро сделал движок mongorefine [1] в котором воспроизвёл некоторые ключевые функции OpenRefine в в виде библиотеки поверх MongoDB. Но после тестов выяснилось что хотя это и очень гибкая штука, но безбожно медленная.

К сравнению DuckDB или Polars не такие гибкие, зато работают с данными значительно большего объёма на десктопе.

У OpenRefine есть две ключевые фичи которые наиболее трудоёмки:
1. История всех изменений датасета. Это не так сложно как может показаться, но на большом датасете начинает кушать много дискового пространства.
2. UI для пользователя. Без UI, в виде библиотеки - эта задача проста. С UI - это становится не так просто. Вот я, например, нужными навыками для создания таких сложных пользовательских интерфейсов не обладаю.

Остальные фичи касаются интеграции с внешними сервисами, Wikidata и тд. Тут важнее интерфейс для плагинов, а не сразу сами плагины.

Я для такого рисовал схемку как можно было бы организовать правильно, но, пока забросил эту идею.

#opensource #datatools #thoughts
Подборка полезных ссылок инструментов с открытым кодом:
- pyper [1] библиотека для Python для параллельной обработки данных, упрощает работу с потоками, делает её значительно проще.

- Gemini-search [2] альтернатива для Perplexity на базе LLM модели Gemini от Google. Плюс: хостится локально. Минус: за обращения к API Гугла надо платить. Мне не удалось её заставить работать, но демо выглядит интересно, надеюсь скоро будет работоспособнее

- Automatisch [3] open source аналог Zapier, используется для интеграции и автоматизации разных онлайн сервисов типа Twitter, Spotify, Google Docs и др. Сервисов таких много, но тут открытый код.

- crawl4ai [4] веб краулер с построением конвееров для обработки страниц для LLM и не только. Мне вот есть куда прикрутить краулер, может быть даже именно этот. А вообще удивительно насколько стремительно становятся популярными именно AI-powered инструменты. К примеру, похожий краулер Browsertrix для веб архивации имеет всего 223 лайка. А у crawl4ai сразу 25 тысяч лайков. Разница, реально, на 2 порядка и интенсивность разработки аналогично.

- PDFMathTranslate [5] open source инструмент перевода научных статей на другие языки, с сохранением всех формул, изображений и тд. Поддерживает все актуальные разговорные языки используемые в науке: английский, китайский, французский, немецкий, русский, испанский и тд. Существует в виде онлайн сервиса с ограничением в менее чем 5MB [6] или можно скачать и развернуть у себя

Ссылки:
[1] https://github.com/pyper-dev/pyper
[2] https://github.com/ammaarreshi/Gemini-Search
[3] https://github.com/automatisch/automatisch
[4] https://github.com/unclecode/crawl4ai
[5] https://github.com/Byaidu/PDFMathTranslate
[6] https://pdf2zh.com/

#opensource #datatools #ai #crawlers #search
Золотая эпоха баз данных

Я несколько раз уже слышал в выступлениях разработчиков систем управления базами данных (DBMS) о том что сейчас золотая эпоха их создания, и не только самих баз данных, но и инструментов, фреймворков и новых продуктов для работы с данными, всё что связано с дата инженерией.

И да, после размышлений я прихожу к тому же выводу. Число новых DBMS, как совершенно новых, так и использующих существующие движки в расширениями и оптимизацией, растёт стремительно.

Можно посмотреть, например, на базу Database of Databases чтобы увидеть сколько новых движков появляется ежегодно. Или можно посмотреть на аналитические DBMS в бенчмарке Clickbench. Там десятки конкурирующих инструментов и платформ и это ещё не все движки охвачены.

Аналогично с библиотеками с библиотеками работы с датафреймами. Их уже больше десятка в среде дата аналитиков работа с pandas это скорее унаследованный код чем быстрый код. Есть бенчмарки Database-like ops покрывает 13 библиотек (не самый актуальный, 4 летней давности) и полугодовой давности DataFrames at Scale Comparison с покрытием 4-х библиотек. И это только те бенчмарки которые нейтральные, а есть множество которые делают сами разработчики. Чаще не нейтрально, а подгоняя под особенности своей библиотеки.

Похожая ситуация с ETL/ELT инструментами, BI/OLAP/визуализацией данных, инструментами извлечения данных и так далее.

Это всё формирует нереальную конкуренцию, а вместе с ней усилия команд по непрерывному улучшению их продуктов. К примеру, согласно ClickHouse Versions Benchmark производительность ClickHouse с ранних версий до текущих выросла почти вдвое. А скорость DuckDB выросла от 3 до 10 раз, а и возможность работы с данными большего размера в 10 раз на том же оборудовании.

Всё это о том что технологии работы с данными развиваются очень быстро. Гораздо быстрее чем в предыдущие десятилетия. В них вкладывается и больше инвестиций, и в них больше потребности.

Всё это происходит параллельно с продолжающимся снижением стоимости терабайта, в облаке, и в приобретении дисков для личного хранения.

В итоге расшифровка фразы большие данные мертвы сводится к тому что стоимость работы с данными относительно большого объёма резко снижается, а обработка десятков терабайт структурированных данных на десктопе перестала быть невозможной.

#databases #rdbms #datatools #thoughts
DBT купили SDF

Это весьма важное событие в дата инженерии для тех кто пользуется облачной дата инфраструктурой особенно. DBT - платформа и одноимённая компания [1] по трансформации данных через декларативное описание SQL операций купили компанию (и продукт) SDF [2] который делал то же самое на их же движке, но гораздо эффективнее.

Ссылки:
[1] https://www.getdbt.com
[2] https://www.sdf.com

#datatools #moderndatastack #dbt #dataengineering
По итогам вчерашней лекции зафиксирую ключевые тезисы о которых я пишу тут давно, но фрагментировано:

1. Формат Apache Parquet позволяет публиковать текущие крупные датасеты в виде пригодном для немедленной работы аналитиков, меньшего объёма и с лучшей структурой (типизацией содержимого). Это уже давний стандартизированный формат публикации данных пришедший из стека Apache и набравший популярность по мере роста популярности data science.

2. Apache Parquet не единственный такой формат, но один из наиболее популярных в последнее время. Он поддерживается почти всеми современными аналитическими инструментами работы с дата фреймами и аналитическими базами данных. Кроме него есть ещё и такие форматы публикации как ORC, Avro, значительно менее популярные, пока что.

3. В формате Apache Parquet уже публикуются данные раскрываемые госорганами. Его использует статслужба Малайзии, Правительство Франции, разработчики порталов открытых данных OpenDataSoft и многочисленные исследователи по всему миру. Почему они так делают? Потому что получают запрос от аналитиков, потому что это снижает стоимость хранения и обработки данных.

4. DuckDB - это один из наиболее ярких примеров стремительного удешевления работы с данными большого объёма на настольных компьютерах. Значимость его как инструмента именно в том что появляется возможность работы с данными условно в сотни гигабайт на недорогих устройствах. Например, работа с данными в сотни гигабайт на железе стоимостью до $1000.

5. Производительность DuckDB стремительно растёт. Рост от 3 до 25 раз для разных запросов и поддержка данных до 10 раз большего размера и это за 3 года с 2022 по 2024. Поэтому, хотя у DuckDB есть альтернативы - chDB, движки для дата фреймов такие как Polars, но важен потенциал развития.

6. Почему это важно для исследователей? У рядовых исследовательских команд не всегда есть возможность развертывания "тяжёлой инфраструктуры" или привлекать профессиональных дата аналитиков и дата инженеров. Чаще приходится работать на десктопах и не самых дорогих.

7. Почему это важно при публикации данных? Рассмотрим случай когда госорган, в нашем случае, Минкультуры РФ публикует каталог музейного фонда у себя на портале открытых данных. Сейчас это 11GB ZIP файл, разворачивающийся в 78GB файл в формате JSONS (на самом деле это NDJSON/JSON lines, из построчных записей в JSON). С этими данными всё ещё можно работать на десктопе, но пока скачаешь, пока распакуешь, это будет трудоёмко. Если бы Министерство сразу публиковало бы этот и другие датасеты в Parquet, то итоговый размер датасета был бы 2.7GB и работать с ним можно было бы немедленно, быстрее и удобнее.

8. Технологии дата инженерии и аналитики стремительно развиваются. Отстать можно очень быстро, например, многие только-только узнают про инструменты для дата фреймов вроде Pandas, а в то же время Pandas уже рассматривается как легаси потому что Pandas почти перестал развиваться, а заменяющие его движки Polars или Dask показывают значительно лучшую производительность.

9. Высокая конкуренция среди команд разработчиков СУБД. За ней можно наблюдать, например, через рейтинги производительности ClickBench где если не все то большая часть аналитических СУБД и через каталог СУБД в мире DBDB. Прямо сейчас происходящее называют золотым веком баз данных [и дата инженерии]. Причём развитие идёт в сторону повышения производительности на текущем оборудовании. А это значит что в ближайшем будущем будет ещё больший прогресс в том чтобы работать с данными большого объёма на недорогом оборудовании.

#opendata #opensource #datatools #data