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


Действие Copy на Фабрике данных Azure и в Azure Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В конвейерах Фабрики данных Azure и Synapse с помощью действия Copy можно копировать данные между локальными и облачными хранилищами данных. После копирования данных можно использовать другие действия для дальнейшего преобразования и анализа. С помощью действия копирования можно также публиковать результаты преобразования и анализа для бизнес-аналитики и использования приложения.

Роль действия копирования

Действие копирования выполняется в среде выполнения интеграции. Для различных сценариев копирования данных можно использовать разные типы среды выполнения интеграции.

  • При копировании данных между двумя хранилищами данных, доступ к которым осуществляется через Интернет с любого IP-адреса, для действия копирования можно использовать среду выполнения интеграции Azure. Эта среда выполнения интеграции является безопасной, надежной, масштабируемой и глобально доступной.
  • При копировании данных в хранилища данных, расположенные локально или в сети с контролем доступа (например, виртуальной сети Azure), и из них необходимо настроить локальную среду выполнения интеграции.

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

Примечание.

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

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

  1. Считывает данные из источника данных.
  2. Выполняет сериализацию или десериализацию, сжатие или распаковку, сопоставление столбцов и т. д. Она выполняет эти операции в соответствии с конфигурациями наборов входных данных, наборов выходных данных и действия копирования.
  3. Записывает данные в приемник или целевое хранилище данных.

Общие сведения о действии копирования

Примечание.

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

Поддерживаемые хранилища данных и форматы

Категория Хранилище данных Поддерживается в качестве источника Поддерживается в качестве приемника Поддерживается Azure IR Поддерживается локальной средой IR
Azure Хранилище BLOB-объектов Azure
  Индекс поиска по искусственному интеллекту Azure
  Azure Cosmos DB for NoSQL
  Azure Cosmos DB for MongoDB
  Обозреватель данных Azure
  Azure Data Lake Storage 1-го поколения
  Azure Data Lake Storage 2-го поколения
  База данных Azure для MariaDB
  База данных Azure для MySQL
  База данных Azure для PostgreSQL
  Azure Databricks Delta Lake
  Файлы Azure
  База данных SQL Azure
  Управляемый экземпляр SQL Azure
  Azure Synapse Analytics
  Хранилище таблиц Azure
База данных Amazon RDS для Oracle
  Amazon RDS для SQL Server
  Amazon Redshift
  DB2
  Drill.
  Google BigQuery
  Greenplum
  HBase
  Hive
  Apache Impala
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse через Open Hub
  SAP Business Warehouse через MDX
  SAP HANA Приемник поддерживается только соединителем ODBC и драйвером SAP HANA ODBC.
  Таблица SAP
  Snowflake
  Spark
  SQL Server
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (предварительная версия)
  MongoDB
  MongoDB Atlas
Файл Amazon S3
  Совместимое хранилище Amazon S3
  Файловая система
  FTP
  Google Cloud Storage
  HDFS
  Хранилище Oracle Cloud
  SFTP
Базовый протокол Базовый HTTP-запрос
  Базовый протокол OData
  Базовый протокол ODBC
  Базовый протокол REST
Службы и приложения Веб-служба Amazon Marketplace (не рекомендуется)
  Concur (предварительная версия)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  Google AdWords
  HubSpot
  Jira
  Magento (предварительная версия)
  Marketo (предварительная версия)
  Microsoft 365
  Oracle Eloqua (предварительная версия)
  Oracle Responsys (предварительная версия)
  Oracle Service Cloud (предварительная версия)
  PayPal (предварительная версия)
  QuickBooks (предварительная версия)
  Salesforce
  Salesforce Service Cloud
  Salesforce Marketing Cloud
  SAP Cloud for Customer (C4C)
  SAP ECC
  ServiceNow
Список SharePoint Online
  Shopify (предварительная версия)
  Square (предварительная версия)
  Веб-таблица (таблица HTML)
  Xero
  Zoho (предварительная версия)

Примечание.

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

Поддерживаемые типы файлов

Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

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

  • скопировать данные из Базы данных 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:

Как правило, для использования действия Copy в конвейерах Фабрики данных Azure или Synapse необходимо выполнить следующие действия.

  1. Создать связанные службы для источника и приемника данных. Список поддерживаемых соединителей можно найти в разделе Поддерживаемые хранилища данных и форматы этой статьи. Дополнительные сведения о настройке и поддерживаемых свойствах см. в разделе "Свойства связанных служб" статьи о соединителях.
  2. Создать наборы данных для источника и приемника. Сведения о конфигурации и поддерживаемых свойствах см. в разделе "Свойства набора данных" статьи о соединителях источника и приемника.
  3. Создать конвейер с действием копирования. В следующем разделе приведен пример.

Синтаксис

Следующий шаблон действия копирования содержит полный список поддерживаемых свойств. Выберите свойства для своего сценария.

"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 позволяет выполнить дополнительную проверку согласованности данных, чтобы гарантировать, что данные не только успешно копируются из источника в конечное хранилище, но и согласованы между источником и целевым хранилищем. После обнаружения несогласованных файлов во время перемещения можно либо прервать действие копирования, либо продолжить копирование остальных данных, включив параметр отказоустойчивости для пропуска несогласованных файлов. Имена пропущенных файлов можно получить, включив параметр ведения журнала сеанса в действии копирования. Дополнительные сведения см. в статье Проверка согласованности данных в действии копирования.

Журнал сеанса

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

Ознакомьтесь со следующими руководствами и примерами: