Ivan Begtin
9.09K subscribers
2.5K photos
4 videos
113 files
5.27K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
Открытые данные постсоветских стран. Часть 2

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

- Беларусь. Портал данных в Республике Беларусь существовал только непродолжительное время в декабре 2021 года по адресу data.gov.by (сейчас недоступен) и всё что о нем осталось в сети доступно в Интернет Архиве. Поэтому можно исходить из того что портала открытых данных в стране нет.
- Армения. В Армении как и в Беларуси нет своего госпортала открытых данных, даже при том что страна имеет свой план открытости в рамках OGP, открытые данные туда не входят. Существует только негосударственный портал data.opendata.am без какой-либо господдеркжи
- Грузия. В Грузии до февраля 2025 года существовал портал открытых данных data.gov.ge (сейчас недоступен), его упоминание есть в Интернет архиве. Что с ним случилось, его причины закрытия неизвестны.
- Азербайджан. Портал открытых данных существовал до апреля 2025 года по адресу opendata.az, сейчас недоступен, информация сохранилась в Интернет архиве. В целом на портале публиковались только немногочисленные административные данные, без существенных статистических данных, без геоданных и тд.
- Россия. Портал открытых данных data.gov.ru открылся летом 2025 года и включает сейчас около 7600 наборов данных. На портале отсутствуют геоданные, отсутствуют данные высокой ценности, почти все данные можно отнести к административным данным, не имеющим прямого практического применения. Важные особенности - общий объём данных в сжатом виде около 150МБ и подавляющее число наборов данных устарели от 2 до 10 лет назад.
- Кыргызстан. Портал data.gov.kg изначально сделан на CKAN, без специальных настроек, без геоданных, без наборов данных особой ценности. Сейчас недоступен, общий объём опубликованных данных всегда был невелик качественно и количественно.
- Туркменистан. Портала открытых данных страны никогда не существовало
- Таджикистан. Портала открытых данных страны никогда не существовало

#datacatalogs #opendata #data #datasets
👍541
О сжатии данных

Вначале немного общего контекста.
Один из трендов разработки ПО, игр, сайтов, мобильных приложений последних десятилетий был и остаётся рост размера самих программ и связанных с ними цифровых артефактов. Это же относится и к данным, данных становится больше, хранить их в как-есть оказывается накладно и для передачи, и для стоимости хранения, и для обработки. Собственно одна из причин появления новых алгоритмов сжатия вроде Zstandard, Brotli и др. от бигтехов в том что внутренний и глобальный запрос на повышение эффективности хранения и передачи данных есть и он давно уже перерос специализированные и академические области применения и новые алгоритмы приходят теперь не из задач связанных с академическими проектами, вроде появления алгоритма LZO, а именно из практической массовой потребности.

А теперь немного тезисно:
- несмотря на снижение стоимости хранения данных и повышения производительности компьютеров в задачах построения любых больших систем стоимость хранения данных имеет прямую измеримость в стоимости носителей, аренды облачного хранения и стоимости передачи данных
- в большинстве случаев применение методов компрессии сейчас - это инженерная задача поскольку инструментов много, а известны они не все и применяются не все
- разные задачи требуют разные подходы - холодное хранение цифровых артефактов, хранение данных для автоматизированной обработки, оперативная доступность, критичность времени подготовки (упаковки данных) и распаковки. и так далее

Самые очевидные правила:
1. Во всём что касается хранения структурированных данных когда нужны эталонные данные то применение одного из способов сжатия: Zstandard, Xz, GZip. Zstandard как наиболее сбалансированный по скорость/уровень сжатия, Xz для долгосрочного хранения, а Gzip для работы с инструментами которые могут не поддерживать остальные способы сжатия
2. В случаях когда нет необходимости хранить оригинальные данные - сохранять их в Parquet со сжатием в Zstd. В такой конфигурации данные остаются пригодными для машинной обработки и существенно меньшего объёма

