В рубрике интересных инструментов работы с данными, datanomy утилита для командной строки для просмотра метаданных и данных внутри Parquet файлов. Простая штука, работает на базе фреймворка Textual для создания утилит командной строки и позволяет смотреть разную информацию включая схему, метаданные, данные и статистику по выбранному parquet файлу.
Инструментов для наглядного отображения Parquet файлов не так много, хотя и прибавляется. Этот выглядит как полезный.
#opensource #datatools #parquet
Инструментов для наглядного отображения Parquet файлов не так много, хотя и прибавляется. Этот выглядит как полезный.
#opensource #datatools #parquet
👍7
AgenticSeek альтернатива Manus умеющая выполнять разные, в том числе довольно сложные задачи требующие запуска приложений и браузера иных агентских операций. Важное отличие - открытый код и локальный (приватный) запуск.
#opensource #ai #privacy #llm #tools #datatools
#opensource #ai #privacy #llm #tools #datatools
✍10🔥1
После экспериментов с простым кодом, я постепенно добрался до тех инструментов которые используются внутри 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
- переход от декларативного описания скрейперов с 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
✍4⚡2
Продолжая рассказывать про применение ИИ агентов для разработки, после экспериментов на не самом критичном коде я добрался до обновления реестра дата каталогов в Dateno и могу сказать что результаты пока что хорошие.
Вплоть до того что ИИ агент способен сформировать карточку дата каталога просто передав ему ссылку и задав промпт сгенерировать его описание. Это работает, во многом, потому что уже есть больше 10 тысяч созданных карточек и поскольку есть чёткие спецификации схем ПО дата каталогов, самих описаний дата каталогов и тд.
Кроме того хорошо отрабатывают задачи которые:
- находят ошибки в метаданных дата каталогов
- находят и исправляют дубликаты записей
- обогащают карточки каталогов тематиками и тэгами
- исправляют геоклассификацию каталогов
- и многое другое что предполагает массовое исправление и обогащение данных
Лично для меня и Dateno это очень хорошая новость это означает что реестр (dateno.io/registry) можно вести теперь значительно меньшими личными усилиями.
В ближайшее время я сделаю очередное обновление реестра уже по итогам большого числа итераций обновления метаданных и качество реестра существенно вырастет. А оно влияет и на индекс Dateno и на сам продукт реестра дата каталогов.
P.S. Тут я описываю внутренности происходящего в Dateno, которым я занимаюсь как основным проектом и продуктом. А новости проекта всегда можно читать в LinkedIn
#opendata #datacatalogs #ai #dev #datatools
Вплоть до того что ИИ агент способен сформировать карточку дата каталога просто передав ему ссылку и задав промпт сгенерировать его описание. Это работает, во многом, потому что уже есть больше 10 тысяч созданных карточек и поскольку есть чёткие спецификации схем ПО дата каталогов, самих описаний дата каталогов и тд.
Кроме того хорошо отрабатывают задачи которые:
- находят ошибки в метаданных дата каталогов
- находят и исправляют дубликаты записей
- обогащают карточки каталогов тематиками и тэгами
- исправляют геоклассификацию каталогов
- и многое другое что предполагает массовое исправление и обогащение данных
Лично для меня и Dateno это очень хорошая новость это означает что реестр (dateno.io/registry) можно вести теперь значительно меньшими личными усилиями.
В ближайшее время я сделаю очередное обновление реестра уже по итогам большого числа итераций обновления метаданных и качество реестра существенно вырастет. А оно влияет и на индекс Dateno и на сам продукт реестра дата каталогов.
P.S. Тут я описываю внутренности происходящего в Dateno, которым я занимаюсь как основным проектом и продуктом. А новости проекта всегда можно читать в LinkedIn
#opendata #datacatalogs #ai #dev #datatools
GitHub
GitHub - commondataio/dataportals-registry: Registry of data portals, catalogs, data repositories including data catalogs dataset…
Registry of data portals, catalogs, data repositories including data catalogs dataset and catalog description standard - commondataio/dataportals-registry
✍8❤3🔥3🎉2
Ещё про официальную статистику, есть важный тренд о котором я писал пока что мало - это отделение данных от их представления. Официальная статистика чаще всего строится как цельные системы в которых сразу есть и возможность получения данных и их визуальное представление.
А за это время появились десятки стартапов и сервисов которые наглядность обеспечивают значительно лучше официальные статистические сервисы, например, я довольно давно слежу за сервисом PlotSet с их интерактивными графиками. Очень наглядные штуки они генерируют в очень короткие сроки. При этом я не призываю использровать именно их, есть и другие варианты, и многие из них создаются с помощью ИИ агентов.
Ключевое тут в отделении данных от представления. Отдельно данные и API и отдельно интерактивный сервис на них основанный. Для популяризации официальной статистики такое разделение может быть эффективнее любых монолитных централизованных платформ.
Интересно, кстати, есть ли альтернативы PlotSet с открытым кодом?
#dataviz #statistics #datatools
А за это время появились десятки стартапов и сервисов которые наглядность обеспечивают значительно лучше официальные статистические сервисы, например, я довольно давно слежу за сервисом PlotSet с их интерактивными графиками. Очень наглядные штуки они генерируют в очень короткие сроки. При этом я не призываю использровать именно их, есть и другие варианты, и многие из них создаются с помощью ИИ агентов.
Ключевое тут в отделении данных от представления. Отдельно данные и API и отдельно интерактивный сервис на них основанный. Для популяризации официальной статистики такое разделение может быть эффективнее любых монолитных централизованных платформ.
Интересно, кстати, есть ли альтернативы PlotSet с открытым кодом?
#dataviz #statistics #datatools
👏3🤝3⚡2
Для тех кто анализирует данные и тд. я масштабно обновил инструмент metacrafter https://github.com/apicrafter/metacrafter по идентификации семантических типов данных, включая персональные данные по многим странам и языка.
Что изменилось:
- добавлено много новых правил и обновлены имеющиеся
- сильно оптимизирован код для ускорения мэтчинга правил
- добавлена возможность фильтрации правил по стране (страна указывается в файле правил)
- добавлено множество опций для командной строки
Изменений много, они могут давать ложные срабатывания потому что некоторые правила таковы что много что под них может подпасть, поэтому управление правилами и улучшилось с точки зрения фильтрации по стране.
Собственно сами правила тоже обновились https://github.com/apicrafter/metacrafter-rules
Это не финальные изменения, а подготовка кода к интеграцию в Dateno.
#opensource #datatools #dataengineering
Что изменилось:
- добавлено много новых правил и обновлены имеющиеся
- сильно оптимизирован код для ускорения мэтчинга правил
- добавлена возможность фильтрации правил по стране (страна указывается в файле правил)
- добавлено множество опций для командной строки
Изменений много, они могут давать ложные срабатывания потому что некоторые правила таковы что много что под них может подпасть, поэтому управление правилами и улучшилось с точки зрения фильтрации по стране.
Собственно сами правила тоже обновились https://github.com/apicrafter/metacrafter-rules
Это не финальные изменения, а подготовка кода к интеграцию в Dateno.
#opensource #datatools #dataengineering
GitHub
GitHub - apicrafter/metacrafter: Metadata and data identification tool and Python library. Identifies PII, common identifiers,…
Metadata and data identification tool and Python library. Identifies PII, common identifiers, language specific identifiers. Fully customizable and flexible rules - apicrafter/metacrafter
👍3❤1🔥1
DeepScholar свежий ИИ агент помощник ученого-исследователя. В авторах команда из Стенфорда которые делали Lotus, фреймворк по работе с датасетами с помощью LLM (собственно читая про Lotus я про DeepScholar и узнал).
Это не единственный подобный инструмент и их становится все больше.
#ai #research #tools #datatools
Это не единственный подобный инструмент и их становится все больше.
#ai #research #tools #datatools
✍11⚡5
Как обмениваться большими файлами не привлекая внимания санитаров без необходимости использовать облачные диски или аренды серверов? AltSendme инструмент по отправке данных через зашифрованное peer-to-peer соединение, представляет собой GUI приложение для Linux, Windows и Mac. Можно выбрать конкретный файл и после нажатия на "Start sharing" приложение создает длинны код/тикет который надо любым способом передать получателю и который после ввода этого кода в это же приложение у себя быстро и напрямую скачивает файл.
Лично у меня реакция на такое "почему это не я придумал?!" потому что инструмент простой и полезный.
Всё это с открытым кодом, использует p2p прокотолы iroh у которых также есть аналогичная утилита SendMe для командной строки, также с открытым кодом.
Этот инструмент не единственный, их становится больше, интересно когда появятся первые proxy/vpn инструменты такой же природы? А может они уже и есть.
#opensource #filetransfer #tools #datatools
Лично у меня реакция на такое "почему это не я придумал?!" потому что инструмент простой и полезный.
Всё это с открытым кодом, использует p2p прокотолы iroh у которых также есть аналогичная утилита SendMe для командной строки, также с открытым кодом.
Этот инструмент не единственный, их становится больше, интересно когда появятся первые proxy/vpn инструменты такой же природы? А может они уже и есть.
#opensource #filetransfer #tools #datatools
🔥19❤5✍2
Ещё один полезный инструмент для дата инженера и аналитика data-peek SQL клиент для десктопа под Windows, Mac и Linux с поддержкой PostgreSQL, MySQL и Microsoft SQL. Для личного пользования лицензия MIT и открытый код, для коммерческого отдельная лицензия и платное использование.
В целом ничего нового, кроме построителя SQL запросов через ИИ модели, поддерживает многие модели включая локальные через Ollama.
Как же много таких клиентов появилось в последнее время, кто бы сделал аналогичное для NoSQL: Elasticsearch, OpenSearch, MongoDB и тд.
А еще лучше для SPARQL'я потому что программировать SPARQL запросы это боль для психически неподготовленной личности. Именно очеловечивание запросов способно придать SPARQL'ю новую жизнь, по моему разумению.
Но понятно, на самом деле, почему таких инструментов нет, потому что ёмкость рынка инструментов для SQL превышает все остальные. Но тогда уж надо добавлять поддержку не Microsoft SQL, а Clickhouse, SQLite, DuckDB и тд.
#opensource #datatools #dataengineering #tools
В целом ничего нового, кроме построителя SQL запросов через ИИ модели, поддерживает многие модели включая локальные через Ollama.
Как же много таких клиентов появилось в последнее время, кто бы сделал аналогичное для NoSQL: Elasticsearch, OpenSearch, MongoDB и тд.
А еще лучше для SPARQL'я потому что программировать SPARQL запросы это боль для психически неподготовленной личности. Именно очеловечивание запросов способно придать SPARQL'ю новую жизнь, по моему разумению.
Но понятно, на самом деле, почему таких инструментов нет, потому что ёмкость рынка инструментов для SQL превышает все остальные. Но тогда уж надо добавлять поддержку не Microsoft SQL, а Clickhouse, SQLite, DuckDB и тд.
#opensource #datatools #dataengineering #tools
👏5👍2❤1🔥1🤝1
В продолжение инструментов работы с данными, я на днях обновил утилиту undatum которую создавал для разных манипуляций с данными в командной строке. Главная была особенность в том что она кроме CSV файлов поддерживает всяческие структурированные не плоские форматы данных вроде JSONL, BSON, Parquet и тд.
А также умеет автодокументировать датасеты.
Собственно свежее изменение в том что теперь автодокументирование расширилось поддержкой любых LLM'ом через Ollama, LM Studio, Perplexity, OpenAI и OpenRouter и в поддержке множества языков, можно получать описание буквально на любом языке поддерживаемом выбранной LLM.
Автодокументирование работает не быстро, но зависит только от скорости работы LLM, а не от размера набора данных. Оно полезно для многих задач, у меня лично много задач с тем чтобы приводить описания наборов данных в порядок и один из способов для этого в использовании вот этого инструмента
У меня в отложенных задачах есть интеграция его с утилитой metacrafter, но это уже как-то позже.
#opensource #datatools #ai
А также умеет автодокументировать датасеты.
Собственно свежее изменение в том что теперь автодокументирование расширилось поддержкой любых LLM'ом через Ollama, LM Studio, Perplexity, OpenAI и OpenRouter и в поддержке множества языков, можно получать описание буквально на любом языке поддерживаемом выбранной LLM.
Автодокументирование работает не быстро, но зависит только от скорости работы LLM, а не от размера набора данных. Оно полезно для многих задач, у меня лично много задач с тем чтобы приводить описания наборов данных в порядок и один из способов для этого в использовании вот этого инструмента
У меня в отложенных задачах есть интеграция его с утилитой metacrafter, но это уже как-то позже.
#opensource #datatools #ai
1🔥7
Google обновили Magika инструмент для идентификации типов файлов в зависимости от содержимого. Пишут что теперь он поддерживает более 200 форматов файлов (ранее было 100), полностью переписан на Rust и работает существенно быстрее. Можно обратить внимание что многие из упомянутых новыз форматов файлов это файлы с данными npz, pytorch, parquet, h5 и файлы кода zig, dart, kotlin и тд. Фактически Magika это альтернатива идентификации типа файла по расширению и альтернатива magic (утилита идентификации файлов в Unix-подобных операционных системах) и утилитам Siegfried и DROID используемых цифровыми архивистами.
Выглядит полезно, надо пробовать. Прошлая версия, как я помню, давала какое-то количество ложнопозитивных результатов, возможно в этом направлении тоже есть прогресс.
Как минимум области применения тут в задачах цифровой архивации, работы с разного рода унаследованными материалами, в цифровой форенсике и еще много в чем.
Что характерно Magika занимается команда Security research в Google, а то есть можно предполагать что основное применение это, все же, цифровая форенсика.
Из интересного, разработчики пишут что чтобы обучить Magika они использовали 3-х террабайтный несжатый датасет.
В целом видно что над проектом работает группа ИИ инженеров, но не методистов и это сопутствующий продукт их работы потому что иначе они бы начали с реестра типов mime и расширений в который собрали бы метаданные из PRONOM и пары других крупных реестров форматов файлов.
#opensource #google #datatools #forensics
Выглядит полезно, надо пробовать. Прошлая версия, как я помню, давала какое-то количество ложнопозитивных результатов, возможно в этом направлении тоже есть прогресс.
Как минимум области применения тут в задачах цифровой архивации, работы с разного рода унаследованными материалами, в цифровой форенсике и еще много в чем.
Что характерно Magika занимается команда Security research в Google, а то есть можно предполагать что основное применение это, все же, цифровая форенсика.
Из интересного, разработчики пишут что чтобы обучить Magika они использовали 3-х террабайтный несжатый датасет.
В целом видно что над проектом работает группа ИИ инженеров, но не методистов и это сопутствующий продукт их работы потому что иначе они бы начали с реестра типов mime и расширений в который собрали бы метаданные из PRONOM и пары других крупных реестров форматов файлов.
#opensource #google #datatools #forensics
1❤8🔥6
Я как то уже рассуждал здесь и вслух о том что ИТ профессии часто формируют устойчивые когнитивные искажения, например, когда все окружающее воспринимается как таблицы или как данные, лично я считаю что в этом нет ничего зазорного и сам иногда впадаю в состояние автоматического построения структур данных в голове и доведение их до 3NF.
Но то что кто-то может назвать когнитивным искажением, можно назвать и способом взгляда на те или иные явления. И вот один из таких способов восприятия реальности - это смотреть на все как на список. Список дел, список строк в файле, список записей в БД и так далее. А если по списку можно проходить и что-то делать с тем что в нем находится то он является перебираемым или на английском языке iterable.
Собственно под восприятия мира данных того что большая часть структур данных, форматов дата файлов и тд - это перебираемые списки я когда-то создал, а недавно обновил библиотеку iterabledata для Python.
Изначально она создавалась для того чтобы реализовать для JSON/JSON lines файлов логику перебора содержимого по принципу csv.DictReader, стандартной библиотеки в Python в которой перебираемые объекты возвращаются как словари. Заодно добавив к этому что чаще всего эти файлы с данными сжаты чем-то Gzip, LZMA, Zstandard и тд.
А в этот раз я обновил эту библиотеку для большей универсальности и поддержки десятков новых форматов данных DBF, JSON-LD, KML, GML, CSVW, Annotated CSV, MessagePack и еще много, полный список.
Включая некоторые экзотические форматы такие как WARC для веб-архивации, которые тоже можно рассматривать как объекты со списками для перебора.
А в качестве наглядного примера, преобразование дампа Википедии из сжатого XML в Parquet.
Особенность Iterable Data именно в универсальности инструмента, но не в скорости обработки данных. Для супербыстрой обработки, например, CSV файлов есть и другие инструменты, но CSV лишь один из десятков встречающихся форматов данных.
Так что инструмент полезный и обновлялся мной сейчас в контенте задач в Dateno, в открытые репозитории которого я и перенес его из личных пэт проектов.
#opensource #dateno #datatools #dataengineering
Но то что кто-то может назвать когнитивным искажением, можно назвать и способом взгляда на те или иные явления. И вот один из таких способов восприятия реальности - это смотреть на все как на список. Список дел, список строк в файле, список записей в БД и так далее. А если по списку можно проходить и что-то делать с тем что в нем находится то он является перебираемым или на английском языке iterable.
Собственно под восприятия мира данных того что большая часть структур данных, форматов дата файлов и тд - это перебираемые списки я когда-то создал, а недавно обновил библиотеку iterabledata для Python.
Изначально она создавалась для того чтобы реализовать для JSON/JSON lines файлов логику перебора содержимого по принципу csv.DictReader, стандартной библиотеки в Python в которой перебираемые объекты возвращаются как словари. Заодно добавив к этому что чаще всего эти файлы с данными сжаты чем-то Gzip, LZMA, Zstandard и тд.
А в этот раз я обновил эту библиотеку для большей универсальности и поддержки десятков новых форматов данных DBF, JSON-LD, KML, GML, CSVW, Annotated CSV, MessagePack и еще много, полный список.
Включая некоторые экзотические форматы такие как WARC для веб-архивации, которые тоже можно рассматривать как объекты со списками для перебора.
А в качестве наглядного примера, преобразование дампа Википедии из сжатого XML в Parquet.
Особенность Iterable Data именно в универсальности инструмента, но не в скорости обработки данных. Для супербыстрой обработки, например, CSV файлов есть и другие инструменты, но CSV лишь один из десятков встречающихся форматов данных.
Так что инструмент полезный и обновлялся мной сейчас в контенте задач в Dateno, в открытые репозитории которого я и перенес его из личных пэт проектов.
#opensource #dateno #datatools #dataengineering
👍10✍4❤🔥1❤1👌1🗿1
В качестве регулярных напоминаний, большое количество открытого кода который я лично создавал и поддерживаю:
- 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
- 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
GitHub
GitHub - datenoio/iterabledata: Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet,…
Python library to read, write and convert data files with formats BSON, JSON, NDJSON, Parquet, ORC, XLS, XLSX, XML and many others - datenoio/iterabledata
👍13