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 » Энциклопедия ClickHouse » clickhouse команды

clickhouse команды

 

Краткое введение

Эта глава посвящена ключевым командам и операционным практикам, которые обеспечивает работа с ClickHouse на уровне команды и администрирования. В курсе по ClickHouse тема «clickhouse команды» имеет особое значение: без надежной основы командной дисциплины невозможно обеспечить стабильность, масштабируемость и безопасность аналитической инфраструктуры. Мы рассмотрим как клиентские CLI-инструменты, так и SQL‑наборы команд, которые применяются для управления кластерами, мониторинга, резервного копирования и восстановления данных, а также как эти команды встраиваются в DevOps и DataOps-практики.

Введение
ClickHouse - распределенная колонковая СУРД (СУБД), ориентированная на аналитические нагрузки. Управление ею связано не только с написанием SQL-запросов, но и с набором команд, которые позволяют:

  • взаимодействовать с нодами кластера через клиенты и API;
  • обеспечивать консистентность данных в репликах;
  • координировать операции между узлами (форк Keeper/ЗУ на уровне конфигурации кластера);
  • планировать и выполнять резервное копирование, миграцию и деградацию систем;
  • автоматизировать повторяющиеся процедуры и снижать риск ручных ошибок.

В этой главе мы оперируем понятиями и техникой, которые читаются как единый язык управления ClickHouse: от локального CLI до orchestration‑инструментов и CI/CD-пайплайнов.

 

Теоретические основы и терминология

  • ClickHouse и его архитектура командной поддержки
    • Реплицируемые таблицы (ReplicatedMergeTree) требуют согласования между репликами. Основной механизм координации - древо путей в ZooKeeper или его заменителя ClickHouse Keeper.
    • Модели консистентности в аналитических системах основаны на паттернах eventual consistency с ограничениями во времени применения крупных операций. В операциях с репликациями важно избегать гонок и deadlock‑ситуаций.
  • Клиентская коммуникация и протоколы
    • Клиентская часть (clickhouse-client) работает через сетевой протокол ClickHouse, поддерживает автоматическое повторное подключение, работу через HTTP (для некоторых инструментов) и параметры безопасной аутентификации.
    • В консистентных настройках кластера применяются протоколы согласования и синхронизации, которые обеспечивают корректную миграцию и резервирование.
  • Инструменты оркестрации и инфраструктуры
    • Kubernetes‑ориентированные решения: ClickHouse Operator и связанные с ним CRD‑объекты. Они предоставляют declarative подход к созданию нодовых кластера, настройке репликаций и обновлений.
    • Вендоры и открытые проекты вокруг ClickHouse Keeper (замена ZooKeeper) - для управления конфигурациями и состоянием кластера.
  • Ключевые команды и контекст использования
    • Команды взаимодействия: клиенты CLI, REST/HTTP интерфейсы и утилиты резервного копирования.
    • Команды управления таблицами, бэкапами, миграциями, обновлениями схемы, настройками TTL и оптимизациями.

       

Методологии и подходы

  • DataOps и DevOps для ClickHouse
    • Стандартизированные runbooks, версионирование конфигураций, применение инфраструктурного кода (IaC) для кластера ClickHouse.
    • Непрерывная интеграция и разворачивание обновлений кластера с минимальным временем простоя.
  • Архитектура управления
    • Разделение ролей: операторы кластера, инженеры по данным, SecOps. Это обеспечивает четкую ответственность за команды и безопасный доступ.
    • Мониторинг и алертинг в реальном времени, чтобы оперативно реагировать на сбои учетных записей, задержки репликаций и неожиданные изменения в нагрузке.
  • Технические практики
    • Нормализация и стандартизация команд: принципы именования узлов, конвенции по параметрам CLI, единая документация по всем операциям.
    • Безопасность доступа к кластерам: многофакторная аутентификация, ограничение доступа по ролям, аудит команд.

       

