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 на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Greenplum с нуля: MPP аналитическая база данных » Топология кластера: мастер-узел, сегментные узлы и интерфейс сетевого взаимодействия

Топология кластера: мастер-узел, сегментные узлы и интерфейс сетевого взаимодействия

Greenplum - это аналитическая база данных в рамках архитектуры MPP (massively parallel processing). Эффективная топология кластера определяет пропускную способность запросов, устойчивость к сбоям и простоту масштабирования. В данной главе представлены принципы построения топологии: роль мастер-узла, роль сегментных узлов, механизмы зеркалирования и требования к сетевому взаимодействию между элементами кластера. Особое внимание уделяется архитектурным решениям, которые обеспечивают баланс между параллелизмом выполнения и консистентностью данных на больших объемах.

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

  • Архитектура Greenplum: мастер-узел, сегменты и зеркала, их роли и взаимодействие.
  • Сетевые требования и интерфейсы: межузельный interconnect, выделенные сетевые каналы и принципы их использования.
  • Роли и ответственность узлов: диспетчер запросов, исполнители, репликация и отказоустойчивость.
  • Практические ориентиры развертывания: топологии, балансировка нагрузки, мониторинг и поддержка.

     

Архитектура Greenplum: мастер-узел, сегменты и зеркала

В базовой конфигурации Greenplum кластер состоит из одного мастер-узла (QD - Query Dispatcher) и множества сегментных узлов, на которых размещаются сегменты данных. Каждый сегментный узел может содержать несколько сегментов, работающих параллельно на разных файлах системы хранения. Для обеспечения отказоустойчивости к каждому первичному сегменту обычно соответствует зеркальный сегмент (mirror). Мастер-узел отвечает за прием клиентских соединений, парсинг SQL, генерацию плана выполнения и координацию дистрибуции задач между сегментами.

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

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

  • Номер content id у сегмента - концептуальная метка, которая позволяет Greenplum различать источники данных на уровне каждого сегмента и управлять балансировкой нагрузки.
  • Архитектура зеркал строится таким образом, чтобы зеркальные сегменты располагались на независимых узлах и сетях, избегая единой точки отказа, и чтобы репликацию можно было осуществлять без влияния на производительность первичных сегментов.
  • Взаимосвязь между мастером и сегментами организована через сетевой межсоединительный канал, который оптимизирован под большой поток данных и низкую задержку.

     

Пример конфигурации топологии

В реальном кластере может быть: 1 мастер-узел, 4-8 хостов с первичными сегментами (по 2-4 сегмента на хост) и равное количество зеркал на отдельных хостах. Такая конфигурация обеспечивает высокую степень параллелизма и устойчивость к сбоям отдельных узлов.

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

     

Роли и ответственность узлов: диспетчер запросов, исполнители, репликация

QD (Query Dispatcher) - центральный компонент мастера, который принимает SQL-запросы от клиентов, компилирует их в план и управляет сетевыми потоками между узлами. В процессе исполнения план распараллеливается между сегментами, выполняя операции фильтрации, агрегации и соединения там, где данные физически находятся. Итоговый результат собирается на мастере и возвращается клиенту.

Сегментные узлы осуществляют фактическую обработку набора данных. Каждый первичный сегмент отвечает за конкретный диапазон контента, что обеспечивает дедупликацию вычислений и минимизацию перемещения данных между сегментами. Зеркальные сегменты поддерживают непрерывную доступность данных и выполняют подстраховку в случае отказа первичных сегментов. В режиме досрочного восстановления зеркальные сегменты восстанавливают данные через потоковую репликацию WAL (Write-Ahead Logging) и последующее синхронное применение изменений.

  • Планирование - ответственность QD: сбор статистики, выбор стратегий соединений и агрегаций, распределение нагрузок.
  • Исполнение - ответственность сегментов: выполнение скольких-либо операций над локальными фрагментами данных, передача промежуточных результатов и агрегация на стейкхолдерских шагах плана.
  • Репликация - зеркальные сегменты: поддерживают копии данных, поддерживают консистентность и обеспечивают failover.

     

Принципы репликации и согласованности

Greenplum использует репликацию на уровне сегментов для обеспечения доступности и устойчивости к сбоям. При потере первичного сегмента зеркальный сегмент вступает в роль активного сегмента и продолжает обработку запросов, пока первичный не будет восстановлен или заменён. Репликация между сегментами реализуется через потоковую передачу WAL-логов, что позволяет минимизировать время простоя.

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

     

Взаимодействие и сетевые интерфейсы: межузельный interconnect и требования к сети