А теперь не самое известное об алгоритмах компрессии:
1. Есть много алгоритмов сжатия гораздо лучше сжимающих данные ценой длительной работы и множество ресурсов. Тем кто интересуется будет интересно почитать о Hutter Prize конкурса по сжатию данных человеческих знаний (Википедии) где можно найти множество программ дающих качественно лучшее сжатие чем общеизвестные инструменты
2. Многие популярные архиваторы дают плохое сжатие, как в угоду скорости, так и просто из-за слабой технической реализации. Есть такие экзотические инструменты как precomp которые пережимают файлы повторно находя в двоичном потоке сигнатуры сжатых потоков, расжимая их и сжимая снова улучшенными алгоритмами. Важное ограничение в том что это всё ещё не production ready инструмент и в том что сжатый файл обяззательно надо расжимать перед использованием.
3. Но есть файлы которые можно пересжимать без потери их реюзабельности. Много лет назад я делал утилиту filerepack которая пересжимала файлы в zip контейнерах. Например, у вас накопились файлы MS Office в docx, pptx, xlsx и других форматах и есть желание их уменьшить. filerepack последовательно пересжимал все файлы внутри контейнера и сам контейнер, но делал это с потерями применительно к файлам изображений. Для презентаций и документов в 99% случаев это было приемлемо, а также в ZIP контейнерах хранятся файлы из LibreOffice (OpenDocument), файлы EPUB и многие другие. Те же приложения для Android и Apple IOS.
4. Один из способов работы с архивами - это их монтирование в операционную систему. Это позволяет некоторым приложениям не работающим со сжатыми данными, тем не менее это делать. Пример, утилита mount-zip и более универсальный инструмент Archivemount

А также существует множество других подходов, инструментов и трюков. Чем больше дискового пространства ты используешь, тем больше думаешь о том как на нем экономить;)

#texts #thoughts #data #compression
6🔥52
В качестве регулярных напоминаний, всяческий полезный [и бесполезный] код утилит для командной строки которые я когда-то делал и иногда продолжаю развивать когда это необходимо для работы,
например, для Dateno. Лично я испытываю глубокую привязанность к работе в командной строке отсюда и все эти инструменты:

- undatum - многофункциональная утилита для обработки данных изначально в формате JSON lines, делалась как xsv для JSON/JSON lines, я её лично активно и везде применяю.
- docx2csv - утилита по извлечению таблиц из файлов MS Word (.docx), настолько простая что надо её с чем-то объединить
- mongo2md - инструмент автоматизации документирования коллекций в MongoDB было полезно когда MongoDB была в основе технологического стека разных проектов, сейчас скорее буду переводить в статус легаси, но полезно как пример автодокументирования.
- metawarc утилита по извлечению метаданных из файлов WARC, умеет собирать данные из pdf, doc, docx, pdf, png, jpg, xls, xlsx и других файлов документов и изображений. Полезна для разного рода OSINT задач и для автоматизированного анализа WARC файлов
- apibackuper утилита для сбора данных из API через декларативно заданные правила. Использую её повсеместно и всё время хочу переписать чтобы вместо cfg файлов использовать yaml/toml, заменить zip контейнеры на базу duckdb и в целом сделать удобнее. Но и так работает
- wparc архиватор API и данных из Wordpress и файлов заодно. Одна из утилит для архивации сайтов для RuArxive
- lazyscraper скрейпер сайтов для лентяев, когда хочется извлечь данные минимальными усилиями и без программирования. Я её чуть-чуть не доделал чтобы даже xpath не использовать, но в остальном вполне рабочий инструмент
- metacrafter мой любимый инструмент идентификации структуры таблиц в файлах и таблицах с данными. Надо объединить с undatum её конечно же
- apicrafter утилита по быстрому созданию API поверх коллекций в MongoDB. Когда-то использовалась в проектах где основной стек был на MongoDB, сейчас всё по другому я бы делал

#opensource #data #datatools
5
Подборка ссылок про данные, технологии и не только:
- transferia инструмент для переноса данных между разными базами данных причем поддерживает не только SQL, но и выгрузку и загрузку данных в MongoDB, OpenSearch, Elasticsearch. Судя по именам разработчиков и поддержке YTSaurus создатели продукта русскоязычные. Сам продукт пока не очень популярен, но лично у меня под такое задачки есть, надо тестировать
- Affine набирающая популярность замена Notion с открытым кодом. Делает его сингапурский стартап которые создают на его базе облачный сервис с подпиской и они же распространяют версию с открытым кодом. Выглядит симпатично и лозунг у них Write, Draw, Plan. Пиши, рисуй, планируй. ПРП в общем
#opensource #data #tools
5🤝42
Полезные ссылки про данные, технологии и не только:
- A Deep Dive into DuckDB for Data Scientists о том как дата сайентистам использовать DuckDB. Если коротко, то всё довольно просто и понятно.
- ClickHouse welcomes LibreChat: Introducing the open-source Agentic Data Stack Clickhouse поглотил LibreChat, инструмент с открытым кодом для создания ИИ чатботов. Инструмент был хороший, надеюсь таким и останется.
- Hannes Mühleisen - Data Architecture Turned Upside Down отличное выступление Hannes Mühleisen про ключевые изменения в архитектуре данных последних лет. Полезно и по смыслу и по визуальному представлению хорошо
- agor: Next-gen agent orchestration for AI coding ИИ агент для управления ИИ кодированием, автор его создатель Superset и позиционирует этот проект как думай об асситентах для кодирования как о Figma. С открытым. кодом. Любопытно, но ИМХО автор плохо объясняет преимущества, как подхода, так и интерфейса.

#opensource #data #datatools #dataengineering #ai
2
Ещё одна совсем-совсем свежая спецификация PLOON для отправки данных в ИИ агенты с максимальной экономией токенов. Экономит до 60% в сравнении с JSON и до 14.1% в сравнении с TOON. Автор написал бенчмарк показывающий что PLOON сильно экономнее других форматов. Уже прям любопытно что дальше, когда наступит момент что ИИ агенты смогут нормально употреблять бинарные данные и тогда все эти оптимизации будет очень легко заменить.

#ai #data #dataengineering #specifications
👍41
После экспериментов с простым кодом, я постепенно добрался до тех инструментов которые используются внутри Dateno для сбора данных. Один из них это утилита apibackuper которая помогает вытащить данные публикуемые через API и сохранять их в виде датасета. Фактически это инструмент скрейпинга API через декларативное описание параметров скрейпинга (да, я люблю декларативные описания). У инструмента был ряд недостатков которые я исправлял и думаю что исправил, вот перечень изменений:
- переход от декларативного описания скрейперов с INI (.cfg) файлов на YAML, читать легче, синтаксис приятнее
- валидация YAML описаний через JSON схему
- поддержка ограченичений и таймаутов на число запросов в минуту (Rate Limiting)
- поддержка аутентификации к API
- экспорт данных не только в JSONL, но и в Parquet
- автоопределение формата экспорта данных по расширению файла
- массовое обработка исключений и понятные сообщения об ошибках везде где возможно
- тесты для покрытия большей части кода
- подробная документация
- и всякое по мелочи

Я этот инструмент изначально разрабатывал для для архивации данных публикуемых через API, но сейчас он используется в части кода Dateno для выгрузки метаданных из каталогов данных. Может его даже пора уже перенести из ruarxive в dateno на Github'е, ещё не решил.

На скриншоте то как это выглядит на примере реестра лекарственных средств ЕСКЛП

Для сбора данных достаточно выполнить две команды
- apibackuper run
- apibackuper export current.parquet


Первая выгрузит все данные постранично, вторая сохранит выгруженные данные в parquet файл.

#opensource #datatools #data #dataengineering
42
В рубрике полезных инструментов для сбора данных tdl (Telegram Downloader) инструмент командной строки,написан на Go, под лицензией AGPL-3.0, позволяет выгружать списки сообщений, сами сообщения и файлы и проводить другие манипуляции по выгрузке списков чатов, их участников и другой информации.

Выглядит как полезный инструмент для разных задач: мониторинга телеграм каналов, OSINT, создания наборов данных по тематикам и, конечно, цифровой архивации. Для последней задачи инструмент хорошо бы доработать и добавить команду "archive" для создания или обновления полного слепка данных, но можно и сделать надстройку над этой утилитой.

Что важно - это живая разработка, с 18 контрибьюторами, основной разработчик и часть контрибьютров китайскоязычные, видимо я пропустил когда в Китае Телеграм начал набирать популярность.

Мне лично нравится как сделан этот инструмент по архитектуре, логике команд, набору опций (выкачивать только сообщения, скачивать медиа) и так далее. Хотелось бы такой же, но универсальный для разных платформ и соцсетей или даже отдельные для других платформ сделанные по схожей логике. Для РФ скоро будет актуален инструмент для выгрузки чатов и каналов в MAX потому что у MAX'а нет открытой веб версии без авторизации как это есть у телеграм'а (пример - https://t.me/s/begtin) и все что создается внутри платформы не архивируется. Но это уже отдельная тема.

Пока же tdl полезный инструмент для телеграма и хорошая референсная реализация подобных инструментов для других задач.

#opendata #opensource #digitalpreservation #data #tools
👍12621
К вопросу о том как и кто являются пользователями данных и как оценивать насколько тот или иной публичный дата продукт / каталог данных может использоваться.

Есть три основных категории пользователей и у каждой из них свой набор ожиданий :
1. Аналитики
- максимальная оперативность данных
- доступность данных в форматах привычных для работы (CSV, XLSX)
- возможность доступа к данным аналитическими и No code/Low code инструментами
- наличие данных по ключевым наиболее значимым темам (официальная и ведомственная статистика, например)

2. Исследователи
- доступность данных по научным дисциплинам, в открытом или регламентированном доступе (когда известно кого спросить, какие правила необходимо соблюсти и какие условия доступа к данным)
- наличие DOI у датасетов
- возможность работы с данными инструментами принятым в среде их научной дисциплины, разные для экономистов, биоинформатиков, физиков, геофизиков, астрономов и тд.
- наличие четкой прослеживаемости данных и методологии их получения

3. Разработчики и дата инженеры

- доступность данных через API
- доступность данных для массовой выгрузки (bulk download)
- доступность схем и структур данных
- наличие данных в современных форматах для выгрузки: сжатые CSV, Parquet и др.
- наличие предсказуемой инфраструктуры для интеграции с ETL/ELT системами получения данных
———
У этих 3-х групп есть ряд подгрупп которые имеют свою специфику:
- журналисты. Имеют те же требования что и аналитики, с меньшим погружением в технологии, с большим погружением в доступность данных.
- AI/ML инженеры. Помимо ожиданий разработчиков и дата инженеров у них еще присутствует потребность именно в данных большого объема для обучения, интегрируемость в стеки данных и интегрируемость в продуктами вроде Hugging Face
- статистики. Это не только сотрудники статслужб, но и профессиональные пользователи их данных. Они могут быть аналитиками и исследователями и тут важным становится наличие значимых метаданных и специальных стандартов и форматов SDMX, DDI и тд.
- геоаналитики и георазработчики. Подгруппы аналитиков и разработчиков с упором на геоданные, ключевое здесь это наличие возможности поиска данных по геопривязке, получению их в форме стандартизированных API ArcGIS/OGC и возможность выгрузки в наиболее востребованных форматах геоданных

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

Эту структуру ролей пользователей можно и дальше декомпозировать, но смысл не изменится - любой дата портал можно оценить по ориентации именно по этим ролям.

К примеру, когда я ругаюсь в адрес российского портала data.gov.ru, то могу объяснить это довольно просто. Можно посмотреть на него глазами любой из перечисленных ролей/групп пользователей и убедиться что для их задач он непригоден.

#opendata #users #thoughts #data
👍1611
В рубрике интересных каталогов данных сеть порталов для публикации онтологий:
- https://biodivportal.gfbio.org/ - портал по онтологиям по биоразнообразию
- https://bioportal.bioontology.org/ - портал биомедицинским онтологиям
- https://technoportal.hevs.ch/ - репозиторий онтологий по технологиям и инженерии
- https://earthportal.eu/ - портал онтологий по наукам о Земле.
- ... и многие другие

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

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

#opendata #datasets #data #datacatalogs #ontologies #linkeddata
👍2
Полезное чтение про данные, технологии и не только:
- Compute Is the New Oil статья в FA о том что чипы для ИИ стали основной для дипломатии США и стран Персидского залива и о том что вычислительные мощности - это новая нефть. Ну вы меня поняли, теперь если кто-то ляпнет что "данные - это новая нефть", то можно записывать его в древние ретрограды, потому что теперь чипы-чипы-чипы. По крайней мере на уровне глобальной дипломатии
- The Nation’s Data at Risk: 2025 Report доклад американской ассоциации статистиков о кризисе статистики в США, много критики, много рекомендаций в центре которого восполнение дефицита сотрудников, но еще много всего. Хочется тут конечно понять что если в США в статистике кризис, то что в России, апокалипсис? Армагеддон? Все познается в сравнении
- Personal Data Architectures in the BRICS Countries книга о персональных данных в странах БРИКС в Oxford Press, ещё не читал, но любопытно по некоторым странам. Есть правда подозрение что авторы могут недостаточно понимать внутреннюю кухню и смотрят на это глазами кабинетных исследователей

#readings #privacy #statistics #data
52
В рубрике полезного чтения про данные, технологии и не только:
- Saloni's guide to data visualization гайд по визуализации данных с акцентом на наглядность научных данных, хорошие примеры, понятные советы
- Useful patterns for building HTML tools обзор HTML инструментов, в том числе созданных с помощью LLM.Немного за пределами моих интересов, но взгляд на эти инструменты который я лично упускал.
- Economics of Orbital vs Terrestrial Data Centers про обоснованность и возможность создания дата центров на орбите Земли. Любопытно, хотя и не кажется практичным в ближайшие годы
- Cloudflare Radar 2025 Year обзор трендов 2025 года от Cloudflare, обзор большой, в том числе страновой и есть что посмотреть по разным странам. Тянет на отдельную заметку, а пока просто закладка на чтение

#readings #data #dataviz
👍54
Ещё в рубрике как это устроено у них FranceArchives официальный архивный портал Франции. Включает более 29 миллионов записей из которых более 5 миллионов - это оцифрованные документы, фотографии, карты и иные цифровые артефакты агрегированные из сотен музеев и архивов страны.

Предоставляют открытое API в виде интерфейса SPARQL, у каждой записи есть RDF, JSON-LD и N3 карточки с описанием со всеми метаданными в структурированой форме и есть возможность получить карточку записи в виде CSV файла.

#opendata #data #digitalpreservation
13👍2🔥2😢1
В продолжение истории про документы выложенные Минюстом США и в которых замазанный текст легко распознается я скажу вам что совершенно не удивлен и косяков госорганов и корпоратов в работе с документами и данными я знаю много, хотя и рассказывать про большую часть не могу и не хочу потому что не чувствую своей принадлежности к рынкам инфобеза и OSINT. Расскажу лишь некоторые примеры не называя имен

1. Скрытые, но доступные данные в недокументированном API
Госорган создает общедоступный портал с некоторой информацией и портал построен по уже классической трехзвенной структуре: База данных -> Слой API -> Веб интерфейс. При этом все ограничения в доступе к данным делаются только на уровне веб интерфейса, а через API вполне можно собирать записи имеющие статус "удаленные" или "черновики". Ситуация вообще не редкая и возникает от недостатка квалификации постановщика задачи, разработчиков и недостаточного тестирования

2. Скрытые данные в общедоступных материалах
Многие форматы публикации текстов, таблиц и изображений имеют свои особенности позволяющие как скрывать часть содержания так и "раскрывать" его. Пример с закрашиванием PDF файлов всем хорошо известен, а есть, к примеру, случаи когда публикуются Excel файлы со скрытыми вкладками, частенько когда публикуют статистику ее рассчитывают на более детальных первичных данных в другой вкладке, а потом эту вкладку скрывают, а не удаляют. Так чувствительные данные внутри Excel файлов становятся общедоступными. Есть и другие случаи когда одни файлы MS Office погружают в другие, а когда запускают процесс удаления метаданных он вырезает метаданные из основного контейнера, но не удаляет их из внедренных файлов. И так далее, это только то что совсем на поверхности

3. Доступное API стандартизированного ПО
Организация выбирает стандартизированное ПО для сайта, а у этого стандартизированного ПО (CMS) есть какое-то количество опять же стандартно общедоступных API о которых они могут и не подозревать. Я привожу часто в пример WordPress у которого есть открытые эндпоинты дающие возможность находить документы ссылок на которые может не быть на сайте, но сами файлы остаются. Например, если кто-то загружает документ в WordPress и потом делиться на него с кем-то по прямой ссылке, то даже если на страницах сайта этого документа нет, то в API он доступен. WordPress - это пример, кроме него есть немало других CMS и веб фреймворков имеющих такую особенность

Насмотревшись всего этого в больших количествах я совершенно не удивляюсь когда вижу как в очередной раз кто-то попадается на такой лаже как "затереть текст в PDF файле", думаю что еще не раз такое будет.

А я про такое пишу пореже потому что лично мне открытые данные и дата инженерия куда интереснее, кроме того рассказывая какой-либо кейс с такими утечками данных всегда велика вероятность что канал утечки исчезнет;)

