将 Looker (Google Cloud Core) 连接到您的数据库

配置完成后,您的 Looker (Google Cloud Core) 实例会列在 Google Cloud 项目的实例页面中。点击实例网址以访问该实例并验证身份

登录 Looker (Google Cloud Core) 实例后,您可以设置与 Looker (Google Cloud Core) 实例的数据库连接

设置数据库连接

Looker (Google Cloud Core) 必须连接到数据库才能启用数据探索。请参阅支持的方言列表,了解 Looker (Google Cloud Core) 支持哪些方言。

如果您拥有以下任一权限,则可以在 Looker (Google Cloud Core) 实例中创建数据库连接:

您可以按照 Looker (Google Cloud Core) 实例中动态显示的设置 Looker 指南来连接您的数据库,也可以按照将 Looker 连接到您的数据库文档页面和特定于方言的文档页面中列出的步骤操作。

如果您的 Looker (Google Cloud Core) 实例使用专用 IP 连接,您必须设置路由专用连接,以将其连接到以下任意类型的数据库:

  • Google Cloud 中其他网络中的数据库
  • 由其他云服务提供商托管的数据库
  • 本地数据库

如需详细了解专用网络和外部服务,请参阅使用 Looker (Google Cloud Core) 的专用 IP 网络文档页面。

设置数据库连接后,您就可以设置 LookML 项目了。

使用应用默认凭据连接到 BigQuery 数据库

当您设置与 BigQuery 标准 SQL 数据库的连接时,Looker (Google Cloud Core) 实例可以使用应用默认凭据 (ADC) 进行身份验证。当您使用 ADC 时,连接将使用 Looker (Google Cloud Core) 项目的服务帐号的凭据对数据库进行身份验证。

如需将 ADC 与 BigQuery 数据库搭配使用,请在 Looker 实例的连接设置页面的身份验证字段中选择应用默认凭据。如需了解完整过程,请参阅有关将 Looker 连接到 BigQuery 数据库的文档。

如果您要连接的 BigQuery 数据库与 Looker (Google Cloud Core) 实例属于不同项目,则需要进行一些额外设置。请参阅将应用默认凭据与其他 Google Cloud 项目中的 BigQuery 数据库搭配使用部分。

服务账号模拟

如果您希望使用 Looker (Google Cloud Core) 项目服务账号以外的服务帐号向 BigQuery 数据库进行身份验证,可以在模拟的服务账号字段中输入其他服务账号或以英文逗号分隔的服务账号链,以创建委托请求流程。Looker (Google Cloud Core) 服务帐号会自动用作链中的第一个服务帐号,不需要添加到字段中。链中的最后一个服务帐号(也称为模拟服务帐号)是用于向数据库进行身份验证的账号。

使用服务帐号模拟时,请执行以下操作:

将应用默认凭据与其他 Google Cloud 项目中的 BigQuery 数据库搭配使用

对于位于 Looker (Google Cloud Core) 实例所在项目之外的 BigQuery 标准 SQL 数据库,为 BigQuery 标准 SQL 数据库使用 ADC 的步骤与在同一项目内建立连接的步骤相同。不过,在 Looker (Google Cloud Core) 实例中设置连接之前,您的 Looker (Google Cloud Core) 项目的服务帐号必须具有以下 IAM 角色:

如果 Looker (Google Cloud Core) 服务帐号在包含 BigQuery 数据集的项目中还没有 IAM 角色,请在该项目中授予角色时使用服务帐号的电子邮件地址。如需查找服务帐号的电子邮件地址,请转到 Google Cloud 控制台中的 IAM 页面,然后选中包括 Google 提供的角色授权复选框。电子邮件地址的格式为 service-<project number>@gcp-sa-looker.iam.gserviceaccount.com。使用该电子邮件地址向服务帐号授予适当的角色

授予适当的角色后,请按照使用 ADC 的步骤操作。

您现在可以将 ADC 与此 BigQuery 标准 SQL 数据库搭配使用。与在连接设置页面中指定的服务帐号相关联的项目将用于结算,也用作默认项目。

使用应用默认凭据连接到 Cloud SQL 数据库