Ключевая идея топологии Greenplum - разделение сетевых каналов в зависимости от роли: отделение межузельного interconnect от клиентского трафика и административного управления. Эффективная сеть обеспечивает минимальные задержки и высокую пропускную способность для перемещения огромных объемов данных между сегментами.

  • Интерконнект между сегментами - основной канал передачи данных в ходе выполнения запросов, обмена промежуточными результатами и shuffle-операций.
  • Административный/клиентский трафик - выделяется на отдельной сети, чтобы не влиять на производительность аналитических задач.
  • Выделение нескольких сетевых интерфейсов на каждом узле позволяет параллельно обрабатывать разные типы трафика и снижать конкуренцию за ресурсы.

Рекомендации по сетевому дизайну включают использование изолированных сетей (Virtual LAN или физические VLAN) и высокопроизводительных NIC, поддерживающих низкую задержку и крупный пакетный размер MTU, соответствующий объему передаваемых данных. Важна корректная настройка MTU и оптимизация параметров TCP, чтобы минимизировать перегрузку CPU на сегментах и QD.

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

     

Распределение данных и балансировка нагрузки

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

  • Если частые операции выполняются над одной большой таблицей, необходимо выбрать распределение, минимизирующее перемещение данных во время джойн-соединений.
  • Для таблиц с предсказуемой фильтрацией и агрегацией по конкретному ключу распределение по этому ключу может существенно выиграть.
  • Распределение влияет на производительность вставки: вставка без распределения по столбцам может приводить к неравномерной загрузке сегментов и «hot spots».

Балансировка нагрузки в Greenplum осуществляется на уровне плана выполнения: диспетчер запросов может распараллелить операции и задействовать все доступные сегменты, чтобы ускорить обработку. На практике это требует грамотного проектирования схем, статистик и заполнения сегментов на старте развёртывания.

 

Расширение кластера и масштабируемость

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

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

     

Репликация и отказоустойчивость: зеркальные сегменты и сценарии восстановления

Зеркальные сегменты являются основой отказоустойчивости кластера Greenplum. В случае сбоя первичного сегмента соответствующий зеркальный сегмент может перейти в активный режим, обеспечив непрерывность доступа к данным. Важна корректная настройка политики failover и планирование процедур восстановления.

  • Failover сценарии: автоматический переход к зеркальному сегменту, синхронная или асинхронная репликация, уведомления администратору.
  • Восстановление после сбоя: заново создавать первичный сегмент и расперелагировать данные по новым сегментам, синхронизировать стиль распределения и обновить статистику.

Роль межузельного interconnect в поддержке репликаций критична: задержки и пропускная способность сети напрямую влияют на скорость восстановления. Поэтому сеть должна обеспечивать достаточное качество обслуживания для репликационных потоков без снижения производительности основных аналитических задач.

 

Практические аспекты развертывания: топологии, настройки и мониторинг

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

  • Разделение функций узлов: мастер-узел на отдельном хосте, сегменты - на вычислительных узлах, зеркальные сегменты - на отдельных узлах, соответствующим образом сегрегировать сетевой трафик и ресурсы хранения.
  • Планирование пропускной способности сети: межузельный interconnect должен обходиться сетью с запасом по пропускной способности и задержке, чтобы не становиться узким местом.
  • Налаживание мониторинга: включение gpperfmon или аналогичных инструментов для отслеживания загрузки CPU, задержек межузельного обмена, пропускной способности сетей и состояния зеркал.
  • Сценарии отказоустойчивости: заранее прописанные процедуры failover и восстановления, тестирование их в контролируемой среде, документирование ролей администраторов.

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

 

Key takeaways

  • Архитектура Greenplum строится вокруг мастера (QD), сегментов и зеркал, что обеспечивает параллелизм и отказоустойчивость.
  • Распределение данных через DISTRIBUTED BY напрямую влияет на производительность операторов агрегации и соединения и должно выбираться с учётом характера запросов.
  • Межузельный interconnect требует выделенной сети и низкой задержки; разделение трафика между административным и межузельным каналами существенно для стабильности.
  • Репликация через зеркальные сегменты обеспечивает высокую доступность и расширяемость, но требует правильной настройки режимов failover и восстановления.
  • Масштабирование кластера - последовательный процесс: добавление сегментов и зеркал, обновление статистик и перераспределение данных.
  • Мониторинг производительности и сетевых ресурсов критичен для поддержания стабильной работы кластера в условиях роста объема данных.
  • Эффективное проектирование топологии минимизирует перемещение данных и снижает задержки выполнения запросов.

     

