DB2的資料移動:匯入(Import)匯出(Export)載入(Load)
目錄
DB2中的資料移動,包括:
1. 資料的匯入(Import)
2. 資料的匯出(Export)
3. 資料的載入(Load)
匯入和載入都是利用DB2的相關命令把某種格式的檔案中的資料儲存到資料庫中的表中;匯出是指把DB2資料庫的表中的資料儲存到某種格式的檔案當中去
資料移動的作用: 如果要在不同的資料庫管理系統之間轉移資料,資料移動通常是最實用的一種方法,因為任何一種資料庫管理系統都支援常用的幾種檔案格式,通過這個通用的介面,就很容易實現不同系統間資料的轉移。
檔案的格式
用於DB2資料移動的檔案格式有四種:
ASC = ASCII
DEL = Delimited ASCII
WSF = Work sheet format
IXF = Integrated Exchange Format
ASC 和 DEL 格式的檔案是文字檔案,可以用任何文字編輯器開啟。
WSF 格式的檔案可以將資料遷移到電子表格軟體中,例如 Excel,Lotus® 1-2-3。
IXF 格式檔案包括了資料表的資料描述語言(DDL)和裡面的資料。使用 IXF 格式是非常方便的,利用它可以重建資料表,而其他格式則沒有辦法這麼做.
當資料匯出到檔案後,使用 Import 可以將資料由檔案匯入到資料表中。如果使用 ASC,DEL 和WSF 格式的檔案作為中間檔案,在它們匯入之前資料表必須存在。而使用 IXF 格式的檔案在匯入前不需要存在相應的資料表。
1.ASC:ASC——非定界ASCII檔案,是一個ASCII字元流。資料流中的行由行定界符分隔,而行中的每一列則通過起始和結束位置來定義。
2.DEL:DEL——定界ASCII檔案,也是一個ASCII字元流。資料流中的行由行定界符分隔,行中的列值由列定界符分隔。檔案型別修飾符可用於修改這些定界符的預設值。
3. WSF:WSF——(work sheet format)為工作表格式,用於與Lotus系列的軟體進行資料交換。
4. PC/IXF:PC/IXF——是整合交換格式(Integration Exchange Format,IXF)資料交換體系結構的改編版本,由一些列可變長度的記錄構成,包括頭記錄、表記錄、表中每列的列描述符記錄以及表中每行的一條或多條資料記錄。PC/IXF檔案記錄由包含了字元資料的欄位組成。
DB2 export 工具(匯出)
DB2 UDB export 工具將資料從資料庫表寫到儲存在資料庫外面的一個或多個檔案中。export 工具使用 SQL 從表中讀取資料。export工具將資料所寫到的檔案可以是幾種標準檔案格式的一種,它僅支援三種資料檔案格式:DEL,WSF,IXF。一般是IXF或DEL。除了要指定寫到輸出檔案中的資料格式之外,還必須提供該檔案的名稱和一個用於指定輸出資料的 SQL SELECT 語句。這就是啟動基本的 DB2 匯出操作所需的所有資訊。
圖 1. DB2 EXPORT 命令的部分語法
例1:把Org表中的所有資料匯出到檔案c:\org.del中
export to c:\org.txt of del select * from org
其中,of del表示匯出到的檔案的型別,在本例中匯出到一個非定界文字檔案中;後面的select * from org是一個SQL語句,該語句查詢出來的結果就是要匯出的資料。
例2:改變del格式檔案的格式控制符
export to c:\staff.del of del modified by coldel$ chardel'' decplusblank select * from staff
檔案型別修飾符:modified by 用於控制各種符號
coldelx:指定x為新的單字串定界符,表示欄位之間的間隔符,預設情況為逗號(,),現在改為$號
chardelx:指定x為新的單字串列定界符,表示字串欄位用什麼符號引用,預設情況下為一對雙引號(" ")括起來,現在改為用一對單引號括起來。也可以無字串分隔符nochardel
decplusblank:指定對正數是否用+符號,預設帶+,可以指定不加正數符號,表示對於十進位制資料型別,用空格代替最前面的加號,因為預設情況下會在十進位制資料前面加上正負號的
striplzeros:指定移走資料前導的0,例如:+00001.8 -> +1.8
例3:大資料的匯出
export to d:\myfile.del of del lobs to d:\lob\ lobfile lobs modified by lobsinfile select * from emp_photo
該命令把emp_photo表的資料匯出到d:\myfile.del檔案中,其結果為:
;
"000130","bitmap","lobs.001.0.43690/"
"000130","gif","lobs.001.43690.29540/"
"000130","xwd","lobs.001.73230.45800/"
"000140","bitmap","lobs.001.119030.71798/"
"000140","gif","lobs.001.190828.29143/"
"000140","xwd","lobs.001.219971.73908/"
"000150","bitmap","lobs.001.293879.73438/"
"000150","gif","lobs.001.367317.39795/"
"000150","xwd","lobs.001.407112.75547/"
"000190","bitmap","lobs.001.482659.63542/"
"000190","gif","lobs.001.546201.36088/"
"000190","xwd","lobs.001.582289.65650/"
;
BLOB型別:其中第三個欄位是BLOB型別,在該檔案中只儲存了一個標誌,相當於一個指標,真正的LOB資料儲存在d:\lob目錄下的lobs.001、lobs.002、......等一系列檔案中。命令中lobs to 後面指定大物件資料儲存在什麼路徑下(注意,該路徑必須事先已經存在,否則會報錯),lobfile 後面指定大物件資料儲存在什麼檔案中,不要指定副檔名,DB2會根據資料量自動追加.001、.002等副檔名,同時不要忘記加上modified by lobsinfile子句。
例4:把匯出資訊儲存在訊息檔案中。
export to d:\awards.ixf of ixf messages d:\msgs.txt select * from staff where dept = 20
這個例子把staff表中dept=20的資料匯出到d:\awards.ixf檔案中,所有的匯出資訊都儲存在d:\msgs.txt檔案中(無論是成功、警告還是失敗資訊),這樣,管理員可以通過觀察資訊檔案找到問題所在。
例5:給匯出資料列重新命名。
export to d:\awards.ixf of ixf method n(c1,c2,c3,c4,c5,c6,c7) messages d:\msgs.txt select * from staff where dept=20
在預設情況下,匯出的每一列資料以表中對應的欄位名自動命名,我們可以通過method n子句給每一列重新命名,需要注意的是,這個子句只在ixf和wsf格式檔案中有效,在文字檔案中不能使用。
DB2 import 工具(匯入)
DB2 UDB import 工具將資料從輸入檔案寫到資料庫表或可更新檢視。import 工具使用 SQL INSERT 語句(或 SQL UPDATE 語句)將資料寫到目標表中。import 工具從中讀取資料的檔案可以是幾種標準檔案格式中的一種,一般是 PC/IXF、DEL 或 ASC。
除了要指定將從輸入檔案中讀取的資料格式之外,還必須提供該檔案的名稱、目標表的名稱,以及執行 import 工具的模式。這就是啟動基本的 DB2 匯入操作所需的所有資訊。圖 2 展示了 IMPORT 命令的部分語法圖,其中只包含必需的引數。
圖 2. DB2 IMPORT 命令的部分語法
主要的 DB2 匯入模式有:
- INSERT 將輸入資料新增到表中,並且不更改任何現有資料。
- INSERT_UPDATE 將新的輸入資料新增到表中,或者用具有匹配主鍵值的輸入資料更新現有的行。
- REPLACE (通過刪除資料物件)刪除表中的所有現有資料,然後再插入輸入資料。
- REPLACE_CREATE 刪除現有表中的所有資料,然後再插入輸入資料。如果該表不存在,該模式將優先於插入輸入資料而建立表。該模式只對 PC/IXF 輸入檔案有效。
例1:把C盤根目錄下的org.txt檔案中的資料匯入到org表中
import from c:\org.del of del insert into org
匯入命令和匯出命令的格式基本上處於對應的關係,import對應export,from對應to,檔名和檔案格式代表的含義相同,但是匯入命令支援ASC格式的檔案,而匯出命令不支援。另外,在匯出命令的最後是一個SQL語句,用於選擇要匯出的資料,而匯入命令最後不是SQL語句,而是插入資料的方式以及目標表名稱。
例2:從ASC格式檔案中匯入資料
import from c:\org2.txt of asc method l(1 5,6 19,20 25,26 37,38 50) insert into org
其中 method l 子句用於指定文字檔案中每一個欄位的起始位置和終止位置,每個起始位置和終止位置間用空格分開,欄位之間用逗號分開。(除了l方法之外,還有n方法和p方法)
例3:利用n方法匯入資料,並且建立新表。
首先匯出一個用例檔案:
export to d:\org.ixf of ixf method n(a,b,c,d,e) select * from org
這樣org.ixf檔案中有五列資料,對應的列名分別為a、b、c、d、e。然後在從該檔案中匯入資料到一個新表中
import from d:\org.ixf of ixf method n(d,e,b) replace_create into orgtest
該命令從檔案中選取三列匯入到表中,順序可以不按照檔案中原有的列的順序。
例4:利用p方法匯入資料
import from d:\org.ixf of ixf method p(4,5,2) replace into orgtest
該例子執行的效果和例3類似,只是把n方法換成了p方法,p方法後面的列表中指明列的序號即可,不需要指明列名。另外,此例中使用了replace方式插入資料,這會把表中現有的資料都刪除,然後向空表中插入資料。
例5:關於空值的匯入
對於ixf格式的檔案,匯入空值非常方便,因為裡面已經記錄了空值的資訊。但是,對於ASC格式檔案就有一定的難度了,因為DB2會直接插入空格,而不是空值。為此,DB2提供了一個子句進行控制:NULL INDICATORS
import from c:\org2.txt of asc MODIFIED BY nullindchar=# method l(1 5,6 19,20 25,26 37,38 50) NULL INDICATORS(0,0,0,0,38 ) replace into org
在這個例子中,NULL INDICATORS子句後面是一個列表,表示前面四個欄位都不會存在空值,而第五個欄位從38列開始,可能存在空值,而 MODIFIED BY nullindchar=# 子句表示在檔案中第五個欄位如果遇到 # 號,則表示為空值。
DB2 load 工具(載入)
DB2 UDB load 工具非常高效地將一個或多個輸入檔案中的資料寫到資料庫表中。load 工具也從指定的管道、裝置(比如磁帶裝置)或使用者定義遊標接受輸入。load 工具與 import 工具不一樣,不是使用 SQL 將資料寫到目標表中;它是直接將格式化的頁寫到表中,因此比 import 工具要快得多。load 工具從中讀取資料的檔案可以是幾種標準檔案格式中的一種,一般是 PC/IXF、DEL 或 ASC。
除了要指定從輸入檔案讀取的資料格式之外,還必須提供該檔案的名稱、目標表的名稱,以及執行 load 工具的模式。INSERT 模式新增輸入資料到表中,並且不會更改任何現有資料。REPLACE 模式(通過刪除資料物件)刪除表中的所有現有資料,然後再插入輸入資料。圖 3 展示了 LOAD 命令的部分語法圖,其中只包含必需的引數。
圖 3. DB2 LOAD 命令的部分語法
相關推薦
DB2的資料移動:匯入(Import)匯出(Export)載入(Load)
目錄 檔案的格式 DB2中的資料移動,包括: 1. 資料的匯入(Import) 2. 資料的匯出(Export) 3. 資料的載入(Load) 匯入和載入都是利用DB2的相關命令把某種格式的檔案中的資料儲存到資料庫中的表中;匯出是指把DB2資料庫的
docker 映象匯入匯出(import export)和載入儲存(load,save)
很喜歡玩docker,但最新遇到一個問題,公司給的新機器的dns有問題,導致pull不下來映象。 沒辦法了,沒有映象什麼神馬都幹不了,又不能花很多時間去搭建私有的映象庫,只有另尋辦法了。 廢話少說,經過探究,發現 docker 提供把映象匯出export(儲存save
DB2資料的匯入(Import) 匯出(Export)(Load)
資料的匯入 例七:把C盤根目錄下的org.txt檔案中的資料匯入到org表中 import from c:\org.txt of del insert into org 匯入命令和匯出命令的格式基本上處於對應的關係,import對應export,from對應to,檔名和檔案格式代表的含義相同,但是匯入命令支
大資料(二十六):Sqoop的import、export命令和命令指令碼
一、sqoop匯入命令(import) 在Sqoop中,“匯入”概念指:從非大資料叢集(RDBMS)向大資料叢集(HDFS,HIVE,HBASE)中傳輸資料。 1.在MySql中新建一張表並插入一些資料 create&nb
5.非關係型資料庫(Nosql)之mongodb:建立集合,備份與匯入匯出, 資料還原,匯入匯出
1固定集合固定集合值得是事先建立而且大小固定的集合2固定集合的特徵:固定集合很像環形佇列,如果空間不足,最早文件就會被刪除,為新的文件騰出空間。一般來說,固定集合適用於任何想要自動淘汰過期屬性的場景
向HBase中匯入資料3:使用MapReduce從HDFS或本地檔案中讀取資料並寫入HBase(增加使用Reduce批量插入)
前面我們介紹了:為了提高插入效率,我們在前面只使用map的基礎上增加使用reduce,思想是使用map-reduce操作,將rowkey相同的項規約到同一個reduce中,再在reduce中構建put物件實現批量插入測試資料如下:注意到有兩條記錄是相似的。package cn
Drupal 7 節點資料(Node)匯入/匯出(Import/Export)
Node export http://drupal.org/project/node_export Views http://drupal.org/project/views Views Excel Export http://drupal.org/project/viewsexportxls
SQL奇技淫巧(01):給查出的資料排序編個號【row_number() over(order by c)】(mysql,db2,oracle,sqlserver通用)
我們天天都在跟資料庫打交道,寫下的程式碼不計其數,寫下的SQL更是可以繞地球幾圈。這裡收集關於SQL的神奇語法及用法,雖然你可能沒有用過,但這些SQL卻可以在關鍵的時候,派上用場。 我對SQL語句的理解,可以比作一座橋樑,將零散的資料組合起來,拿到我所需要的有效資訊。也以此記錄一下使用心得 一. 語法
【Android】實用教程:匯入android-gif-drawable包,不用在GitHub下載(Android Studio 3.1.2)
轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80193877 【AS版本】 【步驟】 1、開啟Project Structural。(可點選圖示,也可以在File選單中開啟,也可以按Ctrl+Al
【Android】實用教程:匯入SlidingMenu包,不用在GitHub下載(Android Studio 3.1.2)
轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80192923 【AS版本】 【步驟】 1、開啟Project Structural。(可點選圖示,也可以在File選單中開啟,也可以按Ctrl+Al
誰說菜鳥不會資料分析(入門篇)----- 學習筆記5(資料展現:圖表)
1、圖表作用:表達形象化、突出重點、體現專業化 2、圖示型別: 3、通過關係選擇圖表 4、圖表製作5步法 5、圖表:圖所不能說的話 突出單元格顯示:絕對值 專案選取:相對值 資料條:量綱不同 圖示集:企業運營指標發展態勢監控 迷你圖
JAVA:Excel匯入匯出詳解(3)--匯出
Excel匯出 一、設定查詢條件 注意:無法通過Ajax下載 jsp程式碼 <form class="col-sm-2" action="/manage/order/download" method="post" onsubmit="checkForm()"
PE檔案格式學習(四):匯入表
UPDATE: 在文章的末尾更新了一張圖,在網上找的,有助於理解匯入表的結構 1.概述 匯入表是逆向和病毒分析中比較重要的一個表,在分析病毒時幾乎第一時間都要看一下程式的匯入表的內容,判斷程式大概用了哪些功能。 匯入表是資料目錄表中的第2個元素,排在匯出表的
three.js學習(3):匯入threejs
1.在HTML中匯入: 2.用js中匯入: (1)當你的檔案中內建的有一些匯入工具像Webpack或Browserify,你可以用 var THREE = require("three"); var scene = THREE.Scene(); (2)使用ES6的語法形式(如果
webRTC中音訊相關的netEQ(五):DSP處理 webRTC中音訊相關的netEQ(四):控制命令決策 webRTC中音訊相關的netEQ(二):資料結構)
上篇(webRTC中音訊相關的netEQ(四):控制命令決策)講了MCU模組是怎麼根據網路延時、抖動緩衝延時和反饋報告等來決定給DSP模組發什麼控制命令的。DSP模組根據收到的命令進行相關處理,處理簡要流程圖如下。 從上圖看出如果有語音包從packet buffer裡取出來先要做解碼得到PC
python資料分析新手入門課程學習——(二)探索分析與視覺化(來源:慕課網)
一,單因子與對比分析視覺化 資料 import pandas as pd df = pd.read_csv('./HR.csv') #檢視前十條資料 df.head(10) 以下為顯示的結果 我們可以看出: 第一個屬性satisf
資料結構篇:二叉樹(三:根據中序和後序遍歷結果推算出完整二叉樹)
我們先理解一下前中後序遍歷,這是基礎。 //前序遍歷 void Tree::PreOrderTraverse(BiTree *T) { if(!T) { return ; } else { cout<<T->data<<" "; PreOrder
資料結構篇:圖的遍歷(二:廣度優先遍歷)
廣度優先遍歷,又稱廣度優先搜尋,縮寫BFS 如果說深度優先遍歷是相當於樹的前序遍歷,那麼,廣度優先遍歷就相當於樹的層序遍歷。 以上面那張圖為例就是,ABFCIGEDH 程式碼實現 void AdjacencyList::BFSTraverse(GraphAdjList *G
資料結構篇:圖的遍歷(一:深度優先遍歷)
深度優先遍歷,也稱作深度優先搜尋,縮寫為DFS 深度優先遍歷從某個頂點出發,訪問此頂點,然後從v的未被訪問的鄰接點觸發深度優先便利圖,直至所有和v有路徑想通的頂點都被訪問到。 這樣我們一定就訪問到所有結點了嗎,沒有,可能還有的分支我們沒有訪問到,所以需要回溯(一般情況下都設定一個數組,來
python資料分析:分類分析(classification analysis)
何為分類分析 在機器學習和統計中,分類是基於包含其類別成員資格已知的觀察(或例項)的訓練資料集來識別新觀察所屬的一組類別(子群體)中的哪一個的問題。例如,將給定的電子郵件分配給“垃圾郵件”或“非垃圾郵件”類,並根據觀察到的患者特徵(性別,血壓,某些症狀的存在或不存在等)為給定患者分配