Автоматизированное управление расширенной статистикой в PostgreSQL
Здесь я описываю результаты разработки одного расширения Postgres, которое сделал просто ради любопытства. Суть его состоит в автоматическом управлении расширенной статистикой по колонкам таблицы. Идея родилась в момент, когда заканчивая работу над очередным "умным" query-driven продуктом улучшения качества планирования Postgres я осознал, что архитектура этой СУБД пока ещё не готова к полностью автономной работе - автоматическому детектированию плохих планов и подстройки оптимизатора. Так может быть зайти с другой стороны, и попробовать сделать автономный data-driven помогатор?
Читать: https://habr.com/ru/articles/856952/
#ru
@database_design | Другие наши каналы
Здесь я описываю результаты разработки одного расширения Postgres, которое сделал просто ради любопытства. Суть его состоит в автоматическом управлении расширенной статистикой по колонкам таблицы. Идея родилась в момент, когда заканчивая работу над очередным "умным" query-driven продуктом улучшения качества планирования Postgres я осознал, что архитектура этой СУБД пока ещё не готова к полностью автономной работе - автоматическому детектированию плохих планов и подстройки оптимизатора. Так может быть зайти с другой стороны, и попробовать сделать автономный data-driven помогатор?
Читать: https://habr.com/ru/articles/856952/
#ru
@database_design | Другие наши каналы
Влияние источника времени на результат explain в PostgreSQL
При выполнении тестов периодически сталкивался с неожиданными изменениями результатов тестов после рестарта linux и при обновлении версии linux. Причиной оказался источник времени. В статье рассмотрен как влияет источник времени на выполнение команды explain analyze
Читать: https://habr.com/ru/articles/889368/
#ru
@database_design | Другие наши каналы
При выполнении тестов периодически сталкивался с неожиданными изменениями результатов тестов после рестарта linux и при обновлении версии linux. Причиной оказался источник времени. В статье рассмотрен как влияет источник времени на выполнение команды explain analyze
Читать: https://habr.com/ru/articles/889368/
#ru
@database_design | Другие наши каналы
Развенчиваем мифы о MongoDB: безопасность, масштабируемость и производительность
Многие стереотипы о MongoDB устарели. Сегодня платформа обеспечивает надежную защиту данных, эффективное масштабирование и непревзойденную производительность. MongoDB Atlas поддерживает мультиоблачные развертывания и шифрование запросов. Узнайте больше, чтобы не оставаться в прошлом! Новые возможности шифрования в MongoDB Atlas
MongoDB Atlas улучшает безопасность данных с помощью ключей управления (CMK) и TLS 1.3. Теперь пользователи могут управлять ключами в частной сети, исключая риски, связанные с публичным доступом. Пусть ваши данные будут защищены на всех стадиях их обработки! Узнать больше о нововведениях можно в документации MongoDB.
Читать подробнее
#en
@database_design | Другие наши каналы
Многие стереотипы о MongoDB устарели. Сегодня платформа обеспечивает надежную защиту данных, эффективное масштабирование и непревзойденную производительность. MongoDB Atlas поддерживает мультиоблачные развертывания и шифрование запросов. Узнайте больше, чтобы не оставаться в прошлом! Новые возможности шифрования в MongoDB Atlas
MongoDB Atlas улучшает безопасность данных с помощью ключей управления (CMK) и TLS 1.3. Теперь пользователи могут управлять ключами в частной сети, исключая риски, связанные с публичным доступом. Пусть ваши данные будут защищены на всех стадиях их обработки! Узнать больше о нововведениях можно в документации MongoDB.
Читать подробнее
#en
@database_design | Другие наши каналы
Техника TOAST (The Oversized-Attribute Storage Technique) в PostgreSQL
Если строка не помещается в блок (страницу), то в PostgreSQL применяется техника выноса полей в отдельную таблицу, называемую TOAST-таблица. Техника выноса и хранения называется TOAST (The Oversized-Attribute Storage Technique, техника хранения атрибутов большого размера). В статье достаточно детально рассматривается алгоритм работы TOAST. Знание алгорима и его граничные значения полезно, чтобы понимать каким образом хранятся данные в таблицах.
Читать: https://habr.com/ru/articles/888926/
#ru
@database_design | Другие наши каналы
Если строка не помещается в блок (страницу), то в PostgreSQL применяется техника выноса полей в отдельную таблицу, называемую TOAST-таблица. Техника выноса и хранения называется TOAST (The Oversized-Attribute Storage Technique, техника хранения атрибутов большого размера). В статье достаточно детально рассматривается алгоритм работы TOAST. Знание алгорима и его граничные значения полезно, чтобы понимать каким образом хранятся данные в таблицах.
Читать: https://habr.com/ru/articles/888926/
#ru
@database_design | Другие наши каналы
Кэширование значений последовательностей в PostgreSQL
У последовательностей есть параметр
Быстрый путь вставки в индексы
В PostgreSQL есть оптимизация вставки в индекс типа btree, позволяющая не спускаться с корня дерева индекса. Серверный процесс, который выполнил вставку в правый листовой блок, запоминает ссылку на него и при последующей вставке, если новое значение больше предыдущего (или пусто) и не проходит путь от корня до листового блока. Оптимизация используется при числе уровней в индексе начиная со второго (макрос
Читать: https://habr.com/ru/articles/889156/
#ru
@database_design | Другие наши каналы
У последовательностей есть параметр
cache, который определяет сколько значений из последовательности будет кэшировать серверный процесс в своей локальной памяти для будущих вставок в течение сессии. Последовательности используются первичными и уникальными ключами. По умолчанию значения последовательностей не кэшируются. Кэширование может снизить произвдительность и сделать структуру индекса не оптимальной.Быстрый путь вставки в индексы
В PostgreSQL есть оптимизация вставки в индекс типа btree, позволяющая не спускаться с корня дерева индекса. Серверный процесс, который выполнил вставку в правый листовой блок, запоминает ссылку на него и при последующей вставке, если новое значение больше предыдущего (или пусто) и не проходит путь от корня до листового блока. Оптимизация используется при числе уровней в индексе начиная со второго (макрос
BTREE_FASTPATH_MIN_LEVEL).Читать: https://habr.com/ru/articles/889156/
#ru
@database_design | Другие наши каналы
Новый уровень работы с Oracle E-Business Suite
Oracle представила возможность использовать Natural Language Query с помощью генеративного ИИ в E-Business Suite Release 12.2. Теперь пользователи могут задавать вопросы на естественном языке, что упрощает взаимодействие с системой и ускоряет получение нужных данных.
Читать подробнее
#en
@database_design | Другие наши каналы
Oracle представила возможность использовать Natural Language Query с помощью генеративного ИИ в E-Business Suite Release 12.2. Теперь пользователи могут задавать вопросы на естественном языке, что упрощает взаимодействие с системой и ускоряет получение нужных данных.
Читать подробнее
#en
@database_design | Другие наши каналы
Oracle
Enabling Natural Language Query of EBS 12.2 Using Oracle Generative AI Now Available
Oracle E-Business Suite (EBS) provides many powerful querying and sophisticated reporting capabilities such as EBS Enterprise Command Centers (ECC). Oracle Select AI goes a step further by enabling users to ask EBS questions in their natural language and…
Переход ZEE5 на MongoDB Atlas: опыт миграции
ZEE5, ведущая индийская платформа для потокового видео, успешно перенесла более 40 микросервисов на MongoDB Atlas, обеспечив непрерывную работу для 119,5 миллионов пользователей. Благодаря тщательному планированию и поддержке MongoDB, миграция прошла без простоев и нарушений в обслуживании. Развенчиваем мифы о MongoDB: безопасность и масштабирование
MongoDB часто недооценивают из-за мифов о его безопасности и сложности масштабирования. Однако, современные функции, такие как шифрование на всех этапах, поддержка кросс-облачных развертываний и автоматическое масштабирование в Atlas, обеспечивают надежность и производительность. Узнайте больше о возможностях MongoDB!
Читать подробнее
#en
@database_design | Другие наши каналы
ZEE5, ведущая индийская платформа для потокового видео, успешно перенесла более 40 микросервисов на MongoDB Atlas, обеспечив непрерывную работу для 119,5 миллионов пользователей. Благодаря тщательному планированию и поддержке MongoDB, миграция прошла без простоев и нарушений в обслуживании. Развенчиваем мифы о MongoDB: безопасность и масштабирование
MongoDB часто недооценивают из-за мифов о его безопасности и сложности масштабирования. Однако, современные функции, такие как шифрование на всех этапах, поддержка кросс-облачных развертываний и автоматическое масштабирование в Atlas, обеспечивают надежность и производительность. Узнайте больше о возможностях MongoDB!
Читать подробнее
#en
@database_design | Другие наши каналы
Новый подход к ML с помощью ORiGAMi от MongoDB
MongoDB предлагает архитектуру ORiGAMi для работы с полуструктурированными данными. Она использует трансформеры для обучения на JSON-документах, устраняя необходимость в их преобразовании в табличную форму. Эта инновация позволяет проводить машинное обучение непосредственно на документы. Подробности на GitHub и arXiv. Масштабная миграция ZEE5 на MongoDB Atlas: как это удалось без простоя
ZEE5, ведущая индийская платформа потокового видео, успешно перевела более 40 микросервисов на MongoDB Atlas, сохранив непрерывность сервиса для 119.5 млн пользователей. Проект, поддерживаемый MongoDB Professional Services, включал сложные тестирования и использование инструментов для исключения простоя. Полная автоматизация и гибкость MongoDB Atlas обеспечивают ZEE5 готовность справляться с пиковыми нагрузками.
Читать подробнее
#en
@database_design | Другие наши каналы
MongoDB предлагает архитектуру ORiGAMi для работы с полуструктурированными данными. Она использует трансформеры для обучения на JSON-документах, устраняя необходимость в их преобразовании в табличную форму. Эта инновация позволяет проводить машинное обучение непосредственно на документы. Подробности на GitHub и arXiv. Масштабная миграция ZEE5 на MongoDB Atlas: как это удалось без простоя
ZEE5, ведущая индийская платформа потокового видео, успешно перевела более 40 микросервисов на MongoDB Atlas, сохранив непрерывность сервиса для 119.5 млн пользователей. Проект, поддерживаемый MongoDB Professional Services, включал сложные тестирования и использование инструментов для исключения простоя. Полная автоматизация и гибкость MongoDB Atlas обеспечивают ZEE5 готовность справляться с пиковыми нагрузками.
Читать подробнее
#en
@database_design | Другие наши каналы
Влияние удержания горизонта базы данных PostgreSQL на производительность теста pgbench
По умолчанию pgbench запускает тест TPC-B (sort of) и используется для быстрой оценки производительности PostgreSQL. В статье рассматривается насколько удержание горизонта базы данных (vacuum cleanup horizon) уменьшает прозводительность (значение tps теста). Горизонт удерживается на время выполнения любого запроса или транзакции. Приводится запрос для наблюдения за горизонтом баз данных и параметры, которые используются для защиты от долгих транзакций и запросов.
Читать: https://habr.com/ru/articles/890044/
#ru
@database_design | Другие наши каналы
По умолчанию pgbench запускает тест TPC-B (sort of) и используется для быстрой оценки производительности PostgreSQL. В статье рассматривается насколько удержание горизонта базы данных (vacuum cleanup horizon) уменьшает прозводительность (значение tps теста). Горизонт удерживается на время выполнения любого запроса или транзакции. Приводится запрос для наблюдения за горизонтом баз данных и параметры, которые используются для защиты от долгих транзакций и запросов.
Читать: https://habr.com/ru/articles/890044/
#ru
@database_design | Другие наши каналы
✍1
Новый диск в облаке Selectel — настройте IOPS под свои задачи
Если вы работаете с облачными ресурсами и управляете инфраструктурой, то наверняка знаете, как важно правильно настроить дисковую подсистему. В Selectel появилась новая возможность: теперь в облаке можно самостоятельно регулировать производительность дисков, не привязываясь к фиксированным конфигурациям.
Это значит, что больше не нужно заранее выбирать «с запасом» или рисковать нехваткой производительности в пиковые моменты. Вы просто настраиваете параметры диска под свою нагрузку — и меняете их на лету. Без даунтайма, сложных миграций или дополнительных настроек.
Читать: https://habr.com/ru/companies/selectel/articles/890120/
#ru
@database_design | Другие наши каналы
Если вы работаете с облачными ресурсами и управляете инфраструктурой, то наверняка знаете, как важно правильно настроить дисковую подсистему. В Selectel появилась новая возможность: теперь в облаке можно самостоятельно регулировать производительность дисков, не привязываясь к фиксированным конфигурациям.
Это значит, что больше не нужно заранее выбирать «с запасом» или рисковать нехваткой производительности в пиковые моменты. Вы просто настраиваете параметры диска под свою нагрузку — и меняете их на лету. Без даунтайма, сложных миграций или дополнительных настроек.
Читать: https://habr.com/ru/companies/selectel/articles/890120/
#ru
@database_design | Другие наши каналы
Жизненный цикл данных под контролем: знакомство с ILM на примере расширения для Postgres Pro Enterprise 17
Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.
Читать: https://habr.com/ru/companies/postgrespro/articles/890238/
#ru
@database_design | Другие наши каналы
Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.
Читать: https://habr.com/ru/companies/postgrespro/articles/890238/
#ru
@database_design | Другие наши каналы
Жизненный цикл данных под контролем: знакомство с ILM на примере расширения для Postgres Pro Enterprise 17
Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.
Читать: https://habr.com/ru/companies/postgrespro/articles/890238/
#ru
@database_design | Другие наши каналы
Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.
Читать: https://habr.com/ru/companies/postgrespro/articles/890238/
#ru
@database_design | Другие наши каналы
Сжатые структуры данных
Введение
Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.
Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.
Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области сжатых структур данных (succinct data structure). Невежество может завести очень далеко.
Что же такое сжатые структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.
Все мы пользуемся массивами и хэш-таблицами5, популярны также различные деревья. Нам не нужно полностью понимать их устройство, чтобы эффективно пользоваться их свойствами. А теперь я задаюсь вопросом, почему же люди не используют сжатые структуры данных чаще.
Я решил, что стоит немного о них рассказать.
Читать: https://habr.com/ru/companies/ruvds/articles/890232/
#ru
@database_design | Другие наши каналы
Введение
Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.
Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.
Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области сжатых структур данных (succinct data structure). Невежество может завести очень далеко.
Что же такое сжатые структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.
Все мы пользуемся массивами и хэш-таблицами5, популярны также различные деревья. Нам не нужно полностью понимать их устройство, чтобы эффективно пользоваться их свойствами. А теперь я задаюсь вопросом, почему же люди не используют сжатые структуры данных чаще.
Я решил, что стоит немного о них рассказать.
Читать: https://habr.com/ru/companies/ruvds/articles/890232/
#ru
@database_design | Другие наши каналы
MongoDB: усиление ИИ-возможностей через партнёрства
В феврале MongoDB объявила о покупке Voyage AI, что улучшит качество извлечения данных для ИИ-приложений. Вместе с новыми партнёрами, такими как CopilotKit и Varonis, MongoDB стремится интегрировать передовые технологии, обеспечивая высокую точность и безопасность в работе с данными. Революция в ML: представляем ORiGAMi
ORiGAMi от MongoDB предлагает новое решение для классификации пользователей. Этот инструмент позволяет обучать модели прямо на необработанных документах, сохраняя их структуру, и автоматически предсказывать сегменты пользователей. Узнать больше можно на GitHub.
Читать подробнее
#en
@database_design | Другие наши каналы
В феврале MongoDB объявила о покупке Voyage AI, что улучшит качество извлечения данных для ИИ-приложений. Вместе с новыми партнёрами, такими как CopilotKit и Varonis, MongoDB стремится интегрировать передовые технологии, обеспечивая высокую точность и безопасность в работе с данными. Революция в ML: представляем ORiGAMi
ORiGAMi от MongoDB предлагает новое решение для классификации пользователей. Этот инструмент позволяет обучать модели прямо на необработанных документах, сохраняя их структуру, и автоматически предсказывать сегменты пользователей. Узнать больше можно на GitHub.
Читать подробнее
#en
@database_design | Другие наши каналы
Синхронизация файлов при запуске экземпляра PostgreSQL
Если экземпляр PostgreSQL был некорректно остановлен, то перед восстановлением файлов выполняется синхронизаций всех файлов кластера. Способ синхронизации определяется параметром конфигурации recovery_init_sync_method. В статье рассматривается, как ускорить запуск экземпляра и резервирование, если в директории PGDATA имеется много файлов.
Читать: https://habr.com/ru/articles/890354/
#ru
@database_design | Другие наши каналы
Если экземпляр PostgreSQL был некорректно остановлен, то перед восстановлением файлов выполняется синхронизаций всех файлов кластера. Способ синхронизации определяется параметром конфигурации recovery_init_sync_method. В статье рассматривается, как ускорить запуск экземпляра и резервирование, если в директории PGDATA имеется много файлов.
Читать: https://habr.com/ru/articles/890354/
#ru
@database_design | Другие наши каналы
Уменьшаем базу данных в 2000 раз при помощи Rust
Этот проект на выходные начался с изучения репозитория открытых данных сети общественного транспорта Парижа, содержащего различные API для выполнения в реальном времени запросов отправления транспорта, изменений в графике движения и так далее. Моё внимание привлёк раздел о многократном использовании данных, потому что в нём были приведены внешние проекты, использующие эти открытые данные. В частности веб-сайт статуса сети RATP предоставляет удобный интерфейс для визуализации истории нарушений на линиях движения метро, сети экспрессов/поездов и трамваев.
Обычный день нарушений на ratpstatus.fr.
В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]
Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.
Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!
Читать: https://habr.com/ru/articles/889874/
#ru
@database_design | Другие наши каналы
Этот проект на выходные начался с изучения репозитория открытых данных сети общественного транспорта Парижа, содержащего различные API для выполнения в реальном времени запросов отправления транспорта, изменений в графике движения и так далее. Моё внимание привлёк раздел о многократном использовании данных, потому что в нём были приведены внешние проекты, использующие эти открытые данные. В частности веб-сайт статуса сети RATP предоставляет удобный интерфейс для визуализации истории нарушений на линиях движения метро, сети экспрессов/поездов и трамваев.
Обычный день нарушений на ratpstatus.fr.
В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]
Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.
Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!
Читать: https://habr.com/ru/articles/889874/
#ru
@database_design | Другие наши каналы
Уменьшаем базу данных в 2000 раз при помощи Rust
Этот проект на выходные начался с изучения репозитория открытых данных сети общественного транспорта Парижа, содержащего различные API для выполнения в реальном времени запросов отправления транспорта, изменений в графике движения и так далее. Моё внимание привлёк раздел о многократном использовании данных, потому что в нём были приведены внешние проекты, использующие эти открытые данные. В частности веб-сайт статуса сети RATP предоставляет удобный интерфейс для визуализации истории нарушений на линиях движения метро, сети экспрессов/поездов и трамваев.
Обычный день нарушений на ratpstatus.fr.
В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]
Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.
Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!
Читать: https://habr.com/ru/articles/889874/
#ru
@database_design | Другие наши каналы
Этот проект на выходные начался с изучения репозитория открытых данных сети общественного транспорта Парижа, содержащего различные API для выполнения в реальном времени запросов отправления транспорта, изменений в графике движения и так далее. Моё внимание привлёк раздел о многократном использовании данных, потому что в нём были приведены внешние проекты, использующие эти открытые данные. В частности веб-сайт статуса сети RATP предоставляет удобный интерфейс для визуализации истории нарушений на линиях движения метро, сети экспрессов/поездов и трамваев.
Обычный день нарушений на ratpstatus.fr.
В репозитории GitHub сайта ratpstatus.fr содержатся все файлы JSON, запрашиваемые из open-data API каждые две минуты. Данные сохраняются там уже почти год. Репозиторий с 188 тысячами коммитов и более чем 10 ГБ собранных данных всего лишь в одном последнем коммите (измерено при помощи git clone --depth=1) — это определённо интересный выбор для реализации базы данных! Уточню, что в этом посте я не собираюсь критиковать эту систему. Веб-сайт статуса сети RATP — превосходный веб-сайт, мгновенно и стабильно предоставляющий полезную информацию без обычного сегодня раздувания веб-сайтов. [И нет, сайт не написан на Rust. Веб-сайт на PHP тоже может быть невероятно быстрым!]
Тем не менее, размер базы данных (10 ГБ) заставил меня призадуматься: а можно ли сжать её лучше, потратив на это приемлемое количество времени (скажем выходные)? В этом подробном посте я расскажу, как использовал шаблон проектирования interning в Rust, чтобы сжать этот датасет в две тысячи раз! Мы посмотрим, как лучше структурировать сам интернер, как настроить схему данных для оптимальной работы с ним и как сделать так, чтобы сериализация использовала interning наилучшим образом.
Если у вас в хранилище накопилось множество файлов JSON, то вам стоит прочитать эту статью!
Читать: https://habr.com/ru/articles/889874/
#ru
@database_design | Другие наши каналы
ETL-потоки «VACUUM FULL», или Как учесть особенности жизненного цикла данных в условиях высоконагруженных хранилищ
Привет, Хабр! Наша команда работает в Сбере и отвечает за развитие аналитического хранилища данных (АХД), а также обеспечение финансово‑аналитической информацией ключевых подразделений. В нашем технологическом стеке используются Greenplum на основе PostgreSQL и Hadoop, что позволяет эффективно обрабатывать большие объёмы данных, гарантируя их надёжное хранение и своевременную доступность для потребителей.
В этой статье мы расскажем об использовании ETL-потоков
Читать: https://habr.com/ru/companies/sberbank/articles/890496/
#ru
@database_design | Другие наши каналы
Привет, Хабр! Наша команда работает в Сбере и отвечает за развитие аналитического хранилища данных (АХД), а также обеспечение финансово‑аналитической информацией ключевых подразделений. В нашем технологическом стеке используются Greenplum на основе PostgreSQL и Hadoop, что позволяет эффективно обрабатывать большие объёмы данных, гарантируя их надёжное хранение и своевременную доступность для потребителей.
В этой статье мы расскажем об использовании ETL-потоков
AUTOVACUUM в наших СУБД.Читать: https://habr.com/ru/companies/sberbank/articles/890496/
#ru
@database_design | Другие наши каналы
Лучшие SATA SSD-накопители 2025: полное сравнение моделей и характеристик
Несмотря на активное развитие интерфейса NVMe и появление SSD PCIe Gen 5, твердотельные накопители 2,5” по-прежнему остаются востребованным решением для широкого спектра задач. Ограничение пропускной способности интерфейса SATA III компенсируется высокой совместимостью, стабильностью работы и невысокой стоимостью хранения данных в пересчете на гигабайт. Поэтому не стоит списывать их со счетов. Особенно, когда рабочие сценарии не предполагают сверхвысоких скоростей чтения и записи SSD.
Читать: https://habr.com/ru/companies/x-com/articles/890566/
#ru
@database_design | Другие наши каналы
Несмотря на активное развитие интерфейса NVMe и появление SSD PCIe Gen 5, твердотельные накопители 2,5” по-прежнему остаются востребованным решением для широкого спектра задач. Ограничение пропускной способности интерфейса SATA III компенсируется высокой совместимостью, стабильностью работы и невысокой стоимостью хранения данных в пересчете на гигабайт. Поэтому не стоит списывать их со счетов. Особенно, когда рабочие сценарии не предполагают сверхвысоких скоростей чтения и записи SSD.
Читать: https://habr.com/ru/companies/x-com/articles/890566/
#ru
@database_design | Другие наши каналы
Obsidian: все что нужно знать о Callout
В этой статье я подробно расскажу о возможностях использования Callout в Obsidian, покажу существующие решения, а также объясню, как создавать свои собственные, индивидуальные типы Callout-блоков.
Рассмотрим при чем здесь цитаты (Blackquotes).
Дополнительно поделюсь полезными надстройками и шаблонами
Читать: https://habr.com/ru/articles/890598/
#ru
@database_design | Другие наши каналы
В этой статье я подробно расскажу о возможностях использования Callout в Obsidian, покажу существующие решения, а также объясню, как создавать свои собственные, индивидуальные типы Callout-блоков.
Рассмотрим при чем здесь цитаты (Blackquotes).
Дополнительно поделюсь полезными надстройками и шаблонами
Читать: https://habr.com/ru/articles/890598/
#ru
@database_design | Другие наши каналы
Как удалось сделать флешку в Linux-е с UEFI и UniversalAMDFormBrowser
Наверняка Вы знакомы с загрузочными флэшками usb. Тех самых, с которых устанавливали Windows, или же запускали UniversalAMDFormBrowser. Речь пойдет как раз о usb с типом EFI. Эти флэшки вставляются в выключенный компьютер. При включении, они загружаются через Boot Menu. На ноутбуках это меню может быть доступно по кнопкам "F12" ИЛИ "F10".
В Windows же есть программа Rufus для форматирования таких флэшек, а что насчёт Linux-а? Для Linux-а же, как всегда, придётся читать дольше, чтобы найти что-то стоящее. Хотите узнать, что же это? Вам сюда.
Мануал
Читать: https://habr.com/ru/articles/890632/
#ru
@database_design | Другие наши каналы
Наверняка Вы знакомы с загрузочными флэшками usb. Тех самых, с которых устанавливали Windows, или же запускали UniversalAMDFormBrowser. Речь пойдет как раз о usb с типом EFI. Эти флэшки вставляются в выключенный компьютер. При включении, они загружаются через Boot Menu. На ноутбуках это меню может быть доступно по кнопкам "F12" ИЛИ "F10".
В Windows же есть программа Rufus для форматирования таких флэшек, а что насчёт Linux-а? Для Linux-а же, как всегда, придётся читать дольше, чтобы найти что-то стоящее. Хотите узнать, что же это? Вам сюда.
Мануал
Читать: https://habr.com/ru/articles/890632/
#ru
@database_design | Другие наши каналы