【问题标题】:Snowflake SSRS ODBC error : No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' commandSnowflake SSRS ODBC 错误:当前会话中未选择活动仓库。使用“使用仓库”命令选择一个活动仓库
【发布时间】:2020-06-09 13:14:02
【问题描述】:

我正在使用 SSRS(SQL Server 报告服务)来显示报告,我的数据源是 Snowflake

我已安装 ODBC 雪花驱动程序并正确配置它 Click here to view the ODBC configuration

我在 SSRS 服务器上创建了一个共享数据源(通过报告管理器)并输入了我自己的凭据,并且连接工作正常 Click here to view the connection on the SSRS Server

我能够毫无问题地构建 SSRS 报告,当我运行报告时,一切正常,我可以在服务器上发布报告,并且报告在浏览器上呈现完美

问题是当我第二天返回报告时,我收到了一个错误:

报告处理过程中发生错误。 (rsProcessingAborted) 数据集的查询执行失败 'insert_name_of_my_dataset_here'。 (rsErrorExecutingCommand)

错误 [57P03] 当前会话中未选择活动仓库。 使用“使用仓库”命令选择一个活动仓库。

所以,这也意味着以下内容也不起作用:

  • 订阅
  • 缓存刷新
  • 快照

唯一可行的是,如果我在 SSRS 报告生成器中打开我的报告,我右键单击我的数据集的 EACH(“每个”非常重要,如果我不这样做它就不起作用'不要全部做),我为每个人手动运行查询,然后“连接”或“会话”被“重新激活”并且报告运行良好,本地 AND在服务器上...请注意,我不必在服务器上重新发布报告即可运行

Click here to view screenshots of my process

我为解决该问题所采取的步骤(未产生任何解决方案):

  • 我已尝试将 “使用仓库 WAREHOUSE_NAME;” command 在每个数据集的 SQL 脚本之前,但是 Snowflake 的 API 不允许发送多个 SQL 命令,所以我已经看到这个功能在 Snowflake 的开发管道中,并找到了这个链接:https://github.com/snowflakedb/snowflake-connector-net/issues/33 - 这项工作于 2018 年开始,最后一次更新日期为 2019 年 4 月,表示他们开始解决 JDBC 驱动程序...尚未提及 ODBC 驱动程序
  • 我已将雪花参数 client-session-keep-alive 设置为 true (https://docs.snowflake.com/en/sql-reference/parameters.html#client-session-keep-alive),但根据社区门户:类似的“keep alive”参数目前不适用于ODBC 驱动程序。相反,您可以每隔几个小时发出一个虚拟查询以保持连接处于活动状态。 (https://community.snowflake.com/s/article/faq-how-long-can-my-jdbcodbc-connection-remain-idle)
  • 列表项
  • 我已尝试创建缓存刷新计划或快照计划,每 3 小时创建一次快照或缓存报告,它适用于第一个计划,但其他计划失败并出现错误
  • 我唯一没有尝试的是让雪花永远不会关闭连接并无限期地保持仓库处于“启动”状态......但这会增加我的成本,我很确定它不会工作,因为会话将在 4 小时后结束......

欢迎任何帮助!

谢谢

规格:

  • SSRS 2014
  • Snowflake X-small
  • ODBC-64 位驱动程序,从 雪花驱动程序存储库(也用 32 位测试,但 64 位是 SSRS 可见)

【问题讨论】:

    标签: sql-server reporting-services odbc snowflake-cloud-data-platform


    【解决方案1】:

    我遇到了同样的问题,并修复了在数据仓库中添加相应的角色。

    在数据仓库中使用 USAGE 添加角色。

    【讨论】:

      【解决方案2】:

      它是否与数据仓库名称相关(在 ODBC 设置中)?有错别字吗? COSNUMER_WH 还是 CONSUMER_WH?

      【讨论】:

      • 天啊,真的,哈哈!!让我解决这个!我会在 4 小时后回复你,看看是不是这个问题,我很震惊我没有看到这个!哈哈
      • 哇,我很惭愧,我花了 30 分钟才写了这篇文章,结果全是错字!!嗯!非常感谢您指出这一点,现在一切正常! :D
      【解决方案3】:

      我强烈建议为此类情况设置默认“上下文”配置,使用以下命令设置默认角色、仓库、数据库和架构:

      ALTER USER xyz SET DEFAULT_WAREHOUSE = 'WH_NAME_HERE' ;

      https://docs.snowflake.com/en/sql-reference/sql/alter-user.html

      【讨论】:

      • 嗨,我们尝试了很多东西,我忘了说我们已经为将要运行报告的用户设置了 default_warehouse,不过感谢您指出这一点!
      • 接下来我要做的是检查用户的查询历史记录,查看查询运行时会话的角色/仓库/db/schema,出于某种原因,用户的“上下文” session 似乎不正确,这就是为什么我通常为这些“批处理”(程序/系统帐户)类型的用户设置所有这四个配置。
      • 我尝试查看日志,但由于有错字,我的理论是该命令甚至没有到达雪花,因为它在雪花环境中找不到仓库,谢谢大家你的意见认为这只是一个错字是多么愚蠢,但我很高兴现在让它运行!
      猜你喜欢
      • 1970-01-01
      • 2021-11-05
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多