在 OCI 部署開放原始碼資料湖中心

資料湖中心是現代化的開放式架構,可讓您儲存、瞭解及分析所有資料。它結合了資料湖與資料倉儲的能力,以處理各種企業資料,進行進階分析與業務洞察力。資料湖中心提供的架構能夠打破資料的界限,讓您能夠分析資料狀況。您可以從 Oracle Cloud Infrastructure (OCI) 向上建置資料湖站。

架構

此架構導入平台拓樸、元件簡介、建議最佳做法及 Terraform 自動化功能,以在 OCI 上部署開源資料湖。

資料湖中心可以儲存及彙總企業應用程式資料。可以將資料傳送至資料湖或資料倉儲。資料湖中的資料可以處理並載入資料倉儲,或是直接從資料湖讀取以進行進階分析。

下圖說明此參考架構。

open-source-data-lakehouse.png 的描述如下
open-source-data-lakehouse.png 圖解說明

open-source-data-lakehouse-oracle.zip

在 OCI 上的此資料湖中心架構中,Oracle MySQL HeatWave 用於資料倉儲。Oracle MySQL HeatWave 是唯一具備內建高效能、記憶體內查詢加速器的 MySQL 雲端服務。對於資料庫管理員和應用程式開發人員,這是唯一可讓他們直接從 MySQL 資料庫執行 OLTP 和 OLAP 工作負載的服務。由於 MySQL 是針對 OLTP 進行最佳化,因此許多 MySQL 實行會使用個別的 OLAP 資料庫來進行業務分析。

Oracle MySQL HeatWave 可透過分析和混合工作負載的規模順序提升 MySQL 效能,而且不會對現有的應用程式進行任何變更。Oracle MySQL HeatWave 為交易和分析工作負載提供單一整合平台。這讓您不再需要複雜且耗時、耗費大量 ETL,以及與個別分析資料庫的整合。Oracle MySQL HeatWave 中的 MySQL Autopilot 可自動執行佈建、資料載入、查詢執行以及失敗處理,讓開發者和 DBA 顯著時間。

Oracle Cloud Infrastructure Object Storage 可作為此架構中的資料湖提供服務。OCI Object Storage 可讓企業將所有資料儲存在符合成本效益的彈性環境,同時提供必要的處理、保存及分析服務,以探索新的業務洞察力。在 OCI Object Storage 上發生資料湖,您可以儲存及策劃結構化與非結構化資料,並使用方法從多個來源組織大量高度多元化資料。

提供的架構包含下列開放原始碼元件:

  • Apache Zeppelin

    Apache Zeppelin 是一個網頁式的筆記型電腦,可使用 SQL、Scala、Python、R 等語言,提供資料導向的互動式資料分析與協同合作文件。

    Zeppelin 用於此架構中的資料科學和資料探索。在 Zeppelin 中,您可以建立筆記型電腦並運用 Zeppelin 解譯器概念,以便插入任何語言或後端資料處理系統。由於連線是從 Zeppelin 建立至 MySQL 和物件儲存,因此您可以在真正的資料湖站查詢體驗內,同時執行聯合查詢和從資料倉儲和資料湖同時擷取資料。

  • Grafana

    Grafana 是此架構中的開源平台。Grafana 是一個常見的 Web 應用程式,以 TypeScript (前端) 和 Go (後端) 撰寫。它會為支援的資料來源提供圖表和圖表,其中一種是 MySQL。許多外掛程式可供線上使用,讓您延伸 Grafana。

Zeppelin 和 Grafana 使用網路檔案系統 (NFS),是由兩個放置在專用子網路的虛擬機器執行處理所共用。這些執行處理存在於可用性網域內的兩個不同容錯域中。此檔案系統存在於包含網路安全群組 (NSG) 的專用子網路中,可允許從所有執行處理存取掛載目標。使用者可透過 OCI 負載平衡器 (這是此高可用性設計的一部分) 存取 Zeppelin 和 Grafana。

此架構使用 Oracle Cloud Infrastructure 資料整合,將檔案從物件儲存載入至 MySQL。MySQL、資料整合和資料科學 for Marine Life 工作室逐步介紹如何透過物件儲存設定和執行資料流程,作為來源和 MySQL 作為目的地。

