連線至 OCI 上的 MySQL HeatWave 並管理

MySQL HeatWave 的其中一個熱門功能就是能夠直接對現有交易資料執行分析,因此當您需要執行大規模平行分析時,不需要將該資料打亂到個別系統。令人驚訝的是,

MySQL HeatWave 是一款完全託管的服務,與任何資料庫一樣,最好是在保護公共網際網路時。我們仍然需要以某種方式連線,以便與資料搭配運作,因此讓我們探索 OCI Cloud Shell 的使用 (我們簡要說明於入門指南)、DIY 堡壘主機,以及使用 OCI 堡壘主機服務與 MySQL Workbench 連線 ( 進一步瞭解堡壘主機) 作為安全通道。

如果您還沒有啟動和執行 MySQL HeatWave 系統,請前往 OCI 上的 MySQL HeatWave 入門並開始使用。準備就緒之後,請繼續閱讀此處以探索各種連線選項、資料載入技術和叢集管理功能。

先決條件

  • OCI 帳戶 (試用或付費)
  • MySQL Shell 的一些經驗
  • MySQL HeatWave 資料庫系統
  • 文字編輯器

快速回顧您的選擇

對於偏好命令行介面的使用者,您可以選擇透過 Cloud Shell 或透過自行管理的堡壘主機連線,讓您使用最愛的 Linux 風味。對於那些偏好 GUI 的人,您可以前往「安全通道」區段。但首先 ... 幾個準備步驟!

再繼續進行之前,請先確定您已從資料庫系統收集必要的端點詳細資訊。您需要專用 IP 位址和 MySQL 連接埠,可透過瀏覽「資料庫」->「資料庫系統」來取得,您可以在此按一下先前建立的 MySQL 資料庫名稱。

cloud shell 的螢幕擷取畫面

接下來,您需要 SSH 金鑰才能安全地連線至不同的中介系統 (不論您選擇使用堡壘主機還是安全通道)。我們將使用 OCI 主控台中提供的 Cloud Shell 建立 SSH 金鑰 - 方便您使用。(注意 - 我們也可以從 Cloud Shell 連線至資料庫 ... 我們會盡快與您聯繫)

cloud shell 圖示的螢幕擷取畫面

Cloud Shell 就像是一個執行 Bash Shell 的小型 VM,隨附功能。事實上,已經安裝 MySQL 和 MySQL Shell 以及各種 OCI 工具。因此,啟動需要一分鐘的時間,但當我們能夠在您的瀏覽器中直接在 CLI 中執行許多作業時。

Shell 啟動之後,請使用下列方式建立 SSH 金鑰:

ssh-keygen -b 2048 -t rsa

只要按下 Enter 鍵即可 (接受預設檔案名稱且不使用密碼繼續進行作業),然後公用 (~/.ssh/id_rsa.pub) 和專用 (~/.ssh/id_rsa) SSH 金鑰即可開始使用。

讓我們 cd ~/.ssh 和 ls -al 看看內部的內容:

雲端 Shell 主控台螢幕擷取畫面

如果這是您第一次在 Cloud Shell 建立 SSH 金鑰,您應該只會看到這兩個檔案。確保私密金鑰安全,不分享。部分活動將需要公開金鑰,並可上傳至部分系統,也可複製並貼上以促進雲端中的安全通訊。

離開 Cloud Shell 之前,我們會想要擷取公開金鑰。開啟「記事本」之類的文字編輯器,如果您還在 Cloud Shell 中,請使用 cat ~/.ssh/id_rsa.pub 複製記事本的 id_rsa.pub 內容,選取該文字的 blob (即您的金鑰),然後貼到您選擇的文字編輯器中。檔案開頭應該是 ssh-rsa。您也可以按一下 Cloud Shell 右上角的火箭,然後選取「下載」。請輸入公開金鑰的路徑 :

cloud shell 下載的螢幕擷取畫面

公開金鑰將會放置在您的作業系統針對下載的檔案所指定的資料夾中。對 .ssh/id_rsa 執行相同動作 (私密金鑰),並將其儲存在安全的位置。在 Mac 或 Linux 上,請確定 chmod 400 私密金鑰檔案。

