導入數據中文亂碼_基于Navicat和Kettle的數據遷移完全解讀(多圖)

需求描述

對于數據分析人員來說,工作的基礎是數據,沒有數據分析就無從談起,即巧婦難為無米之炊。

#數據庫# #數據遷移# #Oracle#

然而,數據分析往往在實驗環境或者準生產環境中開展,而數據分布在生產環境,因此需要將生產環境的部分數據導入到準生產環境中。因為網絡隔離和權限管理的原因,無法直接在生產庫和準生產庫之間應用數據遷移工具。目前的辦法是:將生產庫中的數據以數據文件形式導出,然后通過安全手段傳送到準生產環境,然后在準生產環境中應用Kettle等數據遷移工具實現數據的導入。

下面的實驗路徑如下:生產數據文件-->Mysql臨時庫-->準生產Oracle庫。

e6de28ee0bc0f667aed3d9ab58db19f4.png

Logo

將數據導入到MySQL臨時庫中(基于Navicat)

使用Navicat的導入向導可以便捷地將文本文件中的數據導入到Mysql庫中,從而為下一步通過Kettle遷移至Oracle做準備,同時可以做一些臨時性的分析。具體導入步驟如下:

1.選擇數據庫下面的【表】,選擇【導入向導】

58c447c6a5d5920ebae39c743f92d3b8.png

導入向導

2.選擇要導入的數據文件格式,常見的txt、csv、excel等。

87161176fd4d388957d03870caa95b5d.png

選擇文件格式

3.選擇分隔符。如果是csv文件的話保持默認就可以了,如果是用|等分割的txt文件,則需要進行調整。

c35f32f4e5342ed86bc63841c413b950.png

選擇分隔符

4.選擇目標表。選擇要把數據導入的數據表,可以是不存在的表,也可以是已存在的表。不存在的表需要新建,已存在的則需要去掉新建表下面的勾選。

d9984cae7a140ac54eb5c3e036789dfe.png

選擇數據表

5.調整表結構。在這一步,可以看到從文本文件中解析出來的表結構,即字段名稱、字段類型等,同時可以根據需要對字段類型、長度和主鍵進行設定。我們這里先不做任何調整,看看后面什么結果。

25ce079ce28aade35da0b62c8a762bf5.png

調整表結構

6.附加選項。設定文本文件的起始和結束行數,設定首行是否為列名,設定日期和數值型數據的格式等。

690ff048093c92633e1a998b46d8ac31.png

附加選項

7.選擇導入模式。選擇數據導入模式,有追加、更新、刪除、復制等幾種模式,我們選擇“復制”,即新建表并將數據導入其中。

2d79037660d079e73695be632ea7f3ab.png

8.開始導入(失敗)。在第7步的基礎上執行下一步,然后點擊開始,執行導入操作。很遺憾,導入失敗,報“row size too large.XXXXX”的錯誤(見下圖)。

這個錯誤是因為,在前面的設置中,我們將每個字段都設置為Varchar類型且長度為255,且寬表字段數量N過多(N>100),255*N超出了Mysql的限制(65535)。因此,解決方法是調整字段類型及長度,使之低于Mysql的限制。

366746147c479194de3121bc78d65ee9.png

開始導入

e8156afa006a06e4bf9f6617e1257a9a.png

導入報錯

9.按需調整字段類型及長度,這里主要調整的是長度,由255調減至32,夠用了。

c893fd0710811564af3dd5e0a6555f9a.png

調整字段類型長度

10.再次導入(成功)。調整完字段類型及長度后,再次執行導入,顯示導入成功,驗證發現數據確已入庫。

3960036ae275e562ac7822dfcbc407a4.png

再次導入

8eff297fc8211ebccbcccf485997c95b.png

數據驗證

Mysql數據向Oracle遷移(基于Kettle)

基于Navicat完成了數據文件的導入之后,下一步就是利用Kettle實現數據在Mysql數據庫和Oracle數據庫上的遷移,具體操作過程如下:

1.新建轉換。打開Kettle,新建轉換,為數據遷移做準備。

c4119d29da664596402edf68c2cf0d4c.png

新建轉換

