Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К:
Фабрика данных Azure
Azure Synapse Analytics
Совет
Data Factory в Microsoft Fabric — это следующее поколение Фабрика данных Azure с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.
В этой статье описывается использование действия копирования в конвейерах Фабрика данных Azure и Synapse Analytics для копирования данных в хранилище таблиц Azure и из нее. Это основывается на обзоре активности копирования, который представляет общий обзор активности копирования.
Примечание.
Этот соединитель также доступен в Data Factory в Microsoft Fabric. Сведения о конфигурации и функциях Fabric см. в документации по соединителю Fabric Azure Table Storage.
Примечание.
Мы рекомендуем использовать модуль Az PowerShell Azure для взаимодействия с Azure. Сведения о начале работы см. в разделе Install Azure PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Migrate Azure PowerShell из AzureRM в Az.
Поддерживаемые возможности
Этот соединитель хранилища таблиц Azure поддерживается для следующих возможностей:
| Поддерживаемые возможности | IR | Управляемая частная конечная точка |
|---|---|---|
| Копирование данных (источник/приемник) | (1) (2) | ✓ Исключение учетной записи хранения версии 1 |
| Операция поиска | (1) (2) | ✓ Исключение учетной записи хранения версии 1 |
(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции
Можно копировать данные из любого поддерживаемого исходного хранилища данных в службу "Хранилище таблиц". Вы также можете скопировать данные из "Хранилища таблиц" в любое поддерживаемое хранилище данных. Список хранилищ данных, которые поддерживаются в качестве источников и нейтральных приемников для операции копирования, приведен в таблице Поддерживаемые хранилища данных.
В частности, этот соединитель таблиц Azure поддерживает копирование данных с помощью ключа учетной записи и проверки подлинности с помощью совместно используемой подписи службы.
Начало работы
Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:
- Средство копирования данных
- портал Azure
- SDK .NET
- пакет SDK Python
- Azure PowerShell
- REST API
- шаблон Azure Resource Manager
Создание связанной службы хранилища таблиц Azure с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу хранилища таблиц Azure в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрика данных Azure или Synapse и выберите "Связанные службы", а затем нажмите кнопку "Создать".
Найдите таблицу Azure и выберите соединитель хранилища таблиц Azure.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей, относящихся к хранилищу таблиц Azure.
Свойства связанной службы
Этот соединитель Azure Table Storage поддерживает следующие типы проверки подлинности. Дополнительные сведения см. в соответствующих разделах.
- Проверка подлинности на основе ключа учетной записи
- Аутентификация с подписью для совместного доступа
- Проверка подлинности с помощью назначенного системой управляемого удостоверения
- Проверка подлинности с помощью управляемой идентификации, назначаемой пользователем
Проверка подлинности на основе ключа учетной записи
Вы можете создать связанную службу служба хранилища Azure с помощью ключа учетной записи. Она предоставляет службе глобальный доступ к хранилищу. Поддерживаются следующие свойства.
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства type необходимо задать значение AzureTableStorage. | Да |
| connectionString | В свойстве connectionString указываются сведения, необходимые для подключения к службе хранилища. Вы также можете поместить ключ учетной записи в Azure Key Vault и извлечь конфигурацию accountKey из строки подключения. Дополнительные сведения см. в следующих примерах и статье Хранение учетных данных в Azure Key Vault. |
Да |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime или локальную Integration Runtime (если хранилище данных находится в частной сети). Если он не указан, используется Azure Integration Runtime по умолчанию. | Нет |
Примечание.
Если вы использовали связанную службу типа AzureStorage, она по-прежнему поддерживается как есть, но в дальнейшем рекомендуется использовать новый тип связанной службы — AzureTableStorage.
Пример:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Example: хранение ключа учетной записи в Azure Key Vault
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Аутентификация с помощью подписей для общего доступа (SAS)
Вы также можете создать связанную службу хранилища с помощью подписи общего доступа. В этом случае служба получает ограниченный или привязанный ко времени доступ ко всем или отдельным ресурсам в хранилище.
Подпись общего доступа обеспечивает делегированный доступ к ресурсам в вашей учетной записи хранения. Вы можете использовать его, чтобы предоставить клиенту ограниченные разрешения на доступ к объектам в вашей учетной записи хранилища на определенный период и с определенным набором разрешений. Не нужно предоставлять совместный доступ к ключам доступа для учетной записи. Подписанный URL-адрес — это универсальный код ресурса (URI), который в своих параметрах запроса содержит все сведения, необходимые для доступа к ресурсу хранилища с прохождением аутентификации. Для доступа к ресурсам хранилища с помощью подписанной строки доступа (SAS), клиенту нужно лишь передать SAS в соответствующий конструктор или метод. Дополнительные сведения об общих ключах доступа см., в статье Общие ключи доступа: Понимание модели общего ключа доступа.
Примечание.
Сейчас поддерживаются как общие сигнатуры доступа уровня службы, так и общие сигнатуры доступа уровня учетной записи. Дополнительные сведения о подписях для совместного доступа см. в статье Предоставление ограниченного доступа к ресурсам служба хранилища Azure с помощью подписей для совместного доступа (SAS).
Совет
Чтобы создать общий ключ доступа к службе для вашей учетной записи хранения, можно выполнить следующие команды PowerShell. Замените заполнители и предоставьте необходимые разрешения.
$context = New-AzStorageContext -StorageAccountName <accountName> -StorageAccountKey <accountKey>
New-AzStorageContainerSASToken -Name <containerName> -Context $context -Permission rwdl -StartTime <startTime> -ExpiryTime <endTime> -FullUri
При использовании аутентификации с подписью общего доступа (SAS) поддерживаются следующие свойства.
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства type необходимо задать значение AzureTableStorage. | Да |
| sasUri | Укажите SAS URI для общей подписи доступа к таблице. Пометьте это поле как SecureString для безопасного хранения. Маркер SAS можно также поместить в Azure Key Vault для использования автоматического поворота и удаления части маркера. Дополнительные сведения см. в следующих примерах и статье Хранение учетных данных в Azure Key Vault. |
Да |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime или локальную Integration Runtime (если хранилище данных находится в частной сети). Если он не указан, используется Azure Integration Runtime по умолчанию. | Нет |
Примечание.
Если вы использовали связанную службу типа AzureStorage, она по-прежнему поддерживается как есть, но в дальнейшем рекомендуется использовать новый тип связанной службы — AzureTableStorage.
Пример:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource e.g. https://<account>.table.core.windows.net/<table>?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Example: хранение ключа учетной записи в Azure Key Vault
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<account>.table.core.windows.net/<table>>"
},
"sasToken": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
При создании URI с общей сигнатурой доступа необходимо учитывать следующее.
- Задайте для объектов соответствующие разрешения на чтение или запись. Они устанавливаются с учетом назначения связанной службы (чтение, запись, чтение и запись).
- Задайте время окончания срока действия соответствующим образом. Убедитесь, что срок действия доступа к объектам хранилища не истекает в период активности конвейера.
- В зависимости от потребности URI следует создать на нужном уровне таблицы.
Проверка подлинности с помощью назначенного системой управляемого удостоверения
Фабрику данных или конвейер Synapse можно связать с системным управляемым удостоверением для ресурсов Azure, что позволяет этому ресурсу проходить аутентификацию в других службах Azure. Это управляемое удостоверение, назначаемое системой, можно использовать для проверки подлинности Azure Table Storage. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Управляемые удостоверения для ресурсов Azure
Чтобы использовать аутентификацию с управляемой системой идентичностью, выполните следующие действия.
Получите сведения о назначаемом системой управляемом удостоверении, скопировав значение идентификатора объекта назначаемого системой управляемого удостоверения, созданного вместе с рабочей областью Фабрики данных Azure или Synapse.
Предоставьте управляемой идентичности разрешение на доступ к Azure Table Storage. Дополнительные сведения о ролях см. в этой статье.
- В качестве источника в элементе управления доступом (IAM) предоставьте по крайней мере роль чтения данных таблицы хранилища.
- В качестве приемника в Управление доступом (IAM) предоставьте роль участника данных таблицы хранилища по крайней мере.
Эти свойства поддерживаются для связанной службы Azure Table Storage:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type должно иметь значение AzureTableStorage. | Да |
| конечная точка сервиса | Укажите конечную точку службы Azure Table Storage с шаблоном https://<accountName>.table.core.windows.net/. |
Да |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime. Если он не указан, используется Azure Integration Runtime по умолчанию. | Нет |
Примечание.
Проверка подлинности управляемого удостоверения, назначаемая системой, поддерживается только Azure среде выполнения интеграции.
Пример:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.table.core.windows.net/"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Аутентификация пользовательской управляемой идентичностью
Фабрике данных может быть назначено одно или несколько управляемых идентичностей, назначаемых пользователем. Это управляемое удостоверение, назначаемое пользователем, можно использовать для проверки подлинности Azure Table Storage, которая позволяет получать доступ к данным и копировать данные из Azure Table Storage. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Управляемые удостоверения для ресурсов Azure
Для использования проверки подлинности с помощью назначаемой пользователем управляемой идентичности выполните следующие шаги.
Создайте одно или несколько управляемых удостоверений, назначенных пользователем, и предоставьте разрешения в Azure Table Storage. Дополнительные сведения о ролях см. в этой статье.
- В качестве источника в элементе управления доступом (IAM) предоставьте по крайней мере роль чтения данных таблицы хранилища.
- В качестве приемника в Управление доступом (IAM) предоставьте роль участника данных таблицы хранилища по крайней мере.
Назначьте одну или несколько пользовательских управляемых идентичностей вашей фабрике данных и создайте учетные данные для каждой из них.
Эти свойства поддерживаются для связанной службы Azure Table Storage:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type должно иметь значение AzureTableStorage. | Да |
| конечная точка сервиса | Укажите конечную точку службы Azure Table Storage с шаблоном https://<accountName>.table.core.windows.net/. |
Да |
| учетные данные | Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. | Да |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime или локальную Integration Runtime (если хранилище данных находится в частной сети). Если он не указан, используется Azure Integration Runtime по умолчанию. | Нет |
Пример:
{
"name": "AzureTableStorageLinkedService",
"properties": {
"type": "AzureTableStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.table.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе представлен список свойств, поддерживаемых набором данных таблицы Azure.
Чтобы скопировать данные в таблицу Azure и из нее, задайте для свойства типа набора данных значение AzureTable. Поддерживаются следующие свойства.
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type для набора данных должно иметь значение AzureTable. | Да |
| tableName | Имя таблицы в экземпляре базы данных службы "Хранилище таблиц", на которое ссылается связанная служба. | Да |
Пример:
{
"name": "AzureTableDataset",
"properties":
{
"type": "AzureTable",
"typeProperties": {
"tableName": "MyTable"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Azure Table storage linked service name>",
"type": "LinkedServiceReference"
}
}
}
Определение схемы службой
Для хранилищ данных без схемы, таких как таблица Azure, служба выводит схему одним из следующих способов:
- Если указать сопоставление столбцов в действии копирования, служба будет использовать список столбцов на стороне источника для получения данных. В этом случае, если строка не содержит значение столбца, ему присваивается значение NULL.
- Если сопоставление столбцов не указано в действии копирования, то служба определяет схему, используя первую строку данных. В этом случае, если первая строка не содержит полную схему (например, некоторые столбцы содержат значение NULL), после операции копирования некоторые столбцы будут отсутствовать.
Свойства действие Copy
Полный список разделов и свойств, используемых для определения действий, обратитесь к статье Конвейеры. В этом разделе представлен список свойств, поддерживаемых источником и приемником таблицы Azure.
Тип источника "Таблица Azure"
Чтобы скопировать данные из таблицы Azure, задайте тип источника в действии копирования значение AzureTableSource. В разделе source действия копирования поддерживаются следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type источника действия копирования должно иметь значение AzureTableSource. | Да |
| AzureTableSourceQuery | Используйте пользовательский запрос службы "Хранилище таблиц" для чтения данных. Исходный запрос — это прямая карта из параметра запроса $filter поддерживаемого Azure Table Storage. Узнайте больше о синтаксисе из этого документа и изучите примеры в следующем разделе azureTableSourceQuery. |
Нет |
| azureTableSourceIgnoreTableNotFound | Указывает, следует ли разрешить исключение, связанное с отсутствием таблицы. Допустимые значения: true и false (по умолчанию). |
Нет |
Примеры azureTableSourceQuery
Примечание.
Azure время ожидания операции запроса таблиц составляет 30 секунд, как устанавливается службой Azure Table. Сведения о том, как оптимизировать запрос, см. в статье Разработка для запросов.
Если нужно отфильтровать данные по столбцу даты и времени, см. следующий пример:
"azureTableSourceQuery": "LastModifiedTime gt datetime'2017-10-01T00:00:00' and LastModifiedTime le datetime'2017-10-02T00:00:00'"
Если нужно отфильтровать данные по столбцу строкового типа, см. следующий пример:
"azureTableSourceQuery": "LastModifiedTime ge '201710010000_0000' and LastModifiedTime le '201710010000_9999'"
При использовании параметра конвейера приведите значение даты и времени в правильный формат в соответствии с предыдущими примерами.
Azure Таблица в качестве типа приемника
Чтобы скопировать данные в таблицу Azure, задайте тип приемника в действии копирования значение AzureTableSink. В секции sink операции копирования поддерживаются следующие свойства.
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type приемника действия копирования должно иметь значение AzureTableSink. | Да |
| azureTableDefaultPartitionKeyValue | Значение ключа раздела по умолчанию, которое может использоваться приемником. | Нет |
| azureTablePartitionKeyName | Укажите имя столбца, значения которого используются в качестве ключей разделов. Если не указано, в качестве ключа раздела используется AzureTableDefaultPartitionKeyValue. | Нет |
| azureTableRowKeyName | Укажите имя столбца, значения которого используются в качестве ключа строки. Если не указано, используйте GUID для каждой строки. | Нет |
| azureTableInsertType | Режим вставки данных в таблицу Azure. Это свойство контролирует, будут ли заменены или объединены значения в существующих строках в выходной таблице с совпадающими ключами секций и строк. Допустимые значения: merge (по умолчанию) и replace. Этот параметр применяется на уровне строк, а не на уровне таблицы. Ни один из параметров не удаляет строки выходной таблицы, которые не существуют во входной таблице. Чтобы узнать о действии этих параметров (merge и replace), ознакомьтесь со статьями Insert or Merge Entity (Вставка или слияние сущностей) и Insert or Replace Entity (Вставка или замена сущности). |
Нет |
| writeBatchSize | Вставляет данные в таблицу Azure при достижении writeBatchSize или writeBatchTimeout. Допустимые значения: целое число (количество строк). |
Нет (значение по умолчанию — 10 000) |
| writeBatchTimeout | Вставляет данные в таблицу Azure при достижении writeBatchSize или writeBatchTimeout. Допустимые значения: временной диапазон. Например, 00:20:00 (20 минут). |
Нет (значение по умолчанию — 90 секунд, время ожидания клиента хранилища по умолчанию) |
| maxConcurrentConnections | Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
Пример:
"activities":[
{
"name": "CopyToAzureTable",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure Table output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureTableSink",
"azureTablePartitionKeyName": "<column name>",
"azureTableRowKeyName": "<column name>"
}
}
}
]
azureTablePartitionKeyName
Чтобы вы могли использовать целевой столбец как azureTablePartitionKeyName, необходимо сопоставить исходный столбец с целевым столбцом с помощью свойства translator.
В следующем примере столбец-источник DivisionID сопоставляется с целевым столбцом DivisionID.
"translator": {
"type": "TabularTranslator",
"columnMappings": "DivisionID: DivisionID, FirstName: FirstName, LastName: LastName"
}
DivisionID указывается в качестве разделительного ключа.
"sink": {
"type": "AzureTableSink",
"azureTablePartitionKeyName": "DivisionID"
}
Сопоставление типов данных для таблицы Azure
При копировании данных из и в таблицы Azure используются следующие сопоставления типов данных таблицы Azure в промежуточные типы данных, используемые внутри службы. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и типы данных для приемника, см. в статье Сопоставление схем и типов данных.
При перемещении данных в Azure Table и обратно, используются следующие сопоставления, определенные Azure Table, из типов OData Azure Table в тип .NET и наоборот.
| тип данных таблицы Azure | Промежуточный тип данных службы | Сведения |
|---|---|---|
| Edm.Binary | byte[] | Массив байтов размером до 64 КБ. |
| Edm.Boolean | bool | Значение типа Boolean. |
| Edm.DateTime | Дата/время | 64-битное значение времени, выраженное в формате UTC. Допустимый диапазон даты и времени начинается в полночь 1 января 1601 года н. э. (от Р. Х.) в часовом поясе UTC. Заканчивается диапазон 31 декабря 9999 года. |
| Edm.Double | double | 64-битное значение с плавающей запятой. |
| Edm.Guid | GUID | 128-битный глобально уникальный идентификатор (GUID). |
| Edm.Int32 | Int32 | 32-битное целое число. |
| Edm.Int64 | Int64 | 64-битное целое число. |
| Edm.String | Строка | Значение в кодировке UTF-16. Размер строкового значения не должен превышать 64 КБ. |
Свойства операции поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Связанный контент
Список хранилищ данных, поддерживаемых в рамках функции копирования в качестве источников и приемников, см. в разделе Поддерживаемые хранилища данных.