从 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 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 版本。