Ivan Begtin
9.13K subscribers
2.04K photos
3 videos
102 files
4.77K 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
加入频道
Свежий обзор The Modern Data Stack Ecosystem: Spring 2022 Edition [1] от Continual.ai, Конечно, как и все, они описывают Modern Data Stack с точки зрения их места в экосистеме, но, собственно и сам термин так активно используется стартапами именно для того чтобы показать позиционирование своего продукта. Удивительно что для MDS ещё нет холста в популярных системах проектирования вроде Miro и т.д.

Обзор полезный, например, автор отмечает отход от SQL-only подхода в преобразовании данных и в dbt рассматривают вариант включить поддержку non-SQL [2] и Snowflake рассматривают добавление Python-in-DB через Snowpark [3]

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

Ссылки:
[1] https://continual.ai/post/the-modern-data-stack-ecosystem-spring-2022-edition
[2] https://roundup.getdbt.com/p/disjointed-lineage
[3] https://www.snowflake.com/blog/snowpark-is-now-generally-available/

#data #reading #tools #moderndatastack
April 14, 2022
Яндекс выложили в открытый доступ систему управления базами данных YDB [1] с полным исходным кодом [2]. Эта распределенная SQL база данных, с собственным расширением языка SQL - YQL [3] и, в целом, выглядит любопытно.

Что стоит внимания:
- работа в кластере как часть системы
- обещанная простая масштабируемость

Что удивительно:
- база написана полностью на C++, хотя сейчас более популярно когда базы данных создаются на более высокоуровневых языках, в том числе и для того чтобы привлечь разработчиков которые хотят их изучать
- поддержка JSON и иерархических данных весьма скромная, по крайней мере документации об этом мало, хотя и упоминается
- вместо придумывания своего языка запросов расширяют SQL, что может быть и не плохо, просто +1 SQL диалект
- нет PostgreSQL или MySQL "совместимости из коробки", а это полезная фича которую декларируют многие новые СУБД и сервисы.

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

Ссылки:
[1] https://ydb.tech/
[2] https://github.com/ydb-platform/ydb
[3] https://ydb.tech/ru/docs/yql/reference/

#data #opensource #yandex #tools
April 19, 2022
В рубрике полезных инструментов для работы с данными несколько обновлений
- spcrawler [1] утилита командной строки для выгрузки данных и файлов из открытых сайтов Sharepoint к которой я наконец-то нашёл время дописать документацию и выложил как открытый код. Предистория: в открытом доступе много сайтов на Sharepoint, некоторые государственные системы/сайты тоже сделаны нём. Эта утилита выгружает все данные доступные через API "/_api/web" для тех случаев когда такое API есть. Похоже на другую утилиту wparc - по архивации данных через API Wordpress, которую я ранее выкладывал.
- у утилиты undatum появилась команда query использующая mistql как язык запросов. Удобно при необходимости потоковой фильтрации данных при работе с JSON lines. Пока в экспериментальном режиме, функции незавершённые. Одна из идей в том чтобы реализовать полноценную команду запросов на многих языках, не только mistql, но и dictquery и ещё нескольких вариантах.
- у меня в планах написать гайд по apibackuper, утилите по архивации данных внутри API. Очень много примеров API по России и оказывается мало по миру, не могу быстро найти зарубежные недокументированные API.
- добавлены новые общедоступные правила к утилите идентфикации типов данных metacrafter, добавлены правила: intcodes.yaml - международные коды, boolean.yaml - булевые значения, orgs.yaml - организации, science.yaml - научные идентификаторы, vehicles.yaml - автомобили. Все они в категории common в репозитории. Напомню, что утилита является открытой и общедоступной как и базовые правила, а у нас внутри проходит бета тестирование сервис с расширенными правилами. Желающие могут использовать открытый код и сами писать правила под свои данные или привлечь нашу команду и мы применим расширенный свод правил + напишем под Ваши данные.

В ближайших планах собрать вместе открытый код + наработки по APICrafter'у и Datacrafter՛у и собрать продукт + сервис на международную и русскоязычную аудитории.

Ссылки:
[1] https://github.com/ruarxive/spcrawler

#opensource #tools #data
April 21, 2022
Я продолжаю писать на английском языке о инструментах для работы с данными которые делал последние несколько лет. Написал заметку [1] про утилиту APIBackuper используемую для извлечению данных из API. Не открою большого секрета если скажу что большая часть данных в DataCrafter[2] собрана с её помощью. Слишком многие данные в России доступны только как API.

Но в заметке пример сбора данных с недокументированного API аэропорта Берлина.

