Google BigQuery

要添加数据库连接,请点击右上角的齿轮图标,然后导航到管理员设置 > 数据库 > 添加数据库

先决条件

您需要有一个 Google Cloud Platform 账户,并拥有一个您想在 Metabase 中使用的 项目。请参阅 Google Cloud Platform 文档,了解如何 创建和管理项目。此项目应有一个 BigQuery 数据集供 Metabase 连接。

Google Cloud Platform:创建服务账号和 JSON 文件

您首先需要一个 Metabase 可以用来访问您的 BigQuery 数据集的 服务账号 JSON 文件。服务账号用于非人类用户(如 Metabase 等应用程序)进行身份验证(我是谁?)和授权(我能做什么?)其 API 调用。

要创建服务账号 JSON 文件,请遵循 Google 关于为您的 BigQuery 数据集 设置服务账号 的文档。基本流程如下:

  1. 创建服务账号。从您的 Google Cloud Platform 项目控制台,打开左侧的主边栏菜单,转到 **IAM & Admin** 部分,然后选择 **Service account**。控制台将列出已有的服务账号(如果有)。在屏幕顶部,点击 **+ CREATE SERVICE ACCOUNT**。

  2. 填写服务账号详情。为服务账号命名,并添加描述(服务账号 ID 在您添加名称后会填充)。然后点击 **Create** 按钮。

  3. 授予服务账号对项目的访问权限。您需要为服务账号添加 **角色**,以便 Metabase 能够有权限查看和运行针对您数据集的查询。请务必为服务账号添加以下角色:

    • BigQuery Data Viewer
    • BigQuery Metadata Viewer
    • BigQuery Job User (区别于 BigQuery User)

有关 BigQuery 中 **角色** 的更多信息,请参阅 Google Cloud Platform 文档

  1. 创建密钥。分配角色给服务账号后,点击 **Create Key** 按钮,并选择 **JSON** 作为 **key type**。JSON 文件将下载到您的计算机。

您只能下载一次密钥。如果删除密钥,您需要创建一个具有相同角色的新服务账号。

连接和同步

连接到数据库后,您将看到“连接和同步”部分,其中显示当前连接状态和管理数据库连接的选项。

在此处,您可以同步数据库架构并重新扫描字段值,并编辑连接详情。

编辑连接详情

您可以随时编辑这些设置。请务必保存您的更改。

连接字符串

在此处粘贴连接字符串以预填充以下剩余字段。

显示名称

Metabase 界面中数据库的显示名称。

Project ID

每个 BigQuery 数据集都有一个 **Project ID**。您可以通过 Google Cloud Console 找到此 ID。如果您不确定在哪里可以找到 **Project ID**,请参阅 Google 关于 获取数据集信息 的文档。

输入 **Project ID** 时,请省略 Project ID 前缀。例如,如果您的 ID 是 project_name:project_id,则只输入 project_id

Service account JSON file

JSON 文件包含您的 Metabase 应用程序访问 BigQuery 数据集所需的凭证,这些凭证由您添加到服务账号的 **角色** 定义。如果您需要添加额外的 **角色**,则必须创建另一个服务账号,下载 JSON 文件,然后将该文件上传到 Metabase。

Datasets

您可以指定要同步和扫描的 BigQuery 数据集。选项有:

  • 所有
  • 仅限这些…
  • 除了这些…

BigQuery 数据集类似于 schema。请务必输入您的数据集名称(如 marketing),而不是您的表名称(如 marketing.campaigns)。

假设您有三个数据集:foo、bar 和 baz。

要同步所有三个数据集,请选择 **Only these…** 并输入:

foo,bar,baz

要基于字符串匹配同步数据集,请使用 * 通配符。

  • 要同步 bar 和 baz,请选择 **Only these…** 并输入字符串 b*
  • 要仅同步 foo,请选择 **All except…** 并输入字符串 b*

请注意,只支持 * 通配符;您不能使用其他特殊字符或正则表达式。

使用 Java Virtual Machine (JVM) 时区

我们建议您保持此选项关闭,除非您在此数据的大部分或所有查询中手动进行 时区 转换。

在查询中包含用户 ID 和查询哈希

