Как стать автором
Обновить
157.52

Базы данных *

Все об администрировании БД

Сначала показывать
Период
Уровень сложности

Просто выберите Postgres

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров30K

Отчасти это действенный совет, отчасти — вопрос к читателям.

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

Читать далее

Отказоустойчивая архитектура: почему Tarantool не падает?

Время на прочтение8 мин
Количество просмотров7.6K


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

Clickhouse — непростая жизнь в продакшене

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров22K

Около двух лет назад вышла небольшая статья Kafka Streams — непростая жизнь в production, в которой я описывал сложности, с которыми наша команда столкнулась при попытке решить задачи проекта с помощью kafka-streams. Эксперимент вышел неудачным, и мы в итоге совсем отказались от этой технологии. Вместо нее решили попробовать Clickhouse (CH), и сейчас уже можно сказать, что эта база нам очень хорошо подошла и отлично решает почти все задачи, которые нам ставит бизнес. В этой статье я расскажу об особенностях использования CH.

Читать далее

Сможет ли Event Sourcing перерасти базы данных?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров9.4K

Event sourcing — не новый термин. Если вы работаете с технологиями, то должны были с ним сталкиваться. Это мощный инструмент, используемый многими крупными организациями в качестве архитектуры баз данных. Он имеет возможность масштабирования и отвечает потребностям современной отрасли обработки данных.

В этой статье мы глубже рассмотрим ES и расскажем о причинах его популярности. Также мы поразмыслим над популярным вопросом: перерастёт ли event sourcing базы данных?
Читать дальше →

«Ваша устаревшая база данных перерастает сама себя». Опыт chess.com

Время на прочтение14 мин
Количество просмотров9.9K

Прим. перев.: в этой статье сербский «инженер по масштабируемости» нагруженного онлайн-проекта в подробностях рассказывает о своем опыте оптимизации большой БД на базе MySQL. Проведена она была для того, чтобы выдержать резкий рост трафика на сайт, случившийся из-за пандемии.

База данных становится слишком большой или старой? Ее тяжело обслуживать? Что ж, надеюсь, я смогу немного помочь. Текст, который вы собираетесь прочитать, содержит реальный опыт масштабирования монолитной базы данных, лежащей в основе одного из сайтов Топ-250 (согласно alexa.com). На момент написания этой статьи chess.com занимал 215 место в мире по популярности. Ежедневно к нам заглядывали более 4 млн уникальных пользователей, а наши MySQL-базы обрабатывали в общей сложности более 7 млрд запросов. Год назад сайт ежедневно посещали 1 млн уникальных пользователей; в марте прошлого года их число увеличилось до 1,3 млн; сегодня более 4 млн человек заходят на chess.com ежедневно, а число сыгранных партий превышает 8 млн. Я, конечно, знаю, что это не сопоставимо с самыми крупными игроками на рынке, однако наш опыт все же может помочь в такой сложной задаче, как «исправление» монолитной базы данных и ее вывод на новый уровень производительности.

Читать далее

«Представь, что ты нашел решение, про которое можешь сказать: оно лучшее в мире» — интервью с создателем ClickHouse

Время на прочтение12 мин
Количество просмотров18K

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

Яндекс.Метрика работала с петабайтами данных — это был третий по популярности сервис веб-аналитики в мире. Для него нужна была база данных, которая может обрабатывать огромное количество данных в реальном времени, очень быстро, при этом не сжигая миллиарды денег.

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

Мы поговорили с Алексеем о том, как он стал разработчиком, почему ClickHouse намного быстрее всех аналогов и как так получилось, какова цена производительности, почему ClickHouse стал опенсорсным и куда вообще движется индустрия.

Читать далее

Мониторинг Tarantool: логи, метрики и их обработка

Время на прочтение18 мин
Количество просмотров11K

Tarantool — это платформа in-memory вычислений с гибкой схемой данных. На её основе можно создать распределённое хранилище, веб-сервер, высоконагруженное приложение или, в конце концов, сервис, включающий в себя всё вышеперечисленное. Но какой бы ни была ваша промышленная задача, однажды настанет момент, когда её решение придётся мониторить. В этой статье я хочу дать обзор существующих средств для мониторинга приложения на базе Tarantool и пройтись по основным кейсам работы с ними.


Мониторинг Tarantool


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

Читать дальше →

Как мы храним 20000+ метрик и миллиарды комбинаций разрезов в одной таблице

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров15K

Привет! Меня зовут Влад Божьев, я старший разработчик юнита АБ-тестирования Авито. Один из наших ключевых инструментов – M42, сервис для визуализации метрик. Он позволяет быстро проверять гипотезы, анализировать отклонения и оценивать инициативы.

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

В нашем семантическом слое данных больше  20 000 метрик, и есть десятки разрезов для каждой из них. Под катом рассказываю, как мы храним терабайты данных и автоматизируем добавление новых разрезов в отчёт M42.

Читать далее

Эволюция хранилища ВКонтакте: от первой реализации до наших дней

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.4K

Привет, Хабр! Последние несколько лет я занимаюсь разработкой баз данных ВКонтакте. Аудитория такой крупной соцсети ежедневно генерирует огромные массивы информации. 

В этой статье я расскажу про хранилище ВКонтакте: как оно менялось, что мы делаем для оптимизации занятого места и как гарантируем сохранность данных.

Читать далее

Реальная замена Notion или просто хороший продукт? Обзор и установка NocoDB

Время на прочтение5 мин
Количество просмотров17K

Notion успел стать одним из самых популярных инструментов для управления проектами. Его часто используют для организации контент-планов, календарей, Kanban-досок и не только. Однако 9 сентября 2024 года продукт ушел из России.

Компании, которые плотно работали с Notion, были вынуждены искать альтернативные решения и мигрировать свои данные. Именно тогда на слуху стали фигурировать сервисы вроде Yonote, Weeek, Teamly и другие. У каждого решения есть свои плюсы и минусы, но идеальной замены нет: все сервисы разные, со своей историей и спецификой.

Если вы до сих пор не нашли альтернативу Notion, но не оставляете попыток, посмотрите в сторону NocoDB. Это платформа с открытым исходным кодом, которая позволяет создавать базы данных и управлять ими в знакомом интерфейсе. И, как оказалось, решение отлично подходит для нетехнических команд и предоставляет альтернативный для Notion функционал. В этой статье мы познакомимся с NocoDB и посмотрим, как развернуть проект на облачном сервере.
Читать дальше →

Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 1

Время на прочтение12 мин
Количество просмотров16K

Привет, Хабр! Недавно мы делали доклад на конференции HighLoad 2023 — «Мифы и реалии Мультимастера в архитектуре СУБД PostgreSQL». Мы — это Павел Конотопов (@kakoka) и Михаил Жилин (@mizhka), сотрудники компании Postgres Professional. Павел занимается архитектурой построения отказоустойчивых кластеров, а Михаил — анализом производительности СУБД. У каждого за плечами более десяти лет опыта в своей области.

Порассуждаем о том, как развивалась технология «Мультимастер» в экосистеме PostgreSQL, остановимся на том, что она из себя представляет, на каких внутренних механизмах PostgreSQL основана и как её можно использовать.

Мы также поговорим о том, существует ли «Честный Мультимастер» (само понятие «Честный Мультимастер» достаточно специфично и в основном употребляется в кругу разработчиков), какие реализации у него есть и как его следует применять.

Читать далее

«Импортозамещаем» анализ планов PostgreSQL

Время на прочтение4 мин
Количество просмотров11K

Вчера Hubert 'depesz' Lubaczewski закрыл доступ с российских IP ко всем своим сайтам, включая широко известный визуализатор планов PostgreSQL-запросов explain.depesz.com.

Но это не беда, потому что в компании "Тензор" мы разработали сервис explain.tensor.ru, функционал которого гораздо обширнее, и которым можете воспользоваться и вы.

Читать далее

DBA: когда почти закончился serial

Время на прочтение10 мин
Количество просмотров8.3K

"Шеф, всё пропало, у нас serial на мегатаблице кончился!" - а это значит, что либо вы его неаккуратно накрутили сами, либо у вас действительно данных столько, что разрядности integer-столбца уже не хватает для вашей большой и активной таблицы в PostgreSQL-базе.

