APICrafter
195 subscribers
32 photos
59 links
Открытые и коммерческие API для доступа к данным о компаниях, статистики, госфинансам, финансовой сфере и так далее.
加入频道
Новые наборы данных в APICrafter:
- Статистика регистрации юридических лиц по почтовым индексам https://beta.apicrafter.ru/packages/egrulpoststats
- Статистика регистрации юридических лиц по кодам КЛАДР https://beta.apicrafter.ru/packages/egrulkladrstats
- Записи из ЕГРЮЛ сокращённые для статистического анализа https://beta.apicrafter.ru/packages/egrulstatsrecords (11,2 миллиона записей), 5.8 гигабайт

Если первые два набора - это уже рассчитанные статистические показатели, то третий набор включает данные для анализа регистрации и ликвидации юридических лиц по почтовым индексам, кодам КЛАДР, кодам ОКОПФ, кодам ОКФЭД и основаниям ликвидации. Фактически, можно замерить сколько юр лиц по конкретному коду ОКВЭД создаётся и ликвидируется по дням, месяцам, годам, территориям и так далее.

Эти наборы данных являются открытыми и их можно скачать целиком в форматах CSV, BSON и JSON lines в разделах "версии и сборки" по каждому набору данных или воспользоваться API для доступа к данным.

Все эти наборы данных созданы на базе ЕГРЮЛ, доступ к которому также есть через систему APICrafter https://apicrafter.ru и там же можно оформить подписку для коммерческого доступа к данным.

#opendata #data #egrul
Forwarded from Ivan Begtin (Ivan Begtin)
Я так часто участвую или организую в мероприятия в которых технологии неотделимы от госполитики/политики/GR/бизнес применения что немного отвык от больших технологических конференций. Так что с удовольствием вчера прочитал свой доклад о каталогах данных на конференции Smart Data https://smartdataconf.ru в СПб и с удовольствием слушаю других выступающих.

Могу сказать что это, конечно, особый кайф рассказывать про интересные задачи и их сложные решения. А рассказывал я про каталог данных DataCrafter https://data.apicrafter.ru и то как туда загружаются данные и как они используются и с какими проблемами приходится сталкиваться.

Например, одна из проблем - это не-плоские данные. С этими данными сложно работать "классическими" инструментами обработки данных и data pipelines вроде dbt, airflow, meltano и тд.

Другая проблема в том что если продолжать грузить данные как это делается сейчас - одна таблица-одна коллекция, то скоро упираешься в ограничение в 24 тысячи таблиц на один экземпляр MongoDB. Поэтому до сих пор в каталог не загружено около 15 тысяч наборов данных которые можно загрузить одним махом, но надо менять архитектуру хранения данных.

Уже после конференции я расскажу подробнее об архитектуре каталога, скорее всего в форме большого лонгрида у себя в блоге https://begtin.tech или в рассылке https://begtin.substack.com

#data #datacatalogs
Большое обновление в данных DataCrafter'а. В каталог загружены 1514 наборов данных о климате и погоде из Единой государственной системы информации об обстановке в Мировом океане (ЕСИМО). Все данные были преобразованы в унифицированные форматы и доступны в каталоге как открытые данные через API или в виде сборок/слепков данных.

Данные загружены вместе с описанием каждого поля, сведения доступны в разделе "Документация" к каждой таблице. Например, документация к набору данных Оперативные данные о сопутствующих метеонаблюдениях, передаваемых по коду FM-18 X BUOY. Период хранения в БД.

Несмотря на то что многие данные в системе ЕСИМО являются архивными, они могут пригодиться исследователям работающим с данными о мировом океане, климатологам, специалистам по работе с погодными данными и данными экономики моря.

Для нас загрузка такого числа наборов данных оказалась вызовом по причине числа наборов данных, всё таки 1514 наборов из системы ЕСИМО - это почти в 4 раза больше 393 наборов данных которые ранее к нам были загружены и сейчас интерфейс уже недостаточно удобен для работы с таким числом наборов данных, но мы уже работаем над его доработкой.

Второй вызов был в том что данные имеют свою специфику и текущие алгоритмы распознавания типов данных определяют типы данных наборов данных из ЕСИМО достаточно ограниченно. В ближайшее время начнётся работа по классификации этих полей и доработке алгоритмов под эту задачу.

#datasets #esimo #climate #weather #datacrafter #data
В каталог DataCrafter загружены свежие данные из нескольких крупных государственных каталогов данных. Это данные с портала открытых данных г. Москвы 874 набора собранные в одноименную группу г. Москва в каталоге, а также данные из системы справочников ФФОМС России, 91 наборов данных помещенных в группы Справочники и классификаторы и Медицина.

Все данные доступны как открытые данные, могут быть выгружены в виде цельных датасетов для MongoDB и с открытым API.

Из интересных данных, например:
- Единый реестр медицинских организаций - это чуть менее чем 20 тысяч организаций
- Адресный реестр города Москвы - 440 тысяч записей

Напомню, что все данные загружаемые в DataCrafter проходят преобразование из изначальных форматов в формат JSON/BSON, хранятся внутри MongoDB и доступны через унифицированные выгрузки и API.

На сегодня в Datacrafter'е собрано:
- 4392 набора данных с 4534 таблицами
- 408 миллионов записей
- 5258 файлов экспорта (сборок данных)
- 281.7 гигабайт структурированных данных в СУБД
- более 60 тысяч полей
- из которых недокументировано 25 тысяч, а классифицировано 9.7 тысяч

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

#data #classifiers #moscow #catalogs #datacatalog
В каталог DataCrafter загружены данные каталога справочников и классификаторов Минздрава РФ nsi.rosminzdrav.ru, это 1520 справочников помещенных в группы Справочники и классификаторы и Медицина. Их совокупный объём составляет более 7 гигабайт.

Все данные доступны как открытые данные, могут быть выгружены в виде цельных датасетов для MongoDB и с открытым API.

Из интересных данных, например:
- Алфавитный указатель к Международной статистической классификации болезней и проблем, связанных со здоровьем - это чуть менее чем 1 миллион 250 тысяч записей
- Классификатор адресов России. Улицы (1.2.643.5.1.13.2.1.1.663) - создан на базе КЛАДР 4.0, включает 520 тысяч записей

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

#opendata #datacatalogs #medicine #data #datasets
Forwarded from Ivan Begtin (Ivan Begtin)
В качестве небольшого пред-анонса, где-то через 1-2 недели планируем обновление DataCrafter'а в виде доступного сервиса идентификации типов данных. Сейчас в DataCrafter'е 76399 полей данных из которых 9722 автоматически классифицированы по классам вот [1]. Пока это делалось внутренним движком обрабатывающим данные в таблицах MongoDB и работающем по базе частично закодированных правил. Этот же движок делался для автоматизации анализа качества датасетов.

Этот код сейчас отчуждается и активно тестируется.

А сами правила переносятся из кода в YAML формат. Сейчас это уже 67 правил из которых 40 про то как называются поля, 27 про то что в них содержится и ещё выявление дат делается хоть и 1 правилом, но по 312 шаблонам.

Вначале появится открытый сервис и API по такой классификации для CSV файлов и сейчас я думаю над тем стоит ли переводить его в open source.

Ссылки:
[1] https://data.apicrafter.ru/class

#openservices #datacrafter #apicrafter #data #dataclassification
В каталог DataCrafter'а добавлен открытый набор данных Реестр обязательных требований для организаций в городе Москве [1] полученный с сайта Открытый контроль (knd.mos.ru). Набор данных включает 87 тысяч записей, общим объёмом 470 МБ в формате JSONL и в 20 МБ в сжатом виде. Данные содержат обязательные требования предъявляемые организациям в зависимости от вида их деятельности.

Данные доступны через:
- в виде пакета данных (ZIP архив)
- в виде JSON lines файла экспорта
- через API платформы

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

Ссылки:
[1] https://data.apicrafter.ru/packages/mosknd

#opendata #moscow #data #knd
Forwarded from Ivan Begtin (Ivan Begtin)
Масштабное обновление алгоритмов классификации данных в DataCrafter'е. Теперь из 76500 полей наборов данных классифицированы 19 501 поле, это около 25,5%. Учитывая что многие поля надо отмечать как "неклассифицируемые" потому что они содержат только расчёт численные данные, то 25,5% от всех полей это очень много, можно сказать рекорд!

Классификация данных - это процесс при котором определяется природа данных содержащихся в таблицах/файлах/наборах данных. Например, идентификация кодов ИНН/ОГРН/КПП организация, ФИО / Имён / Отчеств / Фамилий физических лиц и ещё многое другое.

При этом обновлении были добавлены новые идентификаторы и правила их распознавания:
- ruscity - Российский город
- rusdayofweek - День недели на русском языке (понедельник, вторник и т.д.)
- runpa - нормативно-правовые и распорядительные документы. Законы, постановления, распоряжения и приказы
- mimetype - типы MIME, как правило ассоциированные с файлами
- filename - название файла
- rusworkposition - должности. Например: ректор,директор,и.о. директора и т.д.
- timerange - временные промежутки. Например: 10:00-12:00 или 21:10-21:30

А также многие другие. Сейчас в DataCrafter внесено 90 классов данных [1] для идентификации которых используется 134 правила идентифицирующих данные и 304 правила идентифицирующих дату/время. Дата и время идентифицируются отдельно поскольку ещё в 2017 году я заопенсорсил движок qddate [2] определяющая даты в 348 шаблонах и на 9 языках. Движок, кстати, делался для библиотеки newsworker [3] по извлечению новостей из сайтов не отдающих RSS ленты, на основе шаблонов текстов, в основе которых даты. Эту библиотеку я тогда же заопенсорсил и слегка подзабросил, но она всё ещё вполне работает и актуальна.

Чтобы достичь этого результата внутренний движок классификации данных был полностью переписан. Большая часть правил теперь описывается в конфигурационных настраиваемых файлах YAML. При применении правил они могут фильтроваться по контексту, по языку и по точности. Кроме коллекий в MongoDB теперь поддерживаются файлы CSV и JSONl. Через некоторое время рабочая версия классификатора появится в виде страницы в интернете и телеграм бота (телеграм бот уже тестируется).

Сейчас 72 из 135 правил написаны под русский язык и Россию. Они учитывают, или принятые в России классификаторы, или русскоязычное кодирование информации. Следующий шаг после открытия версии классификатора для публичного тестирования - это поддержка классификации данных происходящих из других стран.

Ссылки:
[1] https://data.apicrafter.ru/class
[2] https://github.com/ivbeg/qddate
[3] https://github.com/ivbeg/newsworker

#opendata #data #datasets #datacrafter #apicrafter #dataclassification
Forwarded from Ivan Begtin (Ivan Begtin)
Телеграм бот @DataClassifierBot - это то что я обещал как инструмент автоматической классификации данных DataCrafter'а. В него можно загрузить файлы в формате CSV (разделитель обязательно запятая) или JSON lines (.jsonl) и на выходе будет одно или нескольк сообщений с таблицей структуры полей в файле, их типа и идентифицированного класса данных. Подробнее можно посмотреть на скриншотах. Через телеграм бот будет открытое бета тестирование, прошу делиться обратной связью в чате @apicrafterchat или написав мне. А для тех у кого более серьёзные задачи скоро будет доступно API.
По результатам бета-тестирования хочется понять:
1) Каких функций возможностей нехватает
2) Какие дополнительные классификации нужны/ожидаемы и пока отсутствуют.
3) Насколько точно алгоритмы работают на Ваших данных

Особенности работы бота:
- отключены почти все "неточные" правила
- текущие основные правила под русский язык
- ограничения на файлы 10M, ограничений на число полей нет


#data #apicrafter #datacrafter #datatools
Телеграм бот по классификации данных @DataClassifierBot теперь умеет распознавать типы файлы, их кодировку и разделители, если файлы в CSV формате. Теперь не надо преобразовывать данные для загрузки в бот, он автоматически идентифицирует необходимое и проведет классификацию полей данных.