这对于 审计 和调试很有用,但会阻止 BigQuery 缓存结果,并可能增加您的成本。

Alternate hostname

如果您想使用不同的主机名连接到 BigQuery。格式: https://<hostname>:<port>。如果您使用代理服务连接到 BigQuery(例如,用于匿名化 PII 的隐私代理),您应该将此字段配置为代理主机名或 IP。请记住设置完整的 URI,包括协议和端口号。

重新运行简单探索的查询

如果用户希望在应用任何汇总或筛选选择之前单击运行(播放按钮),请将此选项关闭

默认情况下,Metabase 会在您从“汇总”菜单中选择一个分组选项,或从下钻菜单中选择一个筛选条件后立即执行查询。如果您的数据库速度较慢,您可能希望禁用重新运行,以避免每次单击时加载数据。

选择同步和扫描发生的时间

请参阅同步和扫描

定期重新指纹识别表

定期重新指纹识别将增加数据库的负载。

将此选项打开,以便在 Metabase 每次运行同步时扫描值的样本。

指纹查询会检查每列的前 10,000 行,并使用该数据来估算每列的唯一值数量、数字和时间戳列的最小值和最大值等。如果将此选项设置为关闭,Metabase 将仅在设置过程中对您的列进行一次指纹识别。

将 Metabase 连接到 Google Drive 数据源

您可以通过 BigQuery 将 Metabase 连接到 Google Drive 数据源。这需要一些设置,但基本原理是创建一个 BigQuery 数据集,并向该数据集添加一个指向 Google Sheet 的外部表。这对于将 CSV 上传到 Google Sheets,然后用 Metabase 分析和可视化数据很有用。

要连接到存储在 Google Drive 中的数据源(例如 Google Sheet),请首先确保您已完成以上步骤,包括:

  • 在 Google Cloud Platform 中创建项目,
  • 添加 BigQuery 数据集,以及
  • 创建 服务账号

将您的 Google Drive 源与服务账号共享

在查看您的 Drive 文件(例如,包含已上传 CSV 文件的 Google Sheet)时,点击右上角的 **Share** 按钮。在标记为 **Add people or groups** 的文本框中,粘贴您的服务账号的电子邮件地址,您可以在 Google Cloud Console 的 Service Accounts page 上找到它。

该电子邮件地址的格式将类似于 service-account-name@your-project-name.iam.gserviceaccount.com,其中相应地填写了您的服务账号和项目名称。

从下拉菜单中选择 **Viewer**,取消选中 **Notify people** 选项,然后点击 **Share**。

在 BigQuery 中创建一个指向您的 Google Drive 源的外部表

如果您还没有 BigQuery 数据集,请 创建一个

接下来,使用 Google Cloud Console,在您的 BigQuery 数据集中 创建一个指向您的 Google Sheet 的外部表

务必指定正确的 **Drive URI** 和文件格式。

如果您尚未完成,请 将您的 Metabase 连接到您的 BigQuery

完成这些步骤后,您将能够使用 Google Drive 源作为数据,在 Metabase 中提出问题和创建仪表板。

使用 Legacy SQL

从 0.30.0 版本开始,Metabase 会指示 BigQuery 将 SQL 查询解释为 Standard SQL (GoogleSQL)。如果您更喜欢使用 Legacy SQL,可以通过在查询开头包含 #legacySQL 指令来告诉 Metabase,例如:

#legacySQL
SELECT *
FROM [my_dataset.my_table]

故障排除

如果您在 BigQuery 连接方面遇到问题,可以查看此 故障排除指南,其中涵盖了 BigQuery 问题,此指南 涵盖了数据仓库连接问题,或者访问 Metabase 的讨论论坛,看看是否有人遇到并解决了类似的问题。

模型功能

目前 BigQuery 还没有任何模型功能可用。

数据库路由

通过数据库路由,管理员可以使用一个数据库构建一次问题,然后根据查看问题的用户,该问题将在具有相同数据结构(schema)的不同数据库上运行查询。

BigQuery 的数据库路由适用于具有相同 schema 的 BigQuery **项目** 之间的路由。

请参阅 数据库路由

危险区

请参阅危险区

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗? 提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.