Ivan Begtin
7.99K subscribers
1.88K photos
3 videos
101 files
4.58K 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
О данных, веб-сайтах и том как с ними работают. Я рассказывал что веду архивацию госсайтов, в том числе самописными инструментами, которые архивируют данные из открытых API которые веб-краулеры не поддерживают. Такая утилита есть APIBackuper для сфокусированной архивации и ещё для 5 популярных CMS у которых такое общедоступное API есть по умолчанию. Некоторые владельцы сайтов это API по умолчанию сразу отключают, но у большинства оно доступно и через него можно скачивать весь тот же контент что есть на сайте, только быстрее, удобнее и автоматически.

Но бывают и вопиющие случаи. Не буду называть конкретный орган власти/госорганизацию, но у них на веб-сайт предусмотрена подписка на рассылки СМИ. Подписка реализована встроенными средствами CMS и, барабанная дробь, открытые интерфейсы этой CMS отдают данные о всех подписчиках. К счастью, их там не так много, чуть более 200 человек и данные там хоть и персональные, но не самые чувствительные, только email+ФИО+факт подписки, но картина показательная о том как организована работа с данными в госорганах.

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

Таких случаев много, много случаев публикации чувствительных данных, просто доступа к данным и тд. Госзаказчики чаще всего просто не знают на каких инструментах создана их инфраструктура и поэтому так много недокументированных API у госсайтов и государственных информационных систем. Это вопрос не только культуры работы с данными, но и обычной технологической культуры и полнейшее отсутствие централизованного аудита и мониторинга государственного технологического сектора.

#tech #government #governmentit #privacy #leaks
Полезное чтение про разное

- How often do people actually copy and paste from Stack Overflow? Now we know. [1] о том как часто программисты копируют тексты со Stack Overflow. Мини-исследование от команды проекта собиравших данные о копировании с помощью отслеживания фактов копирования в JavaScript коде. Если кратко - копируют много и посты/ответы с хорошей репутацией.

- The next billion programmers [2] рассуждения всё того же Benn Stancil из стартапа Mode о том что самый главный продукт для переделки или пересоздания - это Excel. У Бена хорошие рассуждения практически во всех его текстах, он уходит куда дальше чем просто продвижение Mode и дискуссий вокруг хайпов вокруг данных, а рассуждает по общеотраслевые проблемы. Excel - это, действительно, с одной стороны гениальное, а с другой тяжкое наследие.

- Six Reasons Why the Wolfram Language Is (Like) Open Source [3] ноябрьский текст от Jon McLoone, директора по коммуникациям и стратегии в Wolfram, о том почему модель открытого кода не подходит для ключевых технологий Wolfram. Для тех кто не знает, Wolfram Mathematica один из лучших продуктов для технических вычислений, а Wolfram Alpha один из лучших продуктов поиска ответов на вопросы со способностью давать ответы в технических дисциплинах. Но все эти продукты с закрытым кодом, включая их Wolfram Language и многие не используют именно из-за закрытости и замкнутости экосистемы Wolfram. Стоит почитать чтобы понимать позицию тех кто делает хорошие продукты и не может поменять бизнес модель в сторону открытости и поговорить о том к чему это приведет.

- Tableau Data Catalog: Let’s do the jigsaw puzzle! [4] команда разработчиков пытаются построить каталог данных на базе Tableau. На мой взгляд это не самый правильный путь, но активным пользователям Tableau может оказаться полезным.

- Understanding of metrics store [5] полезный обзорный текст про хранилища метрик, как лучше их организовать, зачем и кому они нужны. Лично у меня metrics store четко ассоциируется с Headless BI, и разделением аналитических показателей на подсчет, хранение и интерфейс.

- Snowflake Data Classification Now Available in Public Preview [6] в Snowflake анонсировали технологии классификации данных для данных загружаемых пользователями, но потом почему-то статью убрали и осталась она только в гугл кеше. Технология практически та же что у нас в DataCrafter'е [7] и то что я недавно анонсировал в виде утилиты metacrafter [8] с открытым кодом. Разница в том что у Snowflake это встроено в систему SQL запросов и находится прямо внутри их движка.