Ссылки:
[1] https://medium.com/@ibegtin/apibackuper-a-command-line-tool-to-archive-backup-data-api-calls-3eb0e98e1a3b

#tools #datatools #opensource #articles
April 29, 2022
Из свежего полезного чтения про оптимизацию работы с данными, заметка How to Build a Lossless Data Compression and Data Decompression Pipeline [1] о построении многопоточного компрессора bz2 на Python. Статья полезная, но лично мне так и хочется ехидно прокомментировать про то что "хипстеры обнаружили для себя многопоточность". Многопоточное сжатие и другие многопоточные операции это один из многих трюков отличающих общедоступные и коммерческие продукты по обработке данных. При правильно подобранном железе и иных оптимизациях оно даёт многократное ускорение.

При этом придумывать что-то своё совершенно необязательно. Есть реализация многопоточного Gzip на Python - pgzip [2] . Есть реализация многопоточности в python-zstandard [3] и это если только говорить про компрессию, а есть и другие многопоточные задачи используемые при обработке данных.

Другое чтение, про Software defined assets [4] про новый декларативный подход управления данными и оркестрацией от команды Dagster. Не могу сказать что с лёту мне удалось понять принципиальные преимущества подхода, но почитать точно стоит

Ссылки:
[1] https://python.plainenglish.io/lossless-data-compression-and-data-decompression-pipeline-2f5391a6b7e7
[2] https://github.com/pgzip/pgzip
[3] https://python-zstandard.readthedocs.io/en/latest/multithreaded.html
[4] https://dagster.io/blog/software-defined-assets

#readings #tools #datatools
April 30, 2022
Интересные продукты для работы с данными и не только

- PostgresML [1] реализация системы машинного обучения внутри Postgres, только через SQL. Для настоящих фанатов Postgres
- PyScript [2] реализация языка Python на Javascript
- HARI - The First Annotation And Dataset Analytics Platform [3] - интересный коммерческий продукт для визуализации и анализа алгоритмов распознвания видео. К сожалению описания маловато
- tinypandas [4] для тех кто привык к pandas, но хочет инструмент попроще. Не знаю кому такое может пригодится, но вдруг
- Metabase 0.43 [5] новая версия Metabase, самое интересное, на мой взгляд, поддержка JSON записей в Postgres, но много чего другого тоже есть
- Reconcilation [6] инструмент для создания сервисов обогащения данных для OpenRefine, написан на Python + Flask. Нужен для тех кто пользуется OpenRefine и хочет его расширять
- Squirel [7] свежая ETL на базе Python позиционируемая как инструмент для ML.

Ссылки:
[1] https://postgresml.org/
[2] https://pyscript.net/
[3] https://www.quality-match.com/hari
[4] https://talegari.github.io/tidypandas/_build/html/index.html
[5] https://github.com/metabase/metabase/releases/tag/v0.43.0
[6] https://github.com/preftech/reconciliation
[7] https://squirrel-core.readthedocs.io/en/latest/

#opensource #tools #datatools
May 3, 2022
Для тех кто любит сжатие данных также как это люблю я, подборка полезных ссылок:
- про сжатие CSV файла в 22 ГБ в 1.5 ГБ файла Parquet [1] включает преобразование структур данных, сжатие zstd внутри файла parquet и тд. Для сравнения оригинальный сжатый файл был около 12GB. Для работы на ноутбуках и десктопах может быть значимо.
- Bzip3 [2] автор позиционирует как замену Bzip2. Сжимает существенно лучше чем Bzip2, немного лучше чем Xz и 7Zip (LZMA2), при этом не существенно теряет в скорости. В общем надо измерять.
- PLZip [3] и LZTurbo [4] два особо быстрых декомпрессора для lzip и lz77 соответственно, важно когда скорость сжатия некритична, а скорость распаковки важна

Ссылки:
[1] https://medium.com/@deephavendatalabs/the-r-place-dataset-bf4b0d70ce72
[2] https://github.com/kspalaiologos/bzip3
[3] https://www.nongnu.org/lzip/plzip.html
[4] https://sites.google.com/site/powturbo/home