Архитектура и технологическая реализация

  • Кластерная топология ClickHouse
    • Реплицируемые таблицы на базе ReplicatedMergeTree, с использованием конфигурационных путей в ZooKeeper/ Keeper.
    • Шардирование по ключу ORDER BY и PARTITIONING, чтобы обеспечить распределение нагрузки и параллельную обработку запросов.
  • Команды на уровне кластера
    • Создание, настройка и управление базами данных и таблицами.
    • Управление репликациями, перехват и разрешение конфликтов.
    • Мониторинг производительности и состояния кластера через системные таблицы и внешние инструменты.
  • Инструменты и технологическая связка
    • Open-source стек: ClickHouse, Keeper, Operator, backup‑tool, драйверы клиента.
    • Российские и локальные решения: использование ClickHouse в кейсах Яндекс.Метрика и других продуктов, внедряющих локальные решения масштабирования аналитики; поддержка отечественных инфраструктурных решений и интеграций.
  • Пример архитектурной схемы
    • Мультикастинг кластера: 4 ноды с 2 репликами, Keeper/Kooper для координации, резервирование на уровне серверов, бэкап по расписанию, мониторинг через Prometheus/Grafana.

       

Организационные и процессные аспекты

  • Вводно‑операционная цепочка
    • Планирование изменений схем, обновлений версий ClickHouse, правок конфигураций через change management.
    • Разделение тестирования: staging-производство, с тестированием резервного восстановления и миграций.
  • Runbooks и инцидент‑управление
    • Набор сценариев для common failure modes: задержки репликаций, разрывы сети, падение отдельных нод, несовместимость версий.
    • Быстрые команды по возвращению в устойчивое состояние и минимизации потери данных.
  • Документация и обучение
    • Поддержка общего набора команд, гайдлайнов по использованию CLI, справочников по системным таблицам и метрикам.

Технические детали реализации (алгоритмы, схемы, протоколы, интеграции)

  • Команда по взаимодействию через CLI

    • Пример базового подключения и выполнения запроса:
      
          ## Подключение к узлу
          clickhouse-client --host  --user  --password  --port 
      
          ## Выполнение запроса
          clickhouse-client --query "SELECT now(), count(*) FROM system.numbers LIMIT 10"
      
  • Пример админичских операций:

    
        -- Создание базы
        CREATE DATABASE IF NOT EXISTS analytics;
    
        -- Создание реплицируемой таблицы
        CREATE TABLE analytics.events
        (
            event_time DateTime,
            user_id UInt64,
            event_type String,
            payload String
        )
        ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/events', '{replica}')
        ORDER BY (event_time);
    
  • Архитектура кластера и протоколы

    • Архитектура ReplicatedMergeTree: каждая реплика поддерживает свой набор данных, синхронизация осуществляется через слой координации (Keeper/ ZooKeeper) и согласование MergeTree‑операций.
    • Keeper/ClickHouse Keeper: обеспечивает консистентность путей, лидеры и последовательности, которые критичны для корректного выполнения DDL и оптимизаций в кластере.
  • Управление резервным копированием и восстановлением

    • Пример использования clickhouse-backup (open-source проект) для резервного копирования и восстановления:
      
          ## Создание бэкапа
          clickhouse-backup create my_backup
      
          ## Список бэкапoв
          clickhouse-backup list
      
          ## Восстановление
          clickhouse-backup restore my_backup
      
  • Важные моменты: консистентность между репликами, поддержка PITR (point-in-time recovery), хранение бэкапов в S3/MinIO, политики очистки старых копий.

  • Интеграции

    • Интеграция с системами мониторинга: экспорт метрик в Prometheus, визуализация в Grafana.
    • Интеграции с CI/CD: автоматизация миграций схем, проверка совместимости версий перед обновлениями.
    • Подключения к источникам данных: внешние таблицы, функции и движки, поддерживаемые через SQL‑шлюзы и коннекторы.
  • Примеры open-source и российских продуктов

    • Open-source
      • ClickHouse (ядро СУБД, распределенная аналитика).
      • ClickHouse Keeper (замена ZooKeeper для управления состоянием кластера).
      • clickhouse-backup (инструмент резервного копирования и восстановления).
      • ClickHouse Operator (инструмент управления кластерами ClickHouse в Kubernetes).
      • Python/Go драйверы и клиенты для взаимодействия с ClickHouse.
    • Российские продукты и кейсы
      • Яндекс.Метрика и другие сервисы Яндекса, использующие ClickHouse в качестве высокопроизводительного аналитического ядра. Это демонстрирует практические сценарии агрегаций, событийной аналитики и микросервисной интеграции на реальных масштабах в российской экосистеме.
      • Яндекс.Облако и отечественные интеграции: управление кластерами ClickHouse в облачных условиях, мониторинг, безопасность и доступность в рамках российского ИТ‑инфраструктурного контекста.
      • Локальные решения по управлению данными и мониторинг на базе ClickHouse Keeper и родственных пакетов в российских проектах, где важна интеграция с внутренними регламентами безопасности и соответствия.

         