Напомню что @DataClassifierBot анализирует структуру файла и на основе данных определяет содержание поля возвращает информацию о том что там содержится. Бот умеет определять такие виды данных как:
- Ссылки
- Email адреса
- ФИО и по отдельности фамилии, имена и отчества
- названия организаций
- Коды организаций ИНН/КПП/ОГРН/ОКПО
- Дату и время в любом формате
- Коды ОКВЭД, ОКПД, ОКВ, ОКФС и другие
- Названия городов
- Названия стран
- Адреса

и многое другое, полный перечень выявляемых идентификаторов и видов полей на сайте DataCrafter https://data.apicrafter.ru/class

#datatools #data
Forwarded from Ivan Begtin (Ivan Begtin)
Не так давно я писал про распознавание классов данных в DataCrafter'е и про небольшой движок с открытым кодом metacrafter [1], но не все и не всегда понимают зачем это нужно и для чего вообще используются подобные инструменты и нужно понимание того что содержится в таблицах с данными. Я постараюсь об этом рассказать в подробностях.

То что я ранее упоминал как классы данных, иногда называют метки данных (data labels), но самое распространённое название - это semantic type (семантический тип данных). В отличие от простых типов данных таких как числа, числа с плавающей запятой, строки, даты, бинарные блоки и так далее, семантические типы определяют смысл и предназначение именно этих данных. Смысл и предназначение как в содержании, так и в последующих вариантах применения.

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

Многие инструменты умеют определять семантические типы весьма неплохо. Например, Talend ETL поддерживает несколько десятков семантических типов данных [2] что используется в преобразованиях данных. Некоторые семантические типы понимает и распознает Google DataStudio [3] что позволяет сразу размечать данные в наборе для разных видов визуализации. А в таком инструменте как Dataprep [4] семантические типы данных используются в задачах очистки наборов данных. И таких применений ещё много.

Поэтому отвечая на вопрос: зачем это нужно, перечислю наиболе очевидные области применения:
1. Идентификации персональных данных в целях комплаенса и соответствия требованиям.
2. Автоматизация обработки данных включая (сопоставление схем, обогащение данных, автоматизация преобразований)
3. Обеспечение качества данных: автоматизация проверки на соответствие данных шаблонам и подсказки для инженеров QA.
4. Автоматизация документирования данных автоописанием полей данных на основе их смысла
5. Улучшение визуализации в BI системах за счёт того что система начинает понимать природу данных и предлагать разные способы их визуализации
6. Повышение находимости данных (data discoverability) через доп фильтры для поиска и через дополнительный способ навигации по данным.

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

Ссылки:
[1] https://github.com/apicrafter/metacrafter
[2] https://help.talend.com/r/en-US/Cloud/data-preparation-user-guide/predefined-semantic-types
[3] https://developers.google.com/datastudio/connector/semantics
[4] https://docs.dataprep.ai/user_guide/clean/clean_df.html

#data #datatools #dataconcepts
Forwarded from Ivan Begtin (Ivan Begtin)
Я всё забыл написать, ещё пару месяцев начал и почти доделал небольшую программную библиотеку для Python для чтения данных из файлов в любых форматах с данными։ csv, json, json lines, xml, parquet, orc, xls, xlsx и в перспективе других. Называется pyiterable [1] и воспроизводит и улучшает код который был в утилите командной строки undatum [2] и в ETL движке datacrafter [3].

По сути библиотека позволяет одинаковым образом читать любые табличные и не-табличные данные и возвращать их в виде словарей для Python (python dict). Причём файлы могут быть, например, сжатыми разными архиваторами и это тоже поддерживается.

Аналогично, для ряда форматов, поддерживается не только чтение, но и запись, опять же в виде записей в виде python dict.

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

На картинке изначальная модель библиотеки, сейчас реализовано около 70% возможностей. Ошибки, предложения можно отправлять в issues, исправления в код в pull request

Ссылки։
[1] https://github.com/apicrafter/pyiterable
[2] https://github.com/datacoon/undatum
[3] https://github.com/apicrafter/datacrafter

#datatools #opensource #apicrafter #data