Ivan Begtin
8.1K subscribers
2K photos
3 videos
102 files
4.71K 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 [email protected]
加入频道
Написал в рассылку текст Работаем с дата фреймами. Почему не Pandas и какие альтернативы? [1] про альтернативы Pandas такие как Polars, Dask, DuckdB и cuDF. А также там же подборка ссылок на большое число параллельно развивающихся инструментов.

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

Ссылки:
[1] https://begtin.substack.com/p/pandas

#opensource #dataengineering #dataframes #datatools
В рубрике интересных продуктов для работы с данными PuppyGraph [1] (Щенячий граф) стартап и open-source продукт для взаимодействия с SQL базами данных с помощью графовых языков запросов таких как Gremlin и openCypher.

Основной лозунг под которым продукт продвигают это Query your relational data as a graph in real-time. Zero ETL. Главный акцент тут на том что графовые базы данных неудобны всегда были тем что туда необходимо было переносить данные из реляционных баз и это означало увеличение объёмов хранения и затраты ресурсов на обработку данных. А тут движок позволяет работать с условным PostgreSQL напрямую запросами.

Open source версия доступна под лицензией Apache 2.0 [2]. Команда в ноябре 2024 г. подняла $5 миллионов инвестиций [3], а сам продукт в первой версии появился ещё в марте 2024 года.

Ссылки:
[1] https://www.puppygraph.com
[2] https://github.com/puppygraph/puppygraph-query
[3] https://www.puppygraph.com/blog/puppygraph-raises-5-million-in-seed-funding-led-by-defy-vc

#opensource #rdbms #datatools
На чём быстро, просто и, желательно, недорого построить дашборд? Я лично всегда начинаю выбор с open source инструментов, часть из которых давно стали зрелыми продуктами, а другие позволяют проверить интересные технологии на практике.

Более известные
1. Apache Superset - используется уже повсеместно, много общедоступных инсталляций где можно посмотреть вживую. Например, экземпляр Superset Википедии. Уже зрелый продукт используемый многими компаниями по всему миру.
2. Grafana - довольно быстро вырвавшийся вперед инструмент для визуализации данных. Развивался изначально для отображения метрик и логов, а сейчас визуализирует почти что угодно. Для внутреннего использования очень удобно, для интеграции в свой продукт есть ограничения поскольку открытый код AGPL.
3. Metabase - когда-то основной конкурент Apache Superset, но стали отставать по скорости добавления новых возможностей и живут по принципу SaaS стартапа, с платным облачным сервисом и бесплатным продуктом для сообщества и под открытым кодом.
4. Redash - ещё один pure open-source продукт, открытый код для построения дашбордов , в этот раз под BSD2 лицензией и с поддержкой большого числа SQL и NoSQL источников данных.

Менее известные
5. Briefer - гибрид подготовки тетрадок (notebooks) и дашбордов. Изначально облачный сервис, потом выложили открытый код. Сама идея кажется разумной, но лицензия AGPL-3.0.
6. Quary - позиционируется как open source BI для инженеров. Инженерность, похоже, обеспечивается за счёт панели для SQL запросов? Выглядит простым, что может быть удобно для кого-то и полностью написан на Rust.

Непривычные
7. NeoDash - движок для дашбордов от Neo4J, базы данных и набора инструментов для работы с графами. Отличается той самой заточенностью на графовые данные. Сильно менее популярен чем другие и может быть даже малоизвестен. Лицензия Apache 2.0
8. SDMX Dashboard Generator - совсем редкая штука по созданию визуализации статистики по стандарту SDMX в виде дашборда. Открытый код, лицензия Apache 2.0. Изначально разрабатывался командой Банка международных расчётов (bis.org). Внутри используется движок Dash от Plotly

Не BI, не только дашборды
9. Dash от Plotly - нельзя назвать BI или дашбордопостроителем, это скорее инстурмент для создания data приложений. Может использоваться как компонент собственного продукта потому что лицензия MIT
10. Observable Framework не дашбордер, а генератор статистических сайтов для дата приложений. Идеально для дата сторителлинга и отчуждаемой дата аналитики. Может использоваться как часть своего продукта из-за необычной, но очень пермиссивной лицензии. Важное отличие от других продуктов - это создание статических снапшотов данных и отсутствие динамических запросов к СУБД.

Другие инструменты для дашбордов на которые стоит обратить внимание:
- Lightdash, Vizro, Datalens