Looker (Google Cloud Core) 实例可以使用 ADC 对与 Cloud SQL 数据库(Cloud SQL for PostgreSQLCloud SQL for MySQL)的连接进行身份验证。当您使用 ADC 对 Cloud SQL 数据库进行身份验证时,运行 Cloud SQL 数据库的 Google Cloud 项目是针对 Looker 查询计费的项目。

对于使用 ADC 的 Looker 与 Cloud SQL 连接,ADC 会模拟一个或一组服务帐号来访问您的数据库。创建与数据库的 Looker 连接时,您可以使用 IAM 数据库用户名字段指定 ADC 将模拟的服务帐号或服务账号链。您在创建 Looker (Google Cloud Core) 实例时自动创建的 Looker 服务账号会自动用作链中的第一个服务帐号,无需添加到该字段中。

如果要使用 Looker 服务帐号以外的服务帐号向 Cloud SQL 数据库进行身份验证,您可以在 IAM 数据库用户名字段中输入其他服务账号或以英文逗号分隔的服务账号链,以创建委托请求流程

链中的最后一个服务帐号(也称为“模拟服务账号”)是向数据库进行身份验证的账号,您必须将此账号添加为 Cloud SQL 数据库的用户。如果您将 Looker 服务帐号用作链中的最后一个服务帐号(通过将 IAM 数据库用户名字段留空),则必须将 Looker 服务帐号添加为 Cloud SQL 数据库的用户。

以下是使用 ADC 将 Cloud SQL for PostgreSQL 或 Cloud SQL for MySQL 数据库连接到 Looker 的常规步骤:

  1. 将模拟的服务帐号添加到您的 Cloud SQL 数据库
  2. 在 Cloud SQL 数据库上设置服务帐号模拟
  3. 请连接到您的数据库,以运行适用于 Cloud SQL for PostgreSQLCloud SQL for MySQL 的其他配置命令。
  4. 创建与数据库的 Looker 连接

将模拟的服务帐号添加到您的 Cloud SQL 数据库

创建与数据库的 Looker 连接时,您可以使用 IAM 数据库用户名字段指定 ADC 将模拟的服务帐号或服务账号链,以对您的数据库执行操作。模拟链中的最后一个服务帐号被视为模拟服务帐号

如需将 ADC 与 Cloud SQL 搭配使用,您必须将模拟的服务帐号添加到您的 Cloud SQL 数据库:

  • 默认情况下,如果您将 IAM 数据库用户名字段留空,ADC 将模拟 Looker 服务帐号。在本例中,Looker 服务帐号是模拟的服务帐号,因此您需要将 Looker 服务帐号添加到您的 Cloud SQL 数据库。如需了解 Looker 服务帐号以及查看 Looker 服务帐号电子邮件地址的过程,请参阅创建 Looker (Google Cloud Core) 实例文档页面。
  • 如果您指定了 Looker 服务帐号以外的服务帐号,或在 IAM 数据库用户名字段中指定了服务账号链,则必须将模拟链中的最后一个服务帐号添加到您的 Cloud SQL 数据库。

如需向 Cloud SQL 数据库添加服务帐号,您必须拥有 Cloud SQL Admin IAM 角色。

按照数据库方言的“将 IAM 用户或服务帐号添加到您的数据库实例”过程操作,将模拟的服务帐号添加到您的 Cloud SQL 数据库:

在 Cloud SQL 数据库上设置服务帐号模拟

在数据库上创建 Cloud SQL 用户后,您必须按照以下步骤设置 Cloud SQL 数据库以进行服务模拟:

  1. 按照过程启用 Cloud SQL Admin API
  2. 确保链中的所有服务账号(包括 Looker 服务帐号)具有适当的 IAM 权限
  3. 请按照在 Google Cloud 控制台中授予单个角色的过程操作。向您添加到 Cloud SQL 数据库中的模拟服务帐号授予以下 Cloud SQL 角色

    如果您指定了 Looker 服务帐号以外的服务帐号,或在 IAM 数据库用户名字段中指定了服务账号链,请向链中的每个服务帐号授予以下权限:

Cloud SQL for MySQL 的其他配置命令

对于 Cloud SQL for MySQL,您必须连接到您的数据库实例,并在 Cloud SQL for MySQL 数据库上运行以下命令:

GRANT ALL on DATABASE_NAME.* to 'DATABASE_USER'@'%'

请替换以下内容:

  • DATABASE_NAME:您的数据库的名称。
  • DATABASE_USER:您添加到 Cloud SQL 数据库中的模拟服务帐号的截断服务帐号用户名。服务帐号的格式为 service-<project number>@gcp-sa-looker.iam.gserviceaccount.com。移除 @ 及后面的所有内容,以此来截断用户名。截断后,用户名应类似于 service-<project number>

例如,如果服务帐号用户名为 service-12345678901@gcp-sa-looker.iam.gserviceaccount.com,数据库名称为 looker-test,则命令将如下所示:

GRANT ALL on looker-test.* to 'service-12345678901'@'%'

Cloud SQL for PostgreSQL 的其他配置命令

对于 Cloud SQL for PostgreSQL,您必须连接到您的数据库实例,并对 Cloud SQL for PostgreSQL 数据库运行一些配置命令:

  • 按照 PostgreSQL 文档页面的用户和安全性部分所述,授予用户对数据库的权限。
  • 按照 Looker 文档 PostgreSQL 页面的设置 search_path 部分所述,设置 Looker SQL Runner 用于从数据库中检索元数据的搜索路径。

创建与 Looker (Google Cloud Core) 的连接

如需创建从 Looker 到数据库的连接,请按以下步骤操作:

  1. 在 Looker 的管理部分中,选择连接,然后点击添加连接
  2. 方言下拉菜单中,选择 Google Cloud PostgreSQL;对于 Cloud SQL for MySQL,选择 Google Cloud SQL
  3. Authentication(身份验证)部分中,点击 Application Default Credentials(应用默认凭据)选项。
  4. IAM 数据库用户名字段中,指定您希望 ADC 模拟对数据库执行操作的服务帐号或服务账号链:

    • 如果您希望 Looker 使用 Looker (Google Cloud Core) 项目的服务账号向 Cloud SQL 数据库进行身份验证,请将此字段留空。
    • 如果您希望 Looker 使用 Looker (Google Cloud Core) 项目服务账号以外的服务帐号向 Cloud SQL 数据库进行身份验证,可以输入其他服务账号或以英文逗号分隔的服务账号链来创建委托请求流程
  5. 填写其余的连接详细信息。大多数设置对大多数数据库方言都是通用的。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。

  6. 如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。

  7. 要保存这些设置,请点击连接

Looker (Google Cloud Core) 支持的方言

下表显示了 Looker (Google Cloud Core) 对数据库方言的支持:

方言 是否支持?
阿克蒂安雪崩
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Apache Druid
Apache Druid 0.13 及更高版本
Apache Druid 0.18 及更高版本
Apache Hive 2.3 及更高版本
Apache Hive 3.1.2 及更高版本
Apache Spark 3 及更高版本
ClickHouse
Cloudera Impala 3.1 及以上版本
带有原生驱动程序的 Cloudera Impala 3.1+
带有原生驱动程序的 Cloudera Impala
DataVirtuality
Databricks
迪诺多 7
迪诺多 8 号星
德雷米奥
Dremio 11+
Exasol
火箭
Google BigQuery 旧版 SQL
Google BigQuery 标准 SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL 数据库
Microsoft Azure Synapse 分析
Microsoft SQL Server 2008 及更高版本
Microsoft SQL Server 2012 及更高版本
Microsoft SQL Server 2016
Microsoft SQL Server 2017 及更高版本
MongoBI
MySQL
MySQL 8.0.12 及更高版本
Oracle
Oracle ADWC
PostgreSQL 9.5 及更高版本
PostgreSQL 9.5 之前的版本
PrestoDB
PrestoSQL
SAP HANA 2 及更高版本
SingleStore
SingleStore 7 及更高版本
Snowflake
Teradata
Trino
矢量
Vertica

数据库配置说明

相关说明适用于以下 SQL 方言:

后续步骤