Пока я рассуждал о том что новые инструменты 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
Автор/докладчик там сравнивает 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
В рубрике полезных инструментов с открытым кодом docling [1] от IBM Open Source и конкретнее их команды Deep Search. Утилита и библиотека для Python по преобразованию условно любых документов в Markdown. Умеет работать с (PDF, DOCX, PPTX, Images, HTML, AsciiDoc, Markdown и преобразует их в Markdown или JSON.
При этом распознает сканированные документы, извлекает таблицы и поддерживает множество движков распознавания. Интегрируется с LangChain и LllamaIndex, значительно быстрее работает при наличии CUDA.
Я проверял без графического процессора, поэтому было небыстро, но результирующий Markdown текст вполне приличный.
Можно за короткий срок извлечь таблицы из огромного числа документов, при наличии вычислительных ресурсов, конечно.
Ссылки:
[1] https://ds4sd.github.io/docling/
#opensource #pdf #dataengineering
При этом распознает сканированные документы, извлекает таблицы и поддерживает множество движков распознавания. Интегрируется с LangChain и LllamaIndex, значительно быстрее работает при наличии CUDA.
Я проверял без графического процессора, поэтому было небыстро, но результирующий Markdown текст вполне приличный.
Можно за короткий срок извлечь таблицы из огромного числа документов, при наличии вычислительных ресурсов, конечно.
Ссылки:
[1] https://ds4sd.github.io/docling/
#opensource #pdf #dataengineering
К вопросу о том как развивается открытый код и открытые данные в мире, я как-то уже упоминал про Registry of Digital Public Goods [1], это по сути, пример систематизации открытого кода донорами которые дают финансирование на открытый код, чаще всего, или, социально ориентированным коммерческим компаниям или технологическим НКО. И тех и тех в мире много, открытого кода тоже много вот собственно в этом реестре их начали вносить в привязке к целям устойчивого развития.
Из всех технологических инициатив связанных с ООН эта наиболее понятная, собственно она сама является открытым стандартом описания проектов [2].
А заодно позволяет оценить насколько эффективно создание ПО на грантовые средства и насколько устойчивы создаваемые проекты. Если присмотреться к тому что там опубликовано, то есть немало проектов созданных по принципу "отчитались и ну его". Иначе говоря код выложен однократно, чтобы соответствовать требованиям гранта.
Но есть и серьёзные проекты. В реестре есть FormSG [3] открытый код по генерации форм, созданный Правительством Сингапура. Там есть CKAN [4] наиболее популярный код для создания порталов открытых данных и ещё много всего.
Что характерно там сейчас 176 проектов, но в реальности их гораздо больше. тут лишь те авторы которых явным образом о себе заявили и прошли верификацию. Причём проекты как от НКО, так и от госорганов. Главное что открытый код и соответствие целям развития.
Можно обратить внимание что из РФ, ожидаемо, ни одного проекта нет. Из Армении есть один, созданный явно на грантовые деньги. Пара проектов из Казахстана, тоже, похоже, грантового происхождения. Из Эстонии там есть X-Road, госпроект ПО по обмену данными, в открытом коде.
В целом это всё очень похоже на модели кооперации НКО и гос-ва в западной модели их поддержки. Гранты раздаются многим, лишь некоторые проекты обретают долгую жизнь и те что обретают переводят в режим кооперации.
Ссылки:
[1] https://www.digitalpublicgoods.net/registry
[2] https://www.digitalpublicgoods.net/standard
[3] https://www.digitalpublicgoods.net/r/formsg
[4] https://www.digitalpublicgoods.net/r/ckan
#opensource #opendata #un
Из всех технологических инициатив связанных с ООН эта наиболее понятная, собственно она сама является открытым стандартом описания проектов [2].
А заодно позволяет оценить насколько эффективно создание ПО на грантовые средства и насколько устойчивы создаваемые проекты. Если присмотреться к тому что там опубликовано, то есть немало проектов созданных по принципу "отчитались и ну его". Иначе говоря код выложен однократно, чтобы соответствовать требованиям гранта.
Но есть и серьёзные проекты. В реестре есть FormSG [3] открытый код по генерации форм, созданный Правительством Сингапура. Там есть CKAN [4] наиболее популярный код для создания порталов открытых данных и ещё много всего.
Что характерно там сейчас 176 проектов, но в реальности их гораздо больше. тут лишь те авторы которых явным образом о себе заявили и прошли верификацию. Причём проекты как от НКО, так и от госорганов. Главное что открытый код и соответствие целям развития.
Можно обратить внимание что из РФ, ожидаемо, ни одного проекта нет. Из Армении есть один, созданный явно на грантовые деньги. Пара проектов из Казахстана, тоже, похоже, грантового происхождения. Из Эстонии там есть X-Road, госпроект ПО по обмену данными, в открытом коде.
В целом это всё очень похоже на модели кооперации НКО и гос-ва в западной модели их поддержки. Гранты раздаются многим, лишь некоторые проекты обретают долгую жизнь и те что обретают переводят в режим кооперации.
Ссылки:
[1] https://www.digitalpublicgoods.net/registry
[2] https://www.digitalpublicgoods.net/standard
[3] https://www.digitalpublicgoods.net/r/formsg
[4] https://www.digitalpublicgoods.net/r/ckan
#opensource #opendata #un
В рубрике полезных инструментов по автоматизации визуализации данных Visprex [1] визуализация CSV файлов сразу в браузере, без передачи куда либо.
Умеет сразу несколько базовых визуализаций что полезно для небольших дата файлов.
Из минусов - это типы данных они угадывают по полям в CSV, а если бы точно также визуализировали Parquet файлы то типы там были бы уже сразу.
Вообще скажу я в вам автоматизация визуализации данных - это та ещё наука. Её активно решают с помощью LLM в последние годы и скорее всего неплохо получится решить.
Ссылки:
[1] https://github.com/visprex/visprex
#opensource #dataviz #autodataviz
Умеет сразу несколько базовых визуализаций что полезно для небольших дата файлов.
Из минусов - это типы данных они угадывают по полям в CSV, а если бы точно также визуализировали Parquet файлы то типы там были бы уже сразу.
Вообще скажу я в вам автоматизация визуализации данных - это та ещё наука. Её активно решают с помощью LLM в последние годы и скорее всего неплохо получится решить.
Ссылки:
[1] https://github.com/visprex/visprex
#opensource #dataviz #autodataviz
Оказывается вышел пре-релиз версии 6.0 библиотеки Plotly для визуализации данных [1] самое интересное там это то что они перешли на библиотеку Narwhals [2] которая позволяет работать с условно любой библиотекой для датафреймов и сохранять совместимость с pandas. Например, это такие библиотеки как: cuDF, Modin, pandas, Polars, PyArrow
Собственно и автор Plotly пишет про то что для не-pandas датафреймов всё ускоряется в 2-3 раза [3].
По всем параметрам хорошая штука, надо использовать на практике.
Ссылки:
[1] https://github.com/plotly/plotly.py/releases/tag/v6.0.0rc0
[2] https://github.com/narwhals-dev/narwhals
[3] https://www.linkedin.com/posts/marcogorelli_plotly-60-%F0%9D%90%A9%F0%9D%90%AB%F0%9D%90%9E%F0%9D%90%AB%F0%9D%90%9E%F0%9D%90%A5%F0%9D%90%9E%F0%9D%90%9A%F0%9D%90%AC%F0%9D%90%9E-is-out-activity-7267885615096991744-2ORl?utm_source=share&utm_medium=member_desktop
#opensource #dataviz #dataframes
Собственно и автор Plotly пишет про то что для не-pandas датафреймов всё ускоряется в 2-3 раза [3].
По всем параметрам хорошая штука, надо использовать на практике.
Ссылки:
[1] https://github.com/plotly/plotly.py/releases/tag/v6.0.0rc0
[2] https://github.com/narwhals-dev/narwhals
[3] https://www.linkedin.com/posts/marcogorelli_plotly-60-%F0%9D%90%A9%F0%9D%90%AB%F0%9D%90%9E%F0%9D%90%AB%F0%9D%90%9E%F0%9D%90%A5%F0%9D%90%9E%F0%9D%90%9A%F0%9D%90%AC%F0%9D%90%9E-is-out-activity-7267885615096991744-2ORl?utm_source=share&utm_medium=member_desktop
#opensource #dataviz #dataframes
Graphic Walker [1] ещё один симпатичный инструмент для анализа и визуализации данных позиционируемый как альтернатива Tableau.
На его основе работает GWalkR [2] инструмент для Exploratory Data Analysis (EDA) на языке R что хорошо встраивается в R Notebook и иные встроенные способы визуализации.
Ссылки:
[1] https://github.com/Kanaries/graphic-walker
[2] https://github.com/Kanaries/GWalkR
#opensource #dataviz #dataanalysis
На его основе работает GWalkR [2] инструмент для Exploratory Data Analysis (EDA) на языке R что хорошо встраивается в R Notebook и иные встроенные способы визуализации.
Ссылки:
[1] https://github.com/Kanaries/graphic-walker
[2] https://github.com/Kanaries/GWalkR
#opensource #dataviz #dataanalysis
В рубрике полезного чтения про данные, технологии и не только:
- Dismantling ELT: The Case for Graphs, Not Silos [1] размышления автора о том что такое ELT с точки зрения данных которые являются графом. Он там постоянно ссылается на закон Конвея «организации проектируют системы, которые копируют структуру коммуникаций в этой организации» и про необходимость изменения отношения к тому как данные обрабатываются.
- 7 Databases in 7 Weeks for 2025 [2] автор рассказывает о том почему стоит изучить такие базы данных как PostgreSQL, SQlite, DuckDB, Clickhouse, FoundationDB, TigerBeetle и CockroachDB. Подборка хорошая, стоит изучить
- reactable-py [3] код для быстрой визуализации датафреймов. Мне он чем то напомнил проект Datasette [4], но очень отдалённо. Удобно тем что хорошо встраивается в веб страницу и может быть полезно в дата сторителлинге.
- Field Boundaries for Agriculture (fiboa) [5] малоизвестный пока что проект по сбору наборов данных и инструментов для создания данных в сельском хозяйстве, конкретно в определении границ участков. Сами данные публикуют в Source Cooperative, каталоге больших геоданных [6]
- Common Operational Datasets [7] [8] [9] общие операционные наборы достоверных данных необходимые для принятия решений. Термин UN OCHA определяющий ключевые данные необходимые для противодействия стихийным бедствиям. Чем то напоминает концепцию high-value datasets используемую в Евросоюзе.
Ссылки:
[1] https://jack-vanlightly.com/blog/2024/11/26/dismantling-elt-the-case-for-graphs-not-silos
[2] https://matt.blwt.io/post/7-databases-in-7-weeks-for-2025/
[3] https://machow.github.io/reactable-py/get-started/index.html
[4] https://datasette.io
[5] https://github.com/fiboa
[6] https://source.coop/
[7] https://cod.unocha.org
[8] https://data.humdata.org/event/cod/
[9] https://humanitarian.atlassian.net/wiki/spaces/imtoolbox/pages/42045911/Common+Operational+Datasets+CODs
#opendata #opensource #readings #dataviz #dataframes
- Dismantling ELT: The Case for Graphs, Not Silos [1] размышления автора о том что такое ELT с точки зрения данных которые являются графом. Он там постоянно ссылается на закон Конвея «организации проектируют системы, которые копируют структуру коммуникаций в этой организации» и про необходимость изменения отношения к тому как данные обрабатываются.
- 7 Databases in 7 Weeks for 2025 [2] автор рассказывает о том почему стоит изучить такие базы данных как PostgreSQL, SQlite, DuckDB, Clickhouse, FoundationDB, TigerBeetle и CockroachDB. Подборка хорошая, стоит изучить
- reactable-py [3] код для быстрой визуализации датафреймов. Мне он чем то напомнил проект Datasette [4], но очень отдалённо. Удобно тем что хорошо встраивается в веб страницу и может быть полезно в дата сторителлинге.
- Field Boundaries for Agriculture (fiboa) [5] малоизвестный пока что проект по сбору наборов данных и инструментов для создания данных в сельском хозяйстве, конкретно в определении границ участков. Сами данные публикуют в Source Cooperative, каталоге больших геоданных [6]
- Common Operational Datasets [7] [8] [9] общие операционные наборы достоверных данных необходимые для принятия решений. Термин UN OCHA определяющий ключевые данные необходимые для противодействия стихийным бедствиям. Чем то напоминает концепцию high-value datasets используемую в Евросоюзе.
Ссылки:
[1] https://jack-vanlightly.com/blog/2024/11/26/dismantling-elt-the-case-for-graphs-not-silos
[2] https://matt.blwt.io/post/7-databases-in-7-weeks-for-2025/
[3] https://machow.github.io/reactable-py/get-started/index.html
[4] https://datasette.io
[5] https://github.com/fiboa
[6] https://source.coop/
[7] https://cod.unocha.org
[8] https://data.humdata.org/event/cod/
[9] https://humanitarian.atlassian.net/wiki/spaces/imtoolbox/pages/42045911/Common+Operational+Datasets+CODs
#opendata #opensource #readings #dataviz #dataframes
Jack Vanlightly
Dismantling ELT: The Case for Graphs, Not Silos — Jack Vanlightly
ELT is a bridge between silos. A world without silos is a graph. I’ve been banging my drum recently about the ills of Conway’s Law and the need for low-coupling data architectures. In my Curse of Conway and the Data Space blog post, I explored how Conway’s…
Ещё один симпатичный движок для индексирования и поиска текста SeekStorm [1] умеет искать по тексту на разных языках, по скорости сравним с MeiliSearch, обещают многоязычность и внутри всё написано на Rust.
В примерах есть поиск по большим коллекциям PDF файлов, должен быть удобен для поиска, например, по базам научных статей которые почти всегда в PDF.
Можно попробовать с его помощью проиндексировать много миллионов документов. Десятки миллионов документов!
Но надо тестировать чтобы понять как он умеет инкрементально обрабатывать документов, сколько потребляет ресурсов и тд.
Ссылки:
[1] https://github.com/SeekStorm/SeekStorm
[2] https://deephn.org/?q=Data+indexing
#opensource #dataengineering
В примерах есть поиск по большим коллекциям PDF файлов, должен быть удобен для поиска, например, по базам научных статей которые почти всегда в PDF.
Можно попробовать с его помощью проиндексировать много миллионов документов. Десятки миллионов документов!
Но надо тестировать чтобы понять как он умеет инкрементально обрабатывать документов, сколько потребляет ресурсов и тд.
Ссылки:
[1] https://github.com/SeekStorm/SeekStorm
[2] https://deephn.org/?q=Data+indexing
#opensource #dataengineering
Тем временем Amazon анонсировали S3 Tables [1], возможность работать с данными таблиц которые хранятся в S3, но работа с ними как с дата файлами и через SQL запросы. Внутри этого всего движок поддерживающий Apache Iceberg, относительно новый открытый формат хранения и распространения таблиц внутри которого файлы Parquet и ассоциированные с ними метаданныею
Много где пишут что такой продукт может подорвать бизнес крупнейших игроков рынка облачной дата аналитики и хранения Databricks и Snowflake [2], цена, как и у всех AWS продуктов, будет сложная, но похоже что честная за такой сервис.
Правда, по личному опыту могу сказать что использование облачных сервисов Amazon это удобно, но всегда влетает в копеечку. На эту тему бесконечное число мемов и даже стартапы есть оптимизирующие облачное использование.
Ссылки:
[1] https://aws.amazon.com/ru/blogs/aws/new-amazon-s3-tables-storage-optimized-for-analytics-workloads/
[2] https://meltware.com/2024/12/04/s3-tables.html
#opensource #dataengineering #amazon #aws
Много где пишут что такой продукт может подорвать бизнес крупнейших игроков рынка облачной дата аналитики и хранения Databricks и Snowflake [2], цена, как и у всех AWS продуктов, будет сложная, но похоже что честная за такой сервис.
Правда, по личному опыту могу сказать что использование облачных сервисов Amazon это удобно, но всегда влетает в копеечку. На эту тему бесконечное число мемов и даже стартапы есть оптимизирующие облачное использование.
Ссылки:
[1] https://aws.amazon.com/ru/blogs/aws/new-amazon-s3-tables-storage-optimized-for-analytics-workloads/
[2] https://meltware.com/2024/12/04/s3-tables.html
#opensource #dataengineering #amazon #aws
Amazon
New Amazon S3 Tables: Storage optimized for analytics workloads | Amazon Web Services
Amazon S3 Tables optimize tabular data storage (like transactions and sensor readings) in Apache Iceberg, enabling high-performance, low-cost queries using Athena, EMR, and Spark.
Полезные ссылки про данные, технологии и не только:
- The DuckDB Avro Extension [1] новое расширение для DuckDB для поддержки формата файлов Apache Avro. Не то чтобы Avro часто встречается в дикой природе, но во многих корпоративных стеках данных он есть и хорошо что к нему есть расширение. Заодно полезное чтение про внутреннее устройство и специфику этого формата.
- Prototype Fund: a successful story of project replication within the Open Knowledge Network [2] в блоке Open Knowledge Foundation видео с рассказом про Prototype Fund в Германии и Швейцарии. Это специальный фонд для поддержки проектов с открытым кодом, про открытые данные и вообще про технологические аспекты открытости (например, стандарты) в контексте цифровой общей инфраструктуры. Иначе говоря поддержка открытых проектов создаваемых для общественного блага. Жаль этот опыт трудновоспроизводим.
- The History of the Decline and Fall of In-Memory Database Systems [3] приятный текст про "взлет и падение" баз данных работавших только в памяти и о том почему почти все СУБД вернулись к модели постоянного хранения. Спойлер:потому что цены гигабайт на SSD падают быстрее чем цены за гигабайт RAM
- Researchers achieve 96% accuracy in detecting phishing emails with open-source AI [4] вот полезное применение LLM, ловить фишинговые письма. Правда, сдаётся мне что есть способы и попроще, но и этот весьма неплох. Причём 95% точности достигается довольно легковесной моделью, а 96% уже с существенно большими требованиями
- An Open Source Python Library for Anonymizing Sensitive Data [5] статья об анонимизации данных и открытой библиотеке авторов о том как ей пользоваться.
Ссылки:
[1] https://duckdb.org/2024/12/09/duckdb-avro-extension
[2] https://blog.okfn.org/2024/12/05/prototype-fund-a-successful-story-of-project-replication-within-the-open-knowledge-network/
[3] https://cedardb.com/blog/in_memory_dbms/
[4] https://the-decoder.com/researchers-achieve-96-accuracy-in-detecting-phishing-emails-with-open-source-ai/
[5] https://www.nature.com/articles/s41597-024-04019-z
#opensource #ai #rdbms #readings
- The DuckDB Avro Extension [1] новое расширение для DuckDB для поддержки формата файлов Apache Avro. Не то чтобы Avro часто встречается в дикой природе, но во многих корпоративных стеках данных он есть и хорошо что к нему есть расширение. Заодно полезное чтение про внутреннее устройство и специфику этого формата.
- Prototype Fund: a successful story of project replication within the Open Knowledge Network [2] в блоке Open Knowledge Foundation видео с рассказом про Prototype Fund в Германии и Швейцарии. Это специальный фонд для поддержки проектов с открытым кодом, про открытые данные и вообще про технологические аспекты открытости (например, стандарты) в контексте цифровой общей инфраструктуры. Иначе говоря поддержка открытых проектов создаваемых для общественного блага. Жаль этот опыт трудновоспроизводим.
- The History of the Decline and Fall of In-Memory Database Systems [3] приятный текст про "взлет и падение" баз данных работавших только в памяти и о том почему почти все СУБД вернулись к модели постоянного хранения. Спойлер:
- Researchers achieve 96% accuracy in detecting phishing emails with open-source AI [4] вот полезное применение LLM, ловить фишинговые письма. Правда, сдаётся мне что есть способы и попроще, но и этот весьма неплох. Причём 95% точности достигается довольно легковесной моделью, а 96% уже с существенно большими требованиями
- An Open Source Python Library for Anonymizing Sensitive Data [5] статья об анонимизации данных и открытой библиотеке авторов о том как ей пользоваться.
Ссылки:
[1] https://duckdb.org/2024/12/09/duckdb-avro-extension
[2] https://blog.okfn.org/2024/12/05/prototype-fund-a-successful-story-of-project-replication-within-the-open-knowledge-network/
[3] https://cedardb.com/blog/in_memory_dbms/
[4] https://the-decoder.com/researchers-achieve-96-accuracy-in-detecting-phishing-emails-with-open-source-ai/
[5] https://www.nature.com/articles/s41597-024-04019-z
#opensource #ai #rdbms #readings