Google BigQuery
要添加数据库连接,请点击右上角的齿轮图标,然后导航到管理设置 > 数据库 > 添加数据库。
先决条件
您需要一个拥有您希望在 Metabase 中使用的项目的 Google Cloud Platform 账户。有关如何创建和管理项目的信息,请参阅 Google Cloud Platform 文档。此项目应包含 Metabase 可以连接的 BigQuery 数据集。
Google Cloud Platform:创建服务账号和JSON文件
您首先需要一个服务账号JSON文件,Metabase可以使用该文件访问您的BigQuery数据集。服务账号旨在让非人类用户(例如Metabase等应用程序)对其API调用进行身份验证(我是谁?)和授权(我能做什么?)。
要创建服务账号JSON文件,请按照Google关于为您的BigQuery数据集设置服务账号的文档。基本流程如下:
-
创建服务账号。在您的Google Cloud Platform项目控制台中,打开左侧主侧边栏菜单,进入IAM和管理部分,然后选择服务账号。控制台将列出任何现有服务账号(如果有)。在屏幕顶部,点击+ 创建服务账号。
-
填写服务账号详细信息。为服务账号命名,并添加描述(添加名称后将自动填充服务账号ID)。然后点击创建按钮。
-
授予服务账号对此项目的访问权限。您需要为服务账号添加角色,以便Metabase有权限查看并针对您的数据集运行查询。请确保为服务账号添加以下角色:
- BigQuery 数据查看者
- BigQuery 元数据查看者
- BigQuery 作业用户(与BigQuery用户不同)
有关BigQuery中角色的更多信息,请参阅Google Cloud Platform文档。
- 创建密钥。为服务账号分配角色后,点击创建密钥按钮,并为密钥类型选择JSON。JSON文件将下载到您的计算机。
您只能下载一次密钥。如果您删除了密钥,则需要使用相同的角色创建另一个服务账号。
连接和同步
连接到数据库后,您将看到“连接和同步”部分,其中显示当前连接状态以及管理数据库连接的选项。
您可以在此处同步数据库模式并重新扫描字段值,以及编辑连接详细信息。
编辑连接详细信息
您可以随时编辑这些设置。请记住保存您的更改。
显示名称
Metabase界面中数据库的显示名称。
项目ID
每个BigQuery数据集都将有一个项目ID。您可以通过Google Cloud Console找到此ID。如果您不确定在哪里找到项目ID,请参阅Google关于获取数据集信息的文档。
输入项目ID时,请省略项目ID前缀。例如,如果您的ID是
project_name:project_id
,则只需输入project_id
。
服务账号JSON文件
JSON文件包含您的Metabase应用程序访问BigQuery数据集所需的凭据,这些凭据由您添加到服务账号的角色定义。如果您需要添加其他角色,则必须创建另一个服务账号,下载JSON文件,然后将该文件上传到Metabase。
数据集
您可以指定要同步和扫描的BigQuery数据集。选项包括:
- 所有
- 仅以下项…
- 除以下项外所有…
BigQuery数据集类似于模式。请确保输入数据集名称(例如
marketing
),而不是您的表名称(marketing.campaigns
)。
假设您有三个数据集:foo、bar和baz。
要同步所有三个数据集,请选择仅以下项…并输入
foo,bar,baz
要根据字符串匹配同步数据集,请使用*
通配符
- 要同步bar和baz,请选择仅以下项…并输入字符串
b*
。 - 要仅同步foo,请选择除以下项外所有…并输入字符串
b*
。
请注意,只支持*
通配符;您不能使用其他特殊字符或正则表达式。
使用Java虚拟机(JVM)时区
我们建议您将其关闭,除非您在此数据的大多数或大部分查询中手动进行时区转换。
在查询中包含用户ID和查询哈希
这对于审计和调试可能很有用,但会阻止BigQuery缓存结果,并可能增加您的成本。
备用主机名
如果您想使用不同的主机名连接到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)时,点击右上角的共享按钮。在标有添加人员或群组的文本框中,粘贴您的服务账号的电子邮件,您可以在Google Cloud Console的服务账号页面上找到该电子邮件。
该电子邮件地址将类似于service-account-name@your-project-name.iam.gserviceaccount.com
,其中包含您的服务账号和项目名称。
从下拉菜单中选择查看者,取消选中通知用户选项,然后点击共享。
在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查询解释为标准SQL (GoogleSQL)。如果您更喜欢使用旧版SQL,您可以在查询开头包含#legacySQL
指令来告知Metabase,例如:
#legacySQL
SELECT *
FROM [my_dataset.my_table]
故障排除
如果您的BigQuery连接遇到问题,您可以查阅此故障排除指南,其中涵盖BigQuery问题,或查阅关于数据仓库连接的此指南,或者访问Metabase的讨论论坛,看看是否有人遇到并解决了类似问题。
模型功能
BigQuery目前(尚未)提供任何模型功能。
数据库路由
请参阅数据库路由。
危险区域
请参阅危险区域。
进一步阅读
阅读其他Metabase版本的文档。