設定維護期間

您可以設定 Cloud Data Fusion 的維護期間,控管自動更新和例行維護作業的執行時間。設定指定時間範圍,有助於避免在營運高峰時段發生服務中斷。

6.8.0 以上版本的 Cloud Data Fusion 執行個體支援維護期間。

關於維護期間

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 的「Instances」(執行個體) 頁面,然後按一下「Create instance」(建立執行個體)。

    建立執行個體

  2. 輸入執行個體名稱和版本。如要進一步瞭解各個欄位,請參閱「建立執行個體」。
  3. 展開「Advanced options」(進階選項) 區段。
  4. 展開「Maintenance」(維護作業) 專區,然後按照下列步驟操作:
    1. 勾選「Enable maintenance window」(啟用維護期間) 核取方塊。
    2. 在「Start time」(開始時間) 欄位中,以支援的格式輸入時間。
    3. 在「TimeZone」(時區)TimeZone 清單中選取時區。
    4. 在「Days」(天數) 和「Length」(長度) 清單中,選取星期幾和維護期長度。如要進一步瞭解這些設定,請參閱「關於維護作業」。
    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,SA 或 BYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY。這會指定在所選日期每週重複的時間範圍,從 startTime 開始,並持續指定的時間長度。

詳情請參閱「設定維護期間和週期 (RRULE)」。

以下範例會建立執行個體,並將維護期間設為每週六和週日上午 10 點至下午 4 點 (世界標準時間),共六小時。詳情請參閱執行個體 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,SA 或 BYDAY=SU,MO,TU,WE,TH,FR,SA,MO;FREQ=WEEKLY。這會指定在所選日期每週重複的時間範圍,從 --maintenance-window-start 時間開始,並持續指定的時間長度。

詳情請參閱「設定維護期間和週期 (RRULE)」。

下列指令會建立執行個體,並將維護期間設為每週六和週日的下午 12 點至下午 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 的「Instances」(執行個體) 頁面。

    前往「Instances」(執行個體) 頁面

  2. 按一下執行個體名稱,查看執行個體詳細資料。

  3. 在「Instance details」(執行個體詳細資料) 頁面中,前往「Maintenance window」(維護期間) 欄位,然後按一下「Edit」(編輯)。

  4. 維護期間欄位會以編輯模式開啟。視需要更新值:

    1. 勾選「啟用維護期間」核取方塊。
    2. 在「Start time」(開始時間) 欄位中,以支援的格式輸入時間。
    3. 在「TimeZone」(時區)TimeZone 清單中選取時區。
    4. 在「Days」(天數) 和「Length」(長度) 清單中,選取星期幾和時間長度。如要進一步瞭解這些設定,請參閱「關於維護作業」。
  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 點 (世界標準時間),共四小時。

// 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,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) 儲存,但使用 REST API 或 gcloud CLI 排定維護期間時,您可以使用 UTC 或時區偏移。

設定週期時,請注意 RRULE 遵循世界標準時間 (UTC),因此如果時區不同,請相應調整。舉例來說,如果您的時區是太平洋夏令時間 (UTC-7),且希望維護時段從您時區的星期三 21:00 開始 (對應世界標準時間星期四 4:00),請在 RRULE 的 BYDAY 選項中指定 TH,而非 WE。

移除執行個體的維護期間

控制台

如要在Google Cloud 控制台移除現有執行個體的維護期間,請按照下列步驟操作:

  1. 前往 Cloud Data Fusion 的「Instances」(執行個體) 頁面。

    前往「Instances」(執行個體) 頁面

  2. 按一下執行個體名稱,查看執行個體詳細資料。

  3. 在「Instance details」(執行個體詳細資料) 頁面中,前往「Maintenance window」(維護期間) 欄位,然後按一下「Edit」(編輯)。

  4. 如要從執行個體中移除維護期間,請取消勾選「Enable maintenance window」(啟用維護期間) 核取方塊。

  5. 按一下 [儲存]。

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:執行個體的區域名稱。

查看維護事件及接收通知

Cloud Data Fusion 會透過統一維護,回報執行個體的排定維護事件。如要查看這些事件並接收相關通知,請分別設定:

啟用 Unified Maintenance API

如要在 Google Cloud 控制台查看維護事件,請在專案中啟用 Unified Maintenance API (maintenance.googleapis.com)。Unified Maintenance 不會顯示啟用 API 前排定的歷史事件。

控制台

  1. 在 API 程式庫中,前往「Maintenance API」頁面。

    前往 Maintenance API

  2. 按一下「啟用」。

gcloud

使用 gcloud services enable 指令:

gcloud services enable maintenance.googleapis.com \
    --project=PROJECT_ID

將 PROJECT_ID 替換為專案 ID。

設定通知

無論是否啟用 Unified Maintenance API,Unified Maintenance 都會自動將維護事件記錄寫入 Logging,記錄 ID 為 maintenance.googleapis.com/maintenance_events。如要透過電子郵件、Pub/Sub、Slack、PagerDuty 或 Webhook 等管道接收通知,請建立與這些記錄相符的記錄警告政策。詳情請參閱「設定快訊和通知」。

後續步驟