Действие Copy на Фабрике данных Azure и в Azure Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В конвейерах Фабрики данных Azure и Synapse с помощью действия Copy можно копировать данные между локальными и облачными хранилищами данных. После копирования данных можно использовать другие действия для дальнейшего преобразования и анализа. С помощью действия копирования можно также публиковать результаты преобразования и анализа для бизнес-аналитики и использования приложения.
Действие копирования выполняется в среде выполнения интеграции. Для различных сценариев копирования данных можно использовать разные типы среды выполнения интеграции.
- При копировании данных между двумя хранилищами данных, доступ к которым осуществляется через Интернет с любого IP-адреса, для действия копирования можно использовать среду выполнения интеграции Azure. Эта среда выполнения интеграции является безопасной, надежной, масштабируемой и глобально доступной.
- При копировании данных в хранилища данных, расположенные локально или в сети с контролем доступа (например, виртуальной сети Azure), и из них необходимо настроить локальную среду выполнения интеграции.
Среду выполнения интеграции следует связать с каждым хранилищем данных источника и приемника. Сведения о том, как действие копирования определяет, какую среду выполнения интеграции использовать, см. в статье Выбор IR для использования.
Примечание.
В одной действие Copy нельзя использовать несколько локальных сред выполнения интеграции. Источник и приемник действия должны быть подключены к той же локальной среде выполнения интеграции.
Чтобы скопировать данные из источника в приемник, служба, выполняющая действие копирования, выполняет следующие действия.
- Считывает данные из источника данных.
- Выполняет сериализацию или десериализацию, сжатие или распаковку, сопоставление столбцов и т. д. Она выполняет эти операции в соответствии с конфигурациями наборов входных данных, наборов выходных данных и действия копирования.
- Записывает данные в приемник или целевое хранилище данных.
Примечание.
Если локальная среда выполнения интеграции используется в исходном или приемнике хранилища данных в действие Copy, источник и приемник должны быть доступны с сервера, на котором размещена среда выполнения интеграции для успешного выполнения действие Copy.
Поддерживаемые хранилища данных и форматы
Примечание.
Пометка предварительная версия возле соединителя означает, что с ним можно поработать и оставить отзыв. Если вы хотите использовать в своем решении зависимость от соединителей в предварительной версии, обратитесь в службу поддержки Azure.
Поддерживаемые типы файлов
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат Айсберга (только для Azure Data Lake Storage 2-го поколения)
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Действие копирования можно использовать для копирования файлов "как есть" между двумя хранилищами данных на основе файлов. При этом данные эффективно копируются без какой-либо сериализации или десериализации. Кроме того, можно выполнять синтаксический анализ или создать файлы определенного формата, например, можно выполнить следующие действия:
- скопировать данные из Базы данных SQL Server и записать их в Azure Data Lake Storage 2-го поколения в формате Parquet;
- скопировать файлы в текстовом формате (CSV) из локальной файловой системы и записать их в Хранилище BLOB-объектов Azure в формате Avro;
- скопировать ZIP-файлы из локальной файловой системы, распаковать их в оперативном режиме и записать извлеченные файлы в Azure Data Lake Storage 2-го поколения;
- скопировать данные в сжатом с помощью GZip текстовом формате (CSV) из Хранилища BLOB-объектов Azure и записать их в Базу данных SQL Azure;
- многие другие действия, требующие сериализации и десериализации или сжатия и распаковки.
Поддерживаемые регионы
Служба, обеспечивающая действие копирования, является общедоступной в регионах и географических областях, перечисленных в разделе Расположение среды выполнения интеграции. Глобально доступная топология обеспечивает эффективное перемещение данных, обычно позволяя избежать "прыжков" по разным регионам. Ознакомьтесь с продуктами по регионам, чтобы проверить доступность Фабрики данных Azure, рабочих областей Synapse и перемещения данных в определенном регионе.
Настройка
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Как правило, для использования действия Copy в конвейерах Фабрики данных Azure или Synapse необходимо выполнить следующие действия.
- Создать связанные службы для источника и приемника данных. Список поддерживаемых соединителей можно найти в разделе Поддерживаемые хранилища данных и форматы этой статьи. Дополнительные сведения о настройке и поддерживаемых свойствах см. в разделе "Свойства связанных служб" статьи о соединителях.
- Создать наборы данных для источника и приемника. Сведения о конфигурации и поддерживаемых свойствах см. в разделе "Свойства набора данных" статьи о соединителях источника и приемника.
- Создать конвейер с действием копирования. В следующем разделе приведен пример.
Синтаксис
Следующий шаблон действия копирования содержит полный список поддерживаемых свойств. Выберите свойства для своего сценария.
"activities":[
{
"name": "CopyActivityTemplate",
"type": "Copy",
"inputs": [
{
"referenceName": "<source dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<sink dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>",
<properties>
},
"sink": {
"type": "<sink type>"
<properties>
},
"translator":
{
"type": "TabularTranslator",
"columnMappings": "<column mapping>"
},
"dataIntegrationUnits": <number>,
"parallelCopies": <number>,
"enableStaging": true/false,
"stagingSettings": {
<properties>
},
"enableSkipIncompatibleRow": true/false,
"redirectIncompatibleRowSettings": {
<properties>
}
}
}
]
Сведения о синтаксисе
Свойство | Description | Обязательное? |
---|---|---|
type | Для действия копирования задайте значение Copy |
Да |
входные данные | Укажите созданный набор данных, в котором указаны исходные данные. Действие копирования поддерживает один экземпляр входных данных. | Да |
выходные данные | Укажите созданный набор данных, в котором указаны данные приемника. Действие копирования поддерживает один экземпляр выходных данных. | Да |
typeProperties | Укажите свойства для настройки действия копирования. | Да |
source | Укажите тип источника копирования и соответствующие свойства для извлечения данных. Дополнительные сведения см. в разделе "Свойства действия копирования" в статье о соединителях, приведенной в статье Поддерживаемые хранилища данных и форматы. |
Да |
sink | Укажите тип приемника копирования и соответствующие свойства для записи данных. Дополнительные сведения см. в разделе "Свойства действия копирования" в статье о соединителях, приведенной в статье Поддерживаемые хранилища данных и форматы. |
Да |
переводчик | Укажите явные сопоставления столбцов от источника к приемнику. Это свойство применяется, если поведение копирования по умолчанию не соответствует вашим потребностям. Дополнительные сведения см. в разделе Сопоставление схем в действии копирования. |
No |
dataIntegrationUnits | Укажите меру, представляющую мощность, которую среда выполнения интеграции Azure использует для копирования данных. Эти единицы ранее назывались облачными единицами перемещения данных. Дополнительные сведения см. в разделе Единицы интеграции данных. |
No |
parallelCopies | Укажите показатель параллелизма, который должно использовать действие копирования при считывании данных из источника и записи данных в приемник. Дополнительные сведения см. в разделе Параллельное копирование. |
No |
охранная зона | Укажите, следует ли сохранять метаданные и списки ACL во время копирования данных. Дополнительные сведения см. в разделе Сохранение метаданных. |
No |
enableStaging stagingSettings |
Позволяет разместить временные данные в Хранилище BLOB-объектов вместо копирования данных из источника в приемник напрямую. Сведения о полезных сценариях и сведениях о конфигурации см. в разделе Промежуточное копирование. |
No |
enableSkipIncompatibleRow redirectIncompatibleRowSettings |
Позволяет выбрать способ обработки несовместимых строк при копировании данных из источника в приемник. Дополнительные сведения см. в разделе Отказоустойчивость. |
No |
Наблюдение
Вы можете отслеживать выполнение действия Copy в конвейерах Фабрики данных Azure и Synapse визуально и программно. Дополнительные сведения см. в разделе Мониторинг действия копирования.
Добавочное копирование
Конвейеры Фабрики данных и Synapse позволяют постепенно копировать разностные данные из хранилища данных источника в хранилище данных приемника. Дополнительные сведения см. в учебнике по добавочному копированию данных.
Производительность и настройка
В процессе мониторинга действия копирования отображается статистика производительности копирования для каждого выполненного действия. Сведения о ключевых факторах, влияющих на производительность перемещения данных с помощью действия Copy, см. в руководстве по производительности и масштабируемости действия Copy. В нем также указаны значения производительности, наблюдаемые во время тестирования, и объясняется, как оптимизировать производительность действия копирования.
Возобновление после последнего неудачного запуска
Действие копирования поддерживает возобновление работы после последнего сбоя при копировании файлов большого размера "как есть" в двоичном формате между файловыми хранилищами и сохранении иерархии папок или файлов из источника в приемник, например, для переноса данных из Amazon S3 в Azure Data Lake Storage 2-го поколения. Эта статья применяется к следующим файловым соединителям: Amazon S3, хранилище, совместимое с Amazon S3, BLOB-объекты Azure, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения, Файлы Azure, файловая система, FTP, облачное хранилище Google, HDFS, облачное хранилище Oracle и SFTP.
Вы можете использовать возобновление действия копирования следующими двумя способами:
Повторная попытка на уровне действия. Вы можете задать число повторных попыток для действия копирования. Во время выполнения конвейера, если при выполнении этого действия копирования происходит сбой, следующая автоматическая повторная попытка начнется с точки сбоя последней пробной версии.
Повторное выполнение из невыполненной операции. После завершения выполнения конвейера можно также запустить повторное выполнение из невыполненного действия в представлении мониторинга пользовательского интерфейса ADF или программно. Если действие, завершившееся сбоем, является действием копирования, конвейер не будет повторно выполняться из этого действия, но при этом возобновится с точки сбоя предыдущего запуска.
Несколько моментов, которые следует помнить:
- Возобновление происходит на уровне файла. Если при копировании файла происходит сбой действия копирования, то при следующем запуске этот файл будет скопирован повторно.
- Чтобы возобновить работу должным образом, не изменяйте параметры действия копирования между повторными попытками.
- При копировании данных из Amazon S3, больших двоичных объектов Azure, Azure Data Lake Storage 2-го поколения и облачного хранилища Google действие копирования можно возобновить для произвольного числа скопированных файлов. Хотя остальные соединители на основе файлов являются источниками, в настоящее время действие копирования поддерживает возобновление для ограниченного числа файлов, обычно в диапазоне десятков тысяч, и зависит от длины путей к файлам. Файлы, не попавшие в это число, будут повторно скопированы во время следующих возобновлений.
Для других сценариев, помимо копирования двоичных файлов, действие копирования возобновляется сначала.
Примечание.
Возобновление последнего неудачного запуска через локальную среду выполнения интеграции теперь поддерживается только в локальной среде выполнения интеграции версии 5.43.8935.2 или более поздней.
Сохранение метаданных и данных
При копировании данных из источника в приемник в таких сценариях, как миграция озера данных, можно также сохранить метаданные и списки ACL вместе с данными с помощью действия копирования. Дополнительные сведения см. в разделе Сохранение метаданных.
Добавление тегов метаданных в приемник на основе файлов
Если приемник основан на служба хранилища Azure (хранилище озера данных Azure или Хранилище BLOB-объектов Azure), мы можем добавить в файлы некоторые метаданные. Эти метаданные будут отображаться как часть свойств файла в виде пар "Ключ-значение". Для всех типов приемников на основе файлов можно добавлять метаданные, включающие динамическое содержимое, используя параметры конвейера, системные переменные, функции и переменные. Помимо этого, для приемника на основе двоичных файлов можно добавить дату последнего изменения (исходного файла) с помощью ключевого слова $$LASTMODIFIED, а также пользовательские значения в качестве метаданных в файл приемника.
Сопоставление типов данных и схемы
Сведения о том, как действие копирования сопоставляет данные источника с приемником, см. в разделе Схема и сопоставление типов данных.
Добавление дополнительных столбцов во время копирования
Помимо копирования данных из хранилища данных источника в приемник, можно также настроить добавление дополнительных столбцов данных для копирования в приемник. Например:
- При копировании из файлового источника сохраните относительный путь к файлу в качестве дополнительного столбца для трассировки, из которого поступает файл данных.
- Дублировать указанный исходный столбец как другой столбец.
- Добавьте столбец с выражением ADF, чтобы присоединить системные переменные ADF, такие как имя конвейера или идентификатор конвейера, или сохранить другое динамическое значение из выходных данных вышестоящего действия.
- Добавьте столбец со статическим значением в соответствии с требованиями к дальнейшему потреблению.
Следующую конфигурацию можно найти на вкладке "Источник действия копирования". Можно также сопоставить эти дополнительные столбцы в сопоставлении схемы действия копирования как обычно с помощью определенных имен столбцов.
Совет
Эта функция работает с последней моделью наборов данных. Если параметр не отображается в пользовательском интерфейсе, попробуйте создать новый набор данных.
Чтобы настроить его программно, добавьте свойство additionalColumns
в источник действия копирования.
Свойство | Описание: | Обязательное поле |
---|---|---|
additionalColumns | Добавьте дополнительные столбцы данных для копирования в приемник. Каждый объект в массиве additionalColumns представляет дополнительный столбец. name определяет имя столбца, а value указывает значение данных этого столбца.Допустимые значения: - $$FILEPATH — зарезервированная переменная указывает на сохранение относительного пути к папке, указанной в наборе данных, в файле исходного кода. Применяется к файловому источнику.- $$COLUMN:<source_column_name> — шаблон зарезервированной переменной указывает на дублирование указанного исходного столбца в качестве другого столбца.- Выражение - Статическое значение |
No |
Пример:
"activities":[
{
"name": "CopyWithAdditionalColumns",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "<source type>",
"additionalColumns": [
{
"name": "filePath",
"value": "$$FILEPATH"
},
{
"name": "newColName",
"value": "$$COLUMN:SourceColumnA"
},
{
"name": "pipelineName",
"value": {
"value": "@pipeline().Pipeline",
"type": "Expression"
}
},
{
"name": "staticValue",
"value": "sampleValue"
}
],
...
},
"sink": {
"type": "<sink type>"
}
}
}
]
Совет
После настройки дополнительных столбцов не забудьте сопоставить их с приемником назначения на вкладке "Сопоставление".
Автоматическое создание таблиц приемника
При копировании данных в базу данных SQL или Azure Synapse Analytics, если целевая таблица не существует, действие копирования поддерживает автоматическое создание данных на основе исходных данных. Такое решение призвано помочь вам быстро начать загрузку данных и оценить базу данных SQL или Azure Synapse Analytics. После приема данных можно просматривать и корректировать схему таблицы приемника в соответствии с вашими потребностями.
Эта функция поддерживается при копировании данных из любого источника в следующие хранилища данных приемника. Вы можете найти параметр в пользовательском интерфейсе разработки ADF ->действие Copy приемнике ->Параметр таблицы ->Auto create table или через tableOption
свойство в полезных данных приемника действий копирования.
Отказоустойчивость
По умолчанию действие копирования прекращает копирование данных и возвращает ошибку, если строки данных источника несовместимы со строками данных приемника. Чтобы выполнить копирование, можно настроить действие копирования так, чтобы пропускать и регистрировать несовместимые строки, а копировать только совместимые данные. Дополнительные сведения см. в статье Отказоустойчивость действия копирования.
Проверка согласованности данных
При перемещении данных из источника в целевое хранилище действие Copy позволяет выполнить дополнительную проверку согласованности данных, чтобы гарантировать, что данные не только успешно копируются из источника в конечное хранилище, но и согласованы между источником и целевым хранилищем. После обнаружения несогласованных файлов во время перемещения можно либо прервать действие копирования, либо продолжить копирование остальных данных, включив параметр отказоустойчивости для пропуска несогласованных файлов. Имена пропущенных файлов можно получить, включив параметр ведения журнала сеанса в действии копирования. Дополнительные сведения см. в статье Проверка согласованности данных в действии копирования.
Журнал сеанса
Вы можете записать в журнал скопированные имена файлов. В дальнейшем это поможет убедиться, что данные не только успешно копируются из источника в конечное хранилище, но и согласованы между источником и целевым хранилищем, при проверке журналов сеансов действия копирования. Дополнительные сведения см. в действии копирования для входа в сеанс.
Связанный контент
Ознакомьтесь со следующими руководствами и примерами: