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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Отказоустойчивая архитектура: почему Tarantool не падает?

Основная проблема в высоконагруженных приложениях — отказоустойчивость. Нагрузка с упавших узлов в кластере должна переключаться на живые. Это кажется несложной задачей, но на практике появляется много подводных камней. Мы с yngvar_antonsson потратили много времени на поддержку различных кластеров, построенных на Tarantool и наших кластерных фреймворках Cartridge и TDG, и сегодня расскажем вам, как обеспечивается отказоустойчивость в наших приложениях. Будет интересно всем, кто хочет подробнее узнать, как устроен фейловер в Cartridge, и тем, кто хочет узнать о нашем опыте создания автоматических фейловеров.


Читать: https://habr.com/ru/companies/vk/articles/768360/
Настройка NVMe over TCP — для тех, кому надо подключить больше 1 диска единственной конфигурации из всех примеров в Сети

Технология NVMe через различные фабрики (далее NVMeOF) оформлена в качестве стандарта летом 2016 года, она была встроена в пятую ветку ядра Linux.

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

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

Меня зовут Алексей Дрожжов, я старший инженер в билайне, и в этом посте расскажу, как мы решали эту задачу.

Задача: подключить много дисков с нескольких серверов


Читать: https://habr.com/ru/companies/beeline_tech/articles/770174/
Restic: эффективное резервное копирование из Stdin

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

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

Несмотря на то, что restic отлично подходит для сохранения целых каталогов с данными в этой статье мне хотелось бы сделать упор на сохранении резервных копий на лету прямо из Stdin.

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


Читать: https://habr.com/ru/articles/769622/
4 Key Considerations for Unlocking the Power of GenAI



Read: https://www.mongodb.com/blog/post/4-key-considerations-unlocking-power-gen-ai
Цифровой паспорт оборудования промышленного производства

Привет, привет!

Представлюсь: меня зовут Тамара, и я являюсь ведущим инженером по нормативно-справочной информации в компании Bimeister.

Начну с того, что это лишь малая часть той большой истории, которую я хочу вам рассказать.

Будет много вопросов типа «Что это?», «Для чего нужен?» и тд. Ищите ответы на эти вопросы ниже, я вам все объясню)

Чем же занимаемся мы, ребята из отдела разработки НСИ? Давайте попробую вам кратко рассказать:

Промышленные предприятия сталкиваются с проблемой создания единой системы нормативно-справочной информации. Возникают трудности с созданием и внедрением общих правил именования оборудования, систем, материалов, товаров, контрагентов, и пр. Предприятиям необходим единый инструмент и общая методология ведения НСИ.

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

Качественная база данных оборудования (БДО) является основой для построения системы автоматизации/цифровизации процессов Управления техническим обслуживанием и ремонтами (ТОиР). В процессе эксплуатации системы Управления ТОиР предприятиям постоянно требуется актуализация существующих аналитических справочников, составляющих БДО. Чтобы иметь возможность планировать ремонт или техническое обслуживание (ТО) любой конкретной обслуживаемой единицы оборудования, а также вести учет истории ремонтов и отказов (дефекты, параметры состояния, наработка, отказы), необходимо, чтобы эта единица была описана в информационной системе (паспортизирована).


Читать: https://habr.com/ru/companies/bimeister/articles/770368/
История одной Real-Time-рекомендательной системы: пример построения решения от нуля до реализации

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


Читать: https://habr.com/ru/companies/vk/articles/769508/
Обзор популярных файловых систем в системах виртуализации. Часть 2: BTRFS

В прошлом материале мы рассказали о типах файловых систем и подробно остановились на системе ZFS. В второй части подробно разберем BTRFS — файловую систему для Unix-подобных ОС.


Читать: https://habr.com/ru/companies/vstack/articles/770662/
Retrieval Augmented Generation (RAG): The Open-Book Test for GenAI



Read: https://www.mongodb.com/blog/post/retrieval-augmented-generation-rag-open-book-test-gen-ai
Установка и безопасная настройка Redis

Сегодня мы поговорим о СУБД Redis, рассмотрим процесс установки и настройки. В отличие от реляционных систем управления базами данных, Redis является СУБД класса NoSQL с открытым исходным кодом, работающей  со структурами данных типа «ключ — значение».

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

