從大型主機發布訊息至 Pub/Sub

Mainframe Connector 可讓您從大型主機將訊息發布至 Pub/Sub。例如,您可以使用這項功能將主機整合至 BigQuery 或 Cloud Storage、透過 Dataflow 擴充訊息資料,或觸發 Cloud Run 函式。

事前準備

將訊息發布至 Pub/Sub 主題

如要從大型主機發布非結構化 Pub/Sub 訊息,請使用 pubsub topics publish 指令,如下所示:

//STEP01 EXEC BQSH
//STDIN DD *
pubsub topics publish TOPIC --data="Hello,World"
/*

請將 TOPIC 替換為 Pub/Sub 主題名稱。必要格式為 projects/{project}/topics/{topic}

將訊息發布至 Pub/Sub 主題

Mainframe Connector 可讓您將結構化訊息從主機發布至 Pub/Sub 主題。舉例來說,您可以使用這項功能,透過 Pub/Sub 將佇列式順序存取法 (QSAM) 記錄從主機轉移至 BigQuery。以下是採用這種做法的一些優點:

  • 您可以透過 Dataflow 或 Pub/Sub 同時多執行緒 (SMT),運用 AI 轉換資料或擴充資料。
  • 您可以將記錄從大型主機移至 Cloud Storage。
  • 您可以將大型主機應用程式更新內容同步處理至雲端系統,類似於變更資料擷取 (CDC)。

如要將結構化訊息從大型主機發布至 Pub/Sub 主題,請按照下列步驟操作:

  1. 建立 Pub/Sub 主題來發布訊息。您可以視需要使用結構定義建立主題,以便進一步限制內容。詳情請參閱「建立主題」或「建立主題時建立並關聯結構定義」。
  2. 建立 Pub/Sub 主題,擷取無法轉碼的記錄相關資訊。這個主題稱為溢出主題。如要瞭解如何建立 Pub/Sub 主題,請參閱「建立主題」一文。
  3. (選用) 如要先將記錄轉換為 JSON,再傳送至 Pub/Sub,請設定 JSON 設定檔。如果您未提供設定檔,系統會使用預設 JSON 設定。
  4. (選用) 根據預設,Pub/Sub 訊息不含排序鍵和屬性。溢出訊息會傳送至附有 _spillover 後綴的溢出主題。如要變更預設值,您可以設定 Pub/Sub 發布設定檔。例如,您可以使用下列設定:

    {
      "spillover-configuration": {
        "name": SPILLOVER_TOPIC_NAME
      }
    }
    

    SPILLOVER_TOPIC_NAME 替換為您在步驟 2 中建立的溢出主題名稱。必要格式為 projects/{project}/topics/{topic}。系統會將無法正確解碼的訊息資訊儲存至這個溢出主題。

  5. 如要使用 qsam decode 指令將大型主機記錄發布至 Pub/Sub,請執行下列 JCL:

    //STEP01 EXEC BQSH
    //STDIN DD *
    qsam decode INPUT OUTPUT \
     --copybook COPYBOOK
     --transcode-configuration TRANSCODE-CONFIG
         --output-format=JSONL
         --input-parameter=json-dialect=JSON_CONFIGURATION
         --input-parameter=pubsub-publish-configuration=PUBSUB_CONFIGURATION
    /*
    

    更改下列內容:

    • INPUT:QSAM 檔案的資料路徑
    • OUTPUT:您在步驟 1 中建立的 Pub/Sub 主題的資料路徑。必要格式為 pubsub:projects/{project}/topics/{topic}
    • TRANSCODE-CONFIG:包含轉碼設定檔的檔案資料路徑。如要進一步瞭解轉碼器設定格式,請參閱「轉碼器設定」。
    • JSON_CONFIGURATION:(選用) JSON 設定檔資料路徑。如果您未提供設定檔,系統會使用預設 JSON 設定。
    • PUBSUB_CONFIGURATION:(選用) Pub/Sub 發布設定檔資料路徑。如果您沒有指定設定檔,系統會使用預設的 Pub/Sub 設定。