#thoughts #osint #data #privacy
🔥12
Полезное чтение про данные, технологии и не только:
- How to Stay Ahead of AI as an Early-Career Engineer в IEEE Spectrum о том как меняются требования к джуниорам в ИТ на фоне применения ИИ. Если вкратце то требования к кандидатам растут, хуже всего тем кто умеет не начальном уровне кодить и не вкладывался в собственное развитие многие годы. Ключевой вопрос в том как должно меняться образование?
- Congress: Protect NCAR and Climate Research союзе обеспокоенных ученых в США призывает остановить закрытие Национального центра атмосферных исследований (NCAR) США которое недавно было анонсировано администрацией Трампа
- The Hidden Price of Data статья в журнале IMF про то как измерять стоимость данных в экономике и экономическими методами, автор статьи написала книгу на эту тему, тоже полезную для понимания того как экономика данных устроена.
- Instagram CLI для тех кто любит текстовые терминалы и серьезное намерен бороться с "гниеним мозга" (brainrot) утилита для работы с инстаграмом с командной строки. Я бы пошел дальше и вместо отображения изображения сразу бы давал текстовое описание извлеченное из него с помощью LLM

#ai #instagram #data #careers #it
👍7🔥1
(Часть вторая)

3. Резкое падение стоимости создания наборов данных
Звучит парадоксально, но факт, с прогрессом ИИ агентов создать данные из существующих материалов в любой форме проще чем просить предоставить их в машиночитаемом виде. Реальные ограничения возникают только в отношении данных которые недоступны ни в каком виде, но если они всё таки есть, хоть сканами, хоть запутанными текстами, датасеты из них собираются. Это сразу же меняет несколько важных нарративов.

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