2.選擇表輸入并將表輸入組件拖入主功能區。

be39f23bdd5e38e9ffd0e7ba2cbf21bb.png

選擇表輸入

3.編輯表輸入節點并選擇源數據庫類型,這里選擇Mysql。

44efee6b73463cf32bfa23af27c55c15.png

編輯表輸入

b8495a2d775bf2880e553f5b5783a72b.png

選擇源數據庫

4.完成數據庫連接的配置。包括主機名、端口、數據庫名稱、數據表、用戶名、密碼等,通過測試可驗證數據庫是否已正確連接。

37360a1faec84e9206b0188b97dd7dea.png

配置數據庫連接

bfb260be2844768d86ddfd425d28523e.png

5.完成表輸出配置。完成表輸入配置后,選擇表輸出并拖至主功能區,按照表輸入配置的方式完成表輸出的配置,只是這里要配置Oracle的數據庫連接,包括主機名、數據庫、數據表、用戶名、密碼、端口等。同樣的,可以通過測試驗證是否已連接成功。

23acfd4331001c31e5b398d9ea8c6664.png

表輸出配置

2c94219cf8206ba4e6e9c9cb54caa246.png

表輸出測試

6.建立表輸入與表輸出的連接,即在主功能區中,點擊表輸入的箭頭并拖至表輸出的箭頭處。

7eeab22a8e0352951a41759a76252a4e.png

建立輸入節點和輸出節點的連接

7.啟動轉換(失敗)。點擊主功能區左上角的三角形按鈕,啟動轉換。

很遺憾,轉換失敗,表輸出節點上出現了紅色標識。通過查看日志發現,這是因為在表輸出中配置的數據表不存在,導致數據無法插入。所以,解決的辦法就是新建數據表。如果通過create新建就太吃力了,還好可以通過配置解決,詳見第8步。

5ffb6c057a22255b1e478d4b1cc35707.png

啟動轉換

a64782a2a6c36410cc48a43a4c98cf31.png

啟動轉換

73104607f61c0195f0cefbfd18bc232e.png

轉換失敗

8.建立輸出數據表。在Oracle數據連接配置界面中,選擇【數據庫字段】,然后點擊【獲取字段】,選擇Mysql數據庫中的輸入表,即可自動生成目標表的建表語句,執行建表語句即可完成目標表的構建。

4cd66b80f03c444c32acc551a18216a5.png

獲取字段

e9393066e936e7aded5dffa9a177776d.png

選擇mysql表

9.啟動轉換(成功)。再次啟動轉換,沒有報錯,意味著轉換成功。

9d89a2267ccefa01576e67390259672c.png

轉換成功

中文亂碼,如何解決?

完成Mysql向Oracle的數據遷移后,通過PL/SQL查詢發現數據表中的中文亂碼,顯然這是因為兩邊數據編碼不一致造成的,解決方法就是配置編碼使兩邊保持一致。

1.查看Oracle的數據編碼,可以看出是GBK,下一步就是把Mysql的編碼調整成GBK。

e44c46224e18460e5d0c4285d7bb5b83.png

查看Oralce編碼

2.配置Mysql編碼。在表輸入的配置環節,在【高級】中增加“set names gbk;”,在【選項】中增加“characterEncoding:gbk”。

b2ef8e7bb5ad0dd9f37d370e60d0737a.png

set names gbk

bf369d4c93fe9c854386f2e44984e8b2.png

characterencoding:gbk

3.配置完成后,再次執行轉換任務,驗證發現中文正常顯示。

5518896a91d5b0557566dfce99fcbb1a.png

數據驗證

總結

本文通過一個具體的業務場景逐步介紹了數據的遷移過程,總結如下:

  1. Navicat提供了較好的數據導入工具,可以實現數據文件的快速入庫。
  2. Kettle可以快捷地實現數據在異構數據庫中的遷移,配置項豐富,操作簡單。
  3. 使用Navicat進行數據導入時,要注意設置合理的表結構,不能超過Mysql限制,否則會導入失敗。
  4. 在使用Kettle進行數據在Mysql和Oracle中的遷移時,一是要確保目標Oracle表的存在,如不存在則需要配置或新建,二是要注意編碼一致,避免出現總問亂碼。

