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


Копирование и преобразование данных в хранилище Microsoft Fabric с помощью Фабрика данных Azure или Azure Synapse Analytics

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

Совет

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

В этой статье описывается, как использовать действие копирования для копирования данных из хранилища Microsoft Fabric и из него. Дополнительные сведения см. в вводной статье о Фабрике данных Azure или Azure Synapse Analytics.

Поддерживаемые возможности

Этот соединитель хранилища Microsoft Fabric поддерживается для следующих возможностей:

Поддерживаемые возможности IR Управляемая частная конечная точка
Действие копирования (источник/приемник) (1) (2)
Поток данных для сопоставления (источник/приемник) (1)
Действие поиска (1) (2)
Действие получения метаданных в Фабрике данных Azure (1) (2)
Действие скрипта (1) (2)
Действие хранимой процедуры (1) (2)

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

Начало работы

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы хранилища Microsoft Fabric с помощью пользовательского интерфейса

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

  1. Перейдите на вкладку "Управление" в Фабрике данных Azure или рабочей области Synapse и выберите "Связанные службы", затем щелкните "Создать".

  2. Найдите хранилище и выберите соединитель.

    Снимок экрана: выбор соединителя хранилища Microsoft Fabric.

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

    Снимок экрана: конфигурация связанной службы хранилища Microsoft Fabric.

Сведения о конфигурации соединителя

В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей фабрики данных, относящихся к хранилищу Microsoft Fabric.

Свойства связанной службы

Соединитель хранилища Microsoft Fabric поддерживает следующие типы проверки подлинности. Дополнительные сведения см. в соответствующих разделах:

Аутентификация субъекта-службы

Чтобы использовать аутентификацию на основе субъекта-службы, выполните следующие действия.

  1. Зарегистрируйте приложение на платформе удостоверений Майкрософт и добавьте секрет клиента. Затем запишите эти значения, которые используются для определения связанной службы:

    • Идентификатор приложения (клиента), который является идентификатором субъекта-службы в связанной службе.
    • Значение секрета клиента, являющееся ключом субъекта-службы в связанной службе.
    • Идентификатор клиента
  2. Предоставьте субъекту-службе по крайней мере роль участника в рабочей области Microsoft Fabric. Выполните следующие действия:

    1. Перейдите в рабочую область Microsoft Fabric, выберите "Управление доступом" на верхней панели. Затем выберите "Добавить людей или группы".

      Снимок экрана: выбор доступа к рабочей области Fabric.

       Снимок экрана: область управления доступом к рабочей области Fabric.

    2. В области "Добавление людей" введите имя субъекта-службы и выберите субъект-службу в раскрывающемся списке.

    3. Укажите роль участника или более поздней версии (администратор, член), а затем нажмите кнопку "Добавить".

      Снимок экрана: добавление роли рабочей области Fabric.

    4. Субъект-служба отображается на панели управления доступом .

Приведенные ниже свойства поддерживаются в связанной службе.

Свойство Описание: Обязательное поле
type Свойство type должно иметь значение Warehouse. Да
конечная точка Конечная точка сервера хранилища Microsoft Fabric. Да
workspaceId Идентификатор рабочей области Microsoft Fabric. Да
artifactId Идентификатор объекта Хранилища Microsoft Fabric. Да
tenant Укажите сведения о клиенте (доменное имя или идентификатор клиента), в котором находится приложение. Эти сведения можно получить, наведя указатель мыши на правый верхний угол страницы портала Azure. Да
servicePrincipalId Укажите идентификатора клиента приложения. Да
servicePrincipalCredentialType Тип учетных данных для использования при проверке подлинности субъекта-службы. Допустимые значения: ServicePrincipalKey и ServicePrincipalCert. Да
servicePrincipalCredential Учетные данные субъекта-службы.
При использовании ServicePrincipalKey в качестве типа учетных данных укажите значение секрета клиента приложения. Присвойте этому полю метку SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault.
При использовании ServicePrincipalCert в качестве учетных данных ссылайтесь на сертификат в Azure Key Vault и убедитесь, что тип контента сертификата — PKCS #12.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду IR (если хранилище данных расположено в частной сети). Если не указано другое, используется среда выполнения интеграции Azure по умолчанию. No

Пример: использование проверки подлинности с помощью ключа субъекта-службы

Вы также можете хранить ключ субъекта-службы в Azure Key Vault.

