Рубрика «база данных»

Как биология и особенности медицинского учета издеваются над программистами - 1

На Хабре есть серия статей, касающаяся заблуждений программистов о, казалось бы, простых вещах: о времени, Читать полностью »

В Heroes of Might and Magic III у каждого игрока есть свои ответы на вечный вопрос: какой юнит сильнее? Кто-то смотрит на урон, кто-то на способности, кто-то вспоминает личный опыт из партий, где один отряд неожиданно перевернул ход всего боя.

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

Читать полностью »

Так выглядит работа с AI

Так выглядит работа с AI

Написать свою in-memory базу данных — это своеобразный способ изучить Go под капотом и сделать значимый пет-проект. Создавать обычную обертку над mapЧитать полностью »

Сравнительный анализ баз данных для хранения миллиардов записей логов

В современную эпоху больших данных выбор оптимальной системы управления базами данных для работы с миллиардами записей становится критически важным. В данной статье проводится детальный анализ четырех популярных СУБД (MySQL, PostgreSQL, Redis и ClickHouse) с точки зрения их эффективности при работе с большими объемами данных журналирования, с постоянной записью новых данных и необходимостью выполнения сложных поисковых запросов через веб-интерфейс.

Критерии сравнения

Для объективной оценки рассматриваются следующие ключевые аспекты:

Как быстро реализовать поиск на корпоративном портале - 1

Привет, меня зовут Антон Щербак, я разработчик корпоративного портала Selectel. Это внутренняя система, где можно узнать новости компании, поучаствовать в Selectel Game (это наша собственная геймификация рабочих достижений) и, конечно, найти необходимого коллегу или структуру.

Нас уже более 700, и иногда поиск человека превращается в выпуск ток-шоу «Жди меня». Поэтому у нас была задача сделать его более удобным и приводящим к нужному результату. Под катом рассказываю, к какому решению мы в итоге пришли и как реализовали.
Читать полностью »

Транзакционное юнит-тестирование приложений с БД - 1

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

В этой статье я хочу провести обзор разных способов юнит-тестирования приложения с БД и рассказать о способе, который я не видел в русскоязычном сегменте интернета. Статья будет посвящена Python 3, pytest и ORM-фреймворку SQLAlchemy, но методы переносимы на другие инструменты.
Читать полностью »

История очень простая: есть большая продуктовая база данных. Она нужна пяти-шести командам разработки, тестировщикам и другим командам. Можно сделать штук 10 разных инстансов + БД, но обычно это дорого и долго. Гораздо лучше взять одну мастер-базу и хранить её инкременты для тех команд, которые с ней работают. Для этого есть специальные утилиты. Если лет пять назад они только начинали распространяться в России, то теперь их использование — абсолютно нормальная практика.

Давайте посмотрим, как это работает, на примере Actifio:

image
Слева — Shapshots, на их основе можно создавать виртуальные БД (VDB).

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

Всем привет. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В преддверии старта нового потока курса «Архитектор высоких нагрузок» я решил написать небольшой авторский материал, которым хочу поделиться с вами.

Почему может понадобится полусинхронная репликация? - 1


Введение

Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду (что несравнимо с типичными rps'ами, приходящимися на высоконагруженную систему), классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.

На текущий момент имеются 2 паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.Читать полностью »

Обезл***вание д***ных — это не просто рандомизация - 1

В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.

Казалось бы, достаточно просто поменять всё на какие-нибудь несимметричные хеши, и всё будет хорошо.

Так вот, не будет.

Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.

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

То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js