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


Настройка базы данных Azure для PostgreSQL в процессе копирования

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

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

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

Общее

Сведения о настройке вкладки "Общие" "Общие" см. в руководстве по настройке вкладки параметров "Общие".

Источник

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

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

Следующие три свойства обязательны:

  • Подключение: Выберите подключение к базе данных Azure для PostgreSQL из списка подключений. Если подключение не существует, создайте новое подключение базы данных Azure для PostgreSQL.
  • Тип подключения: выберите Azure Database for PostgreSQL.
  • Используйте запрос: выберите таблицу для чтения данных из указанной таблицы или выберите запрос для чтения данных с помощью запроса.
    • Если выбрать таблицу :

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

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

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

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

        Заметка

        В PostgreSQL имя сущности рассматривается как нечувствительное к регистру, если оно не заключено в кавычки.

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

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

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

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

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

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

    • имена секций: укажите список физических секций, которые необходимо скопировать.

      Используйте хук ?AdfTabularPartitionName в предложении WHERE, если вы используете запрос для получения исходных данных. Пример см. в разделе "Параллельная копия" из раздела База данных Azure для PostgreSQL.

      снимок экрана, показывающий конфигурацию при выборе физических секций таблицы.

    Если вы выберете динамический диапазон:

    • имя столбца секции. Укажите имя исходного столбца в целочисленном или датовом типе (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone или time without time zone), которые будут использоваться секционированием диапазона для параллельной копирования. Если это не указано, первичный ключ таблицы обнаруживается автоматически и используется в качестве столбца секционирования.

      Если вы используете запрос для получения исходных данных, используйте хук ?AdfRangePartitionColumnName в условии WHERE. Например, см. раздел Параллельная копия из базы данных Azure для PostgreSQL.

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

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

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

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

      снимок экрана, показывающий конфигурацию при выборе динамического диапазона.

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

Назначение

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

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

Следующие три свойства обязательны:

  • Подключение: выберите подключение к базе данных Azure Database для PostgreSQL из списка соединений. Если подключение не существует, создайте новое подключение базы данных Azure для PostgreSQL.
  • тип подключения: выберите Базу данных Azure для PostgreSQL.
  • таблица: выберите таблицу из раскрывающегося списка или выберите Введите вручную, чтобы ввести ее для записи данных.

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

  • метод записи: выберите метод, используемый для записи данных в базу данных Azure для PostgreSQL. Выберите из команды копирования (по умолчанию, более производительной) и массовой вставки .

  • скрипт предварительного копирования. Укажите SQL-запрос для выполнения действия копирования перед записью данных в базу данных Azure для PostgreSQL в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных.

  • Тайм-аут пакетной записи: Укажите время ожидания завершения пакетной вставки до истечения тайм-аута. Допускается задавать интервал времени как значение. Значение по умолчанию — 00:30:00 (30 минут).

  • Размер записи в пакете: Укажите количество строк, загружаемых для каждого пакета в базу данных Azure PostgreSQL. Допустимое значение — целое число, представляющее количество строк. Значение по умолчанию — 1000 000.

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

Сведения о конфигурации вкладки сопоставления см. в разделе Настройка сопоставлений на вкладке сопоставления.

Параметры

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

Параллельная копия из Базы данных Azure для PostgreSQL

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

При включении секционированного копирования действие копирования выполняет параллельные запросы к источнику Базы данных Azure для PostgreSQL для загрузки данных по секциям. Параллельная степень управляется степенью параллелизма копирования на вкладке параметров действия копирования. Например, если задать степень параллелизма копирования равной четырем, служба одновременно создает и выполняет четыре запроса на основе указанной опции секционирования и параметров, и каждый запрос извлекает данные из вашей Azure Database for PostgreSQL.

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

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

Во время выполнения служба автоматически обнаруживает физические секции и копирует данные по секциям.
Полная загрузка из большой таблицы без физических секций, при этом используется целочисленный столбец для секционирования данных. параметры секции: динамический диапазон.
столбец для секционирования: укажите столбец, используемый для секционирования данных. Если не указано, используется столбец первичного ключа.
Загрузка большого объема данных с помощью пользовательского запроса с физическими секциями. параметр секции: физические секции таблицы.
запроса : .
Имя раздела: Укажите имя(а) раздела(ов), из которого/которых нужно копировать данные. Если оно не указано, служба автоматически обнаруживает физические секции в таблице, указанной в наборе данных PostgreSQL.

