Копирование и преобразование данных в хранилище 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:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы хранилища Microsoft Fabric с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу хранилища Microsoft Fabric в пользовательском интерфейсе портал Azure.
Перейдите на вкладку "Управление" в Фабрике данных Azure или рабочей области Synapse и выберите "Связанные службы", затем щелкните "Создать".
Найдите хранилище и выберите соединитель.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей фабрики данных, относящихся к хранилищу Microsoft Fabric.
Свойства связанной службы
Соединитель хранилища Microsoft Fabric поддерживает следующие типы проверки подлинности. Дополнительные сведения см. в соответствующих разделах:
Аутентификация субъекта-службы
Чтобы использовать аутентификацию на основе субъекта-службы, выполните следующие действия.
Зарегистрируйте приложение на платформе удостоверений Майкрософт и добавьте секрет клиента. Затем запишите эти значения, которые используются для определения связанной службы:
- Идентификатор приложения (клиента), который является идентификатором субъекта-службы в связанной службе.
- Значение секрета клиента, являющееся ключом субъекта-службы в связанной службе.
- Идентификатор клиента
Предоставьте субъекту-службе по крайней мере роль участника в рабочей области Microsoft Fabric. Выполните следующие действия:
Перейдите в рабочую область Microsoft Fabric, выберите "Управление доступом" на верхней панели. Затем выберите "Добавить людей или группы".
В области "Добавление людей" введите имя субъекта-службы и выберите субъект-службу в раскрывающемся списке.
Укажите роль участника или более поздней версии (администратор, член), а затем нажмите кнопку "Добавить".
Субъект-служба отображается на панели управления доступом .
Приведенные ниже свойства поддерживаются в связанной службе.
Свойство | Описание: | Обязательное поле |
---|---|---|
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
.
- В параметре
- Для Parquet: в параметре
Если источником является папка, параметр
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 и Azure Data Lake Storage 2-го поколения, соответственно.
- Если в хранилище Azure настроена конечная точка службы виртуальной сети, то необходимо использовать проверку подлинности по управляемому удостоверению. См. раздел Влияние использования конечных точек службы виртуальной сети со службой хранилища 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[] |
Следующие шаги
Список хранилищ данных, поддерживаемых в рамках функции копирования в качестве источников и приемников, см. в разделе Поддерживаемые хранилища данных.