Но, вернемся к СУБД Redis. Redis - это хранилище значений ключей в памяти, известное своей гибкостью, производительностью и широкой языковой поддержкой. Данная система ориентирована на достижение максимальной производительности на атомарных операциях (заявляется о приблизительно 100 тыс. SET- и GET-запросов в секунду на Linux-сервере начального уровня). Написана на Си, интерфейсы доступа созданы для большинства основных языков программирования. Далее мы поговорим о том, как установить и безопасно настроить Redis на сервере Ubuntu 22.04.


Читать: https://habr.com/ru/companies/otus/articles/770364/
Переизобретаем файловую систему: (Open)ZFS

Хранение данных — это всегда боль, у которой может быть больше 50 оттенков: железо, кэш, гарантии, производительность, скорость восстановления при проблемах, удобство и прочее. Как решить большинство из них, при этом получив что-то легко обслуживаемое, да ещё бесплатно? Сегодня поговорим про файловые системы на примере не совсем дефолтной OpenZFS.


Читать: https://habr.com/ru/companies/vk/articles/770300/
Индексирование полнотекстовых данных в PostgreSQL с использованием модуля pg_trgm

Привет, Хабр!

PostgreSQL, одна из самых мощных и гибких реляционных СУБД, предлагает нам свой модуль pg_trgm, чтобы решить сложную задачу полнотекстового поиска.

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

Итак, что такое pg_trgm? Этот модуль PostgreSQL предоставляет набор функций и операторов, которые позволяют работать с трехграммами (триграммами) - это последовательности из трех символов. Для понимания, давайте взглянем на пример...


Читать: https://habr.com/ru/companies/otus/articles/770674/
Чек-лист: как правильно выбрать поставщика СХД

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


Читать: https://habr.com/ru/companies/itglobalcom/articles/770678/
MongoDB Hosts First-Ever Events in ASEAN - Empowering Developers to Create, Transform, and Disrupt Industries



Read: https://www.mongodb.com/blog/post/hosts-first-ever-events-asean-empowering-developers-create-transform-disrupt-industries
PostgreSQL Antipatterns: ходим по JSON-граблям

Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:

• множество чтений из CTE (хоть и единственной записи, но все же);

• извлечение по каждому ключу текста с раскастовкой в jsonb;

• извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;

• "ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.

А как - правильно?


Читать: https://habr.com/ru/companies/tensor/articles/771406/
Битва за флешку: кто изобрел USB-накопитель?

Кто изобрел USB-накопитель? Однозначно приписать эту заслугу кому-то конкретному нельзя — на авторство претендуют сразу несколько людей и компаний.

Во многом появлению этого изобретения поспособствовала технологическая среда того времени. Флэшка сочетала в себе флеш-память и интерфейс USB в удобном корпусе, который заменил дискеты.

В этой статье кратко расскажем об основных вехах создания флешки и приведем историю сингапурца Хенна Тана, который один из первых вывел флешку на коммерческий рынок и способствовал ее распространению. Тан вел множество судебных споров о нарушении патентов, но в конечном счете ему удалось добиться лишь ограниченного успеха в борьбе с распространением дизайна флешки.


Читать: https://habr.com/ru/companies/first/articles/771294/
Использование табличных тестов в go для тестирования запросов к БД + testify

При написании бэкенда работа с базой данных зачастую составляет большую часть кода в проекте. Но несмотря на то, что в го стандартная библиотека для тестирования довольно удобная, она требует написания большого количества кода. Поэтому иногда вместо того, чтобы писать тесты разработчики могут ограничить тестирование при помощи какого-либо клиента (например, при помощи tableplus или другого sql-клиента), либо тестируют уже конечные точки API используя postman. С одной стороны, это, конечно может быть быстрее для первого тестирования, но с другой — такие методы не обеспечивают должного покрытия тестами приложения.

Решить проблему с написанием большого количества кода может помочь библиотека testify, которая позволяет писать тесты более выразительно и с меньшим количеством кода. В testify есть пакеты require и assert, в первом случае выполнение теста будет прервано, а во втором — продолжено. В статье будет использоваться пакет assert. Для облегчения понимания кода можно использовать табличное тестирование, которое поможет определить, какие случаи проверяются даже при беглом взгляде на код.


Читать: https://habr.com/ru/companies/first/articles/771428/
Как хранить данные в облаке? Краткий экскурс по технологиям

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


Читать: https://habr.com/ru/companies/selectel/articles/771726/
Это база: нюансы работы с Redis. Часть 1

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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


Читать: https://habr.com/ru/companies/nixys/articles/765694/