> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Параллельный снимок в ClickPipe для MySQL

> Документация с объяснением параллельного снимка в ClickPipe для MySQL

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

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

<div id="overview-mysql-snapshot">
  ## Обзор
</div>

Начальная загрузка — это первый этап CDC ClickPipe, на котором ClickPipe синхронизирует исторические данные таблиц из исходной базы данных с ClickHouse, а затем запускает CDC. Во многих случаях разработчики выполняют это в однопоточном режиме.
Однако ClickPipe для MySQL может распараллелить этот процесс, что позволяет значительно ускорить начальную загрузку.

<div id="key-mysql-snapshot">
  ### Столбец ключа партиционирования
</div>

После включения feature flag вы увидите приведённую ниже настройку в средстве выбора таблицы ClickPipe (как при создании, так и при редактировании ClickPipe):

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/mysql/partition_key.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=e432cf7f06707b8b542f13dd1c77bc41" alt="Столбец ключа партиционирования" size="md" width="1054" height="1194" data-path="images/integrations/data-ingestion/clickpipes/mysql/partition_key.png" />

ClickPipe для MySQL использует столбец в исходной таблице, чтобы логически разбивать исходные таблицы на партиции. Этот столбец называется **столбцом ключа партиционирования**. Он используется для разделения исходной таблицы на партиции, которые затем ClickPipe может обрабатывать параллельно.

<Warning>
  Чтобы получить заметный прирост производительности, на столбец ключа партиционирования в исходной таблице должен быть создан индекс. Это можно проверить, выполнив в MySQL команду `SHOW INDEX FROM <table_name>`.
</Warning>

<div id="logical-partitioning-mysql-snapshot">
  ### Логическое партиционирование
</div>

Рассмотрим следующие настройки:

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/mysql/snapshot_params.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=bc2bba8d0f391b589e614b3b719f263b" alt="Параметры снимка" size="md" width="1192" height="532" data-path="images/integrations/data-ingestion/clickpipes/mysql/snapshot_params.png" />

<div id="numrows-mysql-snapshot">
  #### Количество строк на партицию в снимке
</div>

Этот параметр определяет, сколько строк входит в одну партицию. ClickPipe будет читать исходную таблицу фрагментами такого размера, а сами фрагменты будут обрабатываться параллельно в соответствии с заданным уровнем параллелизма начальной загрузки. Значение по умолчанию — 100 000 строк на партицию.

<div id="parallelism-mysql-snapshot">
  #### Параллелизм начальной загрузки
</div>

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

<div id="tables-parallel-mysql-snapshot">
  #### Количество таблиц, обрабатываемых параллельно при создании снимка
</div>

Это не совсем связано с параллельным снимком, но этот параметр задаёт, сколько таблиц обрабатывается параллельно во время начальной загрузки. Значение по умолчанию — 1. Обратите внимание, что это работает поверх параллелизма партиций, поэтому, если у вас 4 партиции и 2 таблицы, ClickPipe будет читать 8 партиций параллельно.

<div id="monitoring-parallel-mysql-snapshot">
  ### Мониторинг параллельного снимка в MySQL
</div>

Вы можете выполнить **SHOW processlist** в MySQL, чтобы увидеть, как работает параллельный снимок. ClickPipe создаст несколько соединений с исходной базой данных, и каждое из них будет считывать отдельную партицию исходной таблицы. Если вы видите запросы **SELECT** с разными диапазонами, это означает, что ClickPipe считывает данные из исходных таблиц. Здесь также можно увидеть COUNT(\*) и запрос партиционирования.

<div id="limitations-parallel-mysql-snapshot">
  ### Ограничения
</div>

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