Поделиться через


Настройка базы данных Oracle в действии копирования

В этой статье описывается, как использовать действие копирования в конвейере данных для копирования данных из базы данных Oracle и обратно.

Поддерживаемая конфигурация

Для настройки каждой вкладки в действии копирования перейдите к следующим разделам соответственно.

Общие

Ознакомьтесь с руководством по общим параметрам, чтобы настроить вкладку "Общие параметры".

Исходный код

Следующие свойства поддерживаются для базы данных Oracle на вкладке "Источник " действия копирования.

Снимок экрана: вкладка источника и список свойств.

Требуются следующие свойства:

  • Подключение. Выберите подключение к базе данных Oracle из списка подключений. Если подключение отсутствует, создайте новое подключение к базе данных Oracle, выбрав "Дополнительно " в нижней части списка подключений.
  • Используйте запрос: выберите из таблицы или запроса.
    • Если выбрать таблицу:

      • Таблица. Укажите имя таблицы в базе данных Oracle для чтения данных. Выберите таблицу из раскрывающегося списка или нажмите клавишу ВВОД вручную , чтобы ввести имя схемы и таблицы.

        Снимок экрана: использование запроса — таблица.

    • Если выбрать запрос:

      • Запрос. Укажите настраиваемый SQL-запрос для чтения данных. Например: SELECT * FROM MyTable.

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

        Снимок экрана: использование запроса — запрос.

В разделе "Дополнительно" можно указать следующие поля:

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

    Если выбрать None, вы решили не использовать секцию.

    Если выбрать физические секции таблицы:

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

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

      Если для получения исходных данных используется запрос, подключите ?DfRangePartitionColumnName в предложении WHERE. Пример см . в разделе "Параллельная копия" из раздела базы данных Oracle.

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

      Если для получения исходных данных используется запрос, подключите ?DfRangePartitionUpbound в предложении WHERE. Пример см. в разделе "Параллельная копия из параллельной копии" из раздела базы данных Oracle.

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

      Если для получения исходных данных используется запрос, подключите ?DfRangePartitionLowbound в предложении WHERE. Пример см. в разделе "Параллельная копия из параллельной копии" из раздела базы данных Oracle.

      Снимок экрана: конфигурация при выборе динамического диапазона.

  • Время ожидания запроса (минуты): укажите время ожидания для выполнения команды запроса, значение по умолчанию — 120 минут. Если для этого свойства задан параметр, допустимые значения имеют интервал времени, например "02:00:00" (120 минут).

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

Назначение

Следующие свойства поддерживаются для базы данных Oracle на вкладке "Назначение " действия копирования.

Снимок экрана: вкладка назначения.

Требуются следующие свойства:

  • Подключение. Выберите подключение к базе данных Oracle из списка подключений. Если подключение не существует, создайте подключение к базе данных Oracle, выбрав "Дополнительно " в нижней части списка подключений.
  • Таблица. Выберите таблицу в базе данных из раскрывающегося списка. Или установите флажок ВВОД вручную , чтобы ввести имя схемы и таблицы.

В разделе "Дополнительно" можно указать следующие поля:

  • Скрипт предварительного копирования: укажите SQL-запрос для выполнения действия копирования перед записью данных в базу данных Oracle в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных.
  • Время ожидания пакетной вставки: время ожидания операции вставки пакета до истечения времени ожидания. Допустимое значение — интервал времени. Например, 00:30:00 (30 минут).
  • Размер пакета записи: укажите количество строк для вставки в таблицу базы данных Oracle на пакет. Допустимое значение: целое число (количество строк). Значение по умолчанию — 10 000.
  • Максимальное число одновременных подключений: верхний предел одновременных подключений, установленных в хранилище данных во время выполнения действия. Указывайте значение только при необходимости ограничить количество одновременных подключений.

Сопоставление

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

Настройки

Сведения о настройке вкладки "Параметры" см. в разделе "Настройка других параметров" на вкладке "Параметры".

Параллельная копия из базы данных Oracle

Соединитель базы данных Oracle предоставляет встроенную секционирование данных для параллельного копирования данных из базы данных Oracle. Параметры секционирования данных можно найти на вкладке Источник действия Copy.

При включении секционированного копирования служба выполняет параллельные запросы к источнику базы данных Oracle для загрузки данных по секциям. Параллельная степень управляется параметром "Степень параллелизма копирования" на вкладке параметров действия копирования. Например, если задать степень параллелизма копирования четырем, служба одновременно создает и выполняет четыре запроса на основе указанного параметра секции и параметров, а каждый запрос получает часть данных из базы данных Oracle.

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

Сценарий Предлагаемые параметры
Полная загрузка из большой таблицы с физическими секциями. Параметр секционирования. Физические секции таблицы.

Во время выполнения служба автоматически определяет физические секции и копирует данные по секциям.
Полная загрузка из большой таблицы без физических секций, когда таблица содержит столбец целочисленного типа для секционирования данных. Параметры секции: секция динамического диапазона.
Столбец секционирования: укажите столбец, используемый для секционирования данных. Если значение не указано, то используется столбец с первичным ключом.
Загрузка большого объема данных с помощью пользовательского запроса с физическими секциями. Параметры секции: физические секции таблицы.
Запрос: SELECT * FROM <TABLENAME> PARTITION("?DfTabularPartitionName") WHERE <your_additional_where_clause>.

