Ivan Begtin
7.98K subscribers
1.85K photos
3 videos
101 files
4.56K 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 [email protected]
Download Telegram
Свежий обзор 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
Яндекс выложили в открытый доступ систему управления базами данных 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
В рубрике полезных инструментов для работы с данными несколько обновлений
- 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
Я продолжаю писать на английском языке о инструментах для работы с данными которые делал последние несколько лет. Написал заметку [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
Из свежего полезного чтения про оптимизацию работы с данными, заметка 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
Интересные продукты для работы с данными и не только

- 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
Для тех кто любит сжатие данных также как это люблю я, подборка полезных ссылок:
- про сжатие 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
Low code добралось и до инженерии данных. Стартап Prophecy.io [1] поднял в общей сложности $38.5M за 5 раундов инвестиций создавая платформу с минимальным программированием на базе Apache Spark и Apache Airlow. Эдакий подход - антихардкор, никакой командной строки, только работа мышкой.

Интересно до чего ещё докатится волна создания low-code продуктов?

Ссылки:
[1] https://www.prophecy.io/

#startups #dataengineering #tools
Те кто ищет продукты по работе с базами данных и при этом больше похожие на 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
В рубрике инструментов работы с данными 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
Может ли ИИ лишить работы журналистов и писателей? Может быть, когда-нибудь. А вот что он может уже сейчас - это выступить соавтором текста.

ИИ мой соавтор [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
В рубрике регулярных напоминаний не могу не рассказать про сервис оценки простоты языка Простой язык (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
Forwarded from Open Data Armenia (Kseniia Orlova)
[EN] Awesome list: a toolkit for text analyzis Armenian language

- Eastern Armenian National Corpus Electronic Library provides a full view of works by classical authors (these books are in the public domain because their authors died more than 70 years ago). The corpus contains 4547379 words from 104 books by 12 authors. 

- Named entity recognition. pioNer — trained data for Armenian NER using Wikipedia. This corpus provides the gold standard for automatically generated annotated datasets using GloVe models for Armenian. Along with the datasets, 50-, 100-, 200-, and 300-dimensional GloVe word embeddings trained on a collection of Armenian texts from Wikipedia, news, blogs, and encyclopedias have been released.

- The Polyglot library for Python supports language detection, named entity extraction (using Wikipedia data), morphological analysis, transliteration, and sentiment analysis for Armenian.

- Kevin Bougé Stopword Lists Page includes th Armenian language.

- Ranks NL Stopword Lists Page includes the Armenian language.

If you know of new usefull tools and guides, please share that knowledge with us!

Image author Aparna Melaput

#opendata #armenia #language #tools #digitalhumanities