Как стать автором
Поиск
Написать публикацию
Обновить
244.79

Базы данных *

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

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

ACID, BASE, CAP: Фундамент архитектуры распределенных систем

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

Современная разработка ПО – это почти всегда про распределенные системы. Микросервисы, облака, глобальный охват – все это стало нормой. Но за красивыми диаграммами и модными словами скрывается фундаментальная сложность. Как заставить кучу разрозненных компонентов работать вместе надежно? Как гарантировать, что данные, размазанные по сети, останутся корректными и доступными? Эта головная боль знакома любому, кто проектировал системы сложнее калькулятора, будь то в требовательном финтехе, динамичном e-commerce или где-либо еще.

И вот тут на помощь (или, скорее, для обозначения поля боя) приходят три понятия: ACID, BASE и теорема CAP. Может показаться, что это сухая теория, но игнорировать их – все равно что выходить в море без компаса и карты. Эти концепции описывают фундаментальные компромиссы, с которыми приходится иметь дело каждому архитектору. Понимание их – не гарантия успеха, но его необходимое условие. Давайте погрузимся в их суть и посмотрим, как они влияют на реальные архитектурные решения.

Читать далее

Методы расширения атрибутивного состава таблиц БД

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

Представим себе картину из идеального мира данных, в котором всё стабильно, изменений нет и на горизонте не предвидятся. Аналитик полностью согласовал с заказчиком требования к витрине, спроектировал решение и передал в разработку. Разработчики внедрили витрину в продуктивный контур, пользователи счастливы, всё работает корректно — сопровождение разработчиков и аналитиков не требуется. Представили?

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

Сразу отмечу, что решения и оценки, о которых пойдёт речь, подбирались для работы с большими данными на стеке технологий Apache Hadoop, где для обработки данных использовали фреймворк Apache Spark, СУБД — Apache Hive для анализа данных, оркестратор — Airflow, данные хранятся в колоночном формате Parquet.

Читать далее

Измерение аудитории блога с помощью OpenTelemetry

Время на прочтение6 мин
Количество просмотров713
Мне интересно следить, какие статьи в моём блоге наиболее популярны, и сколько людей заглядывает в блог каждый день. Этот блог прошел через несколько этапов, позволяющих оценить эти показатели. Сначала это была Google Аналитика, но делиться всей этой информацией с Google не очень комфортно. Поэтому я перешёл на Matomo, развернутый на сервере CHATON: Libréon.

TL;DR

Хотите отслеживать трафик на статическом блоге без Matomo и Google Analytics?
Рассказываю, как с помощью OpenTelemetry, Prometheus, Grafana и небольшого самописного скрипта на JS (Otela) можно элегантно и эффективно следить за посещаемостью — при этом полностью сохранив контроль над своими данными.
Читать дальше →

Где заканчивается наука и начинается маркетинг: сравниваю генетические тесты на происхождение

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

Всем привет! Меня зовут Павел, я главный редактор блога «Онлайн патента» на Хабре. Сегодня я расскажу о своем опыте взаимодействия с генетическими тестами.

Но перед этим небольшое лирическое отступление. Компания 23andMe, один из лидеров рынка ДНК‑тестирования, подала заявление о банкротстве по главе 11 (реорганизация). Это решение связано с многомиллионными убытками и последствиями масштабной утечки данных в конце 2023 года, когда хакеры получили доступ к информации 6,9 млн пользователей.

Подозреваю, что одним из них был я.

Читать далее

Повышение эффективности аналитических баз данных: кейс «Комус» и Arenadata

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

Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.

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

Что там с нагрузкой на кластер?

Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

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

Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.

В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

Читать далее

Жизненный цикл данных под контролем: знакомство с ILM на примере расширения для Postgres Pro Enterprise 17

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

Если данные в БД растут как на дрожжах, а вместе с ними и расходы на хранение, то пора познакомиться с концепцией управления жизненным циклом информации (ILM). Мы уже внедрили в Postgres Pro Enterprise 17 возможность для внедрения автоматического переноса редко используемых данных в более дешёвые хранилища. Подробности в статье.

Читать далее

Как GitLab с Liquibase миграции в ClickHouse везли

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

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

Сегодня я расскажу, как с помощью Liquibase, GitLab и немного Python настроить прозрачный, безопасный и удобный процесс миграций для ClickHouse кластера .

Читать далее

Нужен ли Postgres альтернативный сборщик статистики таблиц?

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

Речь здесь пойдёт о стабильности стандартной статистики Postgres и об идее очередного расширения - на этот раз альтернативы команде ANALYZE. Всё началось с того, что заканчивая работу над предыдущей статьёй я вдруг заметил, что результат выполнения одного и того же запроса теста Join Order Benchmark (JOB) в серии последовательных прогонов может отличаться в разы и даже на порядки - причем как по значению параметра execution-time, так и по pages-read. Это выглядело очень странно, поскольку и тест и ноутбук и все настройки оставались теми же - даже погода за окном. И я решил расследовать, что происходит …

Читать далее

Сальваторе Санфилиппо возвращается в Redis

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

Друзья, как будто мы пропустили интересное и важное событие! В декабре 2024 года Сальваторе Санфилиппо - автор Redis - спустя 4 с половиной года отсутствия в проекте возвращается к своему детищу.

Для меня редис - это по-прежнему простой и эффективный элемент разрабатываемых систем. Возможно еще и поэтому я с большим интересном и даже удовольствием прочитал пост antirez-а о возвращении. Под катом взгляд Сальваторе на проблемы лицензирования, раскол в сообществе редис, нейронные сети и LLM, векторный поиск и, конечно, дальнейшие планы по работе над Redis и всё, что с этим связано.

Приятного чтения!

Spring Boot Avengers: объединяем Spring Data JDBC и JSONB в PostgreSQL

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

При работе со Spring Data JDBC и колонкой базы данных с типом `jsonb` вы можете столкнуться с трудностями при выборе правильного типа для свойства `jsonb` в entity, реализации конвертеров для преобразования объектов из/в базу данных и определении запросов Spring Data JDBC для вложенных свойств `jsonb`.

Читать далее

Как мы переехали с StatsD на Prometheus всего за месяц

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

Недавно мы осуществили миграцию системы сбора наших инфраструктурных метрик с StatsD на Prometheus и остались весьма довольны результатами. Это была нелёгкая работа, но мы многому научились в процессе. Эта статья призвана рассказать, почему мы выбрали Prometheus, а также описать некоторые технические сложности, с которыми мы столкнулись.

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

Читать далее

Создаём свой реестр данных на основе ФГИС «Аршин». Часть 1 — добавляем данные в PostgreSQL и сокращаем размер БД

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

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

Читать далее

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

Оконные функции простым языком — Фреймы

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

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

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

Читать далее

Дневник импортозамещения. Linux GUI — ложное искушение

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

Если даже бабушки работают с Linux GUI — можно ли утверждать, что администратор Linux тоже сможет работать с Linux Gui? Ответ на этот вопрос не так очевиден, достаточно сделать небольшое путешествие от простого запуска инсталлятора под root, до мониторинга с графиками.

Читать далее

Что нового в документации YDB во втором квартале 2024 года

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

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

Читать далее

Работа с базами данных в Rust с помощью Diesel

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

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

Сегодня мы поговорим о Diesel ORM — инструменте, который превращает работу с базами данных в Rust в настоящее удовольствие. Diesel ORM — это расширяемый и безопасный объектно-реляционный маппер и конструктор запросов для Rust. Он имеет высокоуровневый API для взаимодействия с различными СУБД: PostgreSQL, MySQL и SQLite.

Начнем с установки и настройки!

Читать далее

Обзор открытых свободных инструментов для создания резервных копий СУБД PostgreSQL

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

Перефразируя древнюю мудрость: все люди делятся на 10 типов: те, кто не знает, зачем нужны резервные копии, и те, кто делает резервные копии.
В данном обзоре я попробую мал-мала расшифровать свою давнюю табличку (внеся в неё некоторое количество изменений):
Обзор наиболее популярных средств для создания резервных копий PostgreSQL.
Ибо не вижу я ни подобных обзоров в информационном поле, ни грамотного, с технической точки зрения, подхода к выбору инструмента вообще, и для создания резервных копий (РК) СУБД PostgreSQL в тех организациях, куда заносит профессиональная деятельность, в частности. Основной аргумент выбора: знания и умения текущего системного администратора. Доводилось встречаться со сменой инструмента по причине того, что новый администратор баз данных не знал и не умел уже использовавшийся продукт. Причём использовался вполне себе достойный, но... (конкретики не будет, по причинам, например, секретным, увы мне).

Читать далее

Миграция с MSSQL Server на PostgreSQL. Предпосылки

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

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

Читать далее

Конвертация в один клик! Как перенести код из Teradata в GreenPlum без лишних затрат и усилий

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

Привет, Хабр! Миграция баз данных из одной СУБД в другую представляет собой особо сложную задачу, требующую тщательного планирования, подготовки и исполнения. В 2023 году в Сбербанке завершился масштабный проект по миграции крупного аналитического хранилища данных с платформы Teradata на GreenPlum. Особое внимание уделялось таким направлениям, как:

Повышенная трудоёмкость ручного переписывания SQL‑скриптов из‑за разницы в диалекте и специфических встроенных функций Teradata.

Перенос архива данных из Teradata, объемом более 400 Тб.

Кросс‑платформенная проверка качества данных в ходе и после завершения миграции.

Этой статьёй мы открываем небольшую серию, посвящённую технологическим решениям вышеупомянутых сложностей. И начнём с рассмотрения сервиса миграции кода из Teradata в GreenPlum, который автоматизирует и упрощает конвертацию сложных запросов.

Читать далее