使用 Azure 数据工厂或 Synapse Analytics 从 MariaDB 复制数据
适用于: Azure 数据工厂 Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
本文概述如何使用 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[] |
相关内容
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。