Lakehouse for Apache Iceberg 支持目录元数据的跨区域复制和灾难恢复。
此配置需要由 Cloud Storage 双区域或 多区域存储分区提供支持的目录。
准备工作
-
验证是否已为您的 Google Cloud 项目启用结算功能。
-
启用 BigLake API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。
所需角色
如需获得在 Lakehouse 运行时目录中使用 Iceberg REST 目录端点所需的权限,请让管理员未您授予以下 IAM 角色:
-
执行管理任务,例如管理目录用户访问权限、存储访问权限和目录的凭据自动售卖模式:
- 针对项目的 BigLake Admin (
roles/biglake.admin) 角色 - Storage Admin (
roles/storage.admin) 针对 Cloud Storage 存储桶的角色
- 针对项目的 BigLake Admin (
-
在凭据自动售卖模式下读取表数据:
BigLake Viewer (
roles/biglake.viewer) 针对项目的 -
以凭据自动售卖模式写入表数据:
BigLake Editor (
roles/biglake.editor) 针对项目的 -
在非凭证自动售卖模式下读取目录资源和表数据:
- BigLake Viewer (
roles/biglake.viewer) 针对项目的角色 - Storage Object Viewer (
roles/storage.objectViewer) 针对 Cloud Storage 存储桶
- BigLake Viewer (
-
在非凭证自动售卖模式下管理目录资源和写入表数据:
- 针对项目的 BigLake Editor (
roles/biglake.editor) 角色 - 针对 Cloud Storage 存储桶的 Storage Object User (
roles/storage.objectUser) 角色
- 针对项目的 BigLake Editor (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
复制和灾难恢复工作流
如需使用跨区域复制和灾难恢复,请按照以下一般步骤操作:
- 查看复制状态: 确定当前的主要区域和次要区域,以确定故障切换的目标区域。
- 检查同步状态: 验证主要区域和次要区域的当前状态,确保它们已准备好进行转换。
- 选择故障切换模式: 在 软故障切换(最适合 计划内维护)或 硬故障切换(最适合紧急 恢复)之间做出选择。
- 启动故障切换: 运行与所选模式对应的命令,以切换主要区域和次要区域。
为故障切换做准备
确定当前的主要区域,并验证次要区域的同步状态。然后,启动故障切换。
查看复制状态
如需确定复制目录的区域,请运行以下
gcloud biglake iceberg catalogs describe 命令。
gcloud biglake iceberg catalogs describe CATALOG_NAME
将 CATALOG_NAME 替换为目录的名称。
检查同步状态
在启动故障切换之前,请使用 gcloud biglake iceberg catalogs failover
命令检查您的
次要副本的同步状态:
gcloud biglake iceberg catalogs failover CATALOG_NAME \
--validate_only \
--primary-replica PRIMARY_REPLICA_REGION
替换以下内容:
CATALOG_NAME:目录的名称。PRIMARY_REPLICA_REGION:要指定为新主副本的区域。
启动故障切换
灾难恢复功能使用元存储复制来指定主要区域和次要区域。所有表提交元数据都从主要区域提供,并复制到次要区域。您可以使用故障切换操作切换目录的主要区域和次要区域。
软故障切换
如需启动软故障切换,请运行以下 gcloud biglake iceberg catalogs failover
命令:
gcloud biglake iceberg catalogs failover CATALOG_NAME \
--primary-replica PRIMARY_REPLICA_REGION
替换以下内容:
CATALOG_NAME:目录的名称。PRIMARY_REPLICA_REGION:要指定为新主副本的区域。
硬故障切换
如需启动硬故障切换,请运行以下 gcloud biglake iceberg catalogs failover
命令:
gcloud biglake iceberg catalogs failover CATALOG_NAME \
--primary-replica PRIMARY_REPLICA_REGION \
--conditional-failover-replication-time=REPLICATION_TIMESTAMP
替换以下内容:
CATALOG_NAME:目录的名称。PRIMARY_REPLICA_REGION:要指定为新主副本的区域。REPLICATION_TIMESTAMP:充当复制检查点的 RFC 3339 时间戳。复制过程会验证副本是否包含在此时间之前提交的所有数据。如果副本不包含在此时间戳之前提交的所有数据,则该命令会失败。如需强制执行故障切换过程,而不考虑任何复制延迟,请将此时间戳设置为很久以前的日期。 注意:在预览版期间,REPLICATION_TIMESTAMP 仅跟踪目录元数据,而不跟踪 Cloud Storage 文件。如需将 数据丢失保持在较低水平,请参阅 Cloud Storage 数据可用性和 持久性文档。