Ivan Begtin
8.07K subscribers
1.47K photos
3 videos
99 files
4.22K links
I write about Open Data, Data Engineering, Government, Privacy and Data Preservation and other gov and tech stuff
Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech

Contact @NMBabina for ads proposals
Download Telegram
К вопросу о современных дата продуктах, один из способов работы с данными сейчас - это комбинация DuckDB и Polars. Например, DuckDB так стремительно набирает популярность что я не удивлюсь что скоро данные начнут распространять и публиковать как базы DuckDB, примерно как много лет назад публиковали DBF файлы и файлы MS Access [1] и также как иногда сейчас публикуют sqlite файлы [2].

В общем и целом за этим хайпом есть реальные продукты которые стоит посмотреть своими глазами.


P.S. Картинка из блога Christophe Blefari

Ссылки:
[1] https://catalog.data.gov/dataset/municipal-fiscal-indicators-2014-2018-ms-access-database
[2] https://catalog.data.gov/dataset/x-ray-properties-database-in-sqlite-format

#opensource #datatools
This media is not supported in your browser
VIEW IN TELEGRAM
В рубрике интересных проектов с открытым кодом Latino [1], язык программирования на испанском языке. Да, примерно как в СССР были языки программирования с ключевыми словами на русском, так же и тут, но в основе испанский.

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

По синтаксису что-то среднее между Python и Lua.

Полезен может быть тем кто учит испанский и программирует, чтобы, потренировать свои навыки и языка разговорного и языка программного.

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

#opensource #programming
Свежие и полезные инструменты с открытым кодом для загрузки и обработки данных:
- PyAirbyte [1] библиотека для Python от команды Airbyte для того чтобы перенести логику этого движка по сбору данных в Python. Поддерживает все коннекторы Airbyte ранее написанные на Python
- dlt [2] Data Load Tool, явно созвучное dbt, библиотека для Python для реализации принципа Extract-Load-Transform. Выглядит довольно целостно, стоит изучить внимательнее
- ingestr [3] утилита командной строки по переносу баз данных из одного источника в другой. Поддерживает основные SQL СУБД
- sling [4] инструмент для выгрузки/загрузки данных с большинства основных СУБД включая облачные, файловых систем и различных дата файлов. Реализован на Go, важное ограничение GPL 2 лицензия (для сравнения у dlt лицензия Apache 2, а у ingestr MIT).

И конечно остаются такие инструменты как Meltano, Dagster, CloudQuery и многие другие

Ссылки:
[1] https://airbyte.com/blog/announcing-pyairbyte
[2] https://dlthub.com
[3] https://github.com/bruin-data/ingestr
[4] https://github.com/slingdata-io/sling-cli

#opensource #dataengineering
В рубрике как это работает у них городская панель управления (city dashboard) города Тайбэя [1].

Распространяется как открытый код [2] под лицензией AGPL, используется городскими властями внутри и для публики доступно общедоступное demo.

А также к продукту есть обширная документация [3].

Городские дашборды в юго-восточной Азии не редкость, например, есть такой у Гонконга как часть портала открытых данных [4], но к нему не припомню открытого кода.

А вот в Ирландии есть целый проект Building City Dashboards [5] с разными дашбордами, научными работами и открытым кодом. Можно сказать что системный подход к вопросу.

Ссылки:
[1] https://citydashboard.taipei/dashboard-demo/dashboard?index=childcare
[2] https://github.com/tpe-doit/Taipei-City-Dashboard
[3] https://tuic.gov.taipei/documentation/front-end/introduction
[4] https://data.gov.hk/en/city-dashboard#city
[5] https://dashboards.maynoothuniversity.ie/

#dataviz #opensource #opendata #opengov #cities #roc
Те кто видел мою презентацию про Dateno могли обратить внимание что я упоминал там про семантические типы данных, о которых неоднократно тут писал и о которых всегда полезно напомнить.

Семантические типы данных - это характеристики колонок в таблицах/полей в JSON и тд. которые определяют их смысловое наполнение. То есть если тип поля: строка, число и тд. определяют способ хранения и тип данных, то семантический тип определяет смысл. Например, строка может быть идентификатором организации или UUID, или датой или кодом продукта. Для всего это я когда-то написал утилиту metacrafter [1] и библиотеку для Python, которая умеет сканировать файл или таблицу в СУБД и выдавать отчёт по семантическим типам привязывая их к единому реестру. Реестр довольно обширный [2] по самым разным направлениям, а сама утилита включает набор простых правил описываемых в YAML нотации.

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

Собственно не секрет что основным источником выявления правил были порталы открытых данных UK, USA, России, Франции и многих других стран.

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

Если, кстати, вы обогащаете внутренние каталоги данных дополнительными метаданными, то metacrafter может оказаться очень полезной штукой. Она создавалась изначально для этого и может помочь найти персональные данные в самых неожиданных местах.

Ссылки:
[1] https://github.com/apicrafter/metacrafter
[2] https://registry.apicrafter.io/

#opendata #opensource #data #datatools
Казалось бы небольшая, но весьма интересная новость о том что проект chDB присоединяется к Clickhouse [1].

chDB [2] - это внедряемая OLAP база на движке Clickhouse, фактически прямой конкурент DuckDb и, как и DuckDb, замена Sqlite.

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