我是會說科技,關注我,一起聊聊數據、科技、IT、安全、金融那些瑣事。####

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533103.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533103.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533103.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎樣能確保計算機安全,如何確保電腦安全

如何確保電腦安全電腦安全問題層出不窮,如何確保電腦安全呢?下面是小編分享的一些方法,一起來看一下吧。一、關閉默認共享大部分的電腦系統在默認的情況下都是自動開啟網絡共享設置的,Win7系統也不例外,該功能主要是為了用戶能夠…

點云平面提取_基于LiDAR點云數據濾波方法

基于LiDAR點云數據濾波方法機載激光雷達所獲取的數據被稱為“點云(points cloud)”它在三維空間中呈現出隨機分布的形狀。在點云中,有些點屬于真實的地形表面的點,有些點屬于人工建筑物塔、輸電線、橋等或自然植被如樹、灌木、草、其他植物。激光雷達數據…

全國計算機一級書紅色封面,年度最強的網紅錄取通知書,竟然附贈了一張黑膠唱片...

這兩天世超被一張來自中國科學院大學的錄取通知書給刷屏了,這份錄取通知書里還附贈了一張黑膠光盤。光盤上刻錄了一份國科大為新生準備的特別的禮物 —— 一段來自宇宙深處的聲音。它們是由國科大師生通過 500 米口徑球面射電望遠鏡( FAST )捕獲的 15 顆脈沖星信號&…

動態新增表字段_制作動態的數據透視表(一):定義名稱法創建數據透視表

——施瓦辛格:沒有跌倒過的人不會成功。我們的日常工作中,會經常遇到一種情況:創建好數據透視表后,有其他被遺漏的數據內容需要重新插入到數據源后,有其他被遺漏的數據內容需要重新插入到數據源中;或者是需…

計算機中除法的函數英文,EXECL中哪一個英文是算除法的?-excle 除法的英文

Excel中除法的函數是哪個?Excel中除有具體的函數,需要使用操作方法才行下:1、創個Excel工作表,填入數值一、數兩列,開始進行第三列的除法數值計算。2、將鼠標放到想要求除法數值結果的格內,在Excel工作表上部找到fx選…

計算機公式or,【轉載】 odds、OR和RR的計算公式和實際意義

