以 DevOps 人员的身份问这个问题。我在画面方面没有任何经验。因此,场景是当我的组织中的 Tableau 团队进行刷新时,它不断超时。因此,当刷新发生时,可以看到以这种格式对 Redshift 进行查询,在“SQL_CUR000xyz”中获取 10000。现在我很好奇我们是否可以将这个提取限制从 10000 增加到 100000。由于数据非常庞大,我们是否可以以某种方式增加这个提取限制,以便数据可以以更大的批次流动。
我在某处读到我们可以使用 .tdc 文件来编辑红移连接器。但没有发现任何结论性的事情。
如有任何进一步详情,请随时询问。会很乐意提供。
我使用 Tableau 完成了一些工作,并使用 Redshift 完成了很多工作,因此我对此有所了解。 我相信简短的答案是“不”,您无法更改获取大小,但您也不想这样做。
以下是 Tableau 进行查询时发生的情况的快速说明。 首先,Tableau 将查询发送到封装在 DECLARE 语句中的 Redshift。 这通过名称和将用于填充游标的查询定义游标。 [游标是 Redshift 领导节点上的命名存储区域,用于存储游标的结果。]
然后 Tableau 向该游标发出第一个 FETCH,此时查询运行。 查询结果将存储在游标中,并将前 N (10,000) 行结果发送回 Tableau。
进一步的 FETCH 只需从游标中提取结果,无需执行新的查询。
这样做是为了确保创建 TB 数据的查询不会挂起网络并且难以取消。 只有 10,000 行数据在传输 - 没有网络过载。 Tableau 允许动态构建查询,不完整的查询(缺少 WHERE 子句)通常会发送到数据库。
所以我预计在您的情况下,真正超时的不是 FETCH,而是查询本身。 由于查询在执行第一个 FETCH 之前不会运行,因此看起来 FETCH 存在问题。 FETCH 只需将 10,000 行传输到 Tableau,因此这不是问题 - 问题在于查询。