DATABASE DESIGN – Telegram
DATABASE DESIGN
1.41K subscribers
2.08K photos
3 videos
5.32K links
Лучшие материалы по работе с хранилищами данных на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Highload-приложения: технологии для обработки больших объемов данных и запросов

Рассказали, что такое highload-система, как она справляется с большими нагрузками на сервер и о других важных аспектах данной области.

Читать: «Highload-приложения: технологии для обработки больших объемов данных и запросов»
Переезд c PostgreSQL на YDB. Кейс сервиса Яндекс Игры

Привет! Меня зовут Александр Смолин. Я бэкенд-разработчик в команде Яндекс Игр. Уже два года мы используем YDB для задач сервиса. В статье расскажу, как мы в Яндекс Играх внедряли YDB, зачем это было нужно, с какими сложностями столкнулись и какие результаты у нас сейчас.


Читать: https://habr.com/ru/companies/yandex_cloud_and_infra/articles/747998/
Ping пакеты как временное хранилище данных на python raw socket

Payload (данные) в ping пакете действительно есть, однако до реальной пользы им далеко - это английский алфавит (нет, я не испытываю ненависть к латинице, просто мне хотелось бы уметь редактировать это содержимое).


Читать: https://habr.com/ru/articles/748230/
Lock-free reservation in 23c: how to start with

This blog posting illustrates the basice of lock-free reservations in 23c

Read: https://blogs.oracle.com/coretec/post/lock-free-reservation-in-23c
Tata Digital Harmonizes a Variety of Data, Powered by MongoDB Atlas

Read: https://www.mongodb.com/blog/post/tata-digital-harmonizes-variety-data-powered-mongodb-atlas
A Peek Under the Hood of Distributed SQL Engines

Read: https://mariadb.com/?p=37006
Amplifying Retail Operations with Generative AI and Vector Search: The Unexplored Potential

Read: https://www.mongodb.com/blog/post/amplifying-retail-operations-generative-ai-vector-search
KeyDB и Redis: в поисках серебряной пули — in-memory replicated DB (Replicated IMDB)

На кластерах клиентов, которые мы обслуживаем, есть как «одноголовые» инсталляции Redis (обычно для кэшей, которые не страшно потерять), так и более отказоустойчивые решения — Redis Sentinel или Redis Cluster. По нашему опыту, во всех трех вариантах можно безболезненно переключиться с Redis на KeyDB и получить прирост производительности. Точнее, избавиться от бутылочного горлышка Redis в одно ядро. Хотя в новых версиях Redis(r) появилась обработка I/O в отдельных тредах, иногда этого бывает недостаточно.

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

В итоге у нас есть несколько реплик довольно дорогого in-memory-хранилища, а в рабочем процессе используется только часть из них. Остальные — на подхвате. Хотя в большинстве кейсов операции с in-memory NoSQL DB — это именно операции чтения.

Однако если посмотреть в сторону KeyDB, то можно увидеть, что там есть киллер-фича — и даже две: я говорю о режимах Active Replica и Multi-Master. Использование этих режимов позволяет получить распределенный отказоустойчивый KeyDB, совместимый с Redis, писать в любую ноду, читать из любой ноды. И все это с точки зрения приложения выглядит как один экземпляр Redis без всяких Sentinel — то есть в коде приложения ничего менять не придется.

Звучит как фантастика?


Читать: https://habr.com/ru/companies/flant/articles/747760/
Как мы снизили нагрузку на SAP HANA незаметно для пользователей

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

Читайте, что именно мы сделали и какой был результат.


Читать: https://habr.com/ru/companies/sapiens_solutions/articles/747142/
Алгоритм быстрого поиска при помощи хэширования

В этой статье я хочу представить мой алгоритм оптимизации суммирования ряда чисел в массиве (на примере контейнера map).

Итак, дано задание
Есть некая электронная книга, которую одновременно читает неограниченное количество читателей. Нужно сделать так, чтобы любой читатель в любой момент мог проверить, сколько еще читателей читают ту же страницу, что и он. Предложена наивное решение хранить в map<int,int в качестве ключа номера страниц, в качестве значения- количество прочитавших их пользователей. Конечно, при таком подходе программа медленно работает с большими тестами потому, что количество итераций по контейнеру map равняется числу прочитанных пользователем страниц. То есть, если пользователь прочел 1000 страниц из 1000 возможных, то в цикле нужно будет сделать 1000 итераций, и это сильно замедляет программу.
Чтобы уменьшить время работы программы, нужно упростить алгоритм подсчета пользователей. В этом алгоритме я отдельно считаю, сколько пользователей прочли столько же полных сотен страниц, как и искомый читатель, и затем уже постранично суммирую всех, кто прочел столько же страниц из той сотни, на которой сейчас находится читатель. Такой алгоритм позволяет вместо 999 итераций (если пользователь читает 999-ю страницу) сделать всего 108 (9 итераций сотням и 99 по единичным страницам).