#compression #tools #opensource
May 11, 2022
May 12, 2022
Те кто ищет продукты по работе с базами данных и при этом больше похожие на MS Access, но в облаке, обычно быстро находят Airtable, но это совсем далеко не единственный low-code и no-code продукт в этой области. О некоторых я ранее писал, а других ещё нет:
- NocoDB [1] альтернатива Airtable с открытым кодом.
- Rows [2] позиционируют себя как "переизобретение таблиц", стартап и онлайн сервис
- Clay [3] стартап с интеграцией с кучей онлайн сервисов, CRM, аналитики и т.д.
- Dataland [4] стартап и онлайн сервис ориентированный на удобство разработчиков, как универсальный фронтенд над базами данных. Пока в бета по запросу
- Tulr [5] бесплатная альтернатива Airtable. Платные тарифы тоже есть. Стартап, онлайн сервис
- StackBy [6] сервис ориентированный на маркетологов, с кучей шаблонов под их работу
- Basedash [7] ещё один сервис упрощения редактирования баз данных, словно не база, а таблица в Excel.
- Grist [8] довольно продвинутый инструмент с открытым кодом и облачный стартап.
- Smartsheet [9] корпоративный продукт, вернее продукт с корпоративной версией.
- Actiondesk [10] позволяет подключаться к СУБД и ещё и создавать аналитические интерфейсы.

А также большая подборка инструментов в списке Awesome NoCode/LowCode [11]

Ссылки:
[1] https://nocodb.com
[2] https://rows.com
[3] https://www.clay.com
[4] https://dataland.io/
[5] https://tulr.io/
[6] https://stackby.com/
[7] https://www.basedash.com/
[8] https://www.getgrist.com/
[9] https://www.smartsheet.com/
[10] https://www.actiondesk.io/
[11] https://github.com/kairichard/awesome-nocode-lowcode#database

#nocode #lowcode #tools #data
May 17, 2022
В рубрике инструментов работы с данными ArangoDb [1] NoSQL СУБД для хранения документов, с акцентом на графовые данные и собственный язык запросов AQL [2].

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

Из плюсов:
- JSON Native
- поддержка графовых данных
- реально свободная лицензия Apache 2 в сравнении с ограниченной SSPL у MongoDB
- поддержка JOIN՛ов (редкость для NoSQL)

Из ограничений:
- поскольку внутри JSON, то нет родных типов date и datetime, работа с датами через функции
- значительно меньшее сообщество чем у MongoDB
- по некоторым тестам ArangoDB работает медленнее чем MongoDB или OrientDB [3]

Ссылки:
[1] https://www.arangodb.com
[2] https://www.arangodb.com/docs/stable/aql/
[3] https://www.diva-portal.org/smash/get/diva2:1567918/FULLTEXT01.pdf

#tools #opensource
May 18, 2022
Может ли ИИ лишить работы журналистов и писателей? Может быть, когда-нибудь. А вот что он может уже сейчас - это выступить соавтором текста.

ИИ мой соавтор [1] в рассылке Stories by AI о сервисе Sudowrite использующем языковую модель GPT-3 для сонаписания текстов.

ИИ выступает в ролях:
- Помощника в мозговых штурмах
- Читателя, предоставляя автоматическую обратную связь на тексты
а также писателя и редактора.

Страшная штука, если задуматься, но, пока ещё, поддерживает только английский язык.

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

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

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

Ссылки:
[1] https://storiesby.ai/p/ai-is-my-co-writer
[2] https://www.sudowrite.com

#ai #tools #writing
September 6, 2022
В рубрике регулярных напоминаний не могу не рассказать про сервис оценки простоты языка Простой язык (plainrussian.ru) [1] который я много лет назад сделал и передал в Инфокультуру при её создании.

Это очень простой сервис который на вход получает текст на русском языке и на выходе выдает его сложность в баллах где баллы - это число лет учёбы которые необходимо пройти чтобы понимать этот текст. Например, 11.97 баллов - это, примерно, 1-3 курс ВУЗа, а то есть около 12 лет учебы.

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

У сервиса есть API [2] и открытый код [3]. Код не обновлялся примерно лет 10, во всяком случае та его часть которая использовалась для расчета формул.

И вот в формулах и было самое сложное и интересное. Алгоритмы сервиса работают на тех же принципах что формулы читабельности текста созданные изначально для английского языка: Flesch-Kincaid, SMOG, Automatic Readability Index и другие. В их основе подсчет числа слов на предложение, среднее число слогов на слово, среднее число букв на слово, число редких слов и так далее.

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

Сейчас всё это можно было бы решить гораздо быстрее, с современными ML инструментами расчеты были бы быстрее чем их проектирование.

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

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

Ссылки:
[1] https://plainrussian.ru/
[2] https://github.com/ivbeg/readability.io/wiki/API
[3] https://github.com/infoculture/plainrussian/tree/master/textmetric

