Перейти к основному содержимому Перейти к дополнительному содержимому

Параллельная загрузка сегментов набора данных

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

Примечание к информацииЕсли используется Data Movement Gateway, эта функция поддерживается с версии 2024.5.35.

Каждый сегмент набора данных загружается с помощью отдельной подзадачи. Поэтому, принимая решение о том, как разделить набор данных, всегда необходимо учитывать доступность базы данных и сетевых ресурсов. Разделение таблицы на слишком большое количество сегментов может повлиять на производительность базы данных и перегрузить сеть. Если выбран метод сегментации Диапазоны данных с набором данных, разбитым на разделы, лучше всего настроить диапазоны таким образом, чтобы каждый из них охватывал один или несколько целых разделов. Это ускорит извлечение данных и минимизирует влияние на ресурсы обработки базы данных.

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

Задача данных должна быть определена с помощью комбинации следующих коннекторов источника данных и цели.

  • IBM DB2 for LUW
  • IBM DB2 for z/OS

    Примечание к информации

    Сегментация таблиц по разделам или подразделам не поддерживается коннектором источника IBM DB2 for z/OS.

  • Microsoft SQL Server (на основе журнала)
  • MySQL
  • Oracle
  • PostgreSQL

    Примечание к информации

    Сегментация таблиц по разделам или подразделам не поддерживается коннектором источника PostgreSQL.

  • SAP (Application)
    Примечание к информации

    Таблицы с конечной точкой источника SAP (Application) по умолчанию зависят от клиента. Столбец MANDT автоматически берется непосредственно из коннектора.

  • SAP HANA (Database)
  • Amazon Redshift
  • Amazon S3
  • Google Cloud BigQuery
  • Google Cloud Storage
  • Microsoft Fabric Data Warehouse
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Snowflake

Настройка параллельной загрузки

Можно разделить таблицу, используя один из двух методов: Диапазоны данных или Разделы. Метод Диапазоны данных разбивает таблицу по диапазонам данных, а метод Разделы разбивает таблицу по разделам.

Использование метода диапазонов данных

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

  1. На вкладке Наборы данных щелкните меню справа от набора данных и выберите Параметры.

    Откроется диалоговое окно Параллельная загрузка.

  2. Выберите метод сегментации Диапазоны данных.

  3. Щелкните Выбрать столбцы.

    Откроется диалоговое окно Столбцы сегментации таблицы.

  4. Для всех поддерживаемых источников данных автоматически выбирается столбец уникального индекса. Выберите, какие дополнительные столбцы с данными требуется использовать для разграничения диапазонов, а затем нажмите кнопку OK.

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

    • Рекомендуется использовать индексированные столбцы источника данных, так как это оптимизирует производительность поиска данных.

    • Можно выбрать до десяти столбцов

    • Записи с нулевыми значениями не реплицируются

    • Следующие типы данных нельзя использовать для определения сегментов по диапазонам: DOUBLE, FLOAT и LOB (BLOB, CLOB, NCLOB).

  5. Щелкните Добавить диапазон данных, чтобы добавить сегмент диапазона данных.

    Откроется диалог Добавить диапазон данных с выбранными столбцами.

  6. Для каждого столбца укажите верхнюю границу диапазона сегмента.

    Примечание к информации

    Значения в столбцах DATE необходимо вводить в формате, поддерживаемом источником. Например, для источника Oracle правильный формат будет следующим:

    • ALTER SESSION SET NLS_DATE_FORMAT:

      'YYYY-MM-DD HH24:MI:SS' (также можно указать только YYYY-MM-DD )

    • ALTER SESSION SET NLS_TIMESTAMP_FORMAT:

      'YYYY-MM-DD HH24:MI:SS.FF9'

    • ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT:

      'YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'

  7. Нажмите кнопку ОК, чтобы сохранить параметры и закрыть диалоговое окно.

    Каждый из выбранных столбцов будет отображаться с указанным диапазоном.

  8. По необходимости повторите шаги 3-6, чтобы добавить столбцы и диапазоны данных.
  9. Нажмите кнопку Проверить, чтобы проверить, что введенные данные соответствуют типу данных столбца источника и что все определенные сегменты содержат значения.
