你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure 数据工厂或 Synapse Analytics 从/向 ODBC 数据存储复制数据
适用于: Azure 数据工厂 Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
本文概述了如何在 Azure 数据工厂中使用复制活动从/向 ODBC 数据存储复制数据。 它是基于概述复制活动总体的复制活动概述一文。
支持的功能
此 ODBC 连接器支持以下功能:
支持的功能 | IR |
---|---|
复制活动(源/接收器) | ② |
Lookup 活动 | ② |
① Azure 集成运行时 ② 自承载集成运行时
如需可以用作源/接收器的数据存储的列表,请参阅支持的数据存储表。
具体而言,此 ODBC 连接器支持使用 Basic 或 Anonymous 身份验证从/向任何与 ODBC 兼容的数据存储复制数据。 需要 64 位 ODBC 驱动程序。 对于 ODBC 接收器,此服务支持 ODBC 2.0 标准版。
先决条件
要使用此 ODBC 连接器,需要:
- 设置自承载集成运行时。 有关详细信息,请参阅自承载集成运行时一文。
- 在集成运行时计算机上安装数据存储的 64 位 ODBC 驱动程序。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建一个到 ODBC 数据存储的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 ODBC 数据存储的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索 ODBC 并选择 ODBC 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
对于特定于 ODBC 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。
链接服务属性
ODBC 链接服务支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | type 属性必须设置为:Odbc | 是 |
connectionString | 不包括凭据部分的连接字符串。 可以使用类似 Driver={SQL Server};Server=Server.database.windows.net; Database=TestDatabase; 的模式指定连接字符串,也可以利用在 Integration Runtime 计算机上使用 DSN=<name of the DSN on IR machine>; 设置的系统 DSN(数据源名称)(仍需要相应地指定链接服务中的凭据部分)。还可以将密码放在 Azure 密钥保管库中,并从连接字符串中拉取 password 配置。 有关更多详细信息,请参阅在 Azure Key Vault 中存储凭据。 |
是 |
authenticationType | 用于连接 ODBC 数据存储的身份验证类型。 允许值包括:Basic 和 Anonymous。 |
是 |
userName | 如果使用基本身份验证,请指定用户名。 | 否 |
password | 指定为 userName 指定的用户帐户的密码。 将此字段标记为 SecureString 以安全地存储它,或引用 Azure Key Vault 中存储的机密。 | 否 |
credential | 连接字符串的访问凭据部分,采用特定于驱动程序的属性值格式指定。 示例:"RefreshToken=<secret refresh token>;" 。 将此字段标记为 SecureString。 |
否 |
connectVia | 用于连接到数据存储的集成运行时。 如先决条件中所述,需要自承载集成运行时。 | 是 |
示例 1:使用 Basic 身份验证
{
"name": "ODBCLinkedService",
"properties": {
"type": "Odbc",
"typeProperties": {
"connectionString": "<connection string>",
"authenticationType": "Basic",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
示例 2:使用 Anonymous 身份验证
{
"name": "ODBCLinkedService",
"properties": {
"type": "Odbc",
"typeProperties": {
"connectionString": "<connection string>",
"authenticationType": "Anonymous",
"credential": {
"type": "SecureString",
"value": "RefreshToken=<secret refresh token>;"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 ODBC 数据集支持的属性列表。
若要从 ODBC 兼容的数据存储复制数据/将数据复制到 ODBC 兼容的数据存储,支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 数据集的 type 属性必须设置为:OdbcTable | 是 |
tableName | ODBC 数据存储中表的名称。 | 源为否(如果指定了活动源中的“query”); 接收器为是 |
示例
{
"name": "ODBCDataset",
"properties": {
"type": "OdbcTable",
"schema": [],
"linkedServiceName": {
"referenceName": "<ODBC linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<table name>"
}
}
}
如果使用 RelationalTable
类型数据集,该数据集仍按原样受支持,但我们建议今后使用新数据集。
复制活动属性
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 ODBC 源支持的属性列表。
ODBC 作为源
从 ODBC 兼容的数据存储复制数据时,复制活动的 source 节支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 复制活动 source 的 type 属性必须设置为:OdbcSource | 是 |
query | 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable" 。 |
否(如果指定了数据集中的“tableName”) |
示例:
"activities":[
{
"name": "CopyFromODBC",
"type": "Copy",
"inputs": [
{
"referenceName": "<ODBC input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "OdbcSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
如果使用 RelationalSource
类型源,该源仍按原样受支持,但我们建议今后使用新源。
ODBC 作为接收器
要向与 ODBC 兼容的数据存储复制数据,请将复制活动中的接收器类型设置为“OdbcSink”。 复制活动接收器部分中支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
type | 复制活动接收器的 type 属性必须设置为:OdbcSink | 是 |
writeBatchTimeout | 超时之前等待批插入操作完成时的等待时间。 允许的值为:timespan。 示例:"00:30:00"(30 分钟)。 |
否 |
writeBatchSize | 缓冲区大小达到 writeBatchSize 时会数据插入 SQL 表。 允许的值为:整数(行数)。 |
否(默认值为 0 - 自动检测) |
preCopyScript | 每次运行时,将数据写入到数据存储之前,指定复制活动要执行的 SQL 查询。 此属性可用于清理预先加载的数据。 | 否 |
注意
对于“writeBatchSize”,如果未设置(自动检测),则复制活动首先检测驱动程序是否支持批处理操作,如果支持,则将其设置为 10000,否则或将其设置为 1。 如果显式设置 0 以外的值,则复制活动遵循值,如果驱动程序不支持批处理操作,则会在运行时失败。
示例:
"activities":[
{
"name": "CopyToODBC",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<ODBC output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "OdbcSink",
"writeBatchSize": 100000
}
}
}
]
查找活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
解决连接问题
若要解决连接问题,请使用“集成运行时配置管理器”的“诊断”选项卡。
- 启动集成运行时配置管理器。
- 切换到“诊断”选项卡。
- 在“测试连接”部分下,选择数据存储的“类型”(链接服务)。
- 指定用于连接数据存储的“连接字符串”,选择“身份验证”并输入“用户名”、“密码”和/或“凭据”。
- 单击“测试连接”以测试数据存储的连接。
相关内容
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。