Копирование данных из MySQL с помощью Фабрики данных Azure или Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в конвейерах Фабрики данных Azure и Synapse Analytics копировать данные из базы данных MySQL. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.
Примечание.
Чтобы копировать данные из службы Базы данных Azure для MySQL или в нее, используйте специальный соединитель Базы данных Azure для MySQL.
Внимание
Соединитель MySQL с помощью рекомендуемой версии драйвера обеспечивает улучшенную встроенную поддержку MySQL. Если вы используете соединитель с устаревшей версией драйвера, обновите его до 31 октября 2024 года. Дополнительные сведения о различиях между устаревшей и рекомендуемой версией см. в этом разделе .
Поддерживаемые возможности
Соединитель MySQL поддерживается для перечисленных ниже возможностей.
Поддерживаемые возможности | IR |
---|---|
Действие копирования (источник/-) | (1) (2) |
Действие поиска | (1) (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия копирования, приведен в таблице Поддерживаемые хранилища данных и форматы.
Этот соединитель поддерживает MySQL версии 5.5, 5.6, 5.7, 8.0, 8.1 и 8.2 в рекомендуемой новой версии драйвера версии 2 и 5.6, 5.7 и 8.0 для устаревшей версии драйвера.
Необходимые компоненты
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начиная с версии 3.7 служба Integration Runtime предоставляет встроенный драйвер MySQL, поэтому вам не потребуется устанавливать его вручную.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для MySQL с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для MySQL в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу MySQL и выберите соединитель MySQL.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
Следующие разделы содержат сведения о свойствах JSON, которые используются для определения сущностей фабрики данных, относящихся к соединителю MySQL.
Свойства связанной службы
Если вы используете рекомендуемую версию драйвера, для связанной службы MySQL поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Для свойства type необходимо задать значение MySql | Да |
driverVersion | Версия драйвера при выборе рекомендуемой версии драйвера. Значение равно версии 2. | Да |
server | Имя сервера MySQL. | Да |
port | Номер порта для подключения к серверу MySQL. | No |
database | Имя базы данных MySQL. | Да |
username | Ваше имя пользователя. | Да |
password | Пароль для имени пользователя. Пометьте это поле как SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. | Да |
sslMode | Этот параметр указывает, использует ли драйвер TLS-шифрование и проверку при подключении к MySQL. Пример: SSLMode=<0/1/2/3/4> .Параметры: DISABLED (0) / PREFERRED (1) (по умолчанию) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Да |
useSystemTrustStore | Этот параметр указывает, следует ли использовать сертификат ЦС из доверенного системного хранилища или из указанного PEM-файла. Например, UseSystemTrustStore=<0/1> ;Параметры: включено (1) / Отключено (0) (по умолчанию) |
No |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. | No |
Пример:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример: хранение пароля в Azure Key Vault
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Если вы используете устаревшую версию драйвера, поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Для свойства type необходимо задать значение MySql | Да |
connectionString | Укажите сведения, необходимые для подключения к экземпляру базы данных Azure для MySQL. Вы можете также поместить пароль в Azure Key Vault и извлечь конфигурацию password из строки подключения. Ознакомьтесь с приведенными ниже примерами и подробными сведениями в статье Хранение учетных данных в Azure Key Vault. |
Да |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. | No |
Типичная строка подключения — Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Дополнительные свойства, которые вы можете установить в вашем случае:
Свойство | Описание: | Обязательное поле |
---|---|---|
sslMode | Этот параметр указывает, использует ли драйвер TLS-шифрование и проверку при подключении к MySQL. Пример: SSLMode=<0/1/2/3/4> .Параметры: DISABLED (0) / PREFERRED (1) (по умолчанию) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Да |
SSLCert | Полный путь и имя PEM-файла, содержащего SSL-сертификат для подтверждения подлинности клиента. Чтобы указать закрытый ключ для шифрования этого сертификата перед его отправкой на сервер, используйте свойство SSLKey . |
Да, если используется двухфакторная проверка подлинности SSL. |
SSLKey | Полный путь и имя файла, содержащего закрытый ключ для шифрования сертификата на стороне клиента в процессе двусторонней проверки SSL. | Да, если используется двухфакторная проверка подлинности SSL. |
useSystemTrustStore | Этот параметр указывает, следует ли использовать сертификат ЦС из доверенного системного хранилища или из указанного PEM-файла. Например, UseSystemTrustStore=<0/1> ;Параметры: включено (1) / Отключено (0) (по умолчанию) |
No |
Пример:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе содержится список свойств, поддерживаемых набором данных MySQL.
Для копирования данных из MySQL поддерживаются следующие свойства.
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Свойство type набора данных должно иметь значение : MySqlTable | Да |
tableName | Имя таблицы в базе данных MySQL. | Нет (если свойство query указано в источнике действия) |
Пример
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
Если вы ранее использовали типизированный набор данных RelationalTable
, он пока поддерживается и не требует изменений, но мы рекомендуем при любом удобном случае перейти на новую версию.
Свойства действия копирования
Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. В этом разделе содержится список свойств, поддерживаемых источником MySQL.
MySQL в качестве источника
Для копирования данных из MySQL в разделе source для действия копирования поддерживаются следующие свойства.
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Свойство type источника действия копирования должно иметь значение : MySqlSource | Да |
query | Используйте пользовательский SQL-запрос для чтения данных. Например: "SELECT * FROM MyTable" . |
Нет (если для набора данных задано свойство tableName) |
Пример:
"activities":[
{
"name": "CopyFromMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MySqlSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Если вы ранее использовали типизированный источник RelationalSource
, он пока поддерживается и не требует изменений, но мы рекомендуем в дальнейшем использовать более новую версию.
Сопоставление типов данных для MySQL
При копировании данных из MySQL используются следующие сопоставления типов данных MySQL с промежуточными типами данных, используемыми службой для внутренних целей. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и типы данных для приемника, см. в статье Сопоставление схем в действии копирования.
Тип данных MySQL | Промежуточный тип данных службы | Тип данных промежуточной службы (для устаревшей версии драйвера) |
---|---|---|
bigint |
Int64 |
Int64 |
bigint unsigned |
Decimal |
Decimal |
bit(1) |
UInt64 |
Boolean |
bit(M), M>1 |
UInt64 |
Byte[] |
blob |
Byte[] |
Byte[] |
bool |
Boolean (Если TreatTinyAsBoolean=false, он сопоставляется как SByte . TreatTinyAsBoolean имеет значение true по умолчанию ) |
Int16 |
char |
String |
String |
date |
Datetime |
Datetime |
datetime |
Datetime |
Datetime |
decimal |
Decimal |
Decimal, String |
double |
Double |
Double |
double precision |
Double |
Double |
enum |
String |
String |
float |
Single |
Single |
int |
Int32 |
Int32 |
int unsigned |
Int64 |
Int64 |
integer |
Int32 |
Int32 |
integer unsigned |
Int64 |
Int64 |
JSON |
String |
- |
long varbinary |
Byte[] |
Byte[] |
long varchar |
String |
String |
longblob |
Byte[] |
Byte[] |
longtext |
String |
String |
mediumblob |
Byte[] |
Byte[] |
mediumint |
Int32 |
Int32 |
mediumint unsigned |
Int64 |
Int64 |
mediumtext |
String |
String |
numeric |
Decimal |
Decimal |
real |
Double |
Double |
set |
String |
String |
smallint |
Int16 |
Int16 |
smallint unsigned |
Int32 |
Int32 |
text |
String |
String |
time |
TimeSpan |
TimeSpan |
timestamp |
Datetime |
Datetime |
tinyblob |
Byte[] |
Byte[] |
tinyint |
SByte ( tinyint(1) сопоставляется с Boolean ) |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
Свойства действия поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Обновление соединителя MySQL
Ниже приведены шаги, которые помогут обновить соединитель MySQL:
На странице "Изменить связанную службу" выберите "Рекомендуется" в разделе "Драйвер" и настройте связанную службу, указав свойства связанной службы.
Сопоставление типов данных для последней связанной службы MySQL отличается от сопоставления для устаревшей версии. Сведения о последнем сопоставлении типов данных см. в разделе "Сопоставление типов данных" для MySQL.
Последняя версия драйвера версии 2 поддерживает дополнительные версии MySQL. Дополнительные сведения см. в разделе "Поддерживаемые возможности".
Рекомендации по рекомендуемой версии соединителя MySQL
В этом разделе приведены рекомендации по рекомендуемой версии соединителя MySQL.
Не удается загрузить SSL-ключ
Симптомы: если вы используете рекомендуемую версию соединителя MySQL с SSL-ключом в качестве свойства подключения, может возникнуть следующее сообщение об ошибке:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----
Причина. Рекомендуемая версия не может расшифровать формат PCKS#8.
Рекомендация. Преобразование формата PEM в PCKS#1.
Различия между рекомендуемой и устаревшей версией драйвера
В таблице ниже показаны различия в сопоставлении типов данных между MySQL с помощью рекомендуемой и устаревшей версии драйвера.
Тип данных MySQL | Тип данных промежуточной службы (с использованием рекомендуемой версии драйвера) | Тип данных промежуточной службы (с использованием устаревшей версии драйвера) |
---|---|---|
bit(1) | UInt64 | Логический |
bit(M), M>1 | UInt64 | Byte[] |
bool | Логический | Int16 |
JSON | Строка | Byte[] |
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия Copy, приведен в таблице Поддерживаемые хранилища данных и форматы.