Примечание к информации

При использовании метода Диапазоны данных реплицируются все данные таблицы, даже если диапазоны данных определены не для всех столбцов.

Чтобы отредактировать диапазон данных, выполните следующие действия.

  1. Щелкните меню в конце строки и выберите Изменить.
  2. Отредактируйте диапазон данных и нажмите кнопку OK, чтобы сохранить изменения.

Чтобы удалить диапазон данных, выполните следующие действия.

  1. Щелкните меню в конце строки и выберите Изменить.
  2. Когда появится запрос на подтверждение действия, нажмите кнопку Удалить.

Пример использования

Предположим, что определены следующие сегменты:

Пример данных таблицы
Столбец_1 Столбец_2 Столбец_3

10

30

105

20

20

120

100

12

99

В этом случае для каждого сегмента загрузки будут созданы следующие предложения WHERE:

  • Сегмент 1:((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
  • Сегмент 2:NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
  • Сегмент 3:NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 30) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
  • Сегмент 4:NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

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

Можно определить границы сегментов по всем разделам таблицы, всем подразделам таблицы (если источник данных поддерживает подразделы) или конкретным разделам.

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

Использование всех разделов

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

  1. На вкладке Наборы данных щелкните меню справа от набора данных и выберите Параметры.

    Откроется диалоговое окно Параллельная загрузка.

  2. Выберите метод сегментации Разделы.

  3. Выберите один из следующих вариантов.

    • Использовать все основные разделы

    • Использовать все подразделы

      Примечание к информации

      Этот вариант будет неактивен, если источник данных не поддерживает подразделы.

  4. Нажмите кнопку ОК.

Использование конкретных разделов

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

  1. На вкладке Наборы данных щелкните меню справа от набора данных и выберите Параметры.

    Откроется диалоговое окно Параллельная загрузка.

  2. Выберите метод сегментации Разделы.

  3. Выберите Указать разделы.

    Примечание к информации

    Если выбран вариант Указать разделы, то будут реплицированы только указанные разделы.

  4. Щелкните Добавить раздел.

    Откроется диалоговое окно Добавить раздел.

  5. Укажите имя существующего раздела или подраздела.

    Если добавляется подраздел, установите флажок Подраздел.

  6. Нажмите кнопку ОК, чтобы сохранить параметры.
  7. По необходимости повторите шаги 4-6, чтобы добавить разделы или подразделы.

Чтобы отредактировать раздел, выполните следующие действия.

  1. Щелкните меню в конце строки и выберите Изменить.
  2. Отредактируйте информацию о разделе и нажмите кнопку OK, чтобы сохранить изменения.

Чтобы удалить раздел, выполните следующие действия.

  1. Щелкните меню в конце строки и выберите Изменить.
  2. Когда появится запрос на подтверждение действия, нажмите кнопку Удалить.

Настройка количества сегментов для параллельной загрузки

Можно увеличить или уменьшить количество сегментов, которые будут загружаться параллельно. Это значение наследуется из поля Полная загрузка > Настройка производительности > Максимальное количество таблиц для параллельной загрузки в настройках задачи данных. Текущее значение отображается в строке «Параллельно можно загружать до <n> сегментов» в диалоговом окне Параллельная загрузка. Увеличение этого числа может повысить производительность, если набор данных разбит на множество сегментов, но при этом увеличится нагрузка на ресурсы базы данных и пропускную способность сети.

Примечание к информацииКаждый сегмент загружается с помощью отдельной подзадачи, поэтому, например, если выбран вариант Использовать все основные разделы, а исходный набор данных содержит 20 основных разделов, увеличение значения параметра Максимальное количество таблиц для параллельной загрузки до 15 приведет к тому, что 15 сегментов (разделов) будут загружаться параллельно. Когда подзадачи будут выполнены, они будут назначены для загрузки оставшихся 5 разделов.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!