从本地 SQL Server 数据库导入

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

本文介绍如何使用 机器学习 Studio (经典 ) 中的导入数据模块将数据从本地 SQL Server 数据库导入机器学习试验。

注意

适用于:机器学习 Studio (经典) 应用

可在 Azure 机器学习设计器中获取类似的拖放模块。

机器学习 Microsoft SQL Server网关提供的数据,则用户可以访问本地 数据管理 数据库。 因此,在使用 导入数据之前,必须满足以下要求:

建立网关连接后,可以指定其他属性,例如服务器和数据库名称、身份验证方法和数据库查询。

如何安装 Microsoft 数据管理 网关

若要访问 机器学习 中的本地 SQL Server 数据库,需要下载并安装 Microsoft 数据管理 网关,然后在 机器学习 Studio (经典) 中注册网关。

有关安装和注册网关的详细信息,请参阅以下文章:

如何从本地数据库导入SQL Server数据库

在数据管理网关可以访问 SQL Server 数据库的计算机上安装网关,并且已在 机器学习 Studio (经典) 中注册网关后,必须配置导入数据模块

在启动之前,请为站点 禁用浏览器的弹出窗口阻止程序 studio.azureml.net

如果使用的是 Google Chrome 浏览器,则必须下载并安装 Google Chrome WebStore 中提供的插件之一:单击" 一次应用扩展"

使用数据导入向导

该模块新增了一个向导,可帮助你选择存储选项,从现有订阅和帐户中进行选择,并快速配置所有选项。

  1. "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。

  2. 单击 "启动导入数据向导" 并按照提示操作。

  3. 配置完成后,若要将数据实际复制到试验中,请右键单击该模块,然后选择"运行 选定项"

如果需要编辑现有数据连接,向导将加载所有以前的配置详细信息,以便无需从头开始。

在导入数据模块中手动设置属性

  1. "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。

  2. 对于"数据源"请选择"本地SQL 数据库" 。

  3. 设置特定于数据库的以下SQL Server选项。

    • 数据网关:选择创建的网关。 网关必须注册,否则它不会显示在列表中。

    • 数据库服务器名称:键入实例SQL Server的名称。

    • 数据库名称:键入数据库名称。

    • 单击“用户名和密码”下的“输入值”,并输入你的数据库凭据。 可以使用 Windows 集成身份验证或 SQL Server 身份验证,具体取决于配置本地 SQL Server 的方式。

      重要

      凭据管理器必须从实例和网关客户端SQL Server同一网络中启动。 凭据不能跨域传递。

    • 在数据库查询中键入SQL粘贴到描述要读取的数据的语句中。 始终使用 SQL Visual Studio 服务器资源管理器 或 SQL Server Data Tools 等工具来验证查询结果。

    • 如果数据集不应在试验运行之间更改,请选择"使用 缓存的结果" 选项。 选中此选项后,如果未对模块参数进行任何其他更改,则试验将在首次运行模块时加载数据,然后使用数据集的缓存版本。

  4. 运行试验。

结果

导入数据 将数据 (经典) 中时,可能会执行一些隐式类型转换,具体取决于源数据库中使用的数据类型。 有关数据类型详细信息,请参阅 模块数据类型

完成后,单击输出数据集 并选择"可视化 ",查看数据是否成功导入。

(可选)可以使用工作室中的工具更改数据集及其元数据 (经典) :

  • 使用 "编辑 元数据"更改列名、将列转换为其他数据类型,或指示哪些列是标签或特征。

  • 使用 "选择数据集中的列 "选择列的子集。

  • 使用 "分区" 和"示例"按条件分隔数据集,或获取前 n 行。

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

常见问题

能否在从源读取数据时筛选数据?

导入 数据 模块本身不支持在读取数据时进行筛选。 建议创建视图或定义仅生成所需的行的查询。

注意

如果你发现加载的数据多于所需数据,可以通过读取新数据集、使用与较早的更大数据相同的名称对其进行保存来覆盖缓存的数据集。

为什么收到错误"不支持十进制类型"

从数据库读取SQL时,可能会遇到一条错误消息,报告不支持的数据类型。

如果从 SQL 数据库获取的数据包含 机器学习 中不支持的数据类型,则应该在读取数据之前将小数转换为受支持的数据类型。 原因是导入 数据 无法自动执行任何会导致精度损失的转换。

为什么某些字符未正确显示

机器学习 UTF-8 编码。 如果数据库中的字符串列使用不同的编码,则可能无法正确导入字符。

保留这些字符的一个选项是将数据导出到 Azure 存储中的 CSV 文件,并使用带编码的选项 CSV 为自定义分隔符、代码页等指定参数。

我在本地服务器上数据管理网关。 能否在工作区之间共享同一网关

不是。 必须为每个工作区创建单独的网关。

虽然可以在单个工作区中设置多个 数据管理 网关 (例如,每个网关用于开发、测试、生产等) ,但无法跨工作区共享网关。

我已在本地服务器上数据管理网关,该网关用于 Power BI 或 Azure 数据工厂,并且想要使用相同的网关机器学习

每个服务都需要单独的数据管理网关。 如果已有一个网关用于 Power BI 或 Azure 数据工厂,则必须设置单独的服务器并安装用于机器学习的网关。

不能将多个网关安装在单个服务器上。

我希望能够将数据导出到本地 SQL 服务器。 能否将网关与导出数据模块一起将数据写入本地SQL服务器?

目前,机器学习仅支持导入数据。 我们正在评估你将来能否写入本地数据库。 在此期间,可以使用 Azure 数据工厂将数据从云复制到本地数据库。

我有一个不Microsoft SQL Server (Oracle、Teradata 等的) 。 能否使用"导入数据机器学习中的"本地"选项读取数据?

目前,机器学习导入数据模块仅支持Microsoft SQL Server。

作为一种解决方法,Azure 数据工厂将本地数据复制到云存储(例如 Azure Blob 存储 或 Azure 数据库)中,然后在导入数据模块中使用云数据源。

模块参数

名称 范围 类型 默认 说明
数据源 列表 数据源或接收器 Azure Blob 存储 数据源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、azure BLOB 存储中的文件、azure 表、Azure SQL 数据库、本地 SQL Server 数据库、Hive 表或 OData 终结点。
数据网关 any DataGatewayName 数据网关名称
数据库服务器名称 any String 本地 SQL Server
数据库名称 any String 本地 SQL Server 数据库实例
用户名和密码 any SecureString 用户名和密码
数据库查询 any StreamReader 本地 SQL 查询

Outputs

名称 类型 说明
结果数据集 数据表 包含已下载数据的数据集

例外

异常 描述
错误 0027 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。
错误 0003 如果一个或多个输入为 null 或为空,则会发生异常。
错误 0029 如果传递的 URI 无效,则会发生异常。
错误 0030 如果无法下载文件,则会发生异常。
错误 0002 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。
错误 0048 如果无法打开文件,则会发生异常。
错误 0015 如果数据库连接失败,则会发生异常。
错误 0046 如果无法在指定的路径中创建目录,则会发生异常。
错误 0049 如果无法分析文件,则会发生异常。

有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码

有关 API 异常的列表,请参阅机器学习 REST API 错误代码

另请参阅

导入数据
导出数据
通过 HTTP 从 Web URL 导入
从配置单元查询导入
从 Azure SQL 数据库导入
从 Azure 表导入
从 Azure Blob 存储导入
从数据馈送提供程序导入