Это вкратце, теперь перейдем к подробному описанию и для начала приведу код.
больше информации

Читать: https://habr.com/ru/articles/749600/
Amplificando las Operaciones de Retail con IA Generativa y Búsqueda Vectorial: El Potencial Inexplorado

Read: https://www.mongodb.com/blog/post/amplifying-retail-operations-generative-ai-vector-search-esp
Что такое обезличивание и с чем его едят?

Три года назад, весной 2020, пандемия COVID-19 только начиналась и все переходили в режим самоизоляции. Мы в один миг оказались в ситуации, когда у нас имеется огромное количество данных, доступ к которым можно получить лишь из офиса, в который, разумеется, невозможно попасть. Работать без доступа к документам не реально, нам критически необходимо продолжать размечать данные, а значит нужно разработать подход, при котором можно это делать удалённо. Именно тогда мы в очередной раз подняли тему, которая и так периодически возникала в наших обсуждениях: а так ли нам нужны настоящие данные? Ответ очевидный: нет, если мы сохраняем их вид (ФИО меняем на ФИО, адрес на адрес и т.д.). Этот процесс называется обезличиванием.


Читать: https://habr.com/ru/companies/sberbank/articles/749906/
Data Engineering: концепции, процессы и инструменты

Data science, машинное обучение и искусственный интеллект — не просто громкие слова: многие организации стремятся их освоить. Но прежде чем создавать интеллектуальные продукты, необходимо собрать и подготовить данные, которые станут топливом для ИИ. Фундамент для аналитических проектов закладывает специальная дисциплина — data engineering. Связанные с ней задачи занимают первые три слоя иерархии потребностей data science, предложенной Моникой Рогати.
Слои data science для реализации ИИ.

В этой статье мы рассмотрим процесс data engineering, расскажем о его базовых компонентах и инструментах, опишем роль дата-инженера.


Читать: https://habr.com/ru/articles/743308/
Обновление Дельта BI. ChatGPT, PixelPerfect, коннекторы и визуализации

Совсем недавно вышло обновление платформы для бизнес-аналитики Дельта BI с решениями, прорывными для всей отрасли. Учитывая нашу реальность и недоступность глобальных продуктов, обновление ощутимо увеличивает отрыв Дельта BI от ближайших конкурентов на российском рынке. Показываем и рассказываем, почему.


Читать: https://habr.com/ru/articles/749996/
Introducing the Oracle Database Error Help Portal

The Oracle Database Error Help Portal documents all Oracle Database errors, their Causes and the recommended Action for users. It is available under https://docs.oracle.com/error-help/db/

Read: https://blogs.oracle.com/database/post/error-help-portal
Скорая сервисная помощь: найти и исправить ошибку в коде продукта ушедшего вендора решений для голосовой аналитики

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

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


Читать: https://habr.com/ru/companies/croc/articles/735442/
Книга «SQL Server. Наладка и оптимизация для профессионалов»

Привет, Хаброжители!

Исчерпывающий обзор лучших практик по устранению неисправностей и оптимизации производительности Microsoft SQL Server. Специалисты по базам данных, в том числе разработчики и администраторы, научатся выявлять проблемы с производительностью, системно устранять неполадки и расставлять приоритеты при тонкой настройке, чтобы достичь максимальной эффективности.

Автор книги Дмитрий Короткевич — Microsoft Data Platform MVP и Microsoft Certified Master (MCM) — расскажет о взаимозависимостях между компонентами баз данных SQL Server. Вы узнаете, как быстро провести диагностику системы и найти причину любой проблемы. Методы, описанные в книге, совместимы со всеми версиями SQL Server и подходят как для локальных, так и для облачных конфигураций SQL Server.

Читать: https://habr.com/ru/companies/piter/articles/735424/
Репликация сегментов в OpenSearch

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


Читать: https://habr.com/ru/articles/733730/
SQL миграции в Postgres. Часть 2

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

Эта статья посвящена двум более сложным миграциям:

- обновление большой таблицы
- разделение таблицы на две

Рассмотрим подходы, которые позволяют провести миграции с минимальным простоем для приложения.


Читать: https://habr.com/ru/articles/736458/