从 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) 角色包含此权限,因此您也可以将该角色分配给 Looker 服务帐号。
  • 必须为 Looker 服务帐号分配 cloudkms.cryptoKeyVersions.useToDecrypt 权限。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) 角色

  • 确保您已向 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 版本。