Риски, ограничения и типовые ошибки

  • Риски консистентности
    • Неправильная конфигурация ReplicatedMergeTree может привести к задержкам в репликации, конфликтам данных или потере синхронности между репликами. Важно тестировать обновления и миграции в staging‑окружении.
  • Проблемы с координацией
    • Keeper/ ZooKeeper (или Keeper‑замена) может стать узким местом в производительных кластерах; необходимо мониторить задержки, числа узлов, сетевые лаги и статус лидеров.
  • Резервное копирование и восстановление
    • Неправильная версия бэкапа или неучтенные зависимости на момент восстановления могут привести к несовместимости и утрате данных. Восстановление должно быть протестировано на тестовом стенде.
  • Безопасность и доступ
    • Неправильная настройка прав доступа, открытые порты, отсутствие аудита команд - это частые источники риска. Рекомендуется внедрять строгую роль‑ориентированную доступность и аудит команд.
  • Масштабирование и производительность
    • Неоптимальные схемы партиций и неправильно выбранный ORDER BY могут привести к узким местам на этапе MERGE и агрегаций. Важно выполнять ревизии конструкций таблиц и нагрузочных тестов.
  • Типовые ошибки команд
    • Ошибки в путях ZooKeeper/ Keeper, неверные шаблоны для путей репликации, несогласованные версии клиента и сервера, пропуски в миграциях схем - все это часто встречается в недавнем опыте эксплуатации.

Заключение
Команды ClickHouse представляют собой не просто набор CLI‑инструментов или SQL‑операций. Это интегрированная система управления данными в распределенном аналитическом контуре: от правильной координации реплик и миграций схем до безопасного резервного копирования и мониторинга нагрузки. Освоение clickhouse команды включает не только технические навыки, но и методологическую культуру DevOps/DataOps, ориентированную на автоматизацию, воспроизводимость и безопасность. В дальнейшем разделе FAQ мы ответим на наиболее частые вопросы, которые чаще всего возникают у аналитиков, архитекторов и ИТ‑директоров при работе с ClickHouse.

FAQ

  1. Какие базовые команды нужно знать неопытному администратору?
  • Ответ: Начать стоит с базовых операций через clickhouse-client: создание баз, таблиц, выборок и молниеносной диагностики состояния нод через system.* таблицы. Затем перейти к управлению кластером через создание реплицируемых таблиц и настройку Keeper/Keeper альтернатив. Важно освоить резервное копирование через инструменты вроде clickhouse-backup и сценарии восстановления.
  1. Как обеспечить устойчивость кластера при обновлениях?
  • Ответ: планируйте обновления по этапам, тестируйте миграции в staging, применяйте безболезненные схемы отката. Обеспечьте согласованность между репликами, используйте резервное копирование данных, тестируйте PITR и восстановление на тестовом стенде.
  1. Какие инструменты используются для резервного копирования и восстановления?
  • Ответ: Open-source инструменты, такие как clickhouse-backup, позволяют создавать инкрементальные копии, сохранять их в S3/MinIO и восстанавливать данные на нужной ноде. Важно проверить консистентность данных после восстановления на уровне таблиц и реплик.
  1. Как организовать мониторинг и алертинг в контексте clickhouse команды?
  • Ответ: используйте интеграцию ClickHouse с Prometheus и Grafana. Метрики по задержкам репликаций, задержкам запуска MERGE, загрузке CPU/Disk IO, очередям изменений и состоянию Keeper позволяют оперативно реагировать на проблемы.
  1. Какие pitfalls встречаются при работе с ReplicatedMergeTree?
  • Ответ: неоптимальные схемы партиционирования и ORDER BY, неправильные пути репликации, несогласованные версии таблиц, отсутствие поддержки консистентности между репликами.
  1. Какие сценарии использования наиболее характерны для российских систем?
  • Ответ: в российских системах часто применяются кейсы с большими массиcами событий, веб‑аналитики и telemetry, где ClickHouse используется как ядро аналитики. Примеры внедрений в сервисах Яндекс и аналогичных проектах демонстрируют масштабирование и устойчивость в условиях российского трафика.
  1. Какие международные и российские примеры можно привести в качестве кейсов?
  • Ответ: Open-source экосистема ClickHouse; Keeper как замена ZooKeeper; резервное копирование через clickhouse-backup. В российских кейсах можно упомянуть использование ClickHouse в проектах Яндекс.Метрика и интеграциях, ориентированных на локальные требования к безопасности и регуляциям. Эти примеры иллюстрируют практическое применение ClickHouse в крупных системах с высокой нагрузкой.
  1. Как связать команды ClickHouse с CI/CD?
  • Ответ: настройте пайплайны для разворачивания изменений схем, тестирования миграций на staging и автоматического применения обновлений схем на production после успешного прохождения тестов. Это уменьшит риск человеческих ошибок и обеспечит воспроизводимость.
  1. Какие типы данных и схемы обычно используются в clickhouse командах?
  • Ответ: табличные структуры часто строятся на ReplicatedMergeTree, с ключами ORDER BY и PARTITIONING, TTL‑управлением и специализированными индексациями. Важно адаптировать схему под характер запросов: агрегации по времени, по сегментам пользователей, по типам событий.
  1. Что вы рекомендуете для начинающего архитектора ClickHouse?
  • Ответ: начать с освоения базовых команд CLI и SQL‑операций, затем детально изучить архитектурные принципы ReplicatedMergeTree и Keeper, создать минимальный кластер в тестовом окружении, организовать резервное копирование и мониторинг, постепенно добавлять оркестрацию через ClickHouse Operator и интеграцию с CI/CD.

     

Приложения и примеры кода

  • Пример YAML для Kubernetes с ClickHouse Operator

    
      apiVersion: "clickhouse.altinity.com/v1"
      kind: "ClickHouseInstall"
      metadata:
        name: "example-cluster"
      spec:
        configuration:
          clusters:
            - **name**: "default"
              layout:
                - **shards**: 2
                  replicas: 2
                  template:
                    spec:
                      containers:
                        - **name**: "clickhouse"
                          image: "yandex/clickhouse-server:latest"
    
  • Пример сценария запуска бэкапа и восстановления

    
      ## Создать бэкап
      clickhouse-backup create daily_backup
    
      ## Переключиться на нужный бэкап
      clickhouse-backup restore daily_backup
    

    Иллюстративная таблица (ключевые команды)

  • Таблица 1. Базовые команды и назначения

Команда Назначение Пример
clickhouse-client взаимодействие с нодой clickhouse-client --host host1
CREATE DATABASE / TABLE создание объектов CREATE DATABASE analytics; CREATE TABLE analytics.events (...) ENGINE = ReplicatedMergeTree(...)
system.* таблицы мониторинг состояния SELECT * FROM system.clusters; SELECT replica_name, is_leader FROM system.replication_queue;
clickhouse-backup резервное копирование clickhouse-backup create backup1; clickhouse-backup restore backup1;
Keeper / Keeper‑замена координация кластера конфигурационные файлы и пути координации

 

Стиль и структура вывода

  • Текст построен как учебное пособие: логически выстроенные разделы от концепций к реализации.
  • Использованы заголовки, абзацы, списки и кодовые примеры.
  • Включены реальные практические примеры и open-source/российские контекстные примеры.
  • Текст рассчитан на профессиональную аудиторию аналитиков, архитекторов и ИТ‑директоров, с акцентом на то, зачем и почему именно так работают clickhouse команды в рамках современных архитектур.

     

Заметка по терминологии

  • В рамках главы встречается конкретное словосочетание clickhouse команды, используемое как единый термин для описания набора операций администрирования и управления в экосистеме ClickHouse. Это словосочетание сохраняется в тексте для единообразного восприятия концепции в рамках курса.
← Предыдущая статья
Clickhouse XML: обработка XML-данных в аналитических системах
Следующая статья →
last clickhouse

 

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

Решения

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

Клиенты
  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

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

  • «Балтийский лизинг» — первая компания в России, получившая лицензию № 0001 от Министерства экономики РФ на лизинговую деятельность, лицензия зарегистрирована 2 сентября 1996 года. «Балтийский лизинг» работает на российском рынке 33 года: компания представлена 79 филиалами по всей стране, сегодня в штате более 1300 сотрудников. За последние десять лет компания профинансировала имущество для 80 000 клиентов.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.