Ссылки:
[1] https://stackoverflow.blog/2021/12/30/how-often-do-people-actually-copy-and-paste-from-stack-overflow-now-we-know/
[2] https://benn.substack.com/p/the-next-billion-programmers
[3] https://blog.wolfram.com/2021/11/30/six-reasons-why-the-wolfram-language-is-like-open-source/
[4] https://medium.com/iadvize-engineering/tableau-data-catalog-lets-do-the-jigsaw-puzzle-cef93e674622
[5] https://medium.com/kyligence/understanding-the-metrics-store-c213341e4c25
[6] https://webcache.googleusercontent.com/search?q=cache:61aCFi3onBwJ:https://www.snowflake.com/blog/data-classification-now-available-in-public-preview/+&cd=1&hl=fr&ct=clnk&gl=de&client=firefox-b-d
[7] https://data.apicrafter.ru/class
[8] https://github.com/apicrafter/metacrafter/

#reading #data #tech
Для тех кто пользуется телеграмом регулярно, поделюсь несколькими идеями продуктов которыми мне самому заняться всегда не хватало времени/мотивации/занятости. Да и специализация моя data engineering, что немного в другой области.

Первая идея весьма очевидная.

Аналог Slack/Element на базе Telegram

У телеграм'а есть сильное ограничение в числе каналов и чатов которые возможно поддерживать в одиночку. Больше чем на 20 каналов подписываться самоубийственное занятие, а чаты идут вперемешку рабочие и нерабочие и всякие. В этом смысле Slack или Element (Matrix) организованные по комнатам и сгруппированные по компаниям удобнее для корпоративного использования. В десктопном телеграме есть возможность группировать каналы и чаты, но, скажем так, довольно ограниченная.

Так вот востребованная штука - это сделать аналог Slack'а поверх телеграма. Почему так? Аналог Slack - это:
1. Способ организации рабочего пространства. В нем должны быть собраны все чаты команд, каналы команды и тд.
2. Автоматизированная архивация всей корпоративной переписки в чатах.
3. Корпоративный поиск по чатам (нужен поиск только по чатам в рамках определенной группы).
4. Иные возможности как у Slack'а

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


Конечно, идеально было бы если бы в самом телеграм'е эти опции были бы вшиты, у корпоративной версии было бы платящих немало клиентов. Тех кто для коммуникаций команды сейчас выбирает между Mattermost и Element.

#ideas #tech #telegram
Тем временем в Японии специалисты NICT разработали и создали технологию передачи данных со скоростью в 1.02 Петабита в секунду [1] по кабелю длиной 51.7 километра.

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

Ссылки:
[1] https://www.sciencealert.com/researchers-just-set-a-new-record-for-data-transmission-speed

#tech
Полезное чтение про данные, технологии и не только:

Данные
- State of gender data [1] есть такая большая тема - учет гендерных особенностей в системах регистрации статистики, учетных системах или, как упоминают авторы, "data systems". Текст о том что учет гендерных данных недостаточен.
- One Data Point Can Beat Big Data [2] о том что не всё решается большими данными и понимание данных и тщательная их фильтрация, избавление от шума, могут дать больше чем просто расширение источников и объёмов данных
- Making Government Data Publicly Available: Guidance for Agencies on Releasing Data Responsibly [3] руководство о том почему и как публиковать открытые данные от Center for Democracy and Technology. Адресовано органам власти (агентствам) в США, но актуально для всех
- Closing the Data Divide for a More Equitable U.S. Digital Economy [4] о неравенстве в доступе к данным и что с этим делать на примере экономики США. В основном рекомендации для регуляторов. Акценты на том что есть многие сообщества (в нашем понимании муниципалитеты) качество данных по которым невелико и они выпадают из многих госпрограмм поддержки. Тема важная, подход системный, но, конечно, инфраструктура и экономика США от других стран существенно отличаются.

