升級建議

本頁說明如何從自訂的 Cortex Framework Data Foundation 升級至新版本。每次發布新版本時,Cortex 團隊都會盡量減少中斷,同時為 Cortex Framework 新增功能。新版更新會優先考量回溯相容性。不過,本指南可協助您盡量減少可能發生的問題。

Cortex Framework 資料基礎 提供一組預先定義的內容和範本,可加快從複製到 BigQuery 的資料中發掘價值。 機構可根據自身需求,調整這些範本、模組、SQL、Python 指令碼、管道和其他提供的內容。

核心元件

Cortex Framework 資料基礎內容的設計原則是開放性。機構可以選擇最適合自己的工具,處理提供的 BigQuery 資料模型。基礎架構唯一緊密依附的平台是 BigQuery。所有其他工具都可以視需要互換:

  • 資料整合:只要整合工具能與 BigQuery 互連,且可複製原始資料表和結構,就能加以運用。舉例來說,原始資料表應與在 SAP 中建立的結構定義相同 (名稱、欄位和資料類型都相同)。此外,整合工具應能提供基本轉換服務,例如更新目標資料類型以符合 BigQuery 相容性,以及新增時間戳記或作業標記等額外欄位,以醒目顯示新記錄和變更的記錄。
  • 資料處理:變更資料擷取 (CDC) 處理指令碼可與 Cloud Composer (或 Apache Airflow) 搭配使用,但並非必要。反之,SQL 陳述式會盡可能與 Airflow 專屬檔案分開產生,因此客戶可視需要使用其他工具中的個別 SQL 檔案。
  • 資料視覺化:系統提供 Looker 資訊主頁範本,內含視覺化內容和最低邏輯,但核心邏輯仍會保留在 BigQuery 的資料基礎中,方便您使用偏好的報表工具建立視覺化內容。

主要優點

Cortex Framework 資料基礎架構可因應各種業務需求。這項服務的元件具有彈性,可讓機構根據特定需求調整平台,並享有下列優點:

  • 開放性:除了 BigQuery 之外,還能與各種資料整合、處理和視覺化工具完美整合。
  • 自訂:機構可以修改及擴充預建元件 (例如 SQL 檢視畫面),以符合資料模型和業務邏輯。
  • 效能最佳化:可根據個別工作負載和資料量調整分割、資料品質檢查和叢集等技術。
  • 回溯相容性:Cortex 致力於在日後發布的版本中維持回溯相容性,盡量減少對現有實作項目的影響。如要瞭解版本異動,請參閱「版本資訊」。
  • 社群貢獻:鼓勵使用者分享知識及協作。

更新程序

以下各節將說明開發人員如何透過其中一種方式,讓程式碼與 Cortex Framework Data Foundation 存放區保持同步,同時保留自訂項目。在 CI/CD 管道中使用預先交付的部署指令碼。不過,機構可以採用其他工具和方法,例如 Dataform,或不同 Git 主機提供的自動化工具 (例如 GitHub 動作),以符合自身偏好。

設定存放區

本節概述設定存放區的方法。建議您先充分瞭解 Git,再按照這些步驟操作。

  1. 分叉核心存放區: 建立 Cortex Framework Data Foundation 存放區的分叉。分叉會讓該存放區持續接收 Google Cloud 存放區的更新,並為公司主要建立獨立存放區。

  2. 建立公司存放區:為公司存放區建立新的 Git 主機 (例如 Cloud Source)。在新主機上,建立與已分支存放區同名的存放區。

  3. 初始化公司存放區:將從分支存放區複製的程式碼貼到新建立的公司存放區。使用下列指令,將原始的分叉存放區新增為上游遠端存放區,並確認已新增遠端存放區。這會在公司存放區和原始存放區之間建立連線。

    git remote add google <<remote URL>>
    git remote -v
    git push --all google
    
  4. 驗證存放區設定:確認公司存放區包含複製的程式碼和記錄。您應該會看到兩個遠端,分別是 origin 和您在使用指令後新增的遠端:

    git remote -v:
    

    您現在擁有存放區 (即「公司存放區」),開發人員可以在其中提交變更。開發人員現在可以複製新存放區中的分支並在其中工作。

將變更內容與新版 Cortex 合併

本節說明如何合併公司存放區的變更,以及 Google Cloud 存放區的變更。

  1. 更新分支:按一下「Sync fork」,即可使用 Google Cloud 存放區的變更內容更新存放區的分支。舉例來說,以下變更會套用至公司存放區。此外, Google Cloud 在最新版本中對 Data Foundation 存放區進行了其他變更。

    • 在 SQL 中建立並納入新檢視表的使用
    • 修改現有檢視區塊
    • 完全以自己的邏輯取代指令碼

    下列指令序列會將分支存放區新增為上游遠端存放區,從 GitHub 提取更新版本,並將其主要分支簽出為 GitHub-main。接著,這個範例會從「來源」 Google Cloud 中公司的存放區簽出主要分支版本,並建立名為 merging_br 的分支版本以供合併。

    git remote add github <<github fork>>
    git fetch github main
    git checkout -b github-main github/main
    git checkout  main
    git checkout -b merging_br
    

    您可以透過多種方式建構這項流程,合併程序也可能在 GitHub 的分支版本中進行,並以重新設定基準取代合併,合併分支版本也可能以合併要求的形式傳送。這些程序差異取決於目前的機構政策、變更深度和便利性。

    完成這項設定後,您就能比較傳入的變更與本機變更。建議您在所選的圖形 IDE 中使用工具,查看變更並選擇要合併的內容。例如 Visual Studio。

    建議使用醒目的註解標記自訂項目,方便進行差異比較。

  2. 開始合併程序:使用建立的分支 (在本例中,分支稱為 merging_br) 匯集所有變更並捨棄檔案。準備就緒後,您可以將這個分支併回公司存放區的主要分支或其他分支,以建立合併要求。從公司存放區主要分支 (git checkout merging_br) 中簽出的合併分支,合併來自遠端分支的變更。

        ## git branch -a
        ## The command shows github-main which was created from the GitHub fork
        ## You are in merging_br
    
        git merge github-main
    
        ## If you don't want a list of the commits coming from GitHub in your history, use `--squash`
    

    這項指令會產生衝突清單。使用圖形化 IDE 比較功能瞭解變更,並選擇「目前」、「即將推出」和「兩者」。這時,程式碼中與自訂項目相關的註解就派上用場了。 您可以選擇完全捨棄變更、刪除不想合併的檔案,以及忽略已自訂檢視區或指令碼的變更。

  3. 合併變更:決定要套用哪些變更後,請檢查摘要並使用下列指令提交變更:

        git status
        ## If something doesn't look right, you can use git rm or git restore accordingly
        git add --all #Or . or individual files
        git commit -m "Your commit message"
    

    如果您對任何步驟感到不安全,請參閱 Git 基本復原操作

  4. 測試及部署:目前您只會合併到「暫時」分支。 建議您此時從 cloudbuild\*.yaml 指令碼執行測試部署,確保一切運作正常。自動化測試有助於簡化這項程序。確認這個合併分支沒問題後,您可以簽出主要目標分支,然後將 merging_br 分支合併到該分支。