此架構具有下列 OCI 元件:

  • 用戶

    租用戶是 Oracle 會在註冊 Oracle Cloud Infrastructure 時,於 Oracle Cloud 內設定安全且隔離的分割區。您可以在租用戶內,在 Oracle Cloud 中建立、組織及管理您的資源。租用戶與公司或組織同義字。通常,公司會有一個租用戶,並反映其在該租用戶內的組織結構。單一租用戶通常與單一訂閱關聯,而單一訂閱通常只有一個租用戶。

  • 區間

    區間是 Oracle Cloud Infrastructure 租用戶的跨區域邏輯分割區。使用區間在 Oracle Cloud 中組織您的資源、控制對資源的存取,以及設定使用狀況配額。若要控制對指定區間中資源的存取,您需要定義可指定誰存取資源的原則,以及可執行哪些動作。

  • 原則

    Oracle Cloud Infrastructure Identity and Access Management 原則可指定誰可存取哪些資源,以及如何存取資源。存取權會在群組和區間層次被授予,這表示您可以撰寫一個原則,讓群組成為特定區間或租用戶的特定存取類型。

  • 區域

    Oracle Cloud Infrastructure 區域是一個包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且遠距離也能分隔它們 (跨國家或甚至大陸)。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可客製化的軟體定義網路。與傳統資料中心網路一樣,VCN 可讓您完整控制您的網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更這些區塊。您可以將 VCN 區段成子網路,可以將範圍擴展到區域或可用性網域。每個子網路都包含一個連續的位址範圍,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。

  • 可用性網域

    可用性網域是區域內的獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域並不共用基礎架構,例如電源或冷卻系統,或內部可用性網域網路。因此,一個可用性網域發生失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯網域是可用性網域內的硬體和基礎架構群組。每個可用性網域都具備三個具有獨立電源和硬體的容錯域。當您分散多個容錯域的資源時,您的應用系統可以忍受容錯域內的實體伺服器故障、系統維護及電源故障。

  • 物件儲存

    OCI Object Storage 是網際網路規模的高效能儲存平台,可提供可靠且符合成本效益的資料持久性。物件儲存體可儲存任何內容類型的非結構化資料,包括分析資料。您可以直接從網際網路或雲端平台,安全地儲存或擷取資料。多個管理介面可讓您輕鬆地從小規模開始,且無須深受效能或服務可靠性的影響。

    藉由將不常使用的資料儲存在資料倉儲中,然後與 Apache Zeppelin 的最新資料緊密結合,即可使用物件儲存作為資料倉儲的冷儲存層。針對需要長期且較少存取的檔案,使用封存儲存。

  • MySQL HeatWave

    Oracle MySQL Database Service 是一個完全託管的資料庫服務,可讓開發者使用世界上最受歡迎的開源資料庫快速開發及部署安全、雲端原生應用系統。Oracle MySQL HeatWaveOracle MySQL Database Service 的全新整合式高效能記憶體內查詢加速器,可加速 MySQL 的分析和交易查詢效能。

  • 資料整合

    Oracle Cloud Infrastructure 資料整合是一個完全受管理、無伺服器、雲端原生服務,可將來自各種資料來源的資料擷取、載入、轉換、清理及重新塑造到目標 Oracle Cloud Infrastructure 服務。ETL (擷取轉換載入) 在 Spark 上運用完全受管理的橫向擴展處理。使用者可使用可最佳化整合流程以產生最有效率的引擎和協調、自動配置及調整執行環境規模的直觀式無碼使用者介面,設計資料整合流程。OCI 資料整合提供互動式勘查和資料準備,並藉由定義處理綱要變更的規則,協助資料工程師防止綱要漂移。

  • 負載平衡器

    Oracle Cloud Infrastructure Load Balancing 服務可將單一進入點自動分配給後端多部伺服器的流量。

  • 運算執行處理

    Oracle Cloud Infrastructure Compute 服務可讓您在雲端佈建及管理運算主機。您可以根據 CPU、記憶體、網路頻寬與儲存等資源需求,啟動具有資源配置的運算執行處理。建立運算執行處理之後,您可以安全地存取它、重新啟動它、連附磁碟區,然後在不再需要磁碟區時將它終止。

  • 檔案儲存

    Oracle Cloud Infrastructure File Storage 服務提供持久、可擴展、安全且企業級的網路檔案系統。您可以從 VCN 中的任何裸機、虛擬機器或容器執行處理連線至檔案儲存服務檔案系統。您也可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN,從 VCN 外部存取檔案系統。

  • 網際網路閘道

    網際網路閘道可允許 VCN 中公用子網路與公用網際網路之間的流量。

  • 網路位址轉譯 (NAT) 閘道

    NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而不會將這些資源暴露給內送網際網路連線。

  • 網路安全群組 (NSG)

    NSG 是您雲端資源的虛擬防火牆。藉由 Oracle Cloud Infrastructure 的零信任安全模型,系統會拒絕所有流量,您可以控制 VCN 中的網路流量。NSG 包含一組輸入和輸出安全規則,這些規則只適用於單一 VCN 中一組指定的 VNIC。

