Ivan Begtin
8.09K subscribers
1.97K photos
3 videos
102 files
4.68K 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]
Download Telegram
Незаметное, но существенное одно из последствий AI хайпа последних лет в том что некоммерческий проект независимого открытого поискового индекса Common Crawl в 2023 году привлек 1.3 миллиона долларов [1] пожертвований из которых $500 тыс от его основателя Gil Elbaz, а ещё по $250 тыс. от ИИ компаний OpenAI и Anthropic, $100 от Andreessen Horowitz и ещё $50 от DuckDuckGo.

Для сравнения, в 2022 году бюджет CC оставлял $450 тыс, а в 2020 всего $75 тысяч.

В последнее время Common Crawl используется для обучение LLM и их индекс неоднократно обвиняли в том что в нем содержатся материалы под копирайтом, а также в том что 40% проиндексированных текстов на английском языке.

Важнее то что весь их проект основан на экосистеме инструментов WARC и, кстати, DuckDB и файлов Parquet.

В планы на 2025 год они закладывали создание инструментов с открытым кодом для лучшего понимания их датасетов [3], что интересно поскольку инструментов визуализации и навигации по WARC файлам веб архивов явно нехватает.

Ссылки:
[1] https://commoncrawl.org
[2] https://projects.propublica.org/nonprofits/organizations/261635908
[3] https://commoncrawl.org/blog/august-september-2024-newsletter

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

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
Полезное чтение про данные, технологии и не только:
- TPC-H SF300 on a Raspberry Pi [1] бенчмарк TPC-H SF300 для DuckDB на Raspberri Pi с 16 GB RAM и 1TB SSD. TPC-H тест на двух базах в 26GB и 78GB. Самое главное, все стоимость всего всего этого железа $281.
- BuzzHouse: Bridging the database fuzzing gap for testing ClickHouse [2] в блоге ClickHouse об автоматизации тестирования запросов к ClickHouse. Автор создал и оформил 100+ issues выявленных таким автоматическим тестированием.
- Öppna data-portalen [3] портал открытых данных Шведского национального совета по культурному наследию. Все они геоданные в открытых форматах для возможности нанесения на карту.
- Pilot NIH Science of Science Scholars Program [4] национальный институт здравоохранения США запустил программу для исследователей по работе с их внутренними данными. Это те данные которые не могут быть открыты, но доступны с соблюдением требований безопасности, приватности, с оборудования предоставленного государством и тд. Ограничений немало, но и данные из тех что относят к особо чувствительным.
- LINDAS [5] официальный государственный портал связанных данных (Linked Data) Швейцарии. Создан и поддерживается Швейцарскими Федеральными Архивами. Включает 133 набора данных/базы данных
- Visualize Swiss Open Government Data [6] Швейцарская государственная платформа для визуализации данных. Да, по сути это как если бы к Datawrapper прикрутили каталог данных и придали бы всему государственный статус. Наборов данных там около 200 и, самое главное, всё с открытым кодом [6]

Ссылки:
[1] https://duckdb.org/2025/01/17/raspberryi-pi-tpch.html
[2] https://clickhouse.com/blog/buzzhouse-bridging-the-database-fuzzing-gap-for-testing-clickhouse
[3] https://www.raa.se/hitta-information/oppna-data/oppna-data-portal/
[4] https://dpcpsi.nih.gov/oepr/pilot-nih-science-science-scholars-program
[5] https://lindas.admin.ch/
[6] https://github.com/visualize-admin

#opendata #opensource #data #rdmbs #datatools
Про Love Data Week надо дополнить что задолго до него появился день открытых данных который и сейчас проводится и о нём глобально можно почитать на сайте ODD и в России он будет проводится 1 марта и наша команда будет его организовывать ещё и в Армении.

А Love Data Week это, по сути такой конкурент в хорошем смысле для Open Data Day, многие решили делать регулярные мероприятия, но в другие, близкие даты.

Например, EU Open Data Days пройдут в Люксембурге 19-25 марта.

Участвуйте где можете и всем будет счастье.

#opendata #events
В рубрике как это устроено у них каталог визуализаций 3D сканов археологических объектов, объектов культурного наследия и иных научных коллекций физических объектов MorphoSource [1]. Включает визуализацию результатов сканирования, возможность запросить сами данные и обеспечивает доступность данных, чаще опубликованных под лицензией CC-BY-NC, свободное использование для некоммерческих целей.

Всего 172 тысяч объектов из которых 170.5 тысяч это объекты животного и растительного происхождения.

У проекта есть открытое API [2] и открытый код. Создан в Duke University за счет финансирования Национального научного фонда США.

Ссылки:
[1] https://www.morphosource.org
[2] https://morphosource.stoplight.io/docs/morphosource-api/rm6bqdolcidct-morpho-source-rest-api
[3] https://github.com/morphosource

#opendata #datacatalogs #datasets #archeology
Для тех кто хочет поработать с относительно небольшими открытыми данными в области культуры по ссылке доступен слепок Госкаталога музейного фонда РФ в формате Parquet (3GB) преобразованный из слепка датасета в 78GB с портала данных Минкультуры.

Для тех кто захочет поделать интересных запросов к этим данным вот тут их примеры которые я приводил на семинаре и которые можно делать с помощью DuckDB.
Подчеркну что с файлами Parquet и DuckDB работать можно на недорогих ноутбуках, настольных компьютерах и тд., загружать эти данные на сервер нет необходимости.

Серия запросов по объединению наиболее тяжелых экспонатов по весу и получению отсортированного списка предметов по весу в любом измерении
1. copy (select name, museum.name, weight/1000 as weight from 'data.parquet' where weightUnit = '{"name":"килограммы"}' order by weight desc) to 'heavy_kg_to_tonn.csv';
2. copy (select name, museum.name, weight/100000 as weight from 'data.parquet' where weightUnit = '{"name":"граммы"}' order by weight desc) to 'heavy_gramm.csv';
3. copy (select name, museum.name, weight from 'data.parquet' where weightUnit = '{"name":"тонны"}' order by weight desc) to 'heavy_tonn.csv';
4. select * from read_csv(['heavy_kg_to_tonn.csv', 'heavy_tonn.csv']) order by weight desc;

Рейтинг музеев по качеству заполнения описания (поле description) во внесённых элементах каталога

select t1.name as name, c as num, total, c*100.0/total as share from (select museum.name as name, count(id) as c from 'data.parquet' where len(description) = 0 group by museum.name) as t1 join (select museum.name as name, count(id) as total from 'data.parquet' group by museum.name) as t2 on t1.name = t2.name order by share desc;

Рейтинг музеев по качеству заполнения invNumber (инвентарный номер) во внесённых элементах каталога

select t1.name as name, c as num, total, c*100.0/total as share from (select museum.name as name, count(id) as c from 'data.parquet' where invNumber = '' group by museum.name) as t1 join (select museum.name as name, count(id) as total from 'data.parquet' group by museum.name) as t2 on t1.name = t2.name order by share desc;

#opendata #russia #parquet #duckdb