跳轉到主要內容
公司博客上

事務數據遷移到一個使用AWS DMS三角洲湖

簡化大數據管道進行變化數據捕獲(CDC)使用AWS (DMS)和三角洲湖泊數據庫遷移服務

2019年7月15日 公司博客上

分享這篇文章

在磚試試這個筆記本

注意:我們也推薦你閱讀高效的插入到數據與磚湖泊三角洲這解釋了使用MERGE命令做高效的插入和刪除。

挑戰與移動數據從數據庫數據湖泊

大型企業正在事務性數據分散在異構數據集市位置集中數據湖。業務數據正日益被合並在一個湖消除數據孤島,獲得洞見和構建人工智能的數據產品。然而,構建數據從各種各樣的湖泊不斷變化的事務數據庫和保持數據更新湖泊是極其複雜的,可以操作的噩夢。

傳統的解決方案使用特定於供應商的CDC工具或Apache火花TM直接JDBC攝取不實用的典型的用戶場景代表如下:

(一)數據來源通常跨越on-prem服務器和雲與成千上萬的數據源和表等數據庫PostgreSQL, Oracle和MySQL數據庫

(b)業務SLA的變化數據捕獲數據湖是在15分鍾

(c)數據發生了不同程度的所有權和數據庫連接的網絡拓撲。

在上麵,等場景構建一個數據使用三角洲湖和湖AWS數據庫遷移服務(DMS)遷移曆史和實時事務數據證明是一個優秀的解決方案。這篇博客穿過另一個容易的過程構建可靠的數據湖泊使用AWS服務(AWS DMS)和數據庫遷移三角洲湖,將來自多個RDBMS數據源的數據。然後,您可以使用磚統一的分析平台Beplay体育安卓版本先進的實時和曆史數據的分析。

得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖。

三角洲湖是什麼?

三角洲湖是一個開源存儲層,數據可靠性湖泊。三角洲湖提供ACID事務,可擴展的元數據處理,結合流媒體和批量數據處理。湖三角洲湖上運行你的現有數據,與Apache火花api完全兼容。

具體來說,三角洲湖提供:

  • ACID事務上的火花:可序列化的隔離級別確保讀者永遠見不一致的數據。
  • 可擴展的元數據處理:利用火花的分布式處理能力來處理所有數十億的pb級別的元數據表文件自在。
  • 流和批處理統一:一個表在三角洲湖是一批表以及流源和下沉。流媒體數據攝取、批曆史回填,隻是工作的交互式查詢。
  • 模式執行:自動處理模式變化,防止插入在攝入的不良記錄。
  • 時間旅行:數據版本控製使回滾,全部曆史審計跟蹤,可再生的機器學習實驗。
  • 與托管三角洲湖upsert磚(也即將開源三角洲湖):MERGE命令允許您高效地插入和刪除記錄的數據湖泊。合並極大地簡化了如何建造一些公共數據管道;所有複雜的種過程效率低下重寫整個分區現在可以被簡單的合並查詢。這種細粒度更新功能簡化了如何構建大數據管道的變化數據捕獲AWS DMS的更新日誌。

AWS數據庫遷移服務(DMS)是什麼?

AWS DMS可以遷移的數據使用最廣泛的商業和開源數據庫S3的現有數據遷移和變化的數據。服務支持從不同的數據庫平台遷移,如Oracle MySQL亞馬遜極光或Microsoft SQL Server。Beplay体育安卓版本與AWS數據庫遷移服務,您可以不斷複製與高可用性和鞏固數據庫的數據流數據從任何Amazon S3支持來源

數據遷移到三角洲湖使用AWS數據庫遷移服務

假設您有一個"人"表建立在一個MySQL數據庫保存應用程序用戶數據記錄與顯示的列。更新表隻要一個人移動,新添加和現有的人可能會被刪除。我們將攝取這個表使用AWS DMS使用三角洲湖到S3,然後加載它展示一個例子,攝取和保持數據湖同步事務數據存儲。我們將演示在MySQL中變化數據捕獲這個表和使用AWS DMS複製更改為S3和容易合並到數據使用三角洲湖湖。

體係結構

在這個解決方案中,我們將使用DMS的數據源為最初的攝取和Amazon S3連續更新。我們從S3湖成三角洲加載初始數據表,然後使用三角洲湖的插入功能捕捉到三角洲湖表的更改。我們將三角洲湖上運行分析表,同步與原來源獲得業務洞察力。下圖演示了解決方案:

三角洲湖上可用的數據之後,您可以很容易地使用儀表板或BI工具來生成智能報告獲得的見解。還可以再進一步和使用數據構建毫升模型與磚。

解決方案的細節

對於這篇文章的目的,我們創建一個RDS數據庫MySQL引擎然後加載一些數據。在現實生活中,可能有超過一個單一的源數據庫;在這篇文章中描述的過程仍將是相似的。

按以下步驟在教程:創建一個Web服務器和一個Amazon RDS數據庫創建源數據庫。使用教程主頁的鏈接來查看如何連接到特定的數據庫和數據加載。有關更多信息,請參見:創建一個數據庫實例運行MySQL數據庫引擎

記下你創建的安全組,並將所有RDS實例與它。稱之為“TestRDSSecurityGroup”。之後,您應該能夠看到數據庫中列出的RDS實例儀表板。

設置目標S3 bucket

設置兩個S3 bucket如下所示,一個用於批量初始載荷,另一個用於增量變化數據捕獲。

在下一步中,選擇公開非生產使用配置簡單。同時,為簡單起見,選擇相同的VPC有放置的RDS實例和包括TestRDSSecurityGroup安全組允許訪問列表。

設置了DMS

您可以設置DMS,表明AWS數據庫遷移服務博客文章。你可以采取循序漸進的方法如下:

  1. 創建一個複製實例。
  2. 為源數據庫和目標創建端點S3 bucket你建立在前一個步驟。
  3. 創建一個任務同步的每個源到目標。
創建端點

在DMS控製台,選擇端點,創建端點。您需要配置端點代表數據庫MySQL RDS。您還需要創建目標端點通過提供您在前麵的步驟中創建的S3 bucket。配置後,端點類似於以下截圖:

創建兩個任務,開始數據遷移

你可以依賴DMS遷移表(s)在你的目標Amazon S3 bucket

在DMS控製台,選擇任務,創建任務。填寫字段如下截圖所示:

  1. 遷移任務初始載荷:

  1. 疾控中心的遷移任務:

注意,給定源RDS MySQL和你選擇遷移數據複製的持續變化,您需要啟用本日誌保留。其他引擎有其他需求和DMS相應提示您。對於這種特殊情況下,運行以下命令:

叫mysql。rds_set_configuration (binlog保留時間,24);

都已經成功完成任務後,任務選項卡現在看起來像下麵的:

確保數據遷移工作:
  1. S3 bucket檢查初始數據加載:

示例行:

2。做一些更改源數據庫和表的人注意,更改遷移到S3
插入人(id、first_name、last_name、電子郵件、性別、強加於人,地址,城市,州)值(“1001”,“阿倫”、“Pamulapati”,“(電子郵件保護)','女',' 4604 ',' 1959-05-03特拉華州結”、“加斯托尼亞”、“數控”);更新人設置狀態=“MD”id = 1000;刪除從一個人那裏id = 998;更新人設置狀態=“CA”id = 1000;

更改日誌:

初始遷移數據加載到三角洲湖

我們將創建三角洲湖表從最初的加載文件,您可以使用SQL代碼火花從拚花和改變格式,csv, json,等等,三角洲。對於所有類型的文件,你的文件讀入DataFrame和寫出三角洲格式:

personDF = spark.read.option(“標題”,真的).option (“InferSchema”,真正的)。csv (“/ mnt / % s /阿倫/人/”% initialoadMountName) personDF.write.format .save(“δ”)(“/δ/人”)火花。sql(“創建表的人使用三角洲位置/δ/人/”)
將增量數據合並到三角洲湖

我們將使用三角洲結合能力捕捉改變登錄三角洲湖。

personChangesDF = (spark.read。csv (“dbfs: / mnt / % s /阿倫/人”% changesMountName, inferSchema = True,頭= True, ignoreLeadingWhiteSpace = True, ignoreTrailingWhiteSpace = True)) personChangesDF.registerTempTable (“person_changes”)合並使用(選擇Op, latest_changes到個人目標。id, first_name、last_name、電子郵件、性別、強加於人,地址,城市,州,create_date, last_update person_changes latest_changes內連接(選擇id,馬克斯(last_update) MaxDate person_changes組的id) latest_changes厘米。id =厘米。id和latest_changes。last_update = cm.MaxDate)作為源在來源。id = =目標。當匹配和源id。Op = ' D '然後刪除當匹配不匹配時更新設置*然後插入*

注意:

1)您可以使用磚工作功能調度中心合並基於sla和將變更從CDC S3存儲桶到存檔成功後合並保持合並最近和小載荷。在磚的工作平台是一種運行一個筆記本或JABeplay体育安卓版本R立即或在預定的基礎上。您可以使用UI創建和運行工作,CLI,通過調用API的工作。類似地,您可以監視工作運行結果在UI中,使用CLI,通過查詢API,並通過電子郵件警報。

2)性能初始載荷的大型表更願意利用火花土生土長的並行性使用JDBC讀取或聘用DMS最好實踐使用AWS數據庫遷移服務(AWS DMS)最有效。

結論構建一個簡單的數據管道和一個可靠的三角洲湖

在這篇文章中,我們展示了使用三角洲湖攝取和增量捕獲變化從RDBMS數據源使用AWS DMS構建簡單,可靠和經濟數據湖泊與簡單的配置和最少的代碼。你也使用磚筆記本上創建一個數據可視化數據集來為您提供更多的見解。

在磚試試這個筆記本

免費試著磚

相關的帖子

看到所有公司博客上的帖子
Baidu
map