91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

發布時間:2022-02-25 10:30:29 來源:億速云 閱讀:272 作者:小新 欄目:大數據

小編給大家分享一下怎么將數據從Hadoop導出到關系型和NoSQL數據庫,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

實踐:使用Sqoop將數據導出到MySQL

Hadoop擅長與大多數關系型數據庫打交道,因此將OLTP數據提取到HDFS,執行一些分析,然后將其導出回數據庫是很常見的。

問題

希望將數據寫入關系數據庫,同時確保寫入是冪等的。

解決方案

此技術介紹了如何使用Sqoop將文本文件導出到關系數據庫,還介紹了如何配置Sqoop以使用具有自定義字段和記錄分隔符的文件。我們還將介紹冪等導出,以確保失敗的導出不會使數據庫處于不一致狀態。

討論

這種技術假設已經安裝MySQL并創建模式。

Sqoop導出要求導出數據庫表已存在,Sqoop可以支持表中行的插入和更新。

將數據導出到數據庫共享

我們在導入部分檢查的許多參數,不同之處在于export需要使用--export-dir參數來確定要導出的HDFS目錄,還將為導出創建另一個選項文件,以防止在命令行上不安全地提供密碼:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

第一步是將數據從MySQL導出到HDFS,以確保有一個良好的起點,如以下命令所示:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

Sqoop導入的結果是HDFS中有許多CSV文件,可以在以下代碼中看到:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

對于從HDFS到MySQL的Sqoop導出,將指定目標表應該是stocks_export并且應該從HDFS庫目錄導出數據:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

默認情況下,Sqoop導出將對目標數據庫表執行INSERT,可以使用--update-mode參數支持更新。值updateonly意味著如果沒有匹配的密鑰,更新將失敗。如果匹配的鍵不存在,則allowInsert的值將直接插入。用于執行更新的表列名稱在--update-key參數中提供。

以下示例表明只應使用主鍵嘗試更新:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

輸入數據格式

可以使用多個選項覆蓋用于解析輸入數據的默認Sqoop設置,表5.7列出了這些選項。

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

表5.7 輸入數據的格式選項

冪等輸出

執行輸出的Sqoop map任務使用多個事務進行數據庫寫入。如果Sqoop導出MapReduce作業失敗,則表可能包含部分寫入。對于冪等數據庫寫入,可以指示Sqoop執行MapReduce寫入臨時表。成功完成作業后,臨時表將在單個事務中移動到目標表,該事務是冪等的,可以在圖5.19中看到事件順序。

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

圖5.19  Sqoop分段事件序列,有助于確保冪等輸出

在下面的示例中,臨時表是stocks_staging,還告訴Sqoop在MapReduce作業以--clear-staging-table參數啟動之前清除它:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

直接輸出

在導入技術中使用快速連接器,這是使用mysqldump實用程序的優化。Sqoop導出也支持使用mysqlimport工具的快速連接器。與mysqldump一樣,集群中的所有節點都需要安裝mysqlimport,并且在用于運行MapReduce任務的用戶路徑中可用。與導入一樣, - diand參數可以使用快速連接器:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

使用mysqlimport進行冪等輸出

Sqoop不支持將快速連接器與臨時表結合使用,這就是使用常規連接器實現冪等輸入的方法。但是仍然可以通過快速連接器實現冪等輸入,并在最后進行一些額外的工作。需要使用快速連接器寫入臨時表,然后觸發INSERT語句,該語句將數據原子復制到目標表中,步驟如下所示:

怎么將數據從Hadoop導出到關系型和NoSQL數據庫

這打破了關于在命令行上公開憑證的早期規則,但是編寫可以從配置文件中讀取這些設置的腳本很容易。

看完了這篇文章,相信你對“怎么將數據從Hadoop導出到關系型和NoSQL數據庫”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元氏县| 漯河市| 抚远县| 静乐县| 泾阳县| 蓬溪县| 盐津县| 彭泽县| 紫阳县| 吴堡县| 宜都市| 城步| 都兰县| 荆门市| 文山县| 大同市| 黄冈市| 固安县| 吉林省| 延津县| 米林县| 青河县| 西乌珠穆沁旗| 五指山市| 巴彦淖尔市| 五大连池市| 湖口县| 左云县| 渭南市| 水城县| 甘泉县| 漳平市| 长海县| 永仁县| 绍兴县| 平山县| 景洪市| 昌图县| 佛山市| 昌江| 乐昌市|