Обложка канала

Ivan Begtin

3903 @begtin

I am focused on Open Data, Procurement, e-Government, Open Government and other tech stuff

Ivan Begtin

4 года назад
Открыть в
Я ранее много писал и рассказывал про то что внутри нашего проекта DataCrafter [1] находится несколько движков: распознавания данных, извлечения данных, каталогизации и ведения реестра и так далее и обещал часть продукта выложить в открытый код. Эта задача несколько затянулась, вначале в открытом коде вышел metacrafter [2] движок по идентификации семантических типов данных и смысловых полей в наборах данных и СУБД (например, для идентификации персональных данных). А теперь в режиме альфа версии доступен движок ETL, одноименно названный datacrafter [3]. Это NoSQL движок для работы с данными и с API для извлечения обработки и их сохранения. Движок выделен через миграцию кода в проекте, отделение его от остальной монолитной части и с переписыванием части кода для большей универсальности. В чём особенность этого движка он изначально создавался только для загрузки любых данных в MongoDB и заточен под открытые данные, условно, любого размера. Он используется для обработки данных ФНС публикуемых гигабайтными XML файлами, для чего используется универсальный SAX парсер. Он создаёт файлы BSON которые можно грузить в MongoDB без дополнительных преобразований и так далее. Как ещё он даёт возможности: - настраивать извлечение данных из JSON, CSV, XML, JSONl файлов - осуществлять преобразование данных: переименование полей, назначение типов полей, выполнение произвольного кода - сохранять результаты в форматах BSON, JSON lines, CSV, в том числе сразу сжимая их в xz, gz, zip архивы - умеет извлекать данные из API с помощью инструмента apibackuper [4] В режиме альфа версии потому что большей части ключевог опока нет: - нет готовой документации, только примеры. - нет режима серверной работы, с агентами выполнения задач - не перенесена интеграция с metacrafter и автодокументирование - нет интеграции с HTML скрейперами Поскольку документации пока мало, основной в примерах datacrafter-examples [5]. Например, можно посмотреть пример обработки больших XML файлов ФНС России внутри ZIP архивов с преобразованием в BSON [6] или сертификатов удостоверяющих центров где данные извлекаются из API и включен скрипт преобразования каждой записи. Примеры запускаются командой "datacrafter run" в директории каждого примера. В перспективе, по очередности: 1. Добавить документацию к движку и примерам и к рекомендациям как движок расширять. 2. Включить поддержку подключения к СУБД 3. Подключить загрузку данных в NoSQL 4. Добавить режим агентской работы (в режиме сервера) 5. Добавить режим UI 6. Добавить или подключить планировщик задач Пока же можно начать его использовать, задавать вопросы и запросы на расширение в issues. Ссылки: [1] https://datacrafter.ru [2] https://github.com/apicrafter/metacrafter [3] https://github.com/apicrafter/datacrafter [4] https://github.com/ruarxive/apibackuper [5] github.com/apicraf…examples [6] github.com/apicraf…nspaytax [7] github.com/apicraf…ccertufo #datatools #opensource #dataengineering
GitHub - apicrafter/metacrafter: Metadata and data identification tool and Python library. Identifies PII, common identifiers, language specific identifiers. Full customizable and flexible rules

Metadata and data identification tool and Python library. Identifies PII, common identifiers, language specific identifiers. Full customizable and flexible rules - GitHub - apicrafter/metacrafter: ...

GitHub