FAQ

  1. Какова основная роль мастер-узла в Greenplum?
  • Мастер-узел (QD) выступает как центр управления запросами: принимает SQL от клиентов, формирует план выполнения, координирует распределение задач между сегментами и собирает результаты. Он не хранит данные, поэтому важна его доступность и производительность сети для обеспечения быстрой маршрутизации запросов к сегментам.

 

  1. Что такое сегментные узлы и для чего они нужны?
  • Сегментные узлы содержат первичные сегменты, которые фактически хранят и обрабатывают фрагменты данных. Параллельная обработка на нескольких сегментах позволяет Greenplum достигать высокого уровня пропускной способности и масштабируемости. В зависимости от нагрузки можно размещать несколько сегментов на каждом узле.

 

  1. Как работают зеркальные сегменты и зачем они нужны?
  • Зеркальные сегменты обеспечивают отказоустойчивость: каждый первичный сегмент имеет копию данных на зеркале. В случае сбоя первичного сегмента зеркало может стать активным, продолжив обработку запросов. Репликация между сегментами обычно осуществляется через поток WAL-логов, обеспечивая согласованность данных после восстановления.

 

  1. Какие сетевые требования критичны для эффективной работы кластера?
  • Необходимо выделить отдельную interconnect-сеть для передачи данных между сегментами и, по возможности, отдельную сеть для клиентского доступа и администрирования. Важны низкая задержка, высокая пропускная способность и корректная настройка MTU. Мониторинг сетевых задержек и использования ресурсов позволяет своевременно реагировать на перегрузки.

 

  1. Как выбрать распределение данных для таблиц?
  • Выбор DISTRIBUTED BY должен основываться на характере запросов: если запросы часто выполняются по конкретному ключу, распределение по этому ключу минимизирует перемещение данных и ускоряет агрегации иjoins. Неправильный выбор может привести к неравномерной загрузке сегментов и снижению производительности.

 

  1. Какие шаги нужны для масштабирования кластера?
  • Планомерное расширение: сначала добавляются новые сегменты, затем зеркала, после чего данные перераспределяются по новым сегментам и обновляются статистики. Важно оценить влияние на производительность и провести тестирование на небольших тестовых данных перед выпуском изменений в продуктив.

 

  1. Какие инструменты мониторинга применяются в Greenplum?
  • Встроенные средства мониторинга, например gpperfmon, позволяют отслеживать загрузку CPU, задержки межузельного обмена, загрузку памяти и состояние зеркал. Это обеспечивает раннее обнаружение узких мест и планирование дальнейших действий по масштабированию или настройке.

 

  1. Как обеспечить отказоустойчивость мастер-узла помимо зеркал?
  • Помимо зеркальных сегментов, стоит рассмотреть конфигурации высокой доступности (HA) для мастера, использование резервирования DNS/IP-адресов, автоматические процедуры failover и мониторинг состояния мастера. Важно иметь планы восстановления и регулярное тестирование этих сценариев.

 

  1. Какие практики особенно важны при проектировании топологии?
  • Включение расчета ожидаемой нагрузки, учет типа запросов, выбор правильного распределения данных, размещение сегментов и зеркал на независимых узлах, а также выделение сетей под interconnect и админский трафик.

 

  1. Что следует учитывать при плановом расширении в условиях роста данных?
  • Необходимо пересчитать показатели параллелизма и перераспределить данные, обновить статистические данные и пересмотреть схему распределения. Примером может служить переразмещение данных между сегментами для поддержания равномерной загрузки и сохранения эффективности запросов.

 

← Предыдущая статья
Архитектура Greenplum: концепции MPP и ключевые компоненты
Следующая статья →
Метаданные и каталоги Greenplum: pg_catalog, gp_toolkit и схемы

 

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

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

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

Клиенты
  • ГК «Агропромкомплектация-Курск» - одна из ведущих в Российской Федерации агропромышленных компаний с полным производственным циклом "от поля до прилавка". За 32 года работы на рынке компания заслуженно завоевала репутацию одного из лидеров страны в производстве свинины и молока.

  • «Восток-Запад» – крупнейший поставщик продуктов в рестораны, кафе, гостиницы, кейтеринговые компании, столовые, комбинаты питания и кондитерские производства. 300+ городов регулярной доставки по всей территории России и странам СНГ; 3500+ товаров профессиональных брендов.

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

  • Банк "Санкт-Петербург" - это универсальный коммерческий банк, предоставляющий полный спектр финансовых услуг для частных и корпоративных клиентов. Банк основан в 1990 году и имеет генеральную лицензию Банка России на осуществление банковских операций. Сеть банка включает более 170 офисов и отделений, а также свыше 1000 банкоматов и терминалов в Санкт-Петербурге, Москве и других регионах.

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