#opensource #bi #datatools #dashboards #dataviz
Полезное чтение про данные, технологии и не только:
- Chart Smarter, Not Harder: Plotly Now Offers Universal DataFrame Support [1] о том как разработчики движка визуализации Plotly многократно ускорили визуализацию графиков используя библиотеку Narwhals поверх Polars и pyArrow. Познавательные цифры и опыт для тех кто сталкивается с медленной отрисовкой графиков.
- Siyuan [2] персональная система управления знаниями и заметками. Китайский аналог Notion и Obsidian. Открытый код под AGPL, бесплатно для личного использования. Много интеграции в китайскую экосистему вроде WeChat и тд
- Requestly [3] расширение для браузера, прокси, для перехвата запросов. Необходимо всем разработчикам работающим с API. Открытый код под AGPL и онлайн сервис за деньги. По сути конкурент Postman
- Maxun [4] ещё один no-code инструмент для скрейпинга сайтов. Облегчает жизнь тем кто не хочет кодировать то что можно не кодировать. Открытый код, AGPL
- VeilStream [5] для разнообразия не вполне обычный коммерческий сервис, прокси для PostgreSQL который принимает запросы от пользователей, а ответы отдаёт отфильтрованными от персональных данных. Меня не покидает ощущение что это несколько, ммм, извращённое решение, но тем не менее. Оно есть и, видимо, кто-то его покупает.
- 10 Ways to Work with Large Files in Python: Effortlessly Handle Gigabytes of Data! [6] статья полностью для джунов, но именно джунам её прочитать обязательно. Там есть небольшая реклама Dask и игнорирование Polars, DuckDB и тд. А если говорить серьёзно, то всё зависит от того какие у тебя большие данные, в каком они состоянии и что с ними планируется делать. К примеру, обработка десятков и сотен гигабайт бинарных данных происходит иначе.
- Python Rgonomics 2025 [7] материал о том как работать в Python тем кто учил R. Полезное чтение для тех кто живёт в двух мирах или переходит с R на Python.

Ссылки:
[1] https://plotly.com/blog/chart-smarter-not-harder-universal-dataframe-support/
[2] https://github.com/siyuan-note/siyuan
[3] https://github.com/requestly/requestly
[4] https://github.com/getmaxun/maxun
[5] https://www.veilstream.com/
[6] https://blog.devgenius.io/10-ways-to-work-with-large-files-in-python-effortlessly-handle-gigabytes-of-data-aeef19bc0429
[7] https://www.emilyriederer.com/post/py-rgo-2025/

#readings #opensource #data #datatools
Полезные ссылки про данные, технологии и не только:
- DocumentDB: Open-Source Announcement [1] похоже Microsoft выложили в открытый код [2] новый NoSQL продукт, прямой конкурент MongoDB. Внутри там FerretDB и PostgreSQL, бенчмарки пока не наблюдаются, что странно. Может быть в ClickBench/JSONBench они появятся через какое-то время. Пока главное достоинство лицензия MIT.
- ai_query function [3] в Databricks есть функция ai_query которую можно использовать прямо в SQL запросе и которая позволяет обрабатывать данные с помощью одной из LLM специальным запросом. Осталось подождать когда такая функция или аналог появятся во всех современных RDBMS
- Human-Computer Input via a Wrist-Based sEMG Wearable [4] исследование Meta про уличную магию про использование жестов для управления устройствами. Помимо того что это может поменять многое в обыденной жизни тут ещё и много открытых наборов данных Я думал такие устройства будут делать в виде тонких перчаток, а оказывается что можно в виде браслета.
- pg_mooncake. Postgres extension for 1000x faster analytics [5] расширение для колоночных таблиц для PostgreSQL для ускорения аналитики. Внутри, ожидаемо, DuckDB

Ссылки:
[1] https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/
[2] https://github.com/microsoft/documentdb
[3] https://docs.databricks.com/en/sql/language-manual/functions/ai_query.html#examples
[4] https://www.meta.com/blog/surface-emg-wrist-white-paper-reality-labs/
[5] https://github.com/Mooncake-Labs/pg_mooncake

#opensource #rdbms #postgresql #duckdb #datatools
В рубрике интересных инструментов работы с данными Mathesar [1] ещё одна альтернатива Airtable, с открытым кодом под GPL-3.0 и похожий во многом на Teable о котором я ранее писал.

Если вкратце то это UI поверх таблиц в PostgreSQL. Выглядит как удобная штука в жанре онлайн MS Access.

Альтернативы Airtable - это хорошая новость, со многими данными надо работать руками и не всё доверишь облакам.

Ссылки:
[1] https://mathesar.org

#opensource #datatools
Вышла новая версия Duckdb 1.2.0 [1] что важно - это существенная оптимизация скорости чтения данных. Пишут что обновили парсер для CSV [2] ускорив его до 15% и общие ускорение на 13% по тестам TPC-H SF100.

