| 摘要 | Discourse 数据资源管理器允许您对实时数据库执行 SQL 查询,从而实现实时统计报告。 | |
| 安装指南 | 此插件已包含在 Discourse 核心中。无需单独安装该插件。 |
如果您正在寻找自定义查询的示例或支持,可以在我们的 #data-reporting 类别下查找带有 sql-query 标签的大量主题。如果没有适合您特定需求的内容,请随时创建新主题向社区寻求帮助。
查询帮助
由我们托管?此插件可在我们的商业版和企业版计划中使用。Data Explorer | Discourse - Civilized Discussion
安装插件后,前往 /admin/plugins。
![]()
点击“设置”按钮,启用 data explorer enabled,然后返回并刷新页面。
此时,堆叠导航栏中应会出现一个名为“数据资源管理器”的选项卡。选择它,或前往 /admin/plugins/discourse-data-explorer,然后使用 +、导入 或 运行 按钮开始操作。
默认查询
在全新安装后,数据资源管理器现已内置多个查询,可帮助您从论坛活动中获取洞察。打开任意查询并点击 运行 即可尝试。
以下是默认查询的样子。
注意: 默认查询是从此文件获取的:discourse-data-explorer/lib/discourse_data_explorer/queries.rb at main · discourse/discourse-data-explorer · GitHub
如果您有一个出色的查询,希望所有人都能使用,只需像 这个示例 一样提交 PR 即可。
默认查询无法编辑。如果您想修改它们,请随意复制 SQL 并将其粘贴到新查询中。
编写查询
当您点击查询视图上的任意 编辑 按钮,或开始一个新的资源管理器查询时,您会看到如下所示的界面:
顶部的两个框是查询的名称和描述。名称是您在下拉框中选择的内容,描述应用于解释查询参数的输入内容,或描述正在查询的数据。
左侧窗格用于编写 SQL 查询。系统提供轻微的语法高亮和检查功能。
自动运行查询
虽然您始终可以通过点击 运行 按钮来运行查询,但通过在 URL 中添加 run 参数,可以在加载查询时节省时间。
例如:/admin/plugins/discourse-data-explorer/queries/123?run
当此参数添加到 URL 时,查询将在页面加载时立即运行,因此您无需点击 运行 按钮即可查看结果。这对于频繁运行的查询特别有用,您可以将其加入书签,或在侧边栏中添加包含 run 参数的链接,实现一键生成报告。
导入查询
举个例子,让我们导入一个我编写的查询。下载此文件,然后打开导入对话框,选择要上传的文件,或将查询粘贴到文本框中。点击“导入”保存,然后点击 运行 查看结果。
most-common-likers.dcquery (1).json (442 字节)
看来所有 Discourse 开发人员都非常喜欢彼此 ![]()
搜索查询
如果您积累了太多出色的查询,没关系!搜索栏可以帮助您按标题和描述进行筛选。
允许非工作人员组运行查询
您可以将特定组(包括版主)添加到查询中,以授予他们访问权限:
保存后,您可以在该特定组的“报告”选项卡下的组页面中找到它:
点击任意查询以打开它,然后点击 运行 按钮查看结果。您还可以点击 加入书签 按钮将组报告加入书签。
使用预定义参数共享查询
如果您在查询中包含了用户定义的参数,您可以共享查询链接,并在 URL 中包含这些参数,这样页面加载时它们将自动填充。
您必须以以下格式在 URL 中包含参数:params={"parameter_name":"value"}。多个参数用逗号分隔。例如:
discourse.example.com/g/my-group/reports/6?params={"param1":"value1","param2":"value2"}
结合上述提到的 run 参数 此处,您可以共享一个带有预定义参数并在加载时自动运行的报告。
结果限制和导出查询
对于大型查询,您可能会注意到 数据资源管理器 显示的行数有限制。默认情况下,限制设置为 1000 行。这是为了防止过于庞大的查询拖慢或干扰您的 Discourse 实例性能。
如果您想绕过此限制,有以下几种选择:
- 分页:您可以对结果进行分页。与其尝试一次性返回所有结果,不如编写查询以返回特定范围的结果。然后,您可以调整此范围以查看数据的不同部分。这不会增加限制,但允许您分节查看所有数据。
- 增加限制:如果您有权访问 Discourse 服务器并且熟悉修改 Discourse 设置,可以增加限制。但请务必谨慎操作。如果不加小心,增加限制可能会给服务器带来很大负载,尤其是当多个用户同时运行大型查询时。
- 下载结果:您也可以选择下载查询结果,而不是直接在 Discourse 中查看。运行查询后,点击
JSON或CSV按钮即可。以 JSON 或 CSV 格式从查询下载的数据将具有更高的结果限制,即 10,000 行。对于编程目的,建议选择 JSON 格式;如果您希望在电子表格应用程序中处理数据,CSV 格式可能更方便。
通常,最好尝试编写更高效的查询,或过滤数据,仅检索您需要的内容,而不是试图绕过限制。
您还可以通过点击 导出 按钮以 .JSON 格式导出 SQL 查询本身。使用此方法导出的查询可以导入到其他 Discourse 站点,或与第三方应用程序一起使用。
查询计划
“包含查询计划”复选框可用于更好地理解和优化您的 SQL 查询。
当您勾选此框并运行查询时,Discourse 将显示用于访问 Discourse 数据库数据的操作序列。这可能包括扫描、连接、排序和其他数据库操作。通过检查查询计划,您可以确切地看到数据库如何执行您的查询。
数据资源管理器教程系列
我们还有一系列专门的 sql-tutorial 关于 数据资源管理器!如果您有兴趣学习更多关于在 Discourse 中编写 SQL 查询的知识,我们强烈推荐阅读此系列中的主题:











