BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по ClickHouse » Использование AWS S3 для резервного копирования и восстановления данных Clickhouse

Использование AWS S3 для резервного копирования и восстановления данных Clickhouse

 

Использование AWS S3 в качестве диска для хранения таблиц  также дает нам возможность использовать S3 в целях резервного копирования/восстановления нашей базы данных. Специальная настройка позволит Clickhouse автоматически управлять процессом резервного копирования и восстановления. Давайте посмотрим, как правильно все настроить.

 

Настройка AWS S3 диска для бэкапов

Чтобы добавить S3 в качестве хранилища резервных копий, добавьте новое хранилище s3.xml file under /etc/clickhouse-server/config.d :

Эта конфигурация указывает диск s3 с заданными учетными данными. Для определения бакета и  каталога для сохранения резервных копий укажите <endpoint>.  Затем для того,  чтобы разрешить использование s3-диска в качестве устройства резервного копирования. Определите блок <backups>. Значение <allowed_path> должно быть таким же, как путь к каталогу из параметра <endpoint> (/backups/ в нашем случае).

Для того, чтобы убедиться, что все работает нормально, перезапустите Clickhouse:

sudo clickhouse restart

 

Теперь мы готовы приступить к резервному копированию данных в AWS S3.

 

Резервное копирование таблицы в S3

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

BACKUP TABLE test TO Disk('s3', 'test_backup.zip')

 

В данном случае мы создаем резервную копию S3 с именем test_backup.zip. Это займет некоторое время (в зависимости от размера нашей таблицы). Если все прошло нормально, мы увидим следующее:

 

На резервное копирование нашей тестовой таблицы, содержащей 20 млн строк, которая в сжатом виде займет ~200 Мб, ушло 34 секунды. Супер!

 

Восстановление таблицы

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

RESTORE TABLE test AS test_restored
FROM Disk('s3', 'test_backup.zip')

 

Этот запрос восстановит таблицу из резервной копии test_backup.zip в таблицу test_restored. Мы можем обойтись и без AS test_restored, в этом случае Clickhouse восстановит таблицу непосредственно в тестовую таблицу. Если все прошло нормально, мы увидим следующее:

 

Резервное копирование и восстановление БД

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

CREATE DATABASE db;
USE db;
CREATE TABLE t1 (id UInt32) ENGINE=MergeTree ORDER BY id;
CREATE TABLE t2 (dt DateTime, msg String) ENGINE=MergeTree ORDER BY dt;

 

Давайте заполним таблицы t1 и t2 предварительно сгенерированными данными:

INSERT INTO t1 SELECT * FROM generateRandom('id UInt32') LIMIT 1000000;
INSERT INTO t2 SELECT * FROM generateRandom('dt DateTime, msg String') LIMIT 1000000;

 

Резервное копирование БД

Создадим резервную копию базы данных db на диске S3:

BACKUP DATABASE db TO Disk('s3', 'db.zip')

 

 

Восстановление БД из резервной копии

Для начала удалим локальную базу данных db:

DROP DATABASE db;

 

Теперь из резервной копии S3 db.zip восстановим нашу базу данных:

RESTORE DATABASE db FROM Disk('s3', 'db.zip')

 

На восстановление нашей БД ушло всего  11 секунд:

 

Подтвердим наличие всех восстановленных таблиц:

USE db;
SHOW tables;
┌─name─┐
│ t1   │
│ t2   │
└──────┘

 

Инкрементальное резервное копирование

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

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

 

Сначала нужно создать базовую резервную копию (единожды), которая делается как обычная резервная копия:

BACKUP TABLE test TO Disk('s3', 'test-base.zip')

 

Предположим, что прошло некоторое время, и поступила новая порция данных:

INSERT INTO test
SELECT number + 2000000000, randomPrintableASCII(15), now() - rand32()
FROM numbers(1000);

 

Для создания инкрементной резервной копии необходимо указать параметры base_backup, - только так Clickhouseп сможет понять, какую именно существующую резервную копию можно использовать для понимания дельты данных:

BACKUP TABLE test TO Disk('s3', 'test-2022-10-03.zip')
SETTINGS base_backup = Disk('s3', 'test-base.zip');

 

Как Вы можете видеть, последнее резервное копирование заняло гораздо меньше времени, чем предыдущее полное резервное копирование:

 

На следующий день (или через какой-то другой определенный период времени) в качестве новой базовой_резервной копии укажите test-2022-10-03.zip, так Clickhouse правильно идентифицирует новую дельту данных:

BACKUP TABLE test TO Disk('s3', 'test-2022-10-04.zip')
SETTINGS base_backup = Disk('s3', 'test-2022-10-03.zip');

 

Далее процесс повторяется снова и снова - в качестве base_backup для нового файла резервной копии Вы указываете имя предыдущего файла резервной копии.

 

Восстановление инкрементной резервной копии

Для восстановления таблицы целиком необходимо указать имя файла последней резервной копии, Clickhouse автоматически объединит все дельты:

RESTORE TABLE test FROM Disk('s3', 'test-2022-10-04.zip')

 

 

Фактически мы можем восстановить данные из любого снимка инкрементной резервной копии (в том числе, из базового файла):

RESTORE TABLE test FROM Disk('s3', 'test-2022-10-03.zip')

 

 

Управление резервными копиями данных

Полный список операций резервного копирования Вы сможете найти в таблице system.backups :

SELECT * FROM system.backups

 

 

Мы видим, что в бакете  S3 Clickhouse создает следующие файлы:

 

Если Вы используете инкрементальное резервное копирование, не удаляйте эти файлы. В случае полного резервного копирования можно периодически удалять старые файлы – так Вы сможете сэкономить драгоценное место.

 

Заключение

Clickhouse поддерживает AWS S3 в качестве хранилища для резервных копий данных, которые затем можно будет восстановить. Использование инкрементального резервного копирования позволяет использовать это решение в случае работы с большими объемами данных в производственных средах.

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Как с помощью ClickHouse сравнить строки в двух CSV-файлах
Следующая статья →
Как мы «переселяли» свою БД Clickhouse в удаленные центры обработки данных

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Группа компаний "Дёке" производит товары для внешней отделки загородных домов. Ассортимент включает виниловый сайдинг, фасадные панели, водосточные системы, чердачные лестницы и гибкую битумную черепицу. Продукция Дёке вызывает гордость у сотрудников и партнеров компании.

  • Компания "Норникель" - лидер горно-металлургической отрасли в России и мире. Она производит металлы, необходимые для развития экологичной экономики и транспорта.

  • ООО «Ай Пи Ти Групп» (IPT Group) — многопрофильный консалтинговый холдинг, специализирующийся на юридическом и финансовом сопровождении бизнеса. IPT Group занимает высокие позиции в профессиональных рейтингах, входит в ТОП-30 лучших юридических компаний России по версии «Право.ru-300», Global Law Experts и др.

  • «Синтека» — ведущий разработчик инновационных сервисов для строительной отрасли, который решает ключевые задачи автоматизации службы снабжения строительных компаний.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.