配置维护窗口

本页面介绍如何为 Cloud Data Fusion 实例定义维护窗口。

Cloud Data Fusion 6.8.0 版及更高版本支持维护时段。

维护窗口简介

Cloud Data Fusion 中的维护窗口是指您允许其执行维护操作的时间段,这样可以降低在高峰使用时段发生服务中断的风险。在非高峰时段或活动程度较低的时段安排维护窗口,可最大限度地减少维护窗口对 Cloud Data Fusion 实例和流水线执行的影响。

配置维护窗口可让您控制何时在实例中进行维护操作:

  • 如果定义了维护窗口,Cloud Data Fusion 会在定义的时段内执行维护操作。
  • 如果未定义维护窗口,则可以随时执行维护。

维护操作简介

为确保系统安全性和合规性,Cloud Data Fusion 会定期执行维护操作。这些操作包括应用关键更新和安全补丁,以缓解漏洞并保护用户数据。通过安排维护窗口,可以确保高效应用更新,从而保持系统完整性,并尽可能减少对实例和流水线执行的中断。

  • 配置维护期时,您必须每周至少分配 12 小时用于维护操作。每个窗口的时长必须介于 4 到 12 小时之间。
  • 在维护窗口内,某些操作可能会受到影响。我们建议在非高峰使用时段安排维护窗口。维护操作可能会以以下方式影响 Cloud Data Fusion:

    • Cloud Data Fusion Studio 界面可能暂时无法使用。
    • 流水线执行可能会受到影响,导致失败。
    • Cloud Data Fusion 服务可能会暂时中断,导致 API 调用失败。
    • 在维护时段内,实例可能无法完全正常运行,最长可能需要 1 小时。我们建议您在流水线未运行或未安排运行时设置维护窗口。

在创建实例时指定维护窗口

控制台

如需在创建实例时设置维护窗口,请按以下步骤操作:

  1. 前往 Cloud Data Fusion 实例页面,然后点击创建实例

    创建实例

  2. 输入实例名称版本。如需详细了解每个字段,请参阅创建实例
  3. 展开高级选项部分。
  4. 展开维护部分,然后按照以下步骤操作:
    1. 选中启用维护窗口复选框。
    2. 开始时间字段中,输入支持的时间格式。
    3. TimeZone列表中,选择一个时区。
    4. 天数时长列表中,选择星期几和维护期时长。如需详细了解这些设置,请参阅维护操作简介
    5. 点击创建

如需了解详情,请参阅配置维护窗口时间和重复规则 (RRULE)

REST API

  1. 使用 instance.create API 设置 Instance 配置:
{
  "name": string,
  "description": string,
  
  
  "maintenancePolicy": {
    "maintenanceWindow": {
      "recurringTimeWindow": {
        "window": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
        },
        "recurrence": "MAINTENANCE_RECURRENCE"
      }
    },
  }
}

替换以下内容:

  • START_TIME:时间窗口开始时间,采用 RFC 3339 格式。
  • END_TIME:时间窗口结束时间,采用 RFC 3339 格式。
  • MAINTENANCE_RECURRENCE:维护窗口的重复规则,由 RRULE 表示。Cloud Data Fusion 仅支持以下格式:

    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SABYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY。此参数用于指定窗口在所选日期(从 startTime 开始)的每周重复情况,以及持续时间。

如需了解详情,请参阅配置维护窗口时间和重复规则 (RRULE)

以下示例创建了一个实例,其维护窗口为每周六和周日 10:00 至 16:00(世界协调时间 [UTC])之间的 6 小时。如需了解详情,请参阅实例 API 文档

// POST https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances?instanceID=example-instance

{
  "maintenancePolicy": {
      "maintenanceWindow": {
          "recurringTimeWindow": {
              "window": {
                  "startTime": "2024-01-01T10:00:00Z",
                  "endTime": "2024-01-01T16:00:00Z",
              },
              "recurrence": "FREQ=WEEKLY;BYDAY=SA,SU"
          }
      },
  }
}

