Ivan Begtin
7.97K subscribers
1.8K photos
3 videos
101 files
4.51K 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 ivan@begtin.tech
Download Telegram
В качестве примера живых данных чтобы проверит Duckdb, попробовал его на одном из слепков индекса Dateno.

Вот в цифрах и фактах:
- оригинальный формат JSONL, слепок данных без файлов ресурсов/ссылок, только карточки источников и наборов данных
- всего записей в базе 16 133 670
- размер parquet файла после преобразования 1.9GB
- размер базы duckdb 15GB
- простые запросы group by отрабатываются менее чем за 1 секунду

Сложности
- Есть проблемы с запросами которые необходимы для поиска записей в которых данные отсутствуют, например, где не заполнены какие-либо поля которые являются struct'ами. К пример, если мне нужно найти все записи у которых не указаны темы или привязка к стране. В MongoDB такие запросы делают гораздо проще, даже со сложными схемами когда есть вложенные массивы внутри вложенных словарей внутри вложенных массивов.

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

Например, одна из задач в документировании источников данных, привязывании их к стране, темам и к типу владельца данных. Это перевод источников из временных в постоянные. Как определять приоритеты? По числу проиндексированных датасетов, чтобы расширить метаданные хотя бы источников данных с 1000+ наборами данных.

#data #datatools #duckdb #dateno
Про разного рода технически сложные задачи и их решения.

Я тут регулярно пишу про разные форматы файлов данных и могу сказать что, конечно, файловых форматов как и стандартов какое-то бесконечное количество. Когда-то я и сам делал и периодически обновляю инструменты вроде undatum [1] по работе с некоторыми из них. Так в undatum я недавно добавил работу с множеством алгоритмов сжатия обработкой файлов с минимизацией объёма их хранения и нагрузкой на оперативную память, с быстрым преобразованием из JSON lines / BSON в аналогичные форматы со сжатием xzip, zstd и др. В общем-то из-за банальных задач уменьшения объёма хранения JSON lines файлов, но с возможностью работы с ними.

Однако вот сейчас я смотрю на задачу преобразования данных в условно "диком состоянии", а то есть в большинстве популярных форматов, среди которых, конечно, лидируют CSV и Excel файлы и могу сказать что самые типовые задачи решает DuckDB, а чуть более сложные DuckDB + Polars + Pandas + предобработка некоторых форматов файлов на входе.

Причём именно в такой комбинации. Почему так?

DuckDb - даёт большую скорость в работе с табличными и большей частью иерархичных данных. Но DuckDb не умеет читать файлы Excel, ORC, ORC и тд. Их умеют читать Pandas и Polars. И частично их писать.

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

CSV самый распространённый формат, плохо стандартизированный в "диком виде", слишком часто CSV файлы лежат в открытом доступе после экспорта из Excel.

Еще один недостаток DuckDB при работе с CSV файлами - это отсутствие поддержки алгоритмов сжатия за исключением GZip. Если исходить из эффективности хранения и стоимости хранения - это важный фактор. Например, несколько сотен тысяч CSV файлов в Dateno - это около 4TB данных. Хранить их в оригинальном виде неэффективно, сжатыми GZip лучше, а ещё лучше в чём то вроде zstd или даже сразу в Parquet со сжатием. Что логично поскольку эти данные статичны.

Но в итоге именно DuckDB + Polars + Pandas + предобработка + постобоработка данных + хранение первичных данных в Parquet оказывается наиболее универсальным решением в таких задачах.

Ссылки:
[1] https://github.com/datacoon/undatum

#thoughts #data #datatools #fileformats #dateno
К вопросу о состоянии открытости данных в РФ, я не очень верю что в ближайшие месяцы (годы?) случится чудо и оживёт государственный портал data.gov.ru. Пока не проглядывается сценарий при котором внутри гос-ва тренд на систематическую открытость вернулся. Больше шансов что мы в Dateno соберём больше данных чем когда-то было в data.gov.ru. Там уже сейчас проиндексировано много разного и можно больше.

Но есть посмотреть профиль РФ в Dateno, то там проиндексировано только около 15 каталогов данных из 154. Почему так? Можно ли лучше?

Конечно можно, и ограничения тут очень понятные:
1. Большая часть российских госресурсов сейчас не индексируются с зарубежных датацентров. Это преодолевается развертыванием прокси в РФ и индексация через прокси. И РФ не единственная страна где есть такие ограничения.
2. Значительная часть открытых данных в России публикуется по метод рекомендациям Минэка. Они очень плохо написаны, индексировать сайты публикующие данные по ним сложно, но возможно. Только этот парсер будет только под российские госпорталы, и то не все. И, по большей части, с устаревшими данными.
3. Очень много в РФ своих геопродуктов, самописных порталов данных и тд. Это также требует написания множества парсеров. Штук 40-50. Более менее стандартизированы только порталы NextGIS, Bitrix и Орбис, но их не так много.
4. Часть порталов с данными используют известное ПО типа Ipt, Pure, Figshare и до них пока ещё не дошли руки, но как только дойдут они добавятся в общий индекс.

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

