Skip to content

【Redash官方文档】用户指南-查询-查询现有查询结果

Published: at 20:58

查询结果数据源(QRDS) 可以查询 从其他数据源的结果。使用它来连接来自多个数据库的数据。Redash 使用内存中的SQLite数据库来实现这一点。因此,如果Redash内存不足,对大型结果集的查询可能会失败。

QRDS不适用于使用参数的查询结果。如果你尝试过,应该看到过 Error running query: Failed loading results from query id xxxx 这样的报错。删除参数可以修复错误。

设置

您可以在设置菜单中启用查询结果的数据源,设置很简单:只需要为数据源提供一个名称: 这是将出现在查询编辑器左侧的下下拉列表,数据源为Query Results.

大多数情况下只需要一个查询结果数据源

查询

QRDS 接受 SQLite语法:

SELECT
	a.name,
	b.count 
FROM query_123 AS a 
JOIN query_456 AS b
  		ON a.id = b.id

您的其他查询就像是QRDS中的“表”。每个都有名称:query_加上id(eg:query_23),您可以从查询编辑器的url中找到。

注意:查询的表名必须和关联的FROM 或 JOIN 出现在同一行、、

缓存查询结果

当你查询Query Result Data Source 时,Redash首先执行底层查询。如果你需要挺高QRDS的查询速度,可以使用缓存的底层查询结果,这样就不需要执行层查询,只需要将query_id 改成cached_query_id即可。 您可以在同一个查询从混合使用:

SELECT
	a.name,
	b.count 
FROM cached_query_123 AS a 
JOIN query_456 AS b
  		ON a.id = b.id

查询结果权限

对查询结果数据源的访问和其他的数据源一样,由与其关联的组来管理。但Redash还会检查用户是否有原始查询使用的数据源的权限。 例如:SELECT * From query_123 如果123使用了该用户无法访问的数据源,即使该用户可以访问查询结果数据源也无法执行。他们将在查询的页面中看到缓存的查询结果,只是无法再次执行query_123。