本页介绍了如何为 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 小时。我们建议您设置维护 (即您的流水线未运行或未被安排 运行。
在创建实例时指定维护窗口
控制台
如需在创建实例时设置维护窗口,请按以下步骤操作:
- 转到 Cloud Data Fusion 实例页面,然后点击创建 实例。
- 输入实例名称和版本。如需详细了解 请参阅创建实例。
- 展开高级选项部分。
- 展开维护部分,然后按照以下步骤操作:
- 选中启用维护期复选框。
- 在开始时间字段中,输入时间(采用受支持的格式)。
- 在时区列表中,选择一个时区。
- 在天数和时长列表中,选择一周中的哪几天以及时长。如需详细了解这些设置,请参阅 维护操作简介。
- 点击创建。
如需了解详情,请参阅配置维护期时间和重复 (RRULE)。
REST API
- 使用
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,SA
或BYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
。这会指定窗口在一周中的选定几天重复,从startTime
开始,持续指定时长。
如需了解详情,请参阅 配置维护窗口时间和重复规则 (RRULE)。
以下示例会创建一个实例,其维护窗口为每周六和周日上午 10 点到下午 4 点 (UTC) 之间的 6 小时。如需了解详情,请参阅 instances 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
为 维护窗口的重复周期。
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,SA
或BYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
。该参数指定了 在选定日期的续订期开始,从--maintenance-window-start
时间,并持续指定的时长。
如需了解详情,请参阅 配置维护窗口时间和重复规则 (RRULE)。
以下命令会创建一个维护窗口为 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 控制台中现有实例的维护窗口, Google Cloud 控制台,请按以下步骤操作:
转到 Cloud Data Fusion 实例页面。
点击实例名称以查看实例详情。
在实例详情页面上,转到维护期 字段,然后点击修改。
维护时间范围字段会在编辑模式下打开。更新值 :
- 选中启用维护窗口复选框。
- 在开始时间字段中,输入时间(采用受支持的格式)。
- 在TimeZone列表中,选择一个时区。
- 在天和时长列表中,选择周几和时长 窗口。如需详细了解这些设置,请参阅维护操作简介。
点击保存。
如需了解详情,请参阅 配置维护窗口时间和重复规则 (RRULE)。
REST API
对于现有实例,请使用
instances.patch
API 请求。这会替换现有的维护期配置(如果有)。否则,系统会设置新的配置(如请求中所述)
正文。
请按如下方式构建 API 请求:
- 在参数
updateMask
中,指定maintenance_policy
掩码。 - 在请求正文中,指定维护时段的维护窗口 政策配置:
{
"maintenancePolicy": {
"maintenanceWindow": {
"recurringTimeWindow": {
"window": {
"startTime": "START_TIME",
"endTime": "END_TIME"
},
"recurrence": "MAINTENANCE_RECURRENCE"
}
},
}
}
如需了解详情,请参阅配置维护期时间和重复 (RRULE)。
以下示例展示了如何更新 具有 4 小时维护窗口(世界协调时间 (UTC) 上午 11 点到下午 3 点)的实例 每周五、周六和周日。
// 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
为 维护窗口的重复周期。
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,SA
或BYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY
。该参数指定了 在选定日期的续订期开始,从--maintenance-window-start
时间,并持续指定的时长。
以下命令将实例 example-instance
更新为
每周六到周日中午 12 点到下午 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) 存储, 安排维护窗口时,您可以使用世界协调时间 (UTC) 或时区偏移量 使用 REST API 或 gcloud CLI。
在配置重复规则时,请注意 RRULE 采用 UTC 日期,因此
进行相应的调整。例如,如果您所在的时区是
美国太平洋夏令时 (UTC-7),且您希望将维护窗口从以下时间的每周三 21:00 开始:
时区(对应于星期四的 4:00 UTC),请指定 TH
而非 RRULE 的 BYDAY
选项中的 WE
。
移除实例的维护窗口
控制台
如需在 Google Cloud 控制台中移除现有实例中的维护时间窗口,请按以下步骤操作:
转到 Cloud Data Fusion 实例页面。
点击实例名称以查看实例详情。
在实例详情页面上,转到维护期 字段,然后点击修改。
如需从实例中移除维护期,请取消选中启用维护期复选框。
点击保存。
REST API
如需从实例中移除维护期,请在请求正文中传递一个空的维护政策对象。
// PATCH https://datafusion.googleapis.com/v1/projects/example-project/locations/us-central1/instances/example-instance?updateMask=maintenance_policy
{
"maintenancePolicy": {}
}
gcloud
如需从实例中移除维护窗口,请使用 gcloud beta data-fusion instances update
并附加 --clear-maintenance-window
标志。
gcloud beta data-fusion instances update INSTANCE_NAME \
--project=PROJECT_NAME \
--location=LOCATION \
--clear-maintenance-window
替换以下内容:
INSTANCE_NAME
:实例的名称。PROJECT_NAME
:项目的名称。LOCATION
:实例所在区域的名称。
后续步骤
- 请参阅 instances API 文档。