无边界 Lakehouse 支持目录元数据的跨区域复制和灾难恢复。
此配置需要由 Cloud Storage 双区域或多区域存储桶支持的目录。
准备工作
-
启用 BigLake API(如果尚未启用)。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。
所需的角色
如需获得在 Lakehouse 运行时目录中使用 Iceberg REST 目录端点所需的权限,请让管理员为您授予以下 IAM 角色:
-
执行管理任务,例如管理目录用户访问权限、存储空间访问权限和目录的凭证自动售卖模式:
- 针对项目的 BigLake Admin (
roles/biglake.admin) 角色 - 针对 Cloud Storage 存储桶的 Storage Admin (
roles/storage.admin) 角色
- 针对项目的 BigLake Admin (
-
在凭据自动售卖模式下读取表数据:针对项目的 BigLake Viewer (
roles/biglake.viewer) 角色 -
以凭据自动售卖模式写入表数据:项目的 BigLake Editor (
roles/biglake.editor) 角色 -
在非凭证自动售卖模式下读取目录资源和表数据:
- 项目的 BigLake Viewer (
roles/biglake.viewer) 角色 - 针对 Cloud Storage 存储桶的 Storage Object Viewer (
roles/storage.objectViewer) 角色
- 项目的 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:要指定为新主副本的区域。
启动故障切换
灾难恢复功能使用 Metastore 复制来指定主要区域和次要区域。所有表提交元数据都从主要区域提供,并复制到次要区域。您可以使用故障切换操作切换目录的主要区域和次要区域。
软故障切换
如需启动软故障切换,请运行以下 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 数据可用性和耐用性文档。