Из другого важного - CSV парсер теперь поддерживает кодировки UTF-16 и Latin-1. Это хорошо, но пока недостаточно. Один из актуальных недостатков DuckDB в том что до сих пор он поддерживал только CSV файлы в кодировке UTF-8, а из всех остальных кодировок данные надо было преобразовывать. Почему так лично я до сих пор не знаю, подозреваю что дело в том что команда DuckDB фокусируется на повышении производительности.

Там есть и другие изменения, но, в целом, менее значимые. Основные сценарии использования DuckDB связаны с парсингом CSV и работой с другими дата-файлами и с общей производительностью.

Ссылки:
[1] https://duckdb.org/2025/02/05/announcing-duckdb-120
[2] https://github.com/duckdb/duckdb/pull/14260

#opensource #duckdb #datatools #rdbms
Возвращаю на голову шляпу дата инженера и продолжаю про разные инструменты.

Одна из рабочих идей у меня сейчас - это инструмент автоматического документирования датасетов/баз данных с приоритетом на "дикие данные" когда файл с данными есть, а документации на него нет. Очень частая ситуация с порталами открытых данных.

Причём потребность в таком инструменте уже очень давно есть, а вот наглядно я видел только облачный сервис CastorDoc который в этом продвинулся и только некоторые дата каталоги. А я сам экспериментировал и создал утилиту metacrafter для идентификации семантических типов данных. Но потребность в автодокументировании шире. Это, как минимум:
1. Автоматизация описания полей набора данных, желательно на нескольких языках: английский, испанский, русский, армянский и тд.
2. Написание описания набора данных так чтобы по датасету или его части можно было бы рассказать о чём он.
3. Описание структуры датасета не просто перечислением полей, а указание типа, описания полей, числа уникальных записей и тд.
4. Автоидентификация и документирование справочников. Почти всегда эти справочники есть и почти всегда их необходимо идентифицировать и описывать.
5. Автоматическая генерация типовых запросов к данным по аналогии с автогенерацией кода для доступа к API, нужны автосгенерированные запросы для доступа к данным.

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

Самое простое и быстрое решение которое я вижу - это связка DuckDB + LLM модель, простые эксперименты подтверждают что это возможно и несложно. Но если Вы знаете хорошие/эффективные/удобные инструменты документирования датасетов - поделитесь, интересно их посмотреть в работе. Особенно те что с открытым кодом.

#opendata #datadocumentation #opensource #datatools #ideas
Про эксперименты с автоматизированным документированием датасетов, вот живой пример документирования связки DuckDB + LLM. На вход файл в формате Parquet, можно увидеть его содержимое. На выходе таблица с размеченными колонками. Некоторые LLM дают очень хороший результат с описанием колонок на основе их названия с пониманием контекста и расшифровкой полей в зависимости от контекста который LLM тоже понимает.
Осталось дообогатить таблицу семантическим типом данных и добавить генерацию документации. На вход был файл дампа Единого структурированного справочника-каталога лекарственных препаратов (ЕСКЛП), а на выходе его описание.

Осталось понять сделать ли это отдельным инструментом или встроить в ранее созданные утилиты undatum или metacrafter которые тут пересекаются

#datadocumentation #dataengineering #datatools
Полезные ссылки про данные, технологии и не только:
- Perforator [1] профайлер приложений от Яндекса и с использованием eBPF [2]. Полезно для отладки многих сложных и простых нативных приложений и отдельно расписано как профилировать и оптимизировать серверные приложения на Python. Выглядит как очень добротный open source продукт
- GPT Researcher [3] автономный инструмент для исследований с аккуратной простановкой цитат, использует внешние и локальные источники. Интегрирован с OpenAI
- The Illustrated DeepSeek-R1 [4] подробно о DeepSeek в картинках, позволяет легче ухватить суть продукта
- DataLumos [5] проект Университета Мичигана по архивации государственных и социальных данных, построен на базе OpenICPSR [6], данных не очень много, но они адаптированы под исследовательские задачи
- Data Formulator: Create Rich Visualizations with AI [7] полноценный движок для визуализации данных с помощью ИИ. Выпущен исследователями из Microsoft вместе с научной работой, под лицензией MIT. Выглядит как proof-of-concept, не факт что его можно применять в практических задачах сразу и из коробки, но для экспериментов самое оно. И для идей и вдохновения
- Chat2DB [8] открытый код (community edition) и сервис по управлению базами данных с помощью ИИ. Всё самое вкусное вынесли в коммерческие версии, но посмотреть стоит в любом случае.