{
    "name": "MicrosoftFabricWarehouseLinkedService",
    "properties": {
        "type": "Warehouse",
        "typeProperties": {
            "endpoint": "<Microsoft Fabric Warehouse server endpoint>",
            "workspaceId": "<Microsoft Fabric workspace ID>",
            "artifactId": "<Microsoft Fabric Warehouse object ID>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            }   
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

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

Для набора данных хранилища Microsoft Fabric поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство типа набора данных должно иметь значение WarehouseTable. Да
schema Имя схемы. "Нет" для источника, "Да" для приемника
table Имя таблицы или представления. "Нет" для источника, "Да" для приемника

Пример свойств набора данных

{
    "name": "FabricWarehouseTableDataset",
    "properties": {
        "type": "WarehouseTable",
        "linkedServiceName": {
            "referenceName": "<Microsoft Fabric Warehouse linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring >
        ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Свойства действия копирования

Полный список разделов и свойств, используемых для определения действий, доступен в разделах Действие копирования в фабрике данных Azure и Конвейеры и действия в фабрике данных Azure. В этом разделе представлен список свойств, поддерживаемых источником и приемником хранилища Microsoft Fabric.

Хранилище Microsoft Fabric в качестве источника

Совет

Чтобы эффективно загружать данные из хранилища Microsoft Fabric с помощью секционирования данных, ознакомьтесь с дополнительными сведениями о параллельном копировании из хранилища Microsoft Fabric.

Чтобы скопировать данные из хранилища Microsoft Fabric, задайте свойство типа в источнике действия копирования в WarehouseSource. В разделе source действия копирования поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство type источника действия копирования должно иметь значение WarehouseSource. Да
sqlReaderQuery Используйте пользовательский SQL-запрос для чтения данных. Пример: select * from MyTable. No
sqlReaderStoredProcedureName Имя хранимой процедуры, которая считывает данные из исходной таблицы. Последней инструкцией SQL должна быть инструкция SELECT в хранимой процедуре. No
storedProcedureParameters Параметры для хранимой процедуры.
Допустимые значения: пары имен или значений. Имена и регистр параметров должны совпадать с именами и регистром параметров хранимой процедуры.
No
queryTimeout Указывает время ожидания выполнения команды запроса. Значение по умолчанию — 120 минут. No
isolationLevel Задает режим блокировки транзакций для источника данных SQL. Допустимое значение — моментальный снимок. Если значение не указано, используется уровень изоляции базы данных по умолчанию. Дополнительные сведения см. в разделе system.data.isolationlevel. No
partitionOptions Задает параметры секционирования данных, используемые для загрузки данных из хранилища Microsoft Fabric.
Допустимые значения: None (по умолчанию) и DynamicRange.
Если параметр секции включен (т None. е.), степень параллелизма для параллельной загрузки данных из хранилища Microsoft Fabric управляется parallelCopies параметром действия копирования.
No
partitionSettings Позволяет указать группу параметров для секционирования данных.
Применяется, если параметр секционирования имеет значение, отличное от None.
No
В разделе partitionSettings:
partitionColumnName Укажите имя исходного столбца в целочисленном или типе даты и даты и времени (int, smallint, bigint, date), datetime2которые будут использоваться секционированием диапазона для параллельного копирования. Если значение не указано, то индекс или первичный ключ таблицы определяется автоматически и используется в качестве столбца секционирования.
Применяется, если параметр секции имеет значение DynamicRange. Если для получения исходных данных используется запрос, подключите ?DfDynamicRangePartitionCondition в предложении WHERE. Пример см . в разделе "Параллельная копия" из раздела "Хранилище Microsoft Fabric".
No
partitionUpperBound Максимальное значение столбца секционирования для разделения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение.
Применяется, если параметр секции имеет значение DynamicRange. Пример см . в разделе "Параллельная копия" из раздела "Хранилище Microsoft Fabric".
No
partitionLowerBound Минимальное значение столбца секционирования для разделения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение.
Применяется, если параметр секции имеет значение DynamicRange. Пример см . в разделе "Параллельная копия" из раздела "Хранилище Microsoft Fabric".
No

Примечание.

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

Пример. Использование SQL-запроса

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Пример. Использование хранимой процедуры

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Пример хранимой процедуры:

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Хранилище Microsoft Fabric в качестве типа приемника

поддержка конвейеров Фабрика данных Azure и SynapseИспользуйте инструкцию COPY для загрузки данных в хранилище Microsoft Fabric.

Чтобы скопировать данные в хранилище Microsoft Fabric, задайте тип приемника в действие копирования в WarehouseSink. В разделе sink действия копирования поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство type приемника действия копирования должно иметь значение WarehouseSink. Да
allowCopyCommand Указывает, следует ли использовать инструкцию COPY для загрузки данных в хранилище Microsoft Fabric.

Сведения об ограничениях и деталях см . в разделе "Использование инструкции COPY для загрузки данных в хранилище Microsoft Fabric".

Допустимое значение — True.
Да
copyCommandSettings Группа свойств, которые можно задать, если свойство allowCopyCommand имеет значение TRUE. No
writeBatchTimeout Это свойство указывает время ожидания операции вставки, upsert и хранимой процедуры до истечения времени ожидания.

Допустимые значения приведены для интервала времени. Например, 00:30:00 (30 минут). Если значение не указано, время ожидания по умолчанию равно "00:30:00"
No
preCopyScript Укажите SQL-запрос для выполнения действия копирования перед записью данных в хранилище Microsoft Fabric в каждом запуске. Это свойство используется для очистки предварительно загруженных данных. No
tableOption Указывает, следует ли автоматически создавать таблицу приемника, если она не существует, на основе схемы источника. Допустимые значения: none (по умолчанию), autoCreate. No
disableMetricsCollection Служба собирает метрики для оптимизации производительности копирования и рекомендаций, которые вводят дополнительный доступ к главной базе данных. Если вас не устраивает такое поведение, укажите true, чтобы отключить его. Нет (значение по умолчанию — false)

Пример: приемник хранилища Microsoft Fabric

"activities":[
    {
        "name": "CopyToMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "tableOption": "autoCreate",
                "disableMetricsCollection": false
            }
        }
    }
]

Параллельная копия из хранилища Microsoft Fabric

Соединитель хранилища Microsoft Fabric в действии копирования предоставляет встроенные секционирование данных для параллельного копирования данных. Параметры секционирования данных можно найти на вкладке Источник действия Copy.

Снимок экрана с параметрами секционирования

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

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

Сценарий Предлагаемые параметры
Полная загрузка из большой таблицы в то время как с целым числом или столбцом datetime для секционирования данных. Параметры секции: секция динамического диапазона.
Столбец секционирования (необязательно). Укажите столбец для секционирования данных. Если значение не указано, то используется столбец с индексом или первичным ключом.
Верхняя граница секционирования и Нижняя граница секционирования (необязательно). Указывайте, если необходимо определить шаг секционирования. Это не для фильтрации строк в таблице, а все строки в таблице будут секционированы и скопированы. Если значения не указаны, действие Copy автоматически определяет эти значения.

К примеру, если ваш столбец раздела "Идентификатор" имеет диапазон значений от 1 до 100 и вы установили нижнюю границу как 20, а верхнюю границу как 80 с параллельным копированием как 4, служба извлекает данные по 4 разделам — идентификаторы в диапазоне <=20, [21, 50], [51, 80] и >=81 соответственно.
Загрузите большой объем данных с помощью настраиваемого запроса, а с целым числом или столбцом datetime для секционирования данных. Параметры секции: секция динамического диапазона.
Запрос: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Столбец секционирования: укажите столбец, используемый для секционирования данных.
Верхняя граница секционирования и Нижняя граница секционирования (необязательно). Указывайте, если необходимо определить шаг секционирования. Это не для фильтрации строк в таблице, а все строки в результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение.

К примеру, если ваш столбец раздела "Идентификатор" имеет диапазон значений от 1 до 100, и вы установили нижнюю границу как 20, а верхнюю границу как 80, с параллельным копированием как 4, служба извлекает данные по 4 разделам — идентификаторы в диапазоне <=20, [21, 50], [51, 80] и >=81 соответственно.

Ниже приведены дополнительные примеры запросов для различных сценариев.
1. Запросите всю таблицу:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Запрос из таблицы с выделенным столбцом и дополнительными фильтрами предложения where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Запрос с вложенными запросами:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Запрос с разделом в вложенных запросах:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Ниже приведены рекомендации по загрузке данных с параметром секционирования.

  • Чтобы избежать неравномерного распределения данных, выбирайте в качестве столбца секционирования отличительный столбец (например, первичный ключ или уникальный ключ).
  • Если для копирования данных используется Azure Integration Runtime, то в параметре Единицы интеграции данных (DIU) можно задать большее значение (>4), чтобы задействовать больше вычислительных ресурсов. Ознакомьтесь со сценариями использования этого механизма.
  • Параметр "Степень параллелизма копирования" контролирует номера секций. Если это число слишком велико, это может существенно сказаться на производительности. Рекомендуется задавать это число следующим образом: (DIU или число узлов локальной среды IR) * (от 2 до 4).
  • Обратите внимание, что хранилище Microsoft Fabric может выполнять не более 32 запросов в данный момент, установив слишком большой уровень параллелизма копирования, может привести к проблеме регулирования хранилища.

Пример: запрос с секционированием по динамическому диапазону

"source": {
    "type": "WarehouseSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Использование инструкции COPY для загрузки данных в хранилище Microsoft Fabric

Использование инструкции COPY — это простой и гибкий способ загрузки данных в хранилище Microsoft Fabric с высокой пропускной способностью. Дополнительные сведения см. в статье о массовой загрузке данных с помощью инструкции COPY.

  • Если исходные данные используются в BLOB-объекте Azure или Azure Data Lake Storage 2-го поколения, а формат совместим с инструкцией COPY, можно использовать действие копирования для прямого вызова инструкции COPY, чтобы позволить хранилищу Microsoft Fabric извлекать данные из источника. Дополнительные сведения см. в разделе Прямое копирование с помощью инструкции COPY.
  • Если хранилище и формат исходных данных изначально не поддерживаются инструкцией COPY, то можно использовать функцию промежуточного копирования с помощью инструкции COPY. Функция поэтапного копирования также обеспечивает более высокую пропускную способность. Он автоматически преобразует данные в формат, совместимый с инструкцией COPY, сохраняет данные в хранилище BLOB-объектов Azure, а затем вызывает инструкцию COPY для загрузки данных в хранилище Microsoft Fabric.

Совет

При использовании инструкции COPY со средой выполнения интеграции Azure в качестве эффективных единиц интеграции данных (DIU) всегда используется 2. Настройка DIU не влияет на производительность.

Прямое копирование с помощью инструкции COPY

Инструкция Microsoft Fabric Warehouse COPY напрямую поддерживает BLOB-объект Azure, Data Lake Storage 1-го поколения Azure и Azure Data Lake Storage 2-го поколения. Если исходные данные соответствуют критериям, описанным в этом разделе, используйте инструкцию COPY для копирования непосредственно из исходного хранилища данных в хранилище Microsoft Fabric. В противном случае см. сведения в разделе Промежуточное копирование с помощью инструкции COPY. Служба проверяет параметры и завершает выполнение действия копирования, если критерии не выполнены.

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

    Поддерживаемые типы хранилища данных источника Поддерживаемые форматы Поддерживаемые типы проверки подлинности источника
    Хранилище BLOB-объектов Azure Текст с разделителями Проверка подлинности на основе ключа учетной записи, проверка подлинности с помощью подписанного URL-адреса
      Parquet Проверка подлинности на основе ключа учетной записи, проверка подлинности с помощью подписанного URL-адреса
    Azure Data Lake Storage 2-го поколения Текст с разделителями
    Parquet
    Проверка подлинности на основе ключа учетной записи, проверка подлинности с помощью подписанного URL-адреса
  • Параметры формата могут быть следующие.

    • Для Parquet: в параметре compression может быть задано Без сжатия, Snappy или GZip.
    • Для текста с разделителями:
      • В параметре rowDelimiter может быть явно задан один символ или "\r\n", значение по умолчанию не поддерживается.
      • В параметре nullValue может быть оставлено значение по умолчанию или задана пустая строка ("").
      • В параметре encodingName может быть оставлено значение по умолчанию или задано значение utf-8 или utf-16.
      • Параметр escapeChar должен совпадать с параметром quoteChar и не быть пустым.
      • В параметре skipLineCount может быть оставлено значение по умолчанию или задано значение 0.
      • В параметре compression может быть задано Без сжатия или GZip.
  • Если источником является папка, параметр recursive в действии копирования должен иметь значение true, а в параметре wildcardFilename должен быть задан подстановочный знак * или *.*.

  • Параметры wildcardFolderPath, wildcardFilename (кроме * и *.*), modifiedDateTimeStart, modifiedDateTimeEnd, prefix, enablePartitionDiscovery и additionalColumns не указываются.

В разделе allowCopyCommand действия копирования поддерживаются следующие параметры инструкции COPY.

Свойство Описание: Обязательное поле
defaultValues Задает значения по умолчанию для каждого целевого столбца в хранилище Microsoft Fabric. Значения по умолчанию из этого свойства переопределяют ограничение DEFAULT, заданное в хранилище данных, а столбец идентификаторов не может иметь значение по умолчанию. No
additionalOptions Дополнительные параметры, которые будут переданы инструкции Microsoft Fabric Warehouse COPY непосредственно в предложении With в инструкции COPY. Значение необходимо заключать в кавычки для соответствия требованиям инструкции COPY. No
"activities":[
    {
        "name": "CopyFromAzureBlobToMicrosoftFabricWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

Промежуточное копирование с помощью инструкции COPY

Если исходные данные изначально несовместимы с инструкцией COPY, включите копирование данных через промежуточный экземпляр хранилища BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения (это не может быть хранилище Azure класса Premium). В таком случае служба автоматически преобразует данные, чтобы они соответствовали требованиям к формату данных инструкции COPY. Затем он вызывает инструкцию COPY для загрузки данных в хранилище Microsoft Fabric. Наконец, производится очистка временных данных из хранилища. Подробные сведения о копировании с использованием промежуточного процесса см. в разделе Промежуточное копирование.

Для использования этой функции создайте связанную службу Хранилища BLOB-объектов Azure или связанную службу Azure Data Lake Storage 2-го поколения с ключом учетной записи или проверкой подлинности через управляемое системой удостоверение, которая ссылается на учетную запись хранения Azure в качестве промежуточного хранилища.

Внимание

Внимание

Если в промежуточной службе хранилища Azure настроена управляемая частная конечная точка с включенным брандмауэром хранилища, то необходимо использовать проверку подлинности через управляемые удостоверения и предоставить разрешения читателя данных BLOB-объектов хранилища для Synapse SQL Server, чтобы обеспечить доступ к промежуточным файлам во время загрузки с помощью инструкции COPY.

"activities":[
    {
        "name": "CopyFromSQLServerToMicrosoftFabricWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

Свойства потока данных для сопоставления

При преобразовании данных в потоке данных сопоставления можно читать и записывать в таблицы из хранилища Microsoft Fabric. Дополнительные сведения см. в описаниях преобразования источника и преобразования приемника в разделе, посвященном потокам данных для сопоставления.

Хранилище Microsoft Fabric в качестве источника

Параметры, относящиеся к хранилищу Microsoft Fabric, доступны на вкладке "Параметры источника" преобразования источника.

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Входные данные Выберите, указываете ли источник на таблицу (эквивалент select * из имени таблицы) или введите пользовательский SQL-запрос или извлеките данные из хранимой процедуры. Запрос. Если выбрать запрос в поле ввода, введите SQL-запрос для источника. Этот параметр переопределяет любую таблицу, выбранную в наборе данных. Предложения Order By здесь не поддерживаются, но можно задать полную инструкцию SELECT FROM. Кроме того, можно использовать табличные функции, определяемые пользователем. Пример использования такой функции в SQL — инструкция select * from udfGetData(), возвращающая таблицу. Этот запрос создаст исходную таблицу, которую можно использовать в потоке данных. Использование запросов также отлично подходит для уменьшения строк для тестирования или поиска. Пример SQL: Select * from MyTable where customerId > 1000 and customerId < 2000 Да Таблица или запрос или хранимая процедура формат: "table"
Размер пакета Введите размер пакета для разделения больших наборов данных на блоки для чтения. В потоках данных этот параметр используется для установки кэширования Spark по столбцам. Это необязательное поле. Если оно пусто, то будут использоваться параметры Spark по умолчанию. No Числовые значения batchSize: 1234
Уровень изоляции Значение по умолчанию для источников SQL в потоке данных для сопоставления — Read Uncommitted (чтение незафиксированных данных). Уровень изоляции можно изменить на один из следующих значений:• Read Committed • Read Uncommitted • Read Uncommitted • Repeatable Read • Serializable • None (игнорировать уровень изоляции) Да • Read Committed • Read Uncommitted • Repeatable Read • Serializable • None (игнорировать уровень изоляции) isolationLevel

Примечание.

Чтение с помощью промежуточного хранения не поддерживается. Поддержка CDC для источника хранилища Microsoft Fabric в настоящее время недоступна.

Хранилище Microsoft Fabric в качестве приемника

Параметры, относящиеся к хранилищу Microsoft Fabric, доступны на вкладке "Параметры" преобразования приемника.

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Метод обновления Определяет, какие операции разрешены в назначении базы данных. По умолчанию разрешены только операции вставки. Для выполнения обновления (update), обновления или вставки (upsert) или удаления (delete) строк требуется преобразование alter-row строк, отмеченных для этих действий. Для выполнения обновления (update), обновления или вставки (upsert) или удаления (delete) должен быть установлен ключевой столбец (или столбцы), позволяющий определить строки для изменения. Да true или false Вставляемый отменяемый обновляемый обновляемый объект
Действие таблицы Определяет, следует ли повторно создать или удалить все строки из целевой таблицы перед записью.• Нет: никаких действий не будет выполнено в таблице. • Повторное создание: таблица будет удалена и воссоздана. Требуется, если создать новую таблицу динамически.• Усечение: все строки из целевой таблицы будут удалены. No Нет или повторное создание или усечение повторное создание: true усечение: true
Включить промежуточный режим Промежуточное хранилище настраивается в действии Выполнение потока данных. При использовании проверки подлинности управляемого удостоверения для связанной службы хранилища изучите необходимые конфигурации для BLOB-объектов Azure и Azure Data Lake Storage 2-го поколения соответственно. Если служба хранилища Azure настроена с конечной точкой службы виртуальной сети, необходимо использовать проверку подлинности управляемого удостоверения с включенным "разрешить доверенной службе Майкрософт" в учетной записи хранения, см. сведения о влиянии использования конечных точек службы виртуальной сети с хранилищем Azure. No true или false staged: true
Размер пакета Определяет, сколько строк записывается в каждую группу. Более крупные размеры пакетов улучшают сжатие и оптимизацию памяти, но при кэшировании данных возникает риск нехватки памяти. No Числовые значения batchSize: 1234
Использование схемы приемника По умолчанию в схеме приемника будет создана временная таблица в качестве промежуточной. Кроме того, можно отменить выбор параметра Использовать схему приемника и вместо этого указать в параметре Выбрать схему базы данных пользователя имя схемы, с которым Фабрика данных создаст промежуточную таблицу для загрузки вышестоящих данных и автоматической их очистки после завершения. Убедитесь, что у вас есть разрешение на создание таблицы в базе данных и разрешение на изменение для схемы. No true или false stagingSchemaName
Скрипты SQL предобработки и постобработки Введите многострочные скрипты SQL, которые будут выполняться до (предобработка) и после (постобработка) записи данных в базу данных-приемник. No Скрипты SQL preSQLs:['set IDENTITY_INSERT mytable ON'] postSQLs:['set IDENTITY_INSERT mytable OFF'],

Обработка строк ошибок

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

Фиксация транзакции: выберите вариант записи данных — в отдельной транзакции или пакетами. При использовании отдельной транзакции производительность будет выше, однако записанные данные не будут видны другим пользователям до тех пор, пока не завершится транзакция. У пакетных транзакций производительность ниже, но они подходят для больших наборов данных.

Выходные отклоненные данные. Если этот параметр включен, строки с ошибками можно вывести в CSV-файл в Хранилище BLOB-объектов Azure или в учетную запись Azure Data Lake Storage 2-го поколения на ваш выбор. При этом строки с ошибками будут записаны с тремя дополнительными столбцами: операции SQL, например INSERT или UPDATE, код ошибки потока данных и сообщение об ошибке в строке.

Сообщать об успешном выполнении при ошибке. Если этот параметр включен, поток данных будет помечен как успешно выполненный даже при обнаружении строк с ошибками.

Примечание.

Для связанной службы хранилища Microsoft Fabric поддерживаемый тип проверки подлинности для субъекта-службы — key; Проверка подлинности "Сертификат" не поддерживается.

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Свойства действия GetMetadata

Подробные сведения об этих свойствах см. в статье Действие GetMetadata.

Сопоставление типов данных для хранилища Microsoft Fabric

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

Тип данных хранилища Microsoft Fabric Тип промежуточных данных фабрики данных
bigint Int64
binary Byte[]
bit Логический
char String, Char[]
Дата Дата/время
datetime2 Дата/время
Decimal Десятичное число
FILESTREAM attribute (varbinary(max)) Byte[]
Тип с плавающей запятой Двойной
INT Int32
numeric Десятичное число
real Одна
smallint Int16
Время TimeSpan
uniqueidentifier GUID
varbinary Byte[]
varchar String, Char[]

Следующие шаги

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