Во время выполнения служба заменяет ?AdfTabularPartitionName фактическим именем секции и отправляется в Базу данных Azure для PostgreSQL.
Загрузите большой объем данных с помощью пользовательского запроса без физических секций, но с использованием целочисленного столбца для секционирования данных. параметры секции: динамический диапазон.
запроса: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Столбец для секционирования: укажите столбец, используемый для секционирования данных. Можно секционирование по столбцу с целым числом или типом данных date/datetime.
верхняя граница секции и нижняя граница секции: Укажите, следует ли фильтровать столбец секционирования, чтобы извлекать данные только между нижней и верхней границами.

Во время выполнения служба заменяет ?AdfRangePartitionColumnName, ?AdfRangePartitionUpboundи ?AdfRangePartitionLowbound фактическими именами столбцов и диапазонами значений для каждой секции и отправляется в Базу данных Azure для PostgreSQL.
Например, если столбец секционирования "ID" задан с нижней границей 1 и верхней границей 80, при параллельном копировании, установленном на 4, служба извлекает данные из 4 секций. Их идентификаторы находятся между [1, 20], [21, 40], [41, 60] и [61, 80], соответственно.

Рекомендации по загрузке данных с опцией раздела:

  • Выберите отличительный столбец в качестве столбца секционирования (например, первичный ключ или уникальный ключ), чтобы избежать отклонения данных.
  • Если в таблице есть встроенные секции, используйте параметр секции "Физические секции таблицы", чтобы повысить производительность.

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

В следующей таблице содержится дополнительная информация о процессе копирования в Azure Database для PostgreSQL.

Исходная информация

Имя Описание Ценность Обязательно Свойство скрипта JSON
Подключение Ваше подключение к исходному хранилищу данных. < ваше подключение к базе данных Azure для PostgreSQL > Да связь
тип подключения Тип исходного подключения. База данных Azure для PostgreSQL Да /
Использовать запрос Способ чтения данных. Примените таблицу для чтения данных из указанной таблицы или примените запрос для чтения данных с помощью запросов. Таблица
запрос
Да • typeProperties (под typeProperties ->source)
  -схема
  - стол
• запрос
время ожидания запроса (минуты) Время ожидания перед завершением попытки выполнения команды и создания ошибки по умолчанию составляет 120 минут. Если для этого свойства задан параметр, допустимые значения имеют интервал времени, например "02:00:00" (120 минут). Дополнительные сведения см. в разделе CommandTimeout. интервал времени Нет время ожидания запроса
Имена разделов Список физических секций, которые необходимо скопировать. Если вы используете запрос для получения исходных данных, используйте ?AdfTabularPartitionName в предложении WHERE. < имена разделов > Нет имена разделов
имени столбца раздела Имя исходного столбца целочисленного или датового типа (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone или time without time zone), которое будет использоваться диапазонным секционированием для параллельного копирования. Если это не указано, первичный ключ таблицы обнаруживается автоматически и используется в качестве столбца секционирования. < имена столбцов секционирования > Нет имя столбца раздела
верхняя граница раздела Максимальное значение столбца секционирования для выгрузки данных. Если вы используете запрос для извлечения исходных данных, укажите ?AdfRangePartitionUpbound в условии WHERE. < верхняя граница вашего раздела > Нет верхняя граница раздела
нижняя граница раздела Минимальное значение столбца секционирования для копирования данных наружу. Если вы используете запрос для получения исходных данных, используйте переменный элемент ?AdfRangePartitionLowbound в предложении WHERE. < нижняя граница вашего раздела > Нет partitionLowerBound
Дополнительные столбцы Добавьте дополнительные столбцы данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего. •Имя
•Ценность
Нет дополнительныеСтолбцы:
•имя
•ценность

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

Имя Описание Ценность Обязательно Свойство скрипта JSON
подключение Подключение к целевому хранилищу данных. < подключение к базе данных Azure для PostgreSQL > Да связь
типа подключения Тип подключения к месту назначения. База данных Azure для PostgreSQL Да /
таблица Целевая таблица данных для записи данных. < имя целевой таблицы > Да typeProperties (в typeProperties —>sink):
  -схема
  - стол
метод записи Метод, используемый для записи данных в базу данных Azure для PostgreSQL. команда копирования (по умолчанию)
массовая вставка
Нет writeMethod:
• CopyCommand
• BulkInsert
скрипт предварительного копирования SQL-запрос для выполнения действия копирования перед записью данных в базу данных Azure для PostgreSQL в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных. < скрипт предварительного копирования > Нет PreCopyScript
пакетное время ожидания для записи Время ожидания завершения операции пакетной вставки перед истечением времени ожидания. интервал времени
(значение по умолчанию — 00:30:00 – 30 минут)
Нет writeBatchTimeout
размер пакета записи Количество строк, загруженных в базу данных Azure для PostgreSQL для каждого пакета. целое число
(значение по умолчанию — 1000 000)
Нет writeBatchSize