OCI Cloud Shell

由於您已經使用 Cloud Shell,讓我們從此處快速重新整理。因為已經安裝這些工具,所以您可以透過 MySQL Client 或 Shell 連線。在我們的範例中,我們將使用 MySQL Shell。

首先,您必須將 Cloud Shell 的網路設定變更為專用。

cloud shell 網路設定的螢幕擷取畫面

出現提示時,請選取部署 MySQL 執行處理的 VCN 和子網路,然後 [ 連線至此網路 ]。

注意:此功能位於您的原建立區域。如果您尚未在該處部署 MySQL,可以依照提示中的指示建立遠端 VCN 對等互連。

登入資料庫的時間:

mysqlsh -uadmin -p -h 10.0.1.... --sql

出現提示時,請輸入您在建立資料庫系統時所指定的密碼。

如果您在建立資料庫時載入範例資料,您可以執行快速查詢來驗證資料庫的內容:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

DIY 堡壘主機

計算時間!前往 [ 運算 ] > [ 執行處理 ]。維持與之前相同的區間,然後按一下「建立執行處理」。提供名稱,保留選取的可用性網域和資源配置。選取您最愛的 Linux 風格的映像檔。在此範例中,我們使用的是 Oracle Linux 8。

此處的重要部分是使用您先前設定的 VCN。選取已建立且確定「指定公用 IP 位址」設為「是」的公用子網路。

在 [Add SSH keys] (新增 SSH 金鑰) 區段中,貼上記事本的公開金鑰。

然後按一下「建立」來啟動它!當然需要幾分鐘的時間。

變為綠色且在執行中之後,執行處理頁面會顯示執行處理存取下的公用 IP 位址和專用 IP。

複製並儲存公用 IP。

現在,我們將從堡壘主機連線至 MySQL 資料庫系統。

因此,您現在擁有運算執行處理的公用 IP、專用 SSH 金鑰以及資料庫系統的專用 IP。我們會將前兩個項目放在一起,透過 SSH 連線。指向私密金鑰所在的位置,而使用者名稱將會是 opc。

例如 (Mac OS 或 Linux 終端機;Windows 上的 PowerShell):

ssh -i ~/.ssh/id_rsa opc@<your_compute_instance_ip></your_compute_instance_ip>

讓我們使用 MySQL Shell 安裝 (只回答所有提示:

sudo yum install mysql-shell -y

您的端點將會是您先前複製到記事本中的專用 IP。當然也需要您先前備妥之資料庫的密碼。

例如:

mysqlsh -uadmin -p -h 10.0.1.... --sql

出現提示時,請輸入您在建立資料庫系統時所指定的密碼。

如果您在建立資料庫時載入範例資料,您可以執行快速查詢來驗證資料庫的內容:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

OCI 管理的堡壘主機

OCI 堡壘主機服務可讓您在虛擬雲端網路內的專用資源中,輕鬆建立安全、暫時的連線。由於 MySQL 是完全受管理的資料庫系統,因此無法連線至作業系統。我們會改為透過堡壘主機服務建立安全通道,然後利用 MySQL Workbench 進行連線。

若要開始使用,請瀏覽至 OCI 主控台中的 Security -> Bastion。建立堡壘主機執行處理 - 這基本上是特定階段作業組態的容器。

接著,建立一個階段作業。類型將是 SSH 連接埠轉送階段作業。您必須輸入 MySQL 執行處理的專用 IP 位址以及資料庫連接埠 (預設為 3306)。這個練習是讓您使用的 SSH 金鑰組。在實際世界中,您應該產生不同的金鑰組。

按一下 [ 建立階段作業 ]。

階段作業成功建立後,您可以按一下右側的 3 點功能表來檢視 SSH 命令。將命令複製到文字編輯器,並以先前建立 / 下載之金鑰的完整路徑取代 。將 取代為您計畫連線之機器上的本機連接埠。您可以使用任何可用的連接埠。

若為 Mac 或 Linux,您可以開啟終端機視窗並執行命令。在 Windows 上,請使用 PowerShell。如果系統提示您繼續連線,請輸入 'yes',然後按 Enter 鍵。

接著,開啟您的資料庫從屬端 (即 MySQL Workbench) 並設定連線。

  • 主機名稱:127.0.0.1
  • 連接埠:3306
  • 使用者名稱:admin (在我的案例中)
  • 密碼:[ 儲存於 Vault ...]

按一下 [ 測試連線 ] - 如果一切都正常,您應該會看到:

mysql workbench 的螢幕擷取畫面 - 已順利連線

儲存您的設定並開啟連線。現在您可以繞過現有和 (或) 載入新資料。

正在將資料載入 HeatWave 叢集

此時,我們已準備好將資料從 InnoDB 載入至 HeatWave,以便我們確實能夠啟動新事物。

讓我們跳回 MySQL shell,以便開始載入資料。

在命令行:

mysqlsh -uadmin -p -h 10.0.1... --sql

輸入您的資料庫密碼。

使用「自動平行載入」命令將 airportdb 表格載入 HeatWave:

CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL);

確定表格已載入 HeatWave 叢集中。載入的表格具有 AVAIL_RPDGSTABSTATE 載入狀態。

同樣的,在 MySQL Shell 中:

USE performance_schema;

它會告訴您預設綱要已設為 performance_schema。

SELECT NAME, LOAD_STATUS FROM rpd_tables,rpd_table_id WHERE rpd_tables.ID = rpd_table_id.ID;

當然,您可以從此處執行查詢,並執行您需要的所有資料庫功能。您也可以開啟或關閉 HeatWave 來比較查詢時間,並查看這些執行與開啟 HeatWave 的速度。

若要查看 HeatWave 是否已開啟,請使用下列命令:

SHOW VARIABLES LIKE 'use_secondary_engine%';

若要將它關閉,請使用:

SET SESSION use_secondary_engine=OFF;

如果要再次開啟它,請使用:

SET SESSION use_secondary_engine=ON;

如果您需要從 HeatWave 叢集卸載表格,只需更改表格,如下所示:

ALTER TABLE flightschedule SECONDARY_UNLOAD;

管理 HeatWave 叢集

建立 HeatWave 叢集之後,您仍然可以調整節點數目。您可以使用資料庫系統中的 HeatWave 功能表項目編輯叢集來執行此操作。請注意,叢集已線上調整大小,作業期間不會發生停止工作的情形,且資料會在調整大小後自動重新平衡。

您也可以選擇預估想要分析之資料量所需的節點數目。產生預估可能需要幾分鐘的時間,但有助於猜測叢集大小正確無誤。如果預估工具建議變更您的組態,就可以在該處套用。

您可以隨時選擇停止您的 HeatWave 叢集 (計費也會停止),或重新啟動以重新整理叢集。透過停止或重新啟動動作停止 HeatWave 叢集時,會遺失 HeatWave 叢集記憶體中載入的資料。當您啟動或重新啟動叢集時,任何先前載入的資料都會自動重新載入。停止 HeatWave 時,資料庫內發生的資料變更會包含在重新載入的資料中。

刪除 HeatWave 叢集

刪除 HeatWave 叢集會永久移除 HeatWave 叢集節點。附加 HeatWave 叢集的資料庫系統不受影響。請記住,刪除後,必須再次從頭設定叢集,這表示將資料重新載入 HeatWave。

摘要

這總結了我們對 OCI 上 MySQL HeatWave 連線策略和管理功能的詳細回顧。我們瞭解如何透過各種通道連接資料庫系統、如何載入 / 卸載 HeatWave 中的資料,以及如何開啟和關閉次要引擎。您可以從此處嘗試執行一些查詢,或甚至將自己的資料載入,看看 HeatWave 的速度如何!

如需 MySQL HeatWave 的詳細資訊,請閱讀此處的文件

想要深入瞭解嗎?加入我們公開的 Slack 頻道中的討論!

本頁面是機器翻譯的。