使用 Azure 数据工厂或 Synapse Analytics 从 MariaDB 复制数据
适用于:Azure 数据工厂 Azure Synapse Analytics
本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 MariaDB 复制数据。 它是基于概述复制活动总体的复制活动概述一文。
重要
使用推荐驱动程序版本的 MariaDB 连接器提供了改进的本机 MariaDB 支持。 如果你使用的是旧版驱动程序的连接器,请在 2024 年 10 月 31 日之前升级。 有关旧版本和推荐版本之间的差异的详细信息,请参阅此部分。
支持的功能
以下功能支持此 MariaDB 连接器:
支持的功能 | IR |
---|---|
复制活动(源/-) | ① ② |
Lookup 活动 | ① ② |
① Azure 集成运行时 ② 自承载集成运行时
有关复制活动支持作为源/接收器的数据存储列表,请参阅支持的数据存储表。
该服务提供内置的驱动程序用于启用连接,因此使用此连接器无需手动安装任何驱动程序。
此连接器目前支持新版 MariaDB 驱动程序 v2(建议的版本)下的 10.x 和 11.x 版本,以及旧版驱动程序的 10.0 至 10.5 版本。
先决条件
如果数据存储位于本地网络、Azure 虚拟网络或 Amazon Virtual Private Cloud 内部,则需要配置自承载集成运行时才能连接到该数据存储。
如果数据存储是托管的云数据服务,则可以使用 Azure Integration Runtime。 如果访问范围限制为防火墙规则中允许的 IP,你可以选择将 Azure Integration Runtime IP 添加到允许列表。
此外,还可以使用 Azure 数据工厂中的托管虚拟网络集成运行时功能访问本地网络,而无需安装和配置自承载集成运行时。
要详细了解网络安全机制和数据工厂支持的选项,请参阅数据访问策略。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建到 MariaDB 的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 MariaDB 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡,并选择“链接服务”,然后单击“新建”:
搜索“Maria”并选择 MariaDB 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
对于特定于 MariaDB 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。
链接服务属性
如果使用建议版本的驱动程序,MariaDB 链接服务支持以下属性:
properties | 描述 | 必需 |
---|---|---|
type | type 属性必须设置为:MariaDB | 是 |
driverVersion | 选择建议的驱动程序版本时的驱动程序版本。 值为 v2。 | 是 |
服务器 | MariaDB 服务器的名称。 | 是 |
port | 要连接到 MariaDB 服务器的端口号。 | 否 |
database | MariaDB 数据库名称。 | 是 |
username | 你的用户名。 | 是 |
password | 对应于用户名的密码。 将此字段标记为 SecureString 以安全存储它。 或者,可以引用 Azure Key Vault 中存储的机密。 | 是 |
sslMode | 此选项指定驱动程序在连接到 MariaDB 时是否使用 TLS 加密和验证。 例如,SSLMode=<0/1/2/3/4> 。选项:DISABLED (0) / PREFERRED (1) / REQUIRED (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) (默认) |
是 |
useSystemTrustStore | 此选项指定是使用系统信任存储中的 CA 证书还是使用指定 PEM 文件中的 CA 证书。 例如 UseSystemTrustStore=<0/1> ;选项:Enabled (1) / Disabled (0)(默认) |
否 |
connectVia | 用于连接到数据存储的集成运行时。 在先决条件部分了解更多信息。 如果未指定,则使用默认 Azure Integration Runtime。 | 否 |
示例:
{
"name": "MariaDBLinkedService",
"properties": {
"type": "MariaDB",
"typeProperties": {
"server": "<server>",
"port": "<port>",
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"driverVersion": "v2",
"sslMode": <sslmode>,
"useSystemTrustStore": <UseSystemTrustStore>
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
示例:在 Azure 密钥保管库中存储密码
{
"name": "MariaDBLinkedService",
"properties": {
"type": "MariaDB",
"typeProperties": {
"server": "<server>",
"port": "<port>",
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2",
"sslMode": <sslmode>,
"useSystemTrustStore": <UseSystemTrustStore>
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
如果使用旧的驱动程序版本,则支持以下属性:
properties | 描述 | 必需 |
---|---|---|
type | type 属性必须设置为:MariaDB | 是 |
connectionString | 用于连接到 MariaDB 的 ODBC 连接字符串。 还可以将密码放在 Azure 密钥保管库中,并从连接字符串中拉取 pwd 配置。 有关更多详细信息,请参阅以下示例和在 Azure 密钥保管库中存储凭据一文。 |
是 |
connectVia | 用于连接到数据存储的集成运行时。 在先决条件部分了解更多信息。 如果未指定,则使用默认 Azure Integration Runtime。 | 否 |
示例:
{
"name": "MariaDBLinkedService",
"properties": {
"type": "MariaDB",
"typeProperties": {
"connectionString": "Server=<host>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 MariaDB 数据集支持的属性列表。
要从 MariaDB 复制数据,请将数据集的 type 属性设置为“MariaDBTable”。 此类型的数据集中没有任何其他特定于类型的属性。
示例
{
"name": "MariaDBDataset",
"properties": {
"type": "MariaDBTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MariaDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
复制活动属性
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 MariaDB 数据源支持的属性列表。
以 MariaDB 作为源
要从 MariaDB 复制数据,请将复制活动中的源类型设置为“MariaDBSource”。 复制活动源部分支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 复制活动源的 type 属性必须设置为:MariaDBSource | 是 |
query | 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable" 。 |
否(如果指定了数据集中的“tableName”) |
示例:
"activities":[
{
"name": "CopyFromMariaDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MariaDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MariaDBSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
MariaDB 的数据类型映射
从 MariaDB 复制数据时,以下映射用于从 MariaDB 数据类型映射到服务内部使用的临时数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射。
MariaDB 数据类型 | 临时服务数据类型 | 临时服务数据类型(对于旧驱动程序版本) |
---|---|---|
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 |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
查找活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
升级 MariaDB 连接器
下面是帮助你升级 MariaDB 连接器的步骤:
在“编辑链接服务”页中,选择“驱动程序版本”下的“推荐”,并参考链接服务属性来配置链接服务。
最新 MariaDB 链接服务的数据类型映射不同于旧版的数据类型映射。 若要了解最新的数据类型映射,请参阅 MariaDB 的数据类型映射。
最新驱动程序版本 v2 支持更多 MariaDB 版本。 有关详细信息,请参阅支持的功能。
推荐驱动程序版本和旧版驱动程序版本之间的差异
下表显示了使用推荐驱动程序版本和旧版驱动程序版本的 MariaDB 之间的数据类型映射差异。
MariaDB 数据类型 | 临时服务数据类型(使用推荐的驱动程序版本) | 临时服务数据类型(使用旧的驱动程序版本) |
---|---|---|
bit(1) | UInt64 | 布尔 |
bit(M),M>1 | UInt64 | Byte[] |
bool | 布尔 | Int16 |
JSON | 字符串 | Byte[] |
相关内容
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。