#plainrussian #russian #language #api #tools
October 14, 2022
Forwarded from Open Data Armenia (Kseniia Orlova)
June 19, 2023
July 7, 2023
В качестве регулярного напоминания, кроме всего прочего я за последние лет 15 занимался тем публиковал довольно много кода как открытый код. В основном с надеждой на вовлечение сообщества и, где-то, это получалось, а где-то не очень. Случаев когда получалось и появлялись контрибьюторы довольно много, так что почему бы и не напомнить, на случай если возникнуть желающие воспользоваться и помочь в разработке:

- newsworker - библиотека для Python для извлечения новостей из веб страниц. Один из моих экспериментов с автоматизацией парсинга HTML закончился написанием этой библиотеки которая умеет распознавать даты в любом написании, ссылки и заголовки и текст новости.
- docx2csv - библиотека для Python и утилита командной строки по извлечению таблиц внутри файлов Microsoft Word (.DOCX).
- qddate - библиотека для идентификации дат в любом написании для условно любых языков. Изначально писалась как часть newsworker, потом была отделена. Поддерживает более 300 шаблонов написания дат.
- lazyscraper - утилита командной строки для превращения массивов HTML тэгов и HTML таблиц в таблицы CSV
- russiannames - на удивление оказавшаяся востребованной библиотека для Python и база данных для имён на русском языке и распознаванию стилей их написания. Создавалась из многих открытых источников, полезна, например, для задач когда надо понять в каком формате написано ФИО и что в нём есть что
- undatum - утилита командной строки для работы с разными структурированными данными, в первую очередь JSON lines. Фактически делалось как аналог csvkit для JSON lines, лично я ей пользуюсь ежедневно хотя и её ещё надо и надо допиливать.
- govdomains - база российских госдоменов и ассоциированного с этим кода, да, да, это не только зона .gov.ru, но и многое другое. Делалось изначально для проекта Ruarxive для понимания того что надо архивировать. Список большой, но с 2022 года развиваемый в закрытую по объективным причинам, чтобы не помогать хакерам находить уязвимости.
- metacrafter - утилита и библиотека идентификации семантических типов данных. Поддерживает десятки типов данных собранных в специальном реестре, изначально это был один из внутренних инструментов в продукте Datacrafter
- apibackuper - тоже утилита которой я пользуюсь регулярно, она создавалась для того чтобы архивировать данные предоставляемые через API. Причём всё это делается через простой конфиг файл. До сих пор многие датасеты из API я генерирую с её помощью.
- wparc - утилита архивации содержания Wordpress сайтов через API Wordpress если оно не отключено.
- ydiskarc - утилита архивирования материалов на Яндекс Диске, использует, по большей части документированное официальное API, но не требует к нему токенов или авторизации
- pyiterable - попытка унифицировать работу с данными в разных форматах: CSV, JSON, JSON lines, BSON, в том числе внутри контейнеров архивов. Регулярно сам этим пользуюсь. Изначально был план переписать undatum с использованием этой библиотеки, но руки не доходят.
- datacrafter - облегчённая ETL на Python для работы с открытыми данными, используется в одноимённом проекте datacrafter.ru, аналогично я ей сам регулярно пользуюсь когда надо систематизировать извлечение данных из открытых источников. К ней множество примеров для работы с данными на российских госсайтах.

#opensource #tools #data #datatools
September 5, 2023
Для тех кто работает с файлами в WARC формате (большая часть сайтов в ruarxive хранятся в нём) ещё одна утилита по работе с ними. Warchaeology [1]. Утилита создана в Национальной библиотеке Норвегии и позволяет:
- конвертировать форматы ARC, WARC и Nedlib
- листать WARC файлы
- удалять дубликаты файлов
- валидировать содержание WARC файлов
- предоставлять оболочку по работе с WARC файлами

Инструмент полезный, может пригодится тем кто любит работать в командной строке. Я также напомню про библиотеку и утилиту командной строки WarcIO [2] с функциями извлечения и пересжатия содержимого WARC файлов и разработанную мной когда-то утилиту MetaWARC [3] которая тоже умеет извлекать контент из WARC файлов и ещё индексировать их в sqlite и считать статистику и даже извлекать метаданные из вложенных файлов.

Больше инструментов полезных и разных! Если Вы знаете хорошие инструменты с открытым кодом для цифровой архивации, пишите нам, будем делать их обзоры.

Ссылки:
[1] https://github.com/nlnwa/warchaeology
[2] https://github.com/webrecorder/warcio
[3] https://github.com/datacoon/metawarc

#tools #opensource #digitalpreservation #webarchives #WARC #software
May 30, 2024
July 19, 2024