从 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 (Google Cloud Core) 实例。
  • 您想要迁移到其他区域的 Looker (Google Cloud Core) 实例。

所需角色

如需获得导入或导出 Looker (Google Cloud Core) 实例数据所需的权限,请让管理员向您授予创建实例的项目的 Looker Admin (roles/looker.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

将 Looker (Google Cloud Core) 实例数据导出到 Cloud Storage 存储桶

以下部分介绍了如何导出实例数据。

导出到 Cloud Storage 存储桶所需的对象和权限

导出到 Cloud Storage 存储桶

如需导出数据,请选择以下选项之一:

控制台

  1. 前往 Google Cloud 控制台中的 Looker 页面。

    前往 Looker 实例

  2. 在页面顶部的选择组织下拉列表中,选择组织资源,该资源包含要为其导出数据的 Looker (Google Cloud Core) 实例。

  3. 点击要为其导出数据的实例的名称。

  4. 点击导出

  5. 导出存储桶字段中,指定要在其中创建导出工件的存储桶位置。您可以在输入字段中输入 <bucket_name>/<folder_name> 作为路径,也可以浏览以选择存储桶中的适当位置。

  6. 选择客户管理的密钥字段中,选择用于加密导出工件的 CMEK。

  7. 点击导出

gcloud

gcloud looker instances export INSTANCE_NAME \
--target-gcs-uri='gs://BUCKET_NAME/FOLDER_NAME' \
--kms-key=KMS_KEY_ID

替换以下内容:

  • INSTANCE_NAME:Looker (Google Cloud Core) 实例的名称;该名称与实例网址无关
  • BUCKET_NAME:您希望创建导出工件的 Cloud Storage 存储桶位置
  • FOLDER_NAME:您希望导出工件放置在 Cloud Storage 存储桶中的文件夹
  • KMS_KEY_ID:导入和导出专用 CMEK 密钥 ID 的完整路径

将数据从 Cloud Storage 存储桶导入 Looker (Google Cloud Core) 实例

以下部分介绍了如何导入实例数据。

从 Cloud Storage 存储桶导入所需的权限

  • Looker 服务账号。如果您使用 Google Cloud CLI、Terraform 或 API 创建了 Looker (Google Cloud Core) 实例,但尚未创建 Looker 服务账号,则需要创建一个
  • 向 Looker 服务账号授予 storage.objects.get 权限。Storage Object Viewer (roles/storage.objectViewer) IAM 角色包含此权限,因此您也可以将该角色分配给 Looker 服务账号。
  • 必须将 cloudkms.cryptoKeyVersions.useToDecrypt 权限分配给 Looker 服务账号。Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter) 角色包含此权限,因此您也可以将该角色分配给 Looker 服务账号。

从 Cloud Storage 存储桶导入

如需导入数据,请选择以下选项之一:

控制台

  1. 前往 Google Cloud 控制台中的 Looker 页面。

    前往 Looker 实例

  2. 在页面顶部的选择组织下拉列表中,选择组织资源,该资源包含您要向其中导入数据的 Looker (Google Cloud Core) 实例。

  3. 点击要导入数据的实例的名称。

  4. 点击导入 (IMPORT)。

  5. 导入存储分区字段中,输入路径或浏览到您导出数据的 Cloud Storage 位置。选择 metadata.json 文件和其他文件所在的文件夹。

  6. 点击导入 (IMPORT)。

gcloud

gcloud looker instances import INSTANCE_NAME \
--source-gcs-uri='gs://BUCKET_NAME/FOLDER_NAME'

替换以下内容:

  • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称;它未与实例网址相关联
  • BUCKET_NAMEmetadata.json 文件和其他文件所在的 Cloud Storage 存储桶位置
  • FOLDER_NAMEmetadata.json 文件和其他文件所在的文件夹

导入完成后,Looker(Google Cloud 核心)用户可能会收到重新对任何使用 OAuth 进行个别用户身份验证的 BigQuerySnowflake 数据库连接进行身份验证的提示。这是因为 Looker (Google Cloud Core) 导出内容可能不会保留单个用户数据库连接的 OAuth 访问令牌或刷新令牌。

用户可以使用以下方法之一对其数据库重新进行身份验证:

  • 在用户查看使用单个 OAuth 数据库连接的探索或信息中心时,按照系统显示的登录提示操作。
  • 前往其账号页面,然后针对 OAuth 连接凭据标题下的每个数据库选择登录

在用户使用 OAuth 凭据登录之前,任何归单个用户所有且引用 OAuth 连接的自动安排或提醒都可能会中断。

排查 Looker (Google Cloud Core) 数据导出或导入问题

本部分介绍了如何修复可能导致导出或导入过程失败的错误情况。

导出过程中出现的错误

导入错误

  • 确保您已向 Looker 服务账号授予对 Cloud Storage 存储桶storage.objects.get 权限或 Storage Object Viewer (roles/storage.objectViewer) IAM 角色。

  • 确保您已向 Looker 服务账号授予对您创建的客户管理的加密密钥 (CMEK)cloudkms.cryptoKeyVersions.useToDecrypt 权限或 Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter) 角色。

  • 导入可能会因目标实例与导出实例之间的版本不兼容而失败,如下所示:

    • 目标实例的 Looker 次要版本低于导出数据的 Looker 版本。例如,目标实例使用的是 Looker 23.5.X,但导出内容是使用 Looker 23.6.X 实例创建的。
    • 创建导出数据的实例的次要版本比目标实例的 Looker 版本低多个版本。例如,目标实例使用的是 Looker 23.6.X,但导出内容是使用 Looker 23.4.X 版本的实例创建的。

    在这种情况下,请升级导出实例或目标实例,以便这两个实例都运行相同的 Looker 版本。