gcloud

您可以使用 gcloud beta data-fusion instances create 命令在创建实例时指定维护窗口。

必须为维护窗口定义以下参数:

  • --maintenance-window-start 设置窗口的开始时间。
  • --maintenance-window-end 设置窗口的结束时间。
  • --maintenance-window-recurrence 为维护窗口的重复设置 RRULE
gcloud beta data-fusion instances create INSTANCE_NAME \
    --project=PROJECT_NAME \
    --location=LOCATION \
    --maintenance-window-start=START_TIME \
    --maintenance-window-end=END_TIME \
    --maintenance-window-recurrence=MAINTENANCE_RECURRENCE

替换以下内容:

  • INSTANCE_NAME:实例的名称。
  • PROJECT_NAME:项目的名称。
  • LOCATION:实例所在区域的名称。
  • START_TIME:窗口的开始时间,采用日期/时间输入格式。只有一天中所指定的时间,指定的日期会被忽略。
  • END_TIME:窗口的结束时间,采用日期/时间输入格式。只有一天中所指定的时间,指定的日期会被忽略。指定的日期和时间必须晚于开始时间。
  • MAINTENANCE_RECURRENCE:维护窗口的重复规则,由 RRULE 表示。Cloud Data Fusion 仅支持以下格式:

    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SABYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY。此参数用于指定窗口在所选日期每周重复一次,从 --maintenance-window-start 时间开始,持续指定时长。

如需了解详情,请参阅配置维护窗口时间和重复规则 (RRULE)

以下命令会创建一个实例,该实例的维护窗口为每周六和周日 12:00 到 18:00(世界协调时间 [UTC])之间的 6 小时。

gcloud beta data-fusion instances create example-instance \
    --project='example-project' \
    --location='us-east1' \
    --maintenance-window-start='2024-01-01T12:00:00Z' \
    --maintenance-window-end='2024-01-01T18:00:00Z' \
    --maintenance-window-recurrence='FREQ=WEEKLY;BYDAY=SA,SU'

更新实例的维护窗口

控制台

如需在Google Cloud 控制台中更新现有实例的维护窗口,请按以下步骤操作:

  1. 转到 Cloud Data Fusion 实例页面。

    转到实例

  2. 点击实例名称以查看实例详情。

  3. 实例详情页面上,找到维护窗口字段,然后点击修改

  4. 维护时段字段以修改模式打开。根据需要更新以下值:

    1. 选中启用维护窗口复选框。
    2. 开始时间字段中,输入支持的时间格式。
    3. TimeZone列表中,选择一个时区。
    4. 天数时长列表中,选择维护期的星期几和时长。如需详细了解这些设置,请参阅维护操作简介
  5. 点击保存

如需了解详情,请参阅配置维护窗口时间和重复规则 (RRULE)

REST API

对于现有实例,请使用 instances.patch API 请求更新维护期。此命令会替换现有的维护窗口配置(如果有)。否则,系统会设置请求正文中提及的新配置。

构建 API 请求,如下所示:

  1. 在参数 updateMask 中,指定 maintenance_policy 掩码。
  2. 在请求正文中,在维护政策配置中指定维护窗口:
{
  "maintenancePolicy": {
    "maintenanceWindow": {
        "recurringTimeWindow": {
          "window": {
              "startTime": "START_TIME",
              "endTime": "END_TIME"
          },
          "recurrence": "MAINTENANCE_RECURRENCE"
        }
    },
  }
}

如需了解详情,请参阅配置维护窗口时间和重复规则 (RRULE)

以下示例更新了实例的维护政策配置,将维护窗口设置为每周五、周六和周日的上午 11 点到下午 3 点(世界协调时间 [UTC]),共 4 小时。

// PATCH https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances/example-instance?updateMask=maintenance_policy

{
"maintenancePolicy": {
  "maintenanceWindow": {
    "recurringTimeWindow": {
      "window": {
          "startTime": "2024-01-01T11:00:00Z",
          "endTime": "2024-01-01T15:00:00Z",
        },
      "recurrence": "FREQ=WEEKLY;BYDAY=FR,SA,SU"
    }
  },
}
}