Во-вторых если материалы опубликованы в каком-то виде, то зачем запрашивать госорган? Можно написать автоматизированный скрейпер с помощью ИИ агента.

У меня есть живой пример подобного когда я давно откладывал задачу получения статистики из Статбанка Армении (statbank.armstat.am) из-за того что у них было поломано API и древняя версия ПО на котором он сделан. Развилка была в том чтобы:
a) Попросить у них данные (ждать пришлось бы долго и это не системное решение)
б) Заплатить фрилансеру написать парсер
в) Сделать парсер за пару часов с помощью ИИ агента

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

Условно зачем убеждать, к примеру, Пр-во Армении публиковать данные если мы и так их соберем и опубликуем на opendata.am ? Шутка, убеждать конечно же надо, но думаю что идея ясна.


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

#thoughts #openness #data #opendata #openaccess
👍121
Полезный ежегодный обзор баз данных в тексте Databases in 2025: A Year in Review от Andy Pavlov.
Всем кто работает с данными большого объёма будет полезно, вот ключевые выдержки:
1. Доминирование PostgreSQL продолжается. Многие экспериментируют со многими базами данных, но в продакшен всё равно используется PostgreSQL и совместимые с ним и его протоколом аналоги.
2. MCP для каждой СУБД. Похоже что тренд очевиден, MCP прикручивают к каждой СУБД каждый вендор и в этом нет ничего дурного. Больше универсальных интерфейсов полезных и нужных
3. MongoDB против FerretDB. MongoDB активно давит на FerretDB в том что воспроизведение их API и протокола нарушает их права. Такого в области баз данных ранее не было, самое близкое - это разборки Oracle vs Google из-за Java API. Тогда Oracle не удалось убедить суд в том что их права нарушены
4. Поле битвы форматов файлов. Активно идет появление новых стандартов и форматов дата файлов на замену Parquet. Я также не спроста писал про эту тему так часто, там идет сильная конкуренция и интересные технические решения