建議

請使用下列建議作為起點。您的需求可能與此處所述的架構不同。
  • VCN

    建立 VCN 時,請根據計畫要在 VCN 中連附至子網路的資源數目,決定所需的 CIDR 區塊數目與每個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與您的內部部署網路或任何其他網路重疊的位址範圍,以便在必要時設定 VCN 與您內部部署網路之間的連線。

    設計子網路時,請考量您的流量和安全需求。將特定層或角色中的所有資源連附至相同的子網路,作為安全界限。

  • 安全

    使用原則限制誰可以存取您公司擁有的 Oracle Cloud Infrastructure (OCI) 資源,以及存取這些資源的方式。

    順利完成安全導入所需的特定原則。請考慮使用 Oracle Cloud Infrastructure Vault 來保護金鑰、憑證和加密密碼。

    網路服務提供兩種虛擬防火牆功能,使用安全規則控制封包層次的流量:安全清單和網路安全群組 (NSG)。NSG 包含一組輸入和輸出安全規則,僅套應用於單一 VCN 中所選的一組 VNIC。例如,您可以選擇在 VCN 中多層應用程式 Web 層中作為 Web 伺服器的所有運算執行處理。

    NSG 安全性規則的功能與安全性清單規則相同。不過,對於 NSG 安全規則的來源或目的地,您可以指定 NSG 而非 CIDR 區塊。因此,您可以輕鬆撰寫安全規則,以控制相同 VCN 中兩個 NSG 或單一 NSG 內的流量之間的流量。建立資料庫系統時,您可以指定一或多個 NSG。您也可以更新現有資料庫系統,以使用一或多個 NSG。

  • 計算

    挑選具有適當 OCPU 和記憶體組合的資源配置,並視需要為每個執行處理佈建本機 NVMe 和 (或) 區塊儲存。您可以考慮使用提供的彈性資源配置,讓 OCPU 和記憶體更具彈性。

注意事項

Oracle Cloud Infrastructure (OCI) 上部署資料湖站時,請考慮下列事項:

  • 整合資料來源

    針對物件儲存與 MySQL 的整合,我們選擇了 Oracle Cloud Infrastructure 資料整合。如果您想要使用開放原始碼工具,Talend 是一個選項。Talend 未包含在此架構中,因為無法自動下載 (下載要求您註冊 Talend。)

  • 資料科學和機器學習

    我們選擇開放原始碼 Apache Zeppelin 作為資料科學和資料探索的平台。或者,您也可以使用 Oracle Cloud Infrastructure Data Science,這是進階資料導向洞察分析與應用系統的關鍵促成程式,讓資料分析師存取自動化工作流程、JupyterLab 記事本與數百種開源工具,以及更有效率的方式建立模型。它是一個協同合作平台,讓團隊可以和方法共同共用及重製結構模型,並且以安全的方式完成企業級結果。此平台完全受管理且符合現代化企業的需求。

  • 分析和報告

    在此架構中,Grafana 選擇為分析平台。您可以考慮使用 Oracle Analytics Cloud,這是可全面滿足分析和報告需求的進階託管服務。

  • 執行處理可用性和擴展性

    在此範例中,在高可用性架構中,我們在相同可用性網域內的不同容錯域中顯示兩個執行處理。您可以選擇將執行處理放置在不同的可用性網域 (如可用的區域),以達到更高的容錯能力。

    或者,替代方法代表更動態適應以滿足更高需求和各種效能需求,是指使用執行處理集區和自動調整功能。

    執行處理集區可讓您根據相同區域內的相同組態,佈建及建立多個 Oracle Cloud Infrastructure Compute 執行處理。

    自動調整功能可讓您根據效能度量 (例如 CPU 使用率) 自動調整執行處理集區中的運算執行處理數目。自動調整功能有助於在高需求期間為使用者提供一致的效能,並可協助您在低需求期間降低成本。

  • 資料庫可用性與擴展性

    請考慮將額外的 Oracle MySQL 資料庫系統部署成待命資料庫複本,以提供高可用性。您可以將複本放置在不同的容錯域、可用性網域或區域中。

  • 資料庫備份

    Oracle MySQL Database Service 支援兩種備份類型:完整備份包含在資料庫系統中的所有資料,以及只備份自上次完整備份後新增或變更的資料。備份以下列方式執行:

    • 手動:主控台中的動作,或透過 API 進行的要求會起始備份。您最少可以保留一天的手動備份,最多保留 365 天。
    • 自動:自動排定的備份會在您選擇的時間執行,而無須進行任何互動。自動備份會在 1 到 35 天之間保留。預設保留值為 7 天。定義之後,您便無法編輯自動備份的保留期間。
  • 檔案儲存

    在此範例中,我們運用了 Oracle Cloud Infrastructure File Storage 服務。或者,多節點架構也可以提供共用區塊磁碟區。區塊磁碟區可以以讀寫方式連附至多個執行處理。在此情況下,必須安裝叢集感知系統或解決方案 (例如 Oracle Cluster File System 版本 2 (OCFS2)。

  • 安全

    請考慮使用 Oracle Cloud Guard,以主動監控及維護 OCI 中資源的安全。Oracle Cloud Guard 使用偵測器處方,您可以定義檢查資源是否有安全弱點,以及監控操作員和使用者的危險活動。偵測到任何組態錯誤或不安全活動時,Oracle Cloud Guard 會根據您可以定義的回應器處方建議更正動作,並協助這些動作。對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與基於最佳做法之 Oracle 定義安全原則處方關聯的區間。例如,安全區域中的資源不能從公用網際網路存取,因此必須使用客戶管理的金鑰加密。您在安全區域中建立及更新資源時,OCI 會根據安全區域處方中的原則驗證作業,並拒絕違反任何原則的作業。

  • 應用程式開發

    Oracle Application Express (Oracle APEX),Oracle 的低程式碼開發平台,是一個可在資料湖站上建置可擴充且安全的企業 App 工具範例。

    開發人員可以使用 Oracle APEX 快速開發和部署可解決實際問題和立即值的 App。您不必是各種技術的專家,可提供精密的解決方案。著重於解決問題,讓 Oracle APEX 幫您處理其他問題。它具有世界級的功能,您可以隨時隨地部署。

部署

GitHub 提供此參照架構的 Terraform 程式碼。只要按一下,即可將程式碼提取至 Oracle Cloud Infrastructure Resource Manager,即可建立堆疊並進行部署。或者,您也可以將程式碼從 GitHub 下載到您的電腦、客製化程式碼,並使用 Terraform CLI 部署此架構。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊進行部署:
    1. 按一下 部署至 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 複查與接受條款與條件。
    3. 選取要部署堆疊的區域。
    4. 遵循螢幕上的提示與指示來建立堆疊。
    5. 建立堆疊之後,按一下 Terraform 動作,然後選取計畫
    6. 等待工作完成,然後複查計畫。

      若要進行變更,請返回「堆疊詳細資訊 (State Details)」頁面,按一下編輯堆疊 (Edit Stack) ,然後進行必要的變更。然後再執行計畫動作。

    7. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取套用
  • 使用 GitHub 中的 Terraform 程式碼部署:
    1. 前往 GitHub
    2. 複製或下載儲存庫至本機電腦。
    3. 依照 README 文件中的指示進行。

確認

Author: Nuno Goncalves