Имя секции: укажите имена секций, из которых следует копировать данные. Если оно не указано, служба автоматически обнаруживает физические секции в таблице, указанной в данных базы данных Oracle.
Во время выполнения служба заменяет ?DfTabularPartitionName фактическое имя секции и отправляется в базу данных Oracle.
Загрузка большого объема данных пользовательским запросом без использования физических секций, однако с использованием столбца целочисленного типа для секционирования данных. Параметры секции: секция динамического диапазона.
Запрос: SELECT * FROM <TABLENAME> WHERE ?DfRangePartitionColumnName <= ?DfRangePartitionUpbound AND ?DfRangePartitionColumnName >= ?DfRangePartitionLowbound AND <your_additional_where_clause>.
Столбец секционирования: укажите столбец, используемый для секционирования данных. Секционирование можно выполнять по столбцу с целочисленным типом данных.
Верхняя граница секции и Нижняя граница секции: укажите эти значения, если нужно добавить фильтрацию по столбцу секционирования, чтобы получить данные только в пределах между нижним и верхним значениями.

Во время выполнения служба заменяет ?DfRangePartitionColumnName?DfRangePartitionUpbound?DfRangePartitionLowbound и фактическим именем столбца и диапазонами значений для каждой секции и отправляется в базу данных Oracle.
Например, если указан столбец секционирования ID с нижней границей 1 и верхней границей 80 при этом для параллельного копирования указано значение 4, служба будет извлекать данные по 4 секциям. Их идентификаторы находятся между [1,20], [21, 40], [41, 60], и [61, 80], соответственно.

Совет

При копировании данных из несекционированной таблицы можно использовать параметр секции "Динамический диапазон" для секционирования по целочисленному столбцу. Если в исходных данных нет такого типа столбца, можно использовать функцию ORA_HASH в исходном запросе, чтобы создать столбец и использовать его в качестве столбца секционирования.

Сводка таблицы

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

Сведения об источнике

Имя Описание Значение Обязательное поле Свойство скрипта JSON
Соединение Подключение к исходному хранилищу данных. <подключение к базе данных Oracle> Да подключение
Использование запроса Способ чтения данных из базы данных Oracle. Примените таблицу для чтения данных из указанной таблицы или применения запроса к чтению данных с помощью запросов SQL. Таблица
Запрос
Да /
Для таблицы
Имя схемы Имя схемы. < имя схемы > No schema
имя таблицы Имя таблицы. < имя таблицы > No table
Запрос
Запрос Используйте пользовательский SQL-запрос для чтения данных. Например, SELECT * FROM MyTable.
При включении секционированной нагрузки необходимо привязать все соответствующие встроенные параметры раздела в запросе. Примеры см. в разделе "Параллельная копия" из раздела базы данных Oracle.
< SQL-запросы > No oracleReaderQuery
Параметр секции Параметры секционирования данных, используемые для загрузки данных из базы данных Oracle. Нет (по умолчанию)
Физические секции таблицы
Динамический диапазон
No /
Для физических секций таблицы
Имена секций Список физических секций, которые необходимо скопировать. Если для получения исходных данных используется запрос, подключите ?DfTabularPartitionName в предложении WHERE. < имена секций > No partitionNames
Для динамического диапазона
Имя столбца секции Укажите имя исходного столбца целочисленного типа, который будет использоваться для секционирования по диапазонам при параллельном копировании. Если значение не указано, автоматически определяется первичный ключ таблицы, который используется в качестве столбца секционирования.
Если для получения исходных данных используется запрос, подключите ?DfRangePartitionColumnName в предложении WHERE. Пример см . в разделе "Параллельная копия" из раздела базы данных Oracle.
< Имена столбцов секций > No partitionColumnName
Верхняя граница секции Укажите максимальное значение столбца секционирования для копирования данных. Если вы используете запрос для получения исходных данных, перехватчик ?DfRangePartitionUpbound в предложении WHERE. Пример см. в разделе "Параллельная копия из параллельной копии" из раздела базы данных Oracle. < верхняя граница секции > No partitionUpperBound
Нижняя граница секции Укажите минимальное значение столбца секционирования для копирования данных. Если вы используете запрос для получения исходных данных, перехватчик ?DfRangePartitionLowbound в предложении WHERE. Пример см. в разделе "Параллельная копия из параллельной копии" из раздела базы данных Oracle. < нижняя граница секции > No partitionLowerBound
Время ожидания запроса Время ожидания выполнения команды запроса по умолчанию — 120 минут. timespan No queryTimeout
Дополнительные столбцы Добавьте дополнительные столбцы данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего. • Имя
•Ценность
No additionalColumns:
•имя
•ценность

Сведения о назначении

Имя Описание Значение Обязательное поле Свойство скрипта JSON
Соединение Подключение к целевому хранилищу данных. <подключение к базе данных Oracle> Да подключение
Таблицу Целевая таблица данных. <имя целевой таблицы> Да /
Имя схемы Имя схемы. < имя схемы > Да schema
имя таблицы Имя таблицы. < имя таблицы > Да table
Скрипт предварительного копирования SQL-запрос для выполнения действия копирования перед записью данных в базу данных Oracle в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных. < скрипт предварительного копирования > No preCopyScript
Время ожидания пакетной службы Время ожидания до выполнения операции пакетной вставки, пока не завершится срок ее действия. timespan No writeBatchTimeout
Размер пакета записи Количество строк для вставки в таблицу SQL на пакет. integer
(Значение по умолчанию — 10 000.)
No writeBatchSize
Максимальное число одновременных подключений Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. < максимальное число одновременных подключений > No maxConcurrentConnections