gcloud

您可以使用 gcloud beta data-fusion instances update 命令更新实例的维护窗口。

必须为维护窗口定义以下参数:

  • --maintenance-window-start 设置窗口的开始时间。
  • --maintenance-window-end 设置窗口的结束时间。
  • --maintenance-window-recurrence 为维护窗口的重复设置 RRULE
gcloud beta data-fusion instances update INSTANCE_NAME \
    --project=PROJECT_NAME \
    --location=LOCATION \
    --maintenance-window-start=START_TIME \
    --maintenance-window-end=END_TIME \
    --maintenance-window-recurrence=MAINTENANCE_RECURRENCE

替换以下内容:

  • INSTANCE_NAME:实例的名称。
  • PROJECT_NAME:项目的名称。
  • LOCATION:实例所在区域的名称。
  • START_TIME:窗口的开始时间,采用日期/时间输入格式。只有一天中所指定的时间,指定的日期会被忽略。
  • END_TIME:窗口的结束时间,采用日期/时间输入格式。只有一天中所指定的时间,指定的日期会被忽略。指定的日期和时间必须晚于开始时间。
  • MAINTENANCE_RECURRENCE:维护窗口的重复规则,由 RRULE 表示。Cloud Data Fusion 仅支持以下格式:

    • FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SABYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY。此参数用于指定窗口在所选日期每周重复一次,从 --maintenance-window-start 时间开始,持续指定时长。

以下命令会更新实例 example-instance,使其每周六和周日中午 12 点到下午 6 点(世界协调时间)之间有 6 小时的维护窗口。

gcloud beta data-fusion instances update example-instance \
    --project='example-project' \
    --location='us-east1' \
    --maintenance-window-start='2024-01-01T12:00:00Z' \
    --maintenance-window-end='2024-01-01T18:00:00Z' \
    --maintenance-window-recurrence='FREQ=WEEKLY;BYDAY=SA,SU'

配置维护窗口时间和重复规则 (RRULE)

配置维护窗口的开始时间和结束时间时,系统会忽略所提供时间戳的日期组成部分。系统只会考虑一天中的时间和开始时间与结束时间之间的时长。时间以世界协调时间 (UTC) 存储,但您可以使用 REST API 或 gcloud CLI 安排维护窗口时,可以使用世界协调时间 (UTC) 或时区偏移量。

配置重复周期时,请注意 RRULE 遵循 UTC 日期,因此如果您的时区不同,请相应地进行调整。例如,如果您所在的时区是 PDT (UTC-7),并且您希望维护窗口从您所在时区的星期三 21:00(相当于星期四 4:00 UTC)开始,请在 RRULE 的 BYDAY 选项中指定 TH,而不是 WE

移除实例的维护窗口

控制台

如需在Google Cloud 控制台中移除现有实例中的维护窗口,请按以下步骤操作:

  1. 转到 Cloud Data Fusion 实例页面。

    转到实例

  2. 点击实例名称以查看实例详情。

  3. 实例详情页面上,找到维护窗口字段,然后点击修改

  4. 如需从实例中移除维护窗口,请取消选中启用维护窗口复选框。

  5. 点击保存

REST API

如需从实例中移除维护窗口,请在请求正文中传递一个空的维护政策对象。

// PATCH https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances/example-instance?updateMask=maintenance_policy

{
    "maintenancePolicy": {}
}

gcloud

如需从实例中移除维护窗口,请使用带有 --clear-maintenance-window 标志的 gcloud beta data-fusion instances update 命令。

gcloud beta data-fusion instances update INSTANCE_NAME \
    --project=PROJECT_NAME \
    --location=LOCATION \
    --clear-maintenance-window

替换以下内容:

  • INSTANCE_NAME:实例的名称。
  • PROJECT_NAME:项目的名称。
  • LOCATION:实例所在区域的名称。

后续步骤