【问题标题】:Azure Machine Learning Write output to Azure SQL DatabaseAzure 机器学习 将输出写入 Azure SQL 数据库
【发布时间】:2017-11-16 13:34:00
【问题描述】:

我正在使用 Azure 机器学习对数据进行聚类。

输入数据来自 Azure SQL 数据库,并且工作正常。 最后,我想将输出写入同一 Azure SQL 数据库中的表,但出现此错误:

Error: Error 1000: AFx Library library exception: 
Sql encountered an error: Login failed for user

有人知道吗? 非常感谢!

【问题讨论】:

    标签: azure-sql-database azure-machine-learning-studio


    【解决方案1】:

    请按照说明并检查here 提供的示例,以正确使用导出数据模块将 ML 的数据保存到 Azure SQL 数据库。

    如何将数据导出到 Azure SQL 数据库

    • 将导出数据模块添加到您的实验中。您可以在 Azure 机器学习工作室的实验项目列表中的数据输入和输出组中找到此模块。

    • 将其连接到生成要导出到 Azure SQL DB 的数据的模块。

    • 对于数据目标,选择 Azure SQL 数据库。此选项也支持 Azure SQL 数据仓库。

    • 设置以下特定于 Azure SQL 数据库或 Azure SQL 数据仓库的选项。

      数据库服务器名称
      键入 Azure 生成的服务器名称。通常它的格式为<generated_identifier>.database.windows.net.

      数据库名称
      在您刚刚指定的服务器上键入数据库的名称。该数据库必须已经存在;导出数据无法创建它。

      服务器用户帐户名
      键入对数据库具有访问权限的帐户的用户名。

      服务器用户帐号密码
      提供指定用户帐户的密码。

      要保存的以逗号分隔的列列表
      在实验中键入要写入数据库的列的名称。

      数据表名称
      键入将存储数据的表的名称。

      对于 Azure SQL 数据库,如果表不存在,则会创建它。对于 Azure SQL 数据仓库,表必须已经存在并且具有正确的架构,因此请务必提前创建。

      逗号分隔的数据表列列表
      键入您希望它们出现在目标表中的列的名称。这些列应按顺序与您在逗号分隔的待保存列列表中列出的列名相对应。

      如果要写入 Azure SQL 数据仓库,列名必须与目标表架构中已有的名称匹配。

      每个 SQL Azure 操作写入的行数
      指示应在每批中将多少行写入目标表。默认情况下,该值设置为 50,这是 Azure SQL 数据库的默认批处理大小。但是,如果要写入大量行,则应增加此值。

      提示:

      对于 Azure SQL 数据仓库,我们建议您将此值设置为 1。如果您使用较大的批处理大小,发送到 Azure SQL 数据仓库的命令字符串的大小可能会超过允许的字符串长度,从而导致错误。

    • 如果您不想在每次运行实验时都写入新结果,请选择使用缓存结果选项。如果模块参数没有其他变化,实验将在模块第一次运行时写入数据,之后不再进行写入。

      但是,如果在导出数据中更改了任何会改变结果的参数,则始终会执行写入。

    • 运行实验。

    【讨论】:

    • 请注意不鼓励仅链接答案,如果链接失效,则答案没有价值。我现在已编辑答案以包含相关内容
    • 感谢您的宝贵时间和建议。
    【解决方案2】:

    找到问题!

    我需要用这个 SQL 代码创建一个特定的用户:

    CREATE USER AMLApplicationUser WITH PASSWORD = '************';
    

    然后将用户添加到我要编写的数据库上的这些角色中。

    ALTER ROLE db_datareader ADD MEMBER AMLApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER AMLApplicationUser;
    

    我想只有 datawriter 角色就足够了,但我也需要 datareader。

    因此,总而言之,似乎数据库管理员角色可用于读取数据,但不能用于从 AML 写入数据。

    感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多