ИИ и умные города
- Why Japan is building smart cities from scratch [5] о том почему в Японии создают умные города с нуля. На самом деле в статье именно на этот вопрос ответа нет, есть рассказ про несколько городов в Японии построенных с нуля. Это интересно, хотя я подозреваю что в Китае в в этом направлении даже больший прогресс.

Технологии и программирование
- Building modern Python API backends in 2022 [6] о структуре и архитектуре современных бэкэндов приложений на Python. Конечно, на самом деле, альтернатив куда больше, но прикладной стек расписан хорошо.
- Ruff [7] очень быстрый проверятель (linter) исходного кода для Python, написанный на Rust. Показывают производительность выше в 10-100 раз чем другие аналогичные инструменты вроде flake8, pylint и т.д.

P.S. Я подумываю выделить рубрику чтение (#readings) в какой-то отдельный формат, например, еженедельную рассылку, в отличие от моей личной рассылки которую я веду не регулярно или же скорректировать личную рассылку (begtin.substack.com) и добавить туда еженедельной регулярности.

Ссылки:
[1] https://data2x.org/state-of-gender-data/
[2] https://behavioralscientist.org/gigerenzer-one-data-point-can-beat-big-data/
[3] https://cdt.org/insights/making-government-data-publicly-available-guidance-for-agencies-on-releasing-data-responsibly/
[4] https://datainnovation.org/2022/08/closing-the-data-divide-for-a-more-equitable-u-s-digital-economy/
[5] https://www.nature.com/articles/d41586-022-02218-5
[6] https://backfill.dev/blog/2022-08-21-modern-python-backends/
[7] https://github.com/charliermarsh/ruff

#opendata #data #government #policy #tech #programming #readings
Подборка интересного чтение про данные, технологии и не только:
- Can We Use AI to Communicate With Animals? [1] может ли ИИ помочь в коммуникации с животными? заметка с материалами исследований по этой теме. Примерами когда ИИ использовался для восстановления мертвых языков и того как в 2017 году с помощью алгоритма распознали трели, чириканье и писк мартышек с 90% точностью [2]. Много ссылок, важная тема. Область где применение ИИ может дать реальное изменение в человеческой жизни (и жизни животных тоже).
- The United Nations E-Government Survey 2022 [3] свежий рейтинг развития электронного правительства от ООН. Только в PDF файлах, поэтому на оценки конкретной страны сослаться сложно. Россия там в группе Very High Tier II, то есть с довольно высоким уровнем развития. Из постсоветских стран лидируют страны Балтии и хуже ситуация в Туркменистане.
- Lawless Surveillance [4] научная статья в открытом доступе об огромном объёме слежки в США, по большей части нерегулируемой и "незаконной". Полезно для понимания как это устроено в США и то что это не ограничено только одной страной, а встречается во многих технологических развитых странах.
- The Era of Fast, Cheap Genome Sequencing Is Here [5] компания Illumina, мировой почти монополист в устройствах секвенирования генома, анонсировали новые устройства в которых обещают сокращение времени секвенирования генома вдвое и не более чем за $200 за один геном. Как это повлияет на развитие рынков? Больше компаний будут предлагать услуги расшифровки, цены за расшифровку генома должны будут снижаться, а больше данных геномов будет доступно.
- Wasabi Technologies Closes $250 Million [6] конкурент Amazon Web Services, компания Wasabi Technologies привлекла раунд в $250M инвестиций и обещают технологический стек с возможностью сокращения расходов на 80% по сравнению с Amazon. Это, в первую очередь, касается облачного хранилища аналогичного AWS S3.

Ссылки:
[1] https://lastweekin.ai/p/can-we-use-ai-to-communicate-with
[2] https://www.spectrumnews.org/news/ai-interprets-marmosets-trills-chirps-peeps/
[3] https://publicadministration.un.org/en/Research/UN-e-Government-Surveys
[4] https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4111547
[5] https://archive.ph/C5eQ2#selection-464.0-464.1
[6] https://wasabi.com/press-releases/wasabi-technologies-closes-250-million-in-new-funding-to-usher-in-the-future-of-cloud-storage/

#tech #readings #un #ai
В рубрике интересных ссылок про данные, технологии и не только:
- This Implant Turns Brain Waves Into Words [1] в журнале IEEE Spectrum об импланте преобразующем мозговые волны в слова на экране. Выглядит как большой прорыв и он основан, в том числе, на нескольких больших датасетов собранных исследователями и объединённых в нейросеть: данные по нейро активности и данные кинематики (движения мускулов) при речи.

Базы данных
- Why is PostgreSQL the most loved database [2] в блоге ByteByteGo о том почему все так любят СУБД Postgres. Если кратко, то многое в ней реализовано и есть немало расширений делающих эту систему ещё лучше.
- RQLite [3] продукт по превращению SQLite в распределённую СУБД. Казалось бы зачем, если есть Postgres, но кому-то нравится. В том числе реализует богатое Data API для доступа к данным.
- Go Performance Case Studies [4] в блоги Dolt внутренние подробности того как их разработчики пишут движок СУБД на Go. Пример того как выглядит технологический евангелизм не от маркетологов, а от инженеров.

Регулирование
- Europe prepares to rewrite the rules of the Internet [5] в Arstechnica о том как европейский Digital Markets Act может поменять экосистемы технологических гигантов, в части регулирования ИИ и многого другого. Косвенными бенефициарами будут и многие другие страны.
- Businesses call for mandatory nature impact data [6] 330 компаний из 52 стран призывают ввести обязательные отчеты для крупных компаний о воздействии их и зависимости от природы и природных ресурсов. Среди подписантов очень много крупных ритейловых, банковых, косметических и строительных холдингов.

Открытые данные
- The open data revolution [7] сэр Nigel Shadbolt, основатель Института открытых данных в Великобритании, рефлексирует над последним десятилетием и будущих годах развития открытости данных.
- Hyperlocal [8] не совсем про открытые данные, но связано с ними, о изменениях на территориях и поселениях на гиперлокальном уровне и принятиях решений связанных с гиперлокальностью

Ссылки:
[1] https://spectrum.ieee.org/brain-computer-interface-speech
[2] https://blog.bytebytego.com/p/ep30-why-is-postgresql-the-most-loved
[3] https://github.com/rqlite/rqlite
[4] https://www.dolthub.com/blog/2022-10-14-golang-performance-case-studies/
[5] https://arstechnica.com/tech-policy/2022/10/europe-prepares-to-rewrite-the-rules-of-the-internet/
[6] https://www.businessfornature.org/
[7] https://theodi.org/article/the-open-data-revolution-sir-nigel-shadbolt-reflects-on-the-odis-first-decade-and-considers-what-the-next-might-hold/
[8] https://www.brookings.edu/book/hyperlocal/

#opendata #opensource #ai #tech #regulation
В The Verge статья [1] о том что Элон Маск собирается перезапустить механизм прямых сообщений в Twitter и дать возможность обмениваться зашифрованными сообщениями, аудио и видео и тд. И даже собираются сотрудничать с командой Signal в этой задаче. Звучит как конкурент как раз Signal, WhatsApp, Telegram (?), но от Элона Маска.

Может ли Twitter пройти такое преобразование? Почему бы и нет, тогда и логика с платностью аккаунтов и премиумом будет иметь больше пространств для расширения возможностей.

Иначе говоря, если Twitter сможет превратиться аналог в Telegram, то у Telegram՛а появится сильный конкурент. Хотя о чём я, скорее Telegram станет ещё более прямым аналогом Twitter'а ;)

Ссылки:
[1] https://www.theverge.com/2022/11/21/23472174/twitter-dms-encrypted-elon-musk-voice-video-calling

#twitter #telegram #tech #privacy
Минцифры РФ через Гостех разродили документ МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ ПРОИЗВОДСТВЕННОГО ПРОЦЕССА РАЗРАБОТКИ ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ С УЧЕТОМ ПРИМЕНЕНИЯ ИТЕРАЦИОННОГО ПОДХОДА К РАЗРАБОТКЕ

Он легко гуглится на Tadviser'е и других ресурсах [1].

Я о нём подробно напишу позже, чтобы бить в одну воронку надо долго прицеливаться (с). А пока вопрос с ходу - не превышает ли Минцифры свои полномочия распространяя методические рекомендации на все госконтракты и уровни государственной власти, напоминаю, они могут быть федеральные и субъектов федерации. Муниципальная власть, пока, отдельно.

Ссылки։
[1] https://www.tadviser.ru/images/1/1c/%D0%9C%D0%A0_%D0%98%D1%82%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D0%93%D0%98%D0%A1.pdf

#government #tech #readings
Полезное чтение про данные, технологии и не только:
- Parquet file format – everything you need to know! [1] короткое понятное чтение с примерами и визуализацией о том что такое формат Parquet. Автор активно рекламирует в конце Delta Lake file format от Databricks, но почему бы и нет, почитать про него тоже стоит потраченного времени.

- Dolt 1.0 [2] вышел релиз первой стабильной версии Dolt, базы данных совмещающей интерфейс MySQL и Git и сделанной по принципу git для данных. Лично я бы давно перешёл на Dolt в своих экспериментах если бы там был не аналог MySQL, а аналог MongodB, потому что плоские таблицы пригодны не для всех данных. Но конкретно Dolt очень интересная штука.

- What Happened to the Semantic Layer? [3] хороший текст про текущее состояние технологий semantic layer которые ещё называют "headless BI", автор работает на проектом Malloy в Google для языков запросов и преобразования данных в SQL-совместимых средах, так что без рекламы Malloy там текст не обошёлся, но если вы про Malloy не читали, то почитать точно вреда не будет, у технологии есть перспектива.

- Financing the common good [4] а вот это уже статья не про технологии, а про проблемы финансирования общего блага (common good) в том числе закрепленного в глобальных программах ООН и о необходимости радикальной реформы мировых финансов.

- Chandler Good Governance Index [5] вышел ежегодный индекс качества государственного управления, покрывает 104 правительства стран в мире, на постсоветском пространстве авторы не оценивали только Туркменистан и Азербайджан. Рейтинг составной, в основном учитываются другие рейтинги и опросы с подтверждённой методологией. Например, используется Open Budget Index и рейтинги оценки электронного пр-ва.

Ссылки:
[1] https://data-mozart.com/parquet-file-format-everything-you-need-to-know/
[2] https://www.dolthub.com/blog/2023-05-05-dolt-1-dot-0/
[3] https://carlineng.com/?postid=semantic-layer
[4] https://www.socialeurope.eu/financing-the-common-good
[5] https://chandlergovernmentindex.com/

#readings #data #tech
Интересный текст Silicon Valley’s Civil War [1] от Nadia Asparouhova о контрэлите из Кремниевой долине. Контрэлита, в данном случае, это совокупный образ сверхбогатых техно-олигархов вроде Маска или Цукерберга провопоставляемых условно "классической элите", а в данном случае автор ещё и сопоставляет их с Давосским форумом, как совокупное представление элиты.

В тексте хорошие примеры очень быстрой реакции именно контрэлиты в лице Ryan Petersen из Flexport по личному анализу проблем с доставкой во время COVID-19 и про Patrick Collison, сооснователя Stripe, который в течение недели собрал и раздал грантов на $50 миллионов учёным исследующим COVID-19 и долго ожидающим начала финансирования от National Institute of Health в США.

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

В итоге текст интересный, как минимум дающий дополнительный взгляд на происходящее

Ссылки:
[1] https://www.tabletmag.com/sections/news/articles/silicon-valley-civil-war

#readings #tech
Но есть и хорошие новости, крипто-пузырь сдувается в ноль [1] и, лично я считаю, что это только к лучшему. Удивительно даже как долго этот хайп длился и что у него до сих пор так много фанатов.

Ссылки:
[1] https://www.brookings.edu/articles/crypto-crashes-and-job-slashes-lessons-for-local-leaders-on-building-an-innovation-ecosystem/

#crypto #tech #readings
По поводу глобального синего экрана смерти из-за ошибки в антивирусе CrowdStrike [1] который поразил авиакомпании и тысячи критических инфраструктурных и просто компаний.

Ключевое тут - это хрупкость человечества и расширение списка мест этой хрупкости.

Но что пока радует так то что рукожопы пока лидируют в угрозе человечеству далеко обгоняя хакеров.

Ссылки:
[1] https://www.forbes.com/sites/kateoflahertyuk/2024/07/19/crowdstrike-windows-outage-what-happened-and-what-to-do-next/

#it #tech #thoughts
Ещё немного про всякое сугубо техническое, сейчас в Dateno постепенно идёт переход от индексирования тысяч маленьких порталов с общедоступными данными и метаданными, к охвату крупных каталогов. Ключевое отличие таких крупных каталогов данных в том что необходимо писать скрейперы под каждый индивидуально, а это хоть и несложно, но означает увеличение кода скрейпинга многократно что постепенно будет усложнять сопровождение кода и так далее. Но это не проблема, это вполне измеримая техническая задача.

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

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

А в случае индикаторов, хорошие владельцы таких баз данных всё чаще дают возможность выкачать их целиком в режиме bulk download. Как минимум это ECB, Eurostat, FAO, Ilostat и ещё многие. Данные там почти всегда CSV или сжатые CSV и вот тут то срабатывает магия инструментов вроде duckdb. Во всех ситуациях когда CSVшки в кодировке utf8 и имеют предсказуемые схемы данных, с помощью duckdb можно многократно ускорять их обработку заменяя обработку через датафреймы на прямые SQL запросы к CSV, даже без копирования данных в БД и не строя ни одного индекса.

В общем могу сказать что в роли "дешёвого ETL инструмента для бедных" duckdb работает прекрасно. К примеру DISTINCT по разреженному полю по CSV файлу в 15GB и 22 миллиона записей без индекса отрабатывается на 19.8 секунд. Это в режиме когда совсем без оптимизаций, без преобразований в parquet. А если в parquet преобразовать то, ожидаемо, DISTINCT отрабатывает за 0.5 секунд. Выбор очевиден 🛠 надо использовать!

Например, про данные из другого проекта, если кто-то надумает использовать данные по госконтрактам [1], то они вполне себе читаются с помощью duckdb особенно после преобразований в parquet. Например, jsonl файл с госзаказчиками вполне себе легко преобразуется в parquet после всего операции по преобразованиям занимают сотые доли секунд. В этом смысле единственный недостаток открытых данных из Госзатрат только в том что они сжаты в zip, а если сжать их в gz или публиковать в parquet, то можно ещё и ускорить подготовку данных.

Таких примеров много, главный вывод в том что можно удешевить ресурсные требования во многих задачах и многие R&D задачи решать без дополнительных серверных ресурсов, экспериментируя локально.

Ссылки:
[1] https://clearspending.ru/opendata/

#duckdb #tech #dataengineering #etl
Полезное чтение про данные технологии и не только:
- DuckDB Spatial: Supercharged Geospatial SQL (GeoPython 2024) [1] не для чтения, а для просмотра. Супер лекция про то как работать с геоданными с помощью DuckDB. Очень хочется применить к следующему геопроекту.
- Europe PMC [2] европейский поисковик по статьям в области наук о жизни. Помимо ссылок на статьи, собирают их тексты, анализируют, выдают в результатах много дополнительной извлечённой информации о финансировании, данных на которые есть ссылки в статьях, цитировании и так далее.
- Why CSV is still king [3] автор нахваливает CSV формат за простоту и переносимость, и утверждает что он ещё долгое время будет популярен. Лично я считаю что он ошибается, скорее поддержка parquet или arrow появится в стандартных инструментах. Например, в сохранении из Excel или Google Spreadsheets или OpenOffice. В командной строке и так далее.
- A.I. May Save Us or May Construct Viruses to Kill Us [4] уже не столько про технологии сколько про видение будущего. ИИ может как спасать от пандемии, так и конструировать новые вирусы.
- BENEFICIAL OWNERSHIP TRANSPARENCY ACT, 2023 [5] 31 июля 2024 года, несколько дней назад вступил в силу закон об обязательном раскрытии конечных бенефициаров компаний на Каймановых островах. Видимо стоит вскоре ожидать что эти данные будут открыты и новых расследований?
- Inside Crowdstrike's Deployment Process [6] о том как был устроен процесс деплоймента обновлений у Crowdstrike. Очень поучительно и познавательно, особенно узнать о том что это было не обновление кода, а обновление конфигурации ПО и поэтому не проходило правильный и отработанный процесс тестирования. В общем, в компании забыли что configuration = code.

Ссылки:
[1] https://www.youtube.com/watch?v=hoyQnP8CiXE
[2] https://europepmc.org/
[3] https://konbert.com/blog/why-csv-is-still-king
[4] https://www.nytimes.com/2024/07/27/opinion/ai-advances-risks.html
[5] https://legislation.gov.ky/cms/images/LEGISLATION/PRINCIPAL/2023/2023-0013/BeneficialOwnershipTransparencyAct2023_Act%2013%20of%202023.pdf
[6] https://overmind.tech/blog/inside-crowdstrikes-deployment-process

#opendata #opensource #ai #tech #readings
К вопросу о poor man data engineering, как обрабатывать данные в условиях ограниченных ресурсов с минимальными нагрузками на диск и на оперативную память, в первую очередь.

В работе в Dateno есть задача по добавлению стат. индикаторов в основной индекс и расширение фасетов на данными о частоте обновления индикаторов и временном промежутке который он охватывает (год начала и год окончания). Не у всех датасетов такие метаданные есть и есть особенность датасетов Европейского центрального банка (ECB) в том что для массовой выгрузки доступны сами данные, но не метаданные. Хотя обычно наоборот. А в данном случае можно скачать все значения, а метаданные из них надо извлечь.

Эти значения публикуются в виде коллекции из 108 CSV файлов общим объёмом в 93GB. Это не то чтобы много, но много для статистики и для обработки на десктопе. Первая мысль которая возникает, а не уменьшить ли эти данные в объёме. Можно их сжать, но ещё эффективнее преобразовать в parquet. После преобразования они занимают 664 MB. Это 0,7% от изначального объёма, итого сжатие в 140 раз! Такая эффективность редкость, обычно сжатие в 5-15 раз, но здесь накладывается эффект колоночного сжатия поскольку данные ECB денормализованные, эффективность хранения там уступает полноте публикации и простоте раскрытия.

Далее обработка. Чтобы получить метаданные каждого индикатора надо:
1. Получить список уникальных идентификаторов индикаторов
2. Для каждого ключа сделать запрос одной записи для извлечения метаданных
3. Получить минимальное и максимальное значения временного периода
4. Извлечь год из минимального и максимального значения если период не равен году.

Итого 3 запроса, которые, наверняка, можно было бы оптимизировать до 2-х и которые можно делать напрямую к файлам parquet. Однако ситуация осложняется тем что эти файлы parquet хотя и хорошо сжаты, но могут содержать до 570+ тысяч индикаторов, как это, например, происходит с датасетом Securities Issues Statistics, который в оригинале составляет 19GB CSV файл и содержит 30 миллионов строк.

При работе с этим датасетом, даже после преобразования в parquet, DuckDB "съедает" до 15GB RAM и работает, хотя и быстро, но не так быстро как хотелось бы.

Варианты решения:
1. Попробовать преобразовать данные в базу DuckDB, построить индексы и так обрабатывать. Минус: резко увеличивается объём хранения данных, не увеличивается скорость обработки.
2. Попробовать нормализовать данные и извлекать метаданные из нормализованных баз. Минус: время на преобразование многократно больше времени сбора метаданных из существующих parquet файлов, а также у разных датасетов разная схема данных и требуется потратить больше времени на их анализ.

Варианты с тем чтобы загрузить в какую-то другую СУБД или даже не рассматривались поскольку задача именно в обработке на среднемощном десктопе/ноутбуке и без резкого роста объёмов хранения.

Итоговое решение оказалось очень простым. Специфика запросов в том что они полностью локализованы внутри данных конкретного индикатора.
Но, так повезло, что в этих датасетах индикаторы разделены по группам являющихся странами или территориями, от 8 до 33 в одном датасете и разделять можно по ним. Данные отдельных индикаторов полностью попадают в один из разделённых файлов. И, одна из фишек DuckDB - это очень дешёвое разделение данных с точки зрения скорости и нагрузки на память. До обработки большого датасета через серию COPY TO операций из него создаются десятки меньших .parquet файлов каждый из которых обрабатывается по отдельности.

Итого:
- средняя скорость однопоточной обработки достигает 78 индикаторов в секунду
- потребление RAM не превышает 100MB, а в среднем держится менее 50MB
- потребление диска +664MB, теперь не в 140 раз меньше чем оригинальные CSV файлы, а только в 70 раз, но всё ещё очень и очень мало.

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

#data #thoughts #tech #duckdb #dataengineering
Подборка ссылок про данные, технологии и не только:
- The Open Data Editor is now ready for the pilot phase [1] обновлённый редактор для подготовки датасетов готов для тестирования, полезный инструмент для всех кто публикует данные с помощью CKAN
- To Be Born in a Bag [2] о исследованиях в разработки искусственной матки и возможностью создавать живых существ искусственным образом. Напоминает воплощение научной фантастики из серии книг Лоис Буджолд. А заодно и там же про создание мамонтов искусственным образом
- DuckDB foundation [3] один из успехов DuckDB в том что это фонд успешно взаимодействующий с несколькими компаниями контрибьюторами. Полезное чтение про успешную модель существования открытого кода.
- The Disappearance of an Internet Domain [4] Великобритания отказывается от суверенитета над островами Чагос и передаёт их Маврикию. Что такое острова Чагос? Это доменная зона .io. Автор рассуждает о его судьбе.
- The Prosopography of Anglo-Saxon England (PASE) [5] онлайн база данных всех британцев как-либо упомянутых в литературных источниках с 6 по 11 века нашей эры. Почти 20 тысяч персон
- Bots, so many Bots [6] боты составляют более 60% из 1 миллиона пользователей ProductHunt. А если говорить о других социальных площадках, то и там ботов всё больше. В какой-то момент должен будет возникнуть перелом когда такие площадки станут бесполезными.
- DatAasee - A Metadata-Lake for Libraries [7] научная статья и открытый код [8] каталога метаданных и озера данных для библиотек.

Ссылки:
[1] https://blog.okfn.org/2024/10/02/the-open-data-editor-is-now-ready-for-the-pilot-phase/
[2] https://press.asimov.com/articles/artificial-wombs
[3] https://davidsj.substack.com/p/foundation
[4] https://every.to/p/the-disappearance-of-an-internet-domain
[5] https://pase.ac.uk/pase/
[6] https://wakatime.com/blog/67-bots-so-many-bots
[7] https://www.semanticscholar.org/reader/7166be7af2fd4bc9cf73d19f076180d9ca83b029
[8] https://github.com/ulbmuenster/dataasee

#opendata #data #tech #dataengineering
Полезное чтение про данные, технологии и не только:
- All the data can be yours [1] автор пишет про реверс-инжиниринг API. Ха, подержи моё пиво! Я могу рассказать об этом куда больше, а было бы и время то и книжку написать. Но читать про опыт других всегда полезно, всегда есть что-то новое.
- AI protein-prediction tool AlphaFold3 is now open source [2] в Google заопенсорсили AlphaFold3, движок для предсказания структур протеинов с помощью ИИ. Для некоммерческого использования, конечно.
- The Death and Life of Prediction Markets at Google [3] неожиданное и любопытное, про внутренние инструменты предсказаний в Google и, заодно, немало про их внутреннюю культуру.

Ссылки:
[1] https://jero.zone/posts/reverse-engineering-apis
[2] https://www.nature.com/articles/d41586-024-03708-4
[3] https://asteriskmag.com/issues/08/the-death-and-life-of-prediction-markets-at-google

#readings #tech