使用 Logstash 將現場部署 Oracle 資料庫遷移至 Amazon OpenSearch 服務 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Logstash 將現場部署 Oracle 資料庫遷移至 Amazon OpenSearch 服務

由阿迪亞·戈特蒂(AWS)創建

環境:PoC 或試點

來源:甲骨文數據庫

目標:Amazon OpenSearch 服務

R 類型:重新平台

工作量:甲骨文

技術:移轉;資料庫

AWS 服務:Amazon OpenSearch 服務

Summary

此模式說明如何使用 Logstash 將資料從現場部署 Oracle 資料庫移至 Amazon OpenSearch 服務。它包括架構考量,以及一些必要的技能和建議。資料可以來自單一資料表,也可以來自需要執行全文檢索搜尋的多個資料表。 

OpenSearch 服務可以在虛擬私有雲(VPC)中進行配置,也可以在基於 IP 的限制下公開放置。此模式描述了 VPC 中配置 OpenSearch 服務的案例。Logstash 用於從 Oracle 數據庫中收集數據,將其解析為 JSON 格式,然後將數據饋送到 OpenSearch 服務中。 

先決條件和限制

先決條件

  • 有效的 AWS 帳戶

  • Java 8(由登錄信息 6.4.3 所需)

  • 使用 AWS 虛擬私有網路 (AWS VPN) 建立的 VPC 中的現場部署資料庫伺服器與 Amazon 彈性運算雲端 (Amazon EC2) 執行個體之間的連線

  • 用於從資料庫擷取要推送至 OpenSearch 服務的必要資料的查詢

  • 甲骨文 Java 數據庫連接(JDBC)驅動程序

限制

  • Logstash 無法識別從資料庫中硬刪除的記錄 

產品版本

  • Oracle 資料庫 12c

  • OpenSearch 客戶服務

  • 洛格斯塔什 6.4.3

架構

源, 技術, 堆棧

  • 內部部署甲骨文

  • 現場部署 AWS VPN

目標技術堆疊

  • VPC

  • EC2 執行個體

  • OpenSearch 服務 

  • Logstash

  • NAT 閘道 (適用於 EC2 執行個體上的作業系統更新,以及安裝 Java 8、記錄檔和外掛程式)

資料移轉架構

如何使用 Logstash 將資料從現場部署 Oracle 資料庫移至 Amazon OpenSearch 服務。

工具

史诗

任務描述所需技能

識別來源資料的大小。

來源資料的大小是您用來決定索引中要設定之碎片數目的其中一個參數。

DBA, 資料庫開發人員

分析每列的數據類型和相應的數據。

OpenSearch 當文檔中找到以前看不到的字段時,Service 動態映射數據類型。如果有任何特定的資料類型或格式 (例如,日期欄位) 需要明確宣告,請識別欄位並在建立索引期間定義這些欄位的對應。

應用程式擁有者、開發人員、資料

確定是否有任何具有主鍵或唯一鍵的列。

若要避免在更新或插入期間重複 Amazon Ser OpenSearch vice 中的記錄,您需要在amazon_es外掛程式的輸出區段中進行document_id設定 (例如,document_id => "%{customer_id}"其中customer_id是主索引鍵)。

應用程式擁有者、開

分析新增記錄的數量和頻率;檢查刪除記錄的頻率。

需要這項工作才能瞭解來源資料的成長速度。如果數據集中讀取並且插入很少見,則可以使用單個索引。如果經常插入新記錄且沒有刪除,則碎片大小可以輕鬆超過建議的 50 GB 大小上限。在這種情況下,您可以通過在 Logstash 和可以使用別名訪問它的代碼中配置索引模式來動態創建索引。

應用程式擁有者、開

決定需要多少複本。

應用程式擁有者、開

決定要在索引上設定的碎片數目。

應用程式擁有者、開

識別專用主節點、資料節點和 EC2 執行個體的執行個體類型。

如需詳細資訊,請參閱相關資源一節。

應用程式擁有者、開

確定所需的專用主節點和數據節點的數量。

如需詳細資訊,請參閱相關資源一節。

任務描述所需技能

啟動 EC2 執行個體。

在連接 AWS VPN 的虛擬私人 VPC 內啟動 EC2 執行個體。

Amazon VPC 構建,AWS VPN

在 EC2 執行個體上安裝記錄檔。

開發人員

安裝 Logstash 插件。

安裝所需的 Logstash 外掛程式jdbc-input和. logstash-output-amazon_es

開發人員

配置記錄信息。

建立 Logstash 金鑰儲存庫來儲存敏感資訊,例如 AWS Secrets Manager 金鑰和資料庫登入資料,然後將參考資料放在 Logstash 組態檔中。

開發人員

設定無效字母佇列和永久佇列。

根據預設,當 Logstash 遇到因為資料包含對應錯誤或其他問題而無法處理的事件時,Logstash 管線會掛起或捨棄失敗的事件。若要在此情況下防止資料遺失,您可以設定 Logstash 將不成功的事件寫入無效字母佇列,而不是捨棄它們。為了在異常終止期間防止資料遺失,Logstash 具有永久佇列功能,可將訊息佇列儲存在磁碟上。持續性佇列提供 Logstash 中的資料耐久性。

開發人員

創建 Amazon OpenSearch 服務域。

使用不需要使用 AWS Identity and Access Management (IAM) 登入資料簽署請求的存取政策建立 Amazon OpenSearch 服務網域。Amazon OpenSearch 服務域必須在同一個 VPC 中創建。您也應該選取例證類型,並根據您的分析設定專用節點和主節點的數目。

開發人員

設定所需的 Amazon OpenSearch 服務日誌。

如需詳細資訊,請參閱OpenSearch 服務文件

建立索引。

開發人員

啟動記錄儲存。

以背景服務的形式執行記錄檔。Logstash 運行配置的 SQL 查詢,提取數據,將其轉換為 JSON 格式,並將其饋送到 OpenSearch 服務。對於初始載入,請勿在 Logstash 組態檔中設定排程器。

開發人員

檢查文件。

檢查索引上的文檔數量,以及是否所有文檔都存在於源數據庫中。在初始加載期間,它們被添加到索引中,並用於停止 Logstash。

變更 Logstash 組態以新增根據用戶端需求以固定間隔執行的排程器,然後重新啟動 Logstash。Logstash 只會挑選上次執行之後更新或新增的記錄,而上次執行時間戳記會儲存在使用 Logstash 組態檔案中屬性設定的檔案last_run_metadata_path => “/usr/share/logstash/.logstash_jdbc_last_run”中。

開發人員

相關資源