Настройка База данных Azure для PostgreSQL в действии копирования
В этой статье описывается, как использовать действие копирования в конвейере данных для копирования данных из База данных Azure для PostgreSQL.
Поддерживаемая конфигурация
Для настройки каждой вкладки в действии копирования перейдите к следующим разделам соответственно.
Общие
Ознакомьтесь с руководством по общим параметрам, чтобы настроить вкладку "Общие параметры".
Оригинал
Перейдите на вкладку "Источник" , чтобы настроить источник действия копирования. См. следующее содержимое для подробной конфигурации.
Требуются следующие три свойства:
- Тип хранилища данных: выберите "Внешний".
- Подключение. Выберите подключение База данных Azure для PostgreSQL из списка подключений. Если подключение не существует, создайте новое База данных Azure для PostgreSQL подключение, нажав кнопку "Создать".
- тип Подключение ion: выберите База данных Azure для PostgreSQL.
- Используйте запрос: выберите таблицу для чтения данных из указанной таблицы или выберите запрос для чтения данных с помощью запросов.
Если выбрать таблицу:
Таблица: выберите таблицу из раскрывающегося списка или выберите "Изменить ", чтобы вручную ввести ее для чтения данных.
Если выбрать запрос:
Запрос. Укажите настраиваемый SQL-запрос для чтения данных. Пример:
SELECT * FROM mytable
илиSELECT * FROM "MyTable"
.Примечание.
В PostgreSQL имя сущности рассматривается как нечувствительная регистра, если она не указана.
В разделе "Дополнительно" можно указать следующие поля:
Параметр секционирования: задает параметры секционирования данных, используемые для загрузки данных из База данных Azure для PostgreSQL. Если параметр секции включен (то есть нет), степень параллелизма для параллельной загрузки данных из База данных Azure для PostgreSQL управляется степенью параллелизма копирования на вкладке параметров действия копирования.
Если выбрать None, вы решили не использовать секцию.
Если выбрать физические секции таблицы:
Имена секций: укажите список физических секций, которые необходимо скопировать.
Если для получения исходных данных используется запрос, подключите
?AdfTabularPartitionName
в предложении WHERE. Пример см. в разделе Параллельное копирование из Базы данных Azure для PostgreSQL.
Если выбрать динамический диапазон, выполните следующие действия.
Имя столбца секционирования: укажите имя исходного столбца в целочисленном или типе даты и даты и времени (
int
, ,smallint
,timestamp without time zone
timestamp with time zone
bigint
date
илиtime without time zone
), которые будут использоваться секционированием диапазона для параллельной копии. Если значение не указано, автоматически определяется первичный ключ таблицы, который используется в качестве столбца секционирования.Если для получения исходных данных используется запрос, подключите
?AdfRangePartitionColumnName
в предложении WHERE. Пример см. в разделе Параллельное копирование из Базы данных Azure для PostgreSQL.Верхняя граница секции: укажите максимальное значение столбца секции для копирования данных.
Если для получения исходных данных используется запрос, подключите
?AdfRangePartitionUpbound
в предложении WHERE. Пример см. в разделе Параллельное копирование из Базы данных Azure для PostgreSQL. .Нижняя граница секции: укажите минимальное значение столбца секции для копирования данных.
Если для получения исходных данных используется запрос, подключите
?AdfRangePartitionLowbound
в предложении WHERE. Пример см. в разделе Параллельное копирование из Базы данных Azure для PostgreSQL.
Дополнительные столбцы: добавление дополнительных столбцов данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего.
Назначение
Перейдите на вкладку "Назначение" , чтобы настроить назначение действия копирования. См. следующее содержимое для подробной конфигурации.
Требуются следующие три свойства:
- Тип хранилища данных: выберите "Внешний".
- Подключение. Выберите подключение База данных Azure для PostgreSQL из списка подключений. Если подключение не существует, создайте новое База данных Azure для PostgreSQL подключение, нажав кнопку "Создать".
- тип Подключение ion: выберите База данных Azure для PostgreSQL.
- Таблица: выберите таблицу из раскрывающегося списка или выберите "Изменить ", чтобы вручную ввести ее для записи данных.
В разделе "Дополнительно" можно указать следующие поля:
Метод записи: выберите метод, используемый для записи данных в База данных Azure для PostgreSQL. Выберите команду "Копировать " (по умолчанию, которая является более производительной) и массовая вставка.
Скрипт предварительного копирования: укажите SQL-запрос для выполнения действия копирования перед записью данных в База данных Azure для PostgreSQL в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных.
Время ожидания пакетной операции записи: укажите время ожидания завершения операции вставки пакета до истечения времени ожидания. Допустимое значение — интервал времени. Значение по умолчанию — 00:30:00 (30 минут).
Размер пакета записи: укажите количество строк, загруженных в База данных Azure для PostgreSQL на пакет. Допустимо целочисленное значение, представляющее количество строк. Значение по умолчанию — 1 000 000.
Сопоставление
Сведения о настройке вкладки "Сопоставление" см. в разделе "Настройка сопоставлений" на вкладке "Сопоставление".
Настройки
Для настройки вкладки Параметры перейдите к разделу "Настройка других параметров" на вкладке "Параметры".
Параллельное копирование из Базы данных Azure для PostgreSQL
Соединитель Базы данных Azure для PostgreSQL в действии Copy обеспечивает встроенное секционирование данных для параллельного копирования данных. Параметры секционирования данных можно найти на вкладке Источник действия Copy.
Если включено копирование с секционированием, действие Copy выполняет параллельные запросы к источнику Базы данных Azure для PostgreSQL для загрузки данных по секциям. Параллельная степень управляется степенью параллелизма копирования на вкладке параметров действия копирования. Например, если задать степень параллелизма копирования четырем, служба одновременно создает и выполняет четыре запроса на основе указанного параметра секции и параметров, а каждый запрос получает часть данных из База данных Azure для PostgreSQL.
Рекомендуется включить параллельное копирование с секционированием данных, особенно при загрузке большого объема данных из Базы данных Azure для PostgreSQL. Ниже приведены рекомендуемые конфигурации для разных сценариев. Если данные копируются в файловое хранилище данных, то рекомендуется сохранять данные в папку несколькими файлами (указывая только имя папки), так как производительность в таком случае будет выше, чем при записи в один файл.
Сценарий | Предлагаемые параметры |
---|---|
Полная загрузка из большой таблицы с физическими секциями. | Параметр секционирования. Физические секции таблицы. Во время выполнения служба автоматически определяет физические секции и копирует данные по секциям. |
Полная загрузка из большой таблицы без физических секций, когда таблица содержит столбец целочисленного типа для секционирования данных. | Параметры секции: динамический диапазон. Столбец секционирования: укажите столбец, используемый для секционирования данных. Если значение не указано, то используется столбец с первичным ключом. |
Загрузка большого объема данных с помощью пользовательского запроса с физическими секциями. | Параметр секционирования. Физические секции таблицы. Запрос: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause> .Имя секции: укажите имена секций, из которых следует копировать данные. Если не указано, служба автоматически обнаруживает физические секции в таблице, указанной в наборе данных 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 для PostgreSQL.
Сведения об источнике
Имя | Описание | Значение | Обязательное поле | Свойство скрипта JSON |
---|---|---|---|---|
Тип хранилища данных | Тип хранилища данных. | Внешний | Да | / |
Соединение | Подключение к исходному хранилищу данных. | <подключение База данных Azure для PostgreSQL> | Да | подключение |
Тип подключения | Тип исходного подключения. | База данных Azure для PostgreSQL | Да | / |
Использование запроса | Способ чтения данных. Примените таблицу для чтения данных из указанной таблицы или применения запроса для чтения данных с помощью запросов. | • Таблица • Запрос |
Да | • typeProperties (under typeProperties ->source )-Схемы -Таблице •Запроса |
Имена секций | Список физических секций, которые необходимо скопировать. Если для получения исходных данных используется запрос, подключите ?AdfTabularPartitionName в предложении WHERE. |
< имена секций > | No | partitionNames |
Имя столбца секции | Имя исходного столбца в целочисленном или типе даты и даты и времени (int , , timestamp without time zone time without time zone smallint bigint date timestamp with time zone или) для параллельного копирования, которое будет использоваться секционированием диапазона. Если значение не указано, автоматически определяется первичный ключ таблицы, который используется в качестве столбца секционирования. |
< Имена столбцов секций > | No | partitionColumnName |
Верхняя граница секции | Максимальное значение столбца секционирования для копирования данных. Если вы используете запрос для получения исходных данных, перехватчик ?AdfRangePartitionUpbound в предложении WHERE. |
< верхняя граница секции > | No | partitionUpperBound |
Нижняя граница секции | Минимальное значение столбца секционирования для копирования данных. Если вы используете запрос для получения исходных данных, перехватчик ?AdfRangePartitionLowbound в предложении WHERE. |
< нижняя граница секции > | No | partitionLowerBound |
Дополнительные столбцы | Добавьте дополнительные столбцы данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего. | • Имя •Значение |
No | additionalColumns: •Имя •Значение |
Сведения о назначении
Имя | Описание | Значение | Обязательное поле | Свойство скрипта JSON |
---|---|---|---|---|
Тип хранилища данных | Тип хранилища данных. | Внешний | Да | / |
Соединение | Подключение к целевому хранилищу данных. | <подключение База данных Azure для PostgreSQL> | Да | подключение |
Тип подключения | Тип подключения назначения. | База данных Azure для PostgreSQL | Да | / |
Таблицу | Целевая таблица данных для записи данных. | < имя целевой таблицы > | Да | typeProperties (under typeProperties ->sink ):-Схемы -Таблице |
Метод записи | Метод, используемый для записи данных в базу данных Azure для PostgreSQL. | • Команда копирования (по умолчанию) • Массовая вставка |
No | writeMethod: • CopyCommand • BulkInsert |
Скрипт предварительного копирования | SQL-запрос для выполнения действия копирования перед записью данных в База данных Azure для PostgreSQL в каждом запуске. Это свойство можно использовать для очистки предварительно загруженных данных. | < скрипт предварительного копирования > | No | preCopyScript |
Время ожидания пакетной службы | Время ожидания до выполнения операции пакетной вставки, пока не закончится срок ее действия. | timespan (по умолчанию используется 00:30:00 — 30 минут) |
No | writeBatchTimeout |
Размер пакета записи | Число строк, загруженных в базу данных Azure для PostgreSQL, на пакет. | integer (значение по умолчанию — 1000 000) |
No | writeBatchSize |