В этом смысле, собрать данные, например, по Финляндии гораздо проще. Там уже большая часть каталогов данных проиндексирована, да и не проиндексированные работают на типовом ПО которое тоже скоро будет индексироваться.

Вся эта национальная специфика очень сильно снижает видимость и находимость данных. И в Dateno ещё можно более-менее, но измерить эту доступность, а, к примеру, в Google Dataset Search невозможно даже посмотреть сколько датасетов и источников есть по странам.

#opendata #dateno #datasets #datacatalogs
В продолжение размышлений о поиске геоданных и связанных с этим сложностей. Я ранее писал про GeoSeer, единственный известный мне поисковик геоданных в мире, но и он сравнительно небольшой. А вот в качестве альтернатив ему выступают уже не поисковики, а каталоги георесурсов. В первую очередь поисковики в экосистеме ArcGIS по их каталогам открытых данных и георесурсов и некоторое, небольшое число альтернатив.

Например, Spatineo Directory [1] от финских геоконсалтеров Spatineo. Там более 87 тысяч георесурсов, в виде точек API по стандартам WFS, WMS, WMTS, но без сбора информации о слоях, поэтому это не поисковик, а именно каталог. Его существенный минус в то что более менее там систематизированы только точки API из развитых стран.

Другой, неожиданно, государственный проект это FGDS Status Checker [2] гигантский каталог геовебсервисов созданный как сервис проверки их доступности. Список вебсервисов там огромный, но почти полностью ориентированный на США и почти не охватывающий морские территории. Есть подозрение что Spatineo делали свой каталог с оглядкой именно на этот продукт, поскольку функции схожи.

Но ещё больше каталогов которые прекратили своё существование. К примеру WFS Geodata Catalog от германского GeoClub. Сейчас можно найти только скриншот.

Ещё был Pyxis crawler с каталогом из 29+ тысяч датасетов, вот он ближе к GeoSeer, но индексировал всего 1572 источника и его тоже больше нет. Тоже остался тоже скриншот.

И был ещё такой поисковик Geometa, но теперь даже его скриншот найти оказалось непросто.

Фактических попыток систематизировать и сделать доступными геоданные и геосервисы было много. Можно сказать что у Dateno тоже есть подзадача в части геоданных.

В каталоге Dateno сейчас 4.4 миллиона наборов геоданных извлеченных из 3127 геопорталов. При этом в реестре Dateno всего 5955 геопорталов и после индексации оставшихся объём геоданных существенно вырастет, кроме того много геоданных в других типах дата каталогов: порталах открытых данных, научных репозиториях и тд., это тоже добавит число геоданных.

Но пока приходится держать в голове что в части геоданных относительно сравнимой референсной базой является GeoSeer.

Ссылки:
[1] https://directory.spatineo.com
[2] https://statuschecker.fgdc.gov

#opendata #geodata #datasets #datacatalogs #dateno
Почему я в последнее время много думаю и пишу про геоданные?
Есть 4 основных типов общедоступных данных данных которые собираются в Dateno:
- открытые данные (opendata). С ними всё довольно понятно, их много, не не бесконечно много. Большая часть порталов известны, далее просто длительная методическая работа по их систематизации и сбору датасетов
- научные данные. Тут не всё так понятно, и этих данных по объёму более всего в мире, но в каждой науке свои виды каталогов данных, стандарты и тд. За пределами отдельных научных дисциплин у этих данных не так много пользы
- статистика и индикаторы. Нужны всем, чаще стандартизированы, поддаются систематизированному сбору и "расщепляются" на множество поддатасетов в привязке к конкретным странам и территориям. Много усилий требуется по агрегации национальных каталогов статистики.
- геоданные. Их много, чаще стандартизированы, но поиск и каталогизация явно недостаточны. Предыдущие попытки чаше безуспешны.

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

Существенный количественный рост данных в Dateno будет от трёх категорий: научные данные, данные индикаторов и геоданные.

При этом научные данные можно _очень быстро_ загрузить из 3-4 крупных источников и это добавит +20 млн датасетов и создаст огромные пузыри данных по нескольким языкам, категориям и темам.

Данные индикаторов стремительно превратят Dateno в портал по макроэкономике/макростатистике. Их также можно загрузить +5 млн датасетов в короткое время.

А в агрегированных геоданных сейчас есть объективный "пузырь", огромное число датасетов по Германии отчего в любом поисковике по данным доля геоданных их Германии достигает 40-60% от общего числа. Если не больше.

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

#opendata #data #dateno #thoughts #geodata
Читаю научную статью Relationships are Complicated! An Analysis of Relationships Between Datasets on the Web [1] от команды Google Datasets из которой немного больше понятно о том как устроен их Google Dataset Search и не могу не отметить насколько неглубоко они погружаются в тематику того чем занимаются и с насколько небольшими датасетами метаданных работают. В этом случае они работали с датасетом с метаданными о 2.7 миллионов наборах данных.

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

Но, почему я лично считаю их статью неглубокой:
1. Кроме базовых стандартов вроде DCAT, Schema.org и других есть куда больше более сложных стандартов публикации данных, особенно научных, где эти взаимоотношения прописаны куда чётче.
2. Взаимоотношения датасетов, по хорошему, это предмет онтологического моделирования и дополнения/расширения/адаптации DCAT
3. Более сложная эвристика не только и не столько в анализе названий, как это делают авторы, а в общих схеме/структуре данных между датасетами, пересечение по содержанию и тд.

Правда работ в этой области не так много, но от ребят из Гугла я ждал большего.

Когда у меня только начинались мысли про Dateno изначально желание было с запустить процесс постоянного обогащения метаданных чтобы сделать поиск насыщеннее: больше фильтров, лучше связи между данными, больше понимания их содержимого и тд. Но, случайно, получилось собрать быстро много датасетов и по прежнему не покидает ощущение что их слишком мало. Данных всегда мало!😜

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

Ссылки:
[1] https://www.semanticscholar.org/paper/Relationships-are-Complicated%21-An-Analysis-of-on-Lin-Alrashed/97e3cfd5a6cf88f2b1887c5fefc76b528e92f23b

#opendata #datasets #google #dateno #readings
Please open Telegram to view this post
VIEW IN TELEGRAM
Open data in Scotland: a blueprint for unlocking innovation, collaboration and impact [1] ещё один любопытный документ про открытые данные в Шотландии.

Видимо чтобы подтолкнуть правительство Шотландии создать портал открытых данных региона. При этом надо сказать что в реестре Dateno [2] Шотландии есть 29 каталогов данных и в самом Dateno проиндексировано 7500+ датасетов из Шотландии. Скорее всего данных там реально больше.

Надо, кстати, как-нибудь доработать реестр и отображать каталоги данных на субрегиональном уровне, добавить мониторинг доступности, перевести ведение реестра из формата сборки в формат СУБД.

Но это скорее задачи для бэклога.

Сейчас чтобы работать с реестром каталогов данных Dateno можно просто скачать файл full.jsonl [3] из репозитория и выполнить команду
select uid, catalog_type, software.id, link from (select *, unnest(owner.location.subregion) from 'full.jsonl') where id_1 = 'GB-SCT';


Очень и очень просто. А сам реестр постоянно пополняется.

Ссылки:
[1] https://www.gov.scot/publications/open-data-scotland-blueprint-unlocking-innovation-collaboration-impact/
[2] https://dateno.io/registry
[3] https://github.com/commondataio/dataportals-registry/tree/main/data/datasets

#opendata #datasets #scotland #dateno
На всякий случай, для тех кто не знает, посты с рассказом про источники данных и Dateno я дублирую на английском в LinkedIn [1] где можно подписаться на эти и другие новости проекта.

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

А в этом телеграм канале я пишу:
а) На русском.
б) Часто
в) Про разное

Ссылки:
[1] https://www.linkedin.com/company/datenoproject/posts/?feedView=all

#opendata #dateno
А вот и свежие новости о Dateno. Мы привлекли раунд инвестиций в рамках которого в ближайшее время планируем запустить API, значительно увеличить поисковый индекс и добавить немало новых возможностей которые сейчас в разработке, а это и функции ИИ, и значительная работа по улучшению качества и полноты поиска. А также, что немаловажно, мы добавим в поиск немало данных связанных с web3 и blockchain.

#opendata #dateno #datasearch #investment #ai #blockchain #web30
Forwarded from Dateno
Exciting News from Dateno!

We are thrilled to announce that Dateno has successfully closed its latest investment round, led by Blockchair! 🎉 This marks a major milestone in our mission to revolutionize data accessibility and search.

Since our launch just a few months ago, Dateno has been rapidly growing, now indexing over 15 million datasets. By the end of 2024, we aim to expand this number to 30 million! Our platform offers a focused and advanced data search experience, supporting 13 facets for filtering results, making it easier than ever for users to find the datasets they need.
With this new investment and partnership, we’re excited to roll out major updates, including the launch of the Dateno API. This will position Dateno as the world's largest search index for data, allowing other projects to integrate our robust data search capabilities directly into their platforms.

We’re also incorporating blockchain and web3 data from Blockchair and other decentralized finance players, and we’re hard at work on AI-powered features to improve search accuracy and relevance. These enhancements will empower data analysts worldwide, making their work more intuitive, efficient, and insightful.

We’re just getting started, and we’re grateful for the support of our investors, partners, and the entire Dateno community. Stay tuned for more updates, and thank you for being part of this journey with us! 🚀

#Dateno #DataSearch #Investment #Innovation #AI