В оригинальном обзоре много ссылок и других событий

#data #rdbms #readings
5👍5
Я довольно много писал про разные форматы файлов в дата инженерии и не только, с одной стороны это кажется очень внутренне-технической темой, неочевидной для тех кто не работает с данными постоянно, с другой стороны в обзоре от Andy Pavlov про СУБД за 2025 год активная конкуренция форматов явно упоминается. Потому что (внезапно!) оказалось что то как ты хранишь данные и то как хранят данные кто-то ещё и которые тебе необходимо использовать может быть как очень удобно и практично, так и создавать ничем не обоснованные дополнительные издержки.

Я привожу в пример как часто на порталах открытых данных публикуют CSV или XML файлы внутри ZIP архивов в формате: один файл - один архив. Но данные/файлы внутри ZIP архивов не приспособлены (без шаманства) для потоковой обработки. Их надо вначале распаковать куда-то как временные файлы, а потом уже обрабатывать и временные файлы удалять. Если файлы небольшие то и ладно, а если это десятки и сотни гигабайт и таких задач много, то возникает вопрос: А отчего же так? Это решается распространением датасетов не в виде ZIP архивов, а сжатием из GZip, LZMA, Zstandard, LZ4 и тд., способами и форматами сжатых данных изначально приспособленных под потоковую обработку. Собственно под такие форматы я делал iterabledata, библиотеку для Python. Она про то чтобы условно любой файл с таблицами или объектами можно было бы перебирать как это принято в Python в csv.DictReader. Последовательный перебор с возвращанием каждой записи как словаря (dict).

Но это лишь один уровень оптимизации, далее вопрос в выборочной обработке данных. Почему в какой-то момент так выстрелил довольно старый формат Parquet? Помимо хорошей компресии и возможности быстрого чтения данных он ещё и дает возможность выборочного чтения и фильтрации данных. К примеру, в отношении XML файлов это уже не работает, в отношении JSON, с большими ограничениями (для JSONl да, в остальных случаях нет) и так далее. А ещё есть огромное число форматов имеющих предметное и отраслевое применение где всё что можно - это, либо считывать их в память целиком, или перебирать содержание по каждой записи.