Да и столбец этот не простой, а целый PRIMARY KEY, на который еще и ряд других немаленьких таблиц по FOREIGN KEY завязан. А еще и приложение останавливать совсем не хочется, ибо клиентам 24x7 обещано...

В общем, надо как-то с минимальными блокировками увеличить размер PK-поля в большой таблице, на которое многое завязано.

Читать далее

Ближайшие события

PostgreSQL 13: happy pagination WITH TIES

Время на прочтение2 мин
Количество просмотров12K
На прошедшей неделе вышло сразу две статьи (от Hubert 'depesz' Lubaczewski и автора самого патча Alvaro Herrera), посвященные реализованной в грядущей версии PostgreSQL 13 поддержке опции WITH TIES из стандарта SQL:2008:
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }
Что это, и как оно избавляет от проблем с реализацией пейджинга, о которых я рассказывал в статье «PostgreSQL Antipatterns: навигация по реестру»?


Читать дальше →

Подозрительные типы

Время на прочтение8 мин
Количество просмотров14K

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


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

Читать дальше →

Китай принял свой «пакет Яровой»

Время на прочтение4 мин
Количество просмотров26K


В конце прошлого года китайское правительство представило новый закон о киберпезопасности, так называемую Многоуровневую схему кибебезопасности (Cybersecurity Muti-Level Protection Scheme, MLPS 2.0). Закон, вступивший в силу в декабре, фактически означает, что правительство имеет неограниченный доступ ко всем данным внутри страны, независимо от того, хранятся ли они на китайских серверах или передаются через китайские сети.

Это означает, что не будет никаких анонимных VPN (а многие популярные VPN принадлежат китайским компаниям). Никаких личных или зашифрованных сообщений. Никаких анонимных онлайн-аккаунтов и конфиденциальных данных. Любые данные будут доступны и открыты для китайского правительства, в том числе и данные иностранных компаний на китайских серверах или проходящие через Китай, поясняется в комментарии юридической фирмы Reed Smith. В каком-то смысле MLPS 2.0 и сопутствующие законы можно сравнить с российским «пакетом законов Яровой».
Читать дальше →

Зачем запускать облачную СУБД на выделенном сервере

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.6K

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

Облако — это не монолит, а набор кубиков (сервисов), из которых можно собирать решения под любые задачи — в том числе под очень требовательные к производительности. В этой статье мы проверим, насколько вариативно облако, сравним плюсы и минусы двух принципиально разных подходов к инфраструктуре и посмотрим на новый «кубик» в экосистеме Selectel — DBaaS на выделенном сервере. Разберемся, как он появился, зачем нужен и как сочетает производительность выделенного сервера с удобством облака. Готовы? Я Гришин Александр продакт менеджер облачных баз данных и объектного хранилища в Selectel, и сегодня я предлагаю собрать это облачное «LEGO» вместе!
Читать дальше →

Настройка бэкапов в S3 через Microsoft SQL Server без скриптов и стороннего ПО

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.2K

Привет, Хабр! Меня зовут Даниил, я дежурный системный инженер в Selectel. Но так было не всегда. Несколько лет назад я работал системным администратором в маленькой компании. И в какой-то момент мы решили внедрять 1С. А так как все вокруг у нас было на Windows, выбор пал на Microsoft SQL Server. Связка казалась самой очевидной и простой. В то время опыта у меня было маловато, многого я не знал, но прекрасно понимал, что резервное копирование — наше все. Так я без должного опыта занялся настройкой бэкапирования через MS SQL. Путь оказался не самым простым, поэтому я решил поделиться с новичками набитыми шишками и полученным опытом.
Читать дальше →

Obsidian: синхронизация без боли

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров127K

Легкий и простой способ настроить бесплатную синхронизацию Obsidian между всеми своими устройствами.

Читать далее

Как нормализовывать телефонные номера

Время на прочтение5 мин
Количество просмотров11K

Замечали когда-нибудь, что все записывают телефонные номера по-разному? Некоторые пишут их через пробелы, другие через дефис, а кто-то использует скобки. Разные люди по-разному группируют цифры номеров в числа.

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