Ссылки:
[1] https://perforator.tech
[2] https://ebpf.io
[3] https://github.com/assafelovic/gpt-researcher
[4] https://newsletter.languagemodels.co/p/the-illustrated-deepseek-r1
[5] https://www.datalumos.org
[6] https://www.openicpsr.org/openicpsr/
[7] https://github.com/microsoft/data-formulator
[8] https://chat2db.ai

#opensource #datatools #opendata #ai
Ещё один проект по быстрому созданию приложений на основе датасетов Preswald [1]. С открытым кодом, под лицензией Apache 2.0, вместо low code/no-code пропагандируют принцип Code-First Simplicity (минимальный, но необходимый код), а также декларативное программирование через конфигурацию в toml файлах.

Когда и кому такой инструмент зайдёт? Тем кому нужно быстро визуализировать данные в наглядном виде и предоставлять их в таком виде пользователям. В этом смысле продукт похож чем-то на Observable или Datasette [2] .

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

Ссылки:
[1] https://github.com/StructuredLabs/preswald
[2] https://datasette.io

#opensource #datatools
Полезные ссылки про данные, технологии и не только:
- Kreuzberg [1] библиотека для Python по извлечению текста из документов, поддерживает множество форматов, внутри использует Pandoc и Tesseract OCR. Создано как раз для использования в задачах RAG (Retrieval Augmented Generation) с прицелом на локальную обработку данных и минимумом зависимостей. Лицензия MIT
- Validoopsie [2] другая библиотека для Python для валидации данных. Использует библиотеку Narwhals благодаря которой подключается к почти любым видами дата-фреймов. Выглядит полезной альтернативой Great Expectations, лично для меня в валидации данных глобальный нерешённый вопрос в том что тут правильнее, код или декларативное программирования. Иначе говоря, правила проверки должны ли быть отчуждаемыми от языка разработки. Здесь валидация встроена в код, но поверх можно сделать и декларативный движок. Лицензия MIT
- Scripton [3] коммерческое IDE для Python с необычной фичей визуализации данных в реальном времени. Есть только скриншоты, записи экрана и коммерческая версия для macOS. Для тех кто занимается алгоритмической визуализацией может быть удобно, для остальных задач пока нет такой уверенности.
- New horizons for Julia [4] по сути статья о том что язык программирования Julia ещё жив и развивается. Правда медленно, на мой взгляд, но вроде как есть позитивное движение за пределами научных областей. Лично я почти не сталкивался с Julia кроме как на уровне примеров кода, но хорошо если он кому-то нравится и полезен.
- Data-Driven Scrollytelling with Quarto [5] визуализация дата-историй с помощью движка Quarto, итоги конкурса таких визуализаций с большим числом примеров и победителей. Примеры все от команды компании Posit которая этот open-source движок Quarto и разрабатывает. Скажу отдельно что это очень правильно. Если ты делаешь любой движок по визуализации, то просто обязательно надо проводить такие конкурсы.
- The Best Way to Use Text Embeddings Portably is With Parquet and Polars [6] ещё один обзор о том насколько эффективен Parquet в связке с Polars для работы с данными, в данном случае данными карт Magic of the Gathering. Автор тоже задаётся вопросом о том почему Parquet не поддерживается в MS Excel.
- How to Make Superbabies [7] особенно длинный лонгрид о том как генетическими изменениями можно улучшать человека, создавать супер детей или "оптимизированных детей", как ещё пишет автор. Читать и думать об этом надо потому что всё идёт к тому что скоро это станет ещё одной острой социальной и геополитической темой.

Ссылки:
[1] https://github.com/Goldziher/kreuzberg
[2] https://github.com/akmalsoliev/Validoopsie
[3] https://scripton.dev/
[4] https://lwn.net/Articles/1006117/
[5] https://posit.co/blog/closeread-prize-winners/
[6] https://minimaxir.com/2025/02/embeddings-parquet/
[7] https://www.lesswrong.com/posts/DfrSZaf3JC8vJdbZL/how-to-make-superbabies

#opensource #data #datatools #dataviz #genetics #python
Свежий полезный инструмент smallpond [1] от команды DeepSeek AI для тех кто работает с данными большого объёма и с необходимостью их распределения. Под капотом у него DuckDB и 3FS [2], другая разработка от DeepSeek AI в виде распределённой файловой системы с оптимизацией под обучение ИИ.

Ключевое - масштабируемость до петабайтных датасетов. Думаю что полезно для всех датасетов начиная с 1 ТБ и с масштабированием, а для данных объёмом поменьше уже будет избыточно.

Ссылки:
[1] https://github.com/deepseek-ai/smallpond
[2] https://github.com/deepseek-ai/3FS

#opensource #data #datatools