Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К:
Azure Data Factory
Azure Synapse Analytics
Совет
Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.
В этой статье описаны функции оптимизации производительности действия копирования, которые можно использовать в Azure Data Factory и конвейерах Synapse.
Настройка функций производительности с помощью пользовательского интерфейса
При выборе действия "Копировать" на холсте редактора конвейера и переходе на вкладку "Настройки" в области конфигурации под холстом, вы увидите параметры настройки всех функций производительности, описанных ниже.
Единицы интеграции данных
Единица интеграции данных (DIU) — это мера, отражающая мощность (сочетания выделенных ресурсов ЦП, ОЗУ и сети) одной единицы в службе. Единица интеграции данных применяется только к интеграционной среде выполнения Azure, но не к интеграционной среде выполнения с собственным хостингом.
Допустимые DIUs для выполнения копирования — от 4 до 256. Если пользовательский интерфейс не указан или вы выбираете "Авто", служба динамически применяет оптимальную настройку DIU, основываясь на вашей паре источник-приемник и шаблоне данных. В таблице ниже приведены поддерживаемые диапазоны числа DIU и логика работы по умолчанию в различных сценариях копирования.
| Сценарий копирования | Поддерживаемый диапазон DIU | Значения по умолчанию для единиц интеграции данных определяются службой |
|---|---|---|
| Между файловыми хранилищами |
-
Копирование из одного файла или в один файл: 4 - Копирование из нескольких файлов: 4–256 в зависимости от количества и размера файлов Например, если копировать данные из папки с 4 большими файлами, выбрав режим сохранения иерархии, то максимальное эффективное число DIU будет равно 16, а если выбрать объединение файла, то максимальное эффективное число DIU будет равно 4. |
От 4 до 32 в зависимости от числа и размера файлов. |
| Из файлового хранилища в нефайловое |
-
Копирование из одного файла: 4 - Копирование из нескольких файлов: 4–256 в зависимости от количества и размера файлов Например, если копировать данные из папки с 4 большими файлами, максимальное эффективное число DIU будет равно 16. |
-
Копирование в Azure SQL Database или Azure Cosmos DB: от 4 до 16 в зависимости от уровня целевого объекта (DTU/RUs) и шаблона исходного файла - Копировать в Azure Synapse Analytics с помощью инструкции PolyBase или COPY: 2 – Другой сценарий: 4 |
| Из нефайлового хранилища в файловое |
-
Копирование из хранилищ данных с поддержкой секционирования (включая Azure Database for PostgreSQL, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Netezza, SQL Server и Teradata): 4-256 при записи в папку и 4 при записи в один файл. Примечание: каждый раздел исходных данных может использовать до 4 DIU. - Другие сценарии: 4 |
-
Копирование из источника по протоколу REST или HTTP: 1. - Копирование из Amazon Redshift с помощью UNLOAD: 4 - Другой сценарий: 4. |
| Между нефайловыми хранилищами |
-
Копирование из хранилищ данных с поддержкой секционирования (включая Azure Database for PostgreSQL, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Netezza, SQL Server и Teradata): 4-256 при записи в папку и 4 при записи в один файл. Примечание: каждый раздел исходных данных может использовать до 4 DIU. - Другие сценарии: 4 |
-
Копирование из источника по протоколу REST или HTTP: 1. - Другой сценарий: 4. |
Количество DIU, используемое для каждого запуска копирования, можно увидеть в представлении мониторинга копирования или в выходных данных. Дополнительные сведения см. в разделе мониторинг операций копирования. Чтобы переопределить это значение по умолчанию, задайте значение свойства dataIntegrationUnits, как показано ниже.
Фактическое количество DIUs, которое используется при операции копирования, равно или меньше заданного значения в зависимости от вашего шаблона данных.
С вас будет взиматься плата # использованных DIU * продолжительность копирования * цена за единицу/DIU/час. Текущие цены см. здесь. Местная валюта и отдельные скидки могут применяться в зависимости от типа подписки.
Пример:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"dataIntegrationUnits": 128
}
}
]
Масштабируемость локальной среды выполнения интеграции
Если вы хотите добиться более высокой пропускной способности, можно вертикально или горизонтально увеличить масштаб локальной среды IR:
- Если CPU и доступная память на узле Self-hosted IR не полностью загружены, но выполнение параллельных заданий достигает лимита, следует увеличить масштаб, увеличивая количество параллельных заданий, которые могут выполняться на узле. Инструкции см. здесь.
- Если же на узле локальной среды IR высока загрузка ЦП или мало доступной памяти, можно добавить еще один узел, чтобы горизонтально увеличить масштаб для распределения нагрузки между несколькими узлами. Инструкции см. здесь.
Обратите внимание, что в приведенных ниже сценариях при выполнении одного действия копирования могут использоваться несколько узлов автономной среды IR.
- Копирование данных из файловых хранилищ (в зависимости от числа и размера файлов).
- Копирование данных из хранилища данных с поддержкой параметра секции (включая Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server и Teradata) в зависимости от количества секций данных.
Параллельное копирование
Можно задать параллельное копирование (свойство parallelCopies в определении JSON для операции копирования или параметр Degree of parallelism на вкладке Settings в свойствах операции копирования в пользовательском интерфейсе), чтобы указать уровень параллелизма, который требуется использовать для операции копирования. Свойство parallelCopies можно интерпретировать как максимальное число потоков, которые могут параллельно считывать данные из хранилища-источника или записывать их в хранилища-приемники данных в рамках действия Copy.
Число параллельных операций копирования ортогонально числу единиц интеграции данных и числу узлов локальной среды IR. Это учитывается по всем DIU и всем узлам IR с самостоятельным хостингом.
По умолчанию для каждого выполнения копирования служба динамически выбирает оптимальный уровень параллельности копирования, исходя из пары источник — приемник и паттерна данных.
Совет
Заданное по умолчанию поведение параллельного копирования обычно обеспечивает наилучшую пропускную способность, которая автоматически определяется службой на основе пары "источник-приемник", шаблона данных и количества DIU или ресурсов ЦПУ, памяти и количества узлов саморазмещенного IR. Подробнее о том, когда следует настраивать параллельное копирование, см. в статье "Устранение проблем с производительностью действий копирования".
Логика параллельного копирования систематизирована в следующей таблице.
| Сценарий копирования | Логика параллельного копирования |
|---|---|
| Между файловыми хранилищами | Свойство parallelCopies определяет степень параллелизма на уровне файлов. Разбиение каждого файла на блоки происходит автоматически и незаметно. Используется наиболее подходящий размер блока для заданного типа хранилища данных, чтобы организовать параллельную загрузку данных. Фактическое число параллельных операций копирования во время выполнения действия Copy не превышает числа имеющихся у вас файлов. Если поведение копирования — mergeFile в файловый приемник, операция копирования не может использовать параллелизм на уровне файлов. |
| Из файлового хранилища в нефайловое | — При копировании данных в Azure SQL Database или Azure Cosmos DB параллельная копия также по умолчанию зависит от уровня хранилища (число DTU/RU). — При копировании данных в таблицу Azure параллельная копия по умолчанию — 4. |
| Из нефайлового хранилища в файловое | — При копировании данных из хранилища данных с поддержкой опций разделов (включая Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Amazon RDS для Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS для SQL Server и Teradata) значение параллельной копии по умолчанию — 4. Фактическое число параллельных копий, которые используются во время выполнения действия копирования, не превышает числа разделов данных, имеющихся у вас. При использовании локальной среды выполнения интеграции и копирования в объекты Azure BLOB и ADLS Gen2 обратите внимание, что максимальная эффективная параллельная копия составляет 4 или 5 на узел IR. – В других сценариях параллельное копирование не применяется. Даже если степень параллелизма задана, она не соблюдается фактически. |
| Между нефайловыми хранилищами | — При копировании данных в Azure SQL Database или Azure Cosmos DB параллельная копия также по умолчанию зависит от уровня хранилища (число DTU/RU). — При копировании данных из хранилища данных с поддержкой опций разделов (включая Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, Oracle, Amazon RDS для Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS для SQL Server и Teradata) значение параллельной копии по умолчанию — 4. — При копировании данных в таблицу Azure параллельная копия по умолчанию — 4. |
Для регулирования нагрузки компьютеров, на которых размещены хранилища данных, или настройки производительности копирования можно переопределить заданное по умолчанию значение свойства parallelCopies. Значение должно быть целым числом больше или равно 1. Во время выполнения копирования для достижения наилучшей производительности используется значение, которое меньше или равно заданному вами.
Задавая значение свойства parallelCopies, учитывайте повышение нагрузки на хранилище-источник и хранилище-приемник данных. Кроме того, необходимо учесть увеличение нагрузки на самостоятельно размещаемую среду выполнения интеграции, если операция копирования осуществляется с её помощью. Это особенно актуально при наличии нескольких действий или параллельного выполнения одинаковых действий с одним и тем же хранилищем данных. Если вы замечаете, что хранилище данных или локальная среда выполнения интеграции перегружены, уменьшите значение свойства parallelCopies, чтобы снизить нагрузку.
Пример:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"parallelCopies": 32
}
}
]
этапное копирование
При копировании данных из исходного хранилища данных в приемное хранилище данных используйте Azure облака BLOB или Azure Data Lake Storage Gen2 в качестве временного хранилища. Предварительное тестирование особенно полезно в следующих случаях.
- Вы хотите загружать данные из различных хранилищ данных в Azure Synapse Analytics с помощью PolyBase, копировать данные из/в Snowflake или эффективно получать данные из Amazon Redshift/HDFS. Дополнительные сведения см. в следующем разделе:
- В соответствии с корпоративными ИТ-политиками не рекомендуется открывать на брандмауэре какие-либо порты, кроме 80 и 443. Например, при копировании данных из локального хранилища данных в Azure SQL Database или Azure Synapse Analytics необходимо активировать исходящий TCP-обмен данными через порт 1433 для брандмауэра Windows и корпоративного брандмауэра. В этом сценарии поэтапное копирование может воспользоваться преимуществами локальной среды выполнения интеграции, чтобы сначала скопировать данные в промежуточное хранилище по протоколу HTTP или HTTPS через порт 443, а затем загрузить данные из промежуточного хранения в базу данных SQL или Azure Synapse Analytics. В таком сценарии не нужно включать порт 1433.
- Иногда гибридное перемещение данных (т. е. копирование данных из локального в облачное хранилище данных) занимает достаточно продолжительное время из-за низкой скорости сетевого подключения. Чтобы на перемещение данных в облачное промежуточное хранилище уходило меньше времени, можно настроить сжатие данных в локальном хранилище при промежуточном копировании. Когда данные окажутся в промежуточном хранилище, их можно будет распаковать перед загрузкой в целевое хранилище данных.
Принцип поэтапного копирования
Если вы включаете функцию промежуточного размещения, сначала данные копируются из исходного хранилища данных в хранилище временного размещения (используйте свои собственные Azure Blob или Azure Data Lake Storage Gen2). Оттуда данные копируются в хранилище-приемник данных. При выполнении действия копирования само управление этим двухэтапным процессом происходит автоматически, а когда перемещение данных завершается, временные данные удаляются из промежуточного хранилища.
Необходимо предоставить разрешение на удаление вашему Azure Data Factory в вашем промежуточном хранилище, чтобы временные данные могли быть очищены после выполнения действия копирования.
При запуске перемещения данных с использованием промежуточного хранилища вы можете указать, следует ли сжимать данные перед перемещением из хранилища-источника в промежуточное хранилище, а затем распаковывать перед перемещением из промежуточного или резервного хранилища данных в приемное хранилище.
В настоящее время не поддерживается копирование данных между двумя хранилищами, подключенными через разные локальные среды IR — ни с промежуточным копированием, ни без него. Для такого сценария можно настроить два чётко связанных действия Copy: сначала данные копируются из источника в промежуточное хранилище, затем из промежуточного хранилища в приемник.
Настройка
Задайте значение параметра enableStaging для действия копирования, чтобы указать, следует ли сначала копировать данные в промежуточное хранилище перед загрузкой в конечное хранилище данных. Если для параметра enableStaging задано значение TRUE, задайте дополнительные свойства, перечисленные в таблице ниже.
| Свойство | Описание: | Значение по умолчанию | Обязательное поле |
|---|---|---|---|
| enableStaging | Укажите, следует ли копировать данные через временное промежуточное хранилище. | Ложь | Нет |
| имяСвязаннойСлужбы | Укажите имя связанной службы хранилища Azure Blob или Azure Data Lake Storage Gen2, которая ссылается на экземпляр хранилища, используемого для промежуточного хранения. | Н/П | Да, если для параметра enableStaging задано значение true |
| путь | Задайте путь, по которому должна располагаться область промежуточного хранения данных. Если не задавать путь, служба создаст контейнер для хранения временных данных. | Н/П | Нет (Да, если storageIntegration указан в соединителе Snowflake) |
| ВключитьСжатие | Указывает, следует ли сжимать данные перед их копированием в место назначения. Этот параметр позволяет уменьшить объем передаваемых данных. | Ложь | Нет |
Примечание.
Если вы используете постадийное копирование со сжатием, то основная служба или аутентификация MSI для службы связи с промежуточным хранилищем BLOB не поддерживаются.
Ниже приведен пример определения задачи Copy со свойствами, описанными в предыдущей таблице.
"activities":[
{
"name": "CopyActivityWithStaging",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "OracleSource",
},
"sink": {
"type": "SqlDWSink"
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": {
"referenceName": "MyStagingStorage",
"type": "LinkedServiceReference"
},
"path": "stagingcontainer/path"
}
}
}
]
Влияние поэтапного копирования на выставление счетов
Плата с вас взимается на основе двух факторов: за длительность копирования и за тип копирования.
- При использовании промежуточного хранения во время облачной копии, которая копирует данные из облачного хранилища данных в другое облачное хранилище данных, оба этапа, предоставляемые средой выполнения интеграции Azure, взимается плата за [сумму длительности копирования для шага 1 и шага 2] x [цена единицы копирования облака].
- Если вы используете сценирование при гибридном копировании, то есть при копировании данных из локального хранилища данных в облачное хранилище, где один из этапов поддерживается локальной средой выполнения интеграции, плата рассчитывается по следующей формуле: [длительность гибридного копирования] x [цена за единицу гибридного копирования] + [длительность облачного копирования] x [цена за единицу облачного копирования].
Связанный контент
Ознакомьтесь с другими статьями об операциях копирования данных.
- Обзор операции копирования
- Руководство по производительности и масштабируемости операции копирования
- Устранение проблем с производительностью операций копирования
- Используйте Azure Data Factory для перемещения данных из озера данных или хранилища данных в Azure
- Переносите данные из Amazon S3 в Azure Storage