Вот примеры таких форматов: WARC (файлы веб архивов), PCAP (файлы перехвата сетевого трафика), SAS (файлы статпакета SAS), и еще много что: BSON, KML, GML, XLS, ODS и так далее. Реально огромное число форматов не поддаются фильтрации без загрузки в память или не через фильтрацию при тотальном переборе.

Поэтому когда доходит до их обработки, приходится преобразовывать их полностью или частично в parquet. К примеру, для WARC файлов я всегда их преобразую в один или несколько parquet файлов с метаданными, а оригинальные файлы рассматриваю как контейнеры для контента. И это я не сам придумал, а подсмотрел когда-то у Common Crawl, они поступают аналогично поскольку без этой процедуры собирать статистику сложно, надо перелопачивать каждый WARC файл, а это гигабайты-терабайты-петабайты.

Однако и сам формат Parquet'а неидеален и об этом регулярно пишут в разных местах и появляются такие форматы как Lance, Vortex, Nimble, Vortex, FastLanes и другие. Пока они довольно редки в открытом доступе, но постепенно проявляются. Впрочем parquet оказался достаточно эффективным чтобы эта замена длилась ещё какое-то количество леь

А вот чтобы я бы предсказал так то что грядет тренд на parquet'изацию данных, когда просто сильно удобнее распространять их в структурированном подобным образом виде. Возможно через рассмотрения parquet файлов как контейнеры, а возможно как файлы-сателлиты с метаданным к файлам контейнерам. К примеру, можно вполне заменить VCF файлы (генетика) на Parquet или файлы LDIF (директории пользователей LDAP) на Parquet или файлы KML и GML (геоданные) и тд.

#thoughts #data #dataengineering #fileformats
👍61
В качестве регулярных напоминаний, большое количество открытого кода который я лично создавал и поддерживаю:
- iterabledata библиотека для Python по работе с любыми файлами с записями с помощью прямого их перебора и возвращением каждой записи как словаря (dict). Фактически реализация интерфейсов csv.DictReader и csv.DictWriter для десятков форматов файлов таких как JSON, JSON lines, XML, Parquet, ORC и множества более специфических и отраслевых таких как PCAP, WARC и др.
- internacia-db референсная база данных с базовыми данными по странам и по страновым блокам. Распространяется в форматах JSONL, Parquet, DuckDB, YAML. Полезно для задач обогащения данных, поиска и фильтрации результатов в территориальной привязке, сравнении стран и территориальных блоков.
- undatum это инструмент командной строки для работы с файлами со сложной иерархией так как работают с CSV файлами. Он умеет считать статистику, преобразовывать файлы, анализировать их, разрезать на части и тд. Внутри используется библиотека iterabledata и большое число форматов файлов поддерживаются
- metacrafter библиотека для Python и инструмент командной строки для работы с семантическими типами данных, используется для выявления персональных идентификаторов и иных объектов (кодов организаций, кадастровых и почтовых кодов и так далее)

А также много другого открытого кода о котором я регулярно тут пишу.

#opensource #data #dataengineering #datatools
👍13
Фонд Викимедиа анонсировал партнерство с ещё несколькими ИИ бигтехами - это Amazon, Meta, Microsoft и Mistral AI, вдобавок к уже имевшимся партнерствам с Google, Ecosia, Nomic, Pleias, ProRata и Reef Media. Можно сказать что, вполне возможно, у Википедии появится таки устойчивое финансирование и проект будет жить. Это с одной стороны, с другой стороны не превратится ли в Викимедиа в коммерческий продукт под видом некоммерческого и не оттолкнет ли это многих редакторов от вклада в её тексты? Я слишком мало знаю о том что происходит там внутри, так что интересно. Что еще интересно так то что AI крупняк, не считая X.ai с его Грокипедией, не пытается воспроизвести продукты Фонда, а заключает соглашения с ним. Полагаю что причиной может быть и то что у Фонда Викимедиа есть техническая возможность ограничивать ИИ краулеры, а одни лишь дампы Википроектов содержат только текстовый контент и не в реальном времени.

#opendata #API #wikipedia #data #ai
👍112👌1