【问题标题】:Running SQL via SQLWorkbench versus via Tableau Prep通过 SQLWorkbench 与通过 Tableau Prep 运行 SQL
【发布时间】:2022-07-08 00:11:27
【问题描述】:

我开发了一些 SQL,它从 redshift 表中读取数据,进行一些操作(尤其是 listagg 一些字段),然后写入另一个 redshift 表。

当我使用 SQLWorkbench 运行 SQL 时,它会成功执行。当我将其嵌入 Tableau Prep 流程(作为“复杂 SQL”)中时,我收到以下几个错误:“系统错误:AqlProcessor 评估失败:[Amazon][Support] (40550) 转换规范的字符值无效。”大概这些与我对数据类型的处理有关。我不知道的是环境中有什么差异会导致这样的不同结果?是因为 SQLWorkbench 和 Tableau Prep 使用不同的 SQL 解释器吗?还是我的问题太宽泛以至于无法通过实际代码进行推测?

【问题讨论】:

  • 此处显示了无法通过 tableau Prep 执行的最小 SQL 版本。 SELECT distinct mn.management_firm_id,flatAumUSD from tableau_prep.dom_complete_manager_info AS mn JOIN (SELECT distinct management_firm_id, LISTAGG(aum_usd,',') WITHIN GROUP (Order by aum_usd) OVER (PARTITION BY management_firm_id) AS flatAUMUSD from (SELECT distinct management_firm_id,aum_usd from tableau_prep.dom_complete_manager_info) ) 作为 mn.management_firm_id 上的 aumusd = aumusd.management_firm_id

标签: sql amazon-redshift tableau-api sql-workbench-j


【解决方案1】:

最好的猜测是具有 DDL 知识的 Tableau 正在向 SQL 添加一些 CAST() 操作。 SQLWorkbench 更简单,并且按照编写的方式将 SQL 推送到 Redshift。这是基于您的 SQL 中没有显式的 CAST,而是标识 CAST() 的错误消息。

查看这两个查询的 stl_querytext,看看两个工作台是否以不同的方式将它们提供给 Redshift。我怀疑这会给你一些线索。

如果 SQL 没有差异,则问题可能在于用户/连接差异,并且可能需要有关该问题的更多信息。

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多