И вот chDB это такое же как DuckDb по логике, но движок Clickhouse может быть поинтереснее. В треде на ycombinator [3] есть интересные ссылки на эту тему, например, сравнение clickhouse-local и DuckDb [4] и clickhouse-local там был особенно крут на больших объёмах данных. Можно предположить что автор chDb переходит в clickhouse прокачать chDB также как сейчас прокачано DuckDb.

В общем и целом новость оптимистичная, больше embedded баз данных разных и полезных.

Ссылки:
[1] https://auxten.com/chdb-is-joining-clickhouse/
[2] https://www.chdb.io/
[3] https://news.ycombinator.com/item?id=37985005
[4] https://www.vantage.sh/blog/clickhouse-local-vs-duckdb

#data #opensource #databases #datatools
One Trillion Row Challenge - совершенно замечательный по задумке конкурс по работе с датасетом в триллион строк [1] для тех кто работает большими, очень большими и очень-очень большими (шутка) данными на обычном железе или во временно арендуемом облаке, а не на мейнфреймах. Конкурс в том чтобы подсчитать минимальную, среднюю и максимальную температуру по погодным станциям отсортированным по алфавиту. Данные хранятся в 100 тысячах Parquet файлах, по 10 миллионов строк в каждом, а заявки отправляются через открытие issue в репозитории конкурса [2].

Сам конкурс - это продолжение другого конкурса, One Billion Row Challenge [3], где данных было только 1 миллиард, и принимались решения только в виде Java кода.

Решения можно отправлять в дискуссиях на Github в репозитории [4].

Конкурс интересный тем что по многим продуктам не-неожиданно, но подтверждённо очень высокая производительность. Например, в Clickhouse SQL задача с 1 миллиардом строк решается за менее чем 7.5 секунд [5] и у них же 3 минуты на конкурс в 1 триллион строк [6] и пишут что за $0.56, это совсем мало если что.

А в оригинальном посте Dask в облаке Coiled отрабатывает за 8.5 минут или $3.26 в стоимости Amazon Cloud, что тоже очень мало.

Хороший бенчмарк, в ситуации интенсивной конкуренции между высокопроизводительными продуктами по обработке данных, он весьма полезен.

Ссылки:
[1] https://docs.coiled.io/blog/1trc.html
[2] https://github.com/coiled/1trc
[3] https://www.morling.dev/blog/one-billion-row-challenge/
[4] https://github.com/gunnarmorling/1brc/discussions
[5] https://github.com/gunnarmorling/1brc/discussions/80
[6] https://clickhouse.com/blog/clickhouse-1-trillion-row-challenge

#data #datasets #opensource #datatools
Регулярная подборка ссылок про данные, технологии и не только:
- Vector DB Comparison [1] большой обзор в виде таблицы со сравнением векторных баз данных. Список подробный, со ссылками на документацию и представленностью практических всех продуктов с открытым кодом.
- Pretzel Notebook [2] тетрадки для работы с данными с DuckDB внутри и языком PRQL
- Common Corpus [3] авторы утверждают что это крупнейший датасет public domain текстов на разных языках
- DuckDB snippets [4] подборка сниппетов для DuckDB по использованию в командной строке. Замена многих инструментов в том числе самописных
- Binjr [5] браузер для временных рядов, с инсталляцией локально под Windows, Linux или Mac. В демках про мониторинг серверов, но может и для чего-то ещё сгодится?

Ссылки:
[1] https://superlinked.com/vector-db-comparison/
[2] https://github.com/pretzelai/pretzelai
[3] https://huggingface.co/collections/PleIAs/common-corpus-65d46e3ea3980fdcd66a5613
[4] https://duckdbsnippets.com/page/1/most-popular
[5] https://binjr.eu/

#opensource #datatools #data
Redis, хорошо известный продукт для большинства разработчиков использующих NoSQL, меняет лицензию на SSPL и перестаёт быть проектом со свободным исходным кодом [1]. SSPL запрещает использование продукта облачными провайдерами, без раскрытия полного кода всего кода облака (интерфейса, бэкэнда, дизайна и тд).

Тем временем Linux Foundation создали Valkey [2], открытый код Redis'а. А другие команды переходят на KeyDB и другие альтернативы.

Ссылки:
[1] https://arstechnica.com/information-technology/2024/04/redis-license-change-and-forking-are-a-mess-that-everybody-can-feel-bad-about/
[2] https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community

#opensource #data #datatools
Я тут, внезапно, обнаружил что замечательный гайд Джошуа Тауберера по организации хакатонов [1] не переводился не то что на русский язык, но и на многие другие. Впрочем в том виде как он был написан ещё 10 лет назад его уже применять не стоит, очень многое перенеслось в онлайн и сами хакатоны стали уже другими, кроме них появилось немало других форм совместного кодирования/сбора данных/проведения конкурсов и многого другого.

С другой стороны я вижу отсутствие гайда/чеклиста для самих участников хакатонов. Понятно что в большинстве хакатонов участвуют начинающие разработчики, но одновременно - это тест на их способность расти дальше в навыках и карьере.

Ссылки:
[1] https://hackathon.guide/

#opensource #hackathons #guide