1. OddsOdds 的意思為機率、可能性,是指某事件發生的可能性(概率)與不發生的可能性(概率)之比。假如某藥物有療效的比例為p1,則無效的比為1-p1,則odds的計算公式為:對于如下表所示的四格表,患病組的中暴露的概率(以實測…

mysql日期格式化季度_mysql 按年度、季度、月度、周、日SQL統計查詢

一、年度查詢查詢 本年度的數據SELECT *FROM blog_articleWHERE year( FROM_UNIXTIME( BlogCreateTime ) ) year( curdate( ))二、查詢季度數據查詢數據附帶季度數SELECT ArticleId, quarter( FROM_UNIXTIME( BlogCreateTime ) )FROM blog_article其他的同前面部分&#xff1a…

js 創建keyframe_javascript – 查找特定的CSS @keyframes規則

我想用JavaScript調整CSS中的特定keyframes-rule.這一切都適用于以下代碼:CSS:-webkit-keyframes changecolor {0% { color: red; }100% { color: green; }}keyframes changecolor {0% { color: red; }100% { color: green; }}JavaScript的:f…

計算機發展史評課議課稿,評課議課記錄范文

2、由分母是1的真分數直接到結論后,把預設時推廣到一般規律的環節掉了,致使本節課在思維上不太嚴密。學生的思維更沒有真正地融于規律的理解中去。其實太多的意外,其原因根源在于自己想關注課堂的生成卻無機智的應變能力,在學生直…

系統相機裁剪比例_拍照時圖片比例怎么選?比構圖還要提前一步的攝影攻略要做好...

談到攝影第一步,很多人都在說構圖,但是比構圖還要提前一步的,是選擇合適的拍攝比例。在拍照時,始終是把要拍的東西裝進設備的取景器里面,所以取景器的比例是16:9,還是4:3或者其他,就直接影響了我…

計算機常用主題詞,標引主題詞的目的是( )。A.反映文件的全部內容B.便于計算機檢索和管理C.供歸_考題寶...

閱讀短文,回答下列各題: Mr.Black was young and able.The boss liked him.Last month he was sent toChina on business.Before hewent back from China,he decided to buy something for Tony…

源碼安裝mysql_CentOS 7中源碼安裝MySQL 5.7.16 (親測成功)

最近在CentOS 7中源碼安裝MySQL 5.7.16,發現MySQL5.7.6以后的安裝方式真的與以前版本的MySQL安裝方式大大的不同呀。不自己安裝一把,下面這篇文章是通過自己的安裝過程總結的一篇安裝教程,有需要的朋友們可以參考借鑒,下面來一起看…

css動畫定義,CSS3中Animation動畫的定義和調用

現在經常會看到一些門戶網站的專題使用到CSS3的動畫,咋也不能落伍,在此這梳理下動畫知識吧,便于后面用到。接下來介紹下Animation動畫的定義和調用,在介紹Animation之前需要了解下Keyframes,英文意思就是關鍵幀&#x…

mysql5.7+proxy_mysql 5.7+mysql-proxy 0.8.5 讀寫分離

主從環境:mysql操做系統:CentOS6.5_x64linux主服務器Master:192.168.0.103sql從服務器Slave:192.168.0.105后端調度服務器MySQL-Proxy:192.168.0.104服務器1、mysql主從復制tcp2、mysql-proxy實現讀寫分離測試一、安裝…

flask ajax 文件上傳,python flask使用ajax請求上載文件。文件為空

我正在嘗試上傳一個大約1.62MB的圖像到一個用燒瓶寫的終點。request.files對象始終為空。我檢查了以下問題,但沒有成功:這是我的服務器:from flask import Flask, request, jsonify, render_templateimport sysapp Flask(__name__)app.config[UPLOAD_FOLDER] r"C:\Temp&…

mysql 賬戶管理_Mysql賬戶管理原理與實現方法詳解

本文實例講述了Mysql賬戶管理原理與實現方法。分享給大家供大家參考,具體如下:賬戶管理在生產環境下操作數據庫時,絕對不可以使用root賬戶連接,而是創建特定的賬戶,授予這個賬戶特定的操作權限,然后連接進行…

宏脈系統怎么改服務器地址,宏脈系統使用手冊大全.doc

WORD資料下載可編輯專業資料分享目錄TOC \o "1-3" \h \u HYPERLINK \l _Toc16722 第一章 通用功能鍵說明 PAGEREF _Toc16722 4HYPERLINK \l _Toc15100 1.1功能鍵的使用說明 PAGEREF _Toc15100 4HYPERLINK \l _Toc5198 1.2 打印設置 PAGEREF _Toc5198 8HYPERLINK \l _…

navicat for mysql 用戶_Navicat for MySQL 怎么/怎么添加管理用戶?Navicat for MySQL 添加管理用戶教程_37游游網...

【37游游攻略】為了保證數據庫的安全,對操作用戶分級授權是非常有必要的,Navicat for MySQL 給我們提供了一個非常強悍又非常便捷的用戶管理系統。點擊位于連接右側的用戶命令,隨之彈出管理用戶的界面,Navicat for MySQL 系統默認…

ajax實現向上正在加載,向上滾動或者向下滾動分頁異步加載數據(Ajax + lazyload)

/****desc : 分頁異步獲取列表數據,頁面向上滾動時候加載前面頁碼,向下滾動時加載后面頁碼ajaxdata_url ajax異步的URL 如data.phppage_val_name ajax異步的URL中的頁碼參數名 如pagenopage_no 初始加載頁碼,默認1 [如2,則與前面兩參數結合為…

js如何上傳大文件到服務器,js將文件上傳到遠程服務器

js將文件上傳到遠程服務器 內容精選換一換將文件上傳至Windows云服務器一般會采用MSTSC遠程桌面連接的方式。本節為您介紹本地Windows計算機通過遠程桌面連接,上傳文件至Windows云服務器的操作方法。Windows云服務器可以訪問公網。在本地Windows計算機上&#xff0c…