我愿意通过他们的 API 将 Google Analytics 和 Google Search Console 数据直接显示到 Superset 中。
我该怎么做?
我找不到 Google Analytics 数据源。我也找不到 Google Search Console 数据源。
我找不到在 Superset 中显示从 API 检索的数据的方法,只能显示存储在数据库中的数据。我肯定遗漏了一些东西,但我在文档中找不到与验证和查询外部 API 相关的任何内容。
Superset 无法直接查询外部数据 API。 Superset 必须与受支持的数据库或数据引擎配合使用 (https://superset.incubator.apache.org/installation.html#database-dependency)。这意味着您需要找到一种方法从 API 中获取数据并将其存储在支持的数据库/数据引擎中。一些选项:
构建一个小型 Python 管道,用于查询数据 API,将数据扁平化为表格/关系型数据,并将该数据上传到支持的数据源 - https://superset.incubator.apache.org/installation.html#数据库依赖项 - 并设置 Superset,以便它可以与该数据库/数据引擎对话。
为了获得更强大的解决方案,您可能需要使用 DevOps/基础设施来建立工作流调度程序,例如 Apache Airflow (https://airflow.apache.org/),以定期 ping 该 API 并将其存储在Superset 可以与之对话的某种数据库。
如果您想定期从流行的第 3 方 API 查询数据,我还建议您查看 Meltano 并了解有关 Singer Taps 的更多信息。这些将处理定期从 API 获取数据并将其存储在 Postgres 等数据库中的一些繁重工作。好消息是 Google Analytics 有一个 Singer Tap - https://github.com/singer-io/tap-google-analytics
无论哪种方式,Superset 只是数据库/数据引擎之上的薄层。因此,您需要找到一种方法从 API 中提取数据并将其存储在兼容的数据源中,这是无法回避的现实。
Superset 的一位贡献者将这个项目命名为 shillelagh。这为 REST API 提供了 SQL 接口。 Apache Superset 中使用相同的包来与 gsheets 连接。
新的适配器相对容易实现。有一个分步教程,解释了如何在 shillelagh 中创建 API 或文件类型的新适配器。
shillelagh 包底层通过使用 SQLite 包装器来使用 SQLite 虚拟表 APSW
Redash 是执行该任务的 Superset 的替代品,但它不具有相同的功能。以下是这两种工具的集成比较列表:https://discuss.redash.io/t/a-comparison-of-redash-and-superset/1503
一个快速的替代方案是支付第三方服务费用,例如:https://www.stitchdata.com/integrations/google-analytics/superset/
默认情况下没有此类连接器。
推荐的解决方案是将您的 Google Analytics 和 Search Console 数据存储在数据库中,您可以编写一个脚本,每 4 小时或任何适合您的时间间隔提取数据。
此外,您不应存储所有数据,而应仅存储您希望在报告中看到的维度/指标。
编写了一个名为 rest-db-api 的小包,它使您能够使用外部 json API 作为 superset 上的数据源。它建立在shillelagh之上。您需要 SQL Lab 访问权限才能使用此功能。
在自述文件中查找详细步骤。