W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
MultiLoad可以一次加載多個表,它還可以執(zhí)行不同類型的任務,如INSERT,DELETE,UPDATE和UPSERT。它一次最多可以加載5個表,并在腳本中執(zhí)行多達20個DML操作。 MultiLoad不需要目標表。
MultiLoad支持兩種模式:
除了目標表之外,MultiLoad還需要一個工作表,一個日志表和兩個錯誤表。
日志表 - 用于維護在加載期間采用的檢查點,將用于重新啟動。
錯誤表 - 在發(fā)生錯誤時,在加載期間插入這些表。第一個錯誤表存儲轉換錯誤,而第二個錯誤表存儲重復記錄。
日志表 - 保持MultiLoad每個階段的結果,以便重新啟動。
工作表 - MultiLoad腳本為每個目標表創(chuàng)建一個工作表。工作表用于保留DML任務和輸入數(shù)據(jù)。
MultiLoad有一些限制。
目標表不支持唯一次索引。
不支持參照完整性。
不支持觸發(fā)器。
MultiLoad導入有五個階段:
階段1 - 初步階段 - 執(zhí)行基本設置活動。
階段2 - DML事務階段 - 驗證DML語句的語法并將其帶到Teradata系統(tǒng)。
階段3 - 采集階段 - 將輸入數(shù)據(jù)放入工作表并鎖定表。
階段4 - 應用程序階段 - 應用所有DML操作。
階段5 - 清理階段 - 釋放表鎖。
步驟1 - 設置日志表。
步驟2 - 登錄到Teradata。
步驟3 - 指定目標,工作和錯誤表。
步驟4 - 定義INPUT文件布局。
步驟5 - 定義DML查詢。
步驟6 - 命名IMPORT文件。
步驟7 - 指定要使用的LAYOUT。
步驟8 - 啟動加載。
步驟9 - 完成加載并終止會話。
創(chuàng)建具有以下記錄的文本文件,并將該文件命名為employee.txt。
101,Mike,James,1980-01-05,2010-03-01,1 102,Robert,Williams,1983-03-05,2010-09-01,1 103,Peter,Paul,1983-04-01,2009-02-12,2 104,Alex,Stuart,1984-11-06,2014-01-01,2 105,Robert,James,1984-12-01,2015-03-09,3
以下示例是一個MultiLoad腳本,它從employee表中讀取記錄并加載到Employee_Stg表中。
.LOGTABLE tduser.Employee_log; .LOGON 192.168.1.102/dbc,dbc; .BEGIN MLOAD TABLES Employee_Stg; .LAYOUT Employee; .FIELD in_EmployeeNo * VARCHAR(10); .FIELD in_FirstName * VARCHAR(30); .FIELD in_LastName * VARCHAR(30); .FIELD in_BirthDate * VARCHAR(10); .FIELD in_JoinedDate * VARCHAR(10); .FIELD in_DepartmentNo * VARCHAR(02); .DML LABEL EmpLabel; INSERT INTO Employee_Stg ( EmployeeNo, FirstName, LastName, BirthDate, JoinedDate, DepartmentNo ) VALUES ( :in_EmployeeNo, :in_FirstName, :in_Lastname, :in_BirthDate, :in_JoinedDate, :in_DepartmentNo ); .IMPORT INFILE employee.txt FORMAT VARTEXT ',' LAYOUT Employee APPLY EmpLabel; .END MLOAD; LOGOFF;
一旦創(chuàng)建了輸入文件employee.txt并且多重腳本命名為EmployeeLoad.ml,則可以在UNIX和Windows中使用以下命令運行Multiload腳本。
Multiload < EmployeeLoad.ml;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: