FastLoad實(shí)用程序用于將數(shù)據(jù)加載到空表。 由于它不使用臨時(shí)日志,因此可以快速加載數(shù)據(jù)。 即使目標(biāo)表是MULTISET表,它也不會(huì)加載重復(fù)行。
目標(biāo)表不應(yīng)該有二級(jí)索引,連接索引和外鍵引用。
FastLoad在兩個(gè)階段執(zhí)行。
階段1
解析引擎從輸入文件中讀取記錄,并向每個(gè)AMP發(fā)送一個(gè)塊。
每個(gè)AMP存儲(chǔ)記錄塊。
然后AMP散列每個(gè)記錄,并將它們重新分配到正確的AMP。
在階段1結(jié)束時(shí),每個(gè)AMP具有其行,但它們不在行哈希序列中。
階段2
階段2在FastLoad接收到END LOADING語句時(shí)啟動(dòng)。
每個(gè)AMP對(duì)行散列上的記錄進(jìn)行排序,并將它們寫入磁盤。
釋放目標(biāo)表上的鎖,并刪除錯(cuò)誤表。
例
創(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
下面是一個(gè)示例FastLoad腳本將上述文件加載到Employee_Stg表中。
LOGON 192.168.1.102/dbc,dbc; DATABASE tduser; BEGIN LOADING tduser.Employee_Stg ERRORFILES Employee_ET, Employee_UV CHECKPOINT 10; SET RECORD VARTEXT ","; DEFINE in_EmployeeNo (VARCHAR(10)), in_FirstName (VARCHAR(30)), in_LastName (VARCHAR(30)), in_BirthDate (VARCHAR(10)), in_JoinedDate (VARCHAR(10)), in_DepartmentNo (VARCHAR(02)), FILE = employee.txt; INSERT INTO Employee_Stg ( EmployeeNo, FirstName, LastName, BirthDate, JoinedDate, DepartmentNo ) VALUES ( :in_EmployeeNo, :in_FirstName, :in_LastName, :in_BirthDate (FORMAT 'YYYY-MM-DD'), :in_JoinedDate (FORMAT 'YYYY-MM-DD'), :in_DepartmentNo ); END LOADING; LOGOFF;
創(chuàng)建輸入文件employee.txt并將FastLoad腳本命名為EmployeeLoad.fl后,可以在UNIX和Windows中使用以下命令運(yùn)行FastLoad腳本。
FastLoad < EmployeeLoad.fl;
一旦執(zhí)行上述命令,F(xiàn)astLoad腳本將運(yùn)行并產(chǎn)生日志。 在日志中,您可以看到FastLoad處理的記錄數(shù)和狀態(tài)代碼。
**** 03:19:14 END LOADING COMPLETE Total Records Read = 5 Total Error Table 1 = 0 ---- Table has been dropped Total Error Table 2 = 0 ---- Table has been dropped Total Inserts Applied = 5 Total Duplicate Rows = 0 Start: Fri Jan 8 03:19:13 2016 End : Fri Jan 8 03:19:14 2016 **** 03:19:14 Application Phase statistics: Elapsed time: 00:00:01 (in hh:mm:ss) 0008 LOGOFF; **** 03:19:15 Logging off all sessions
以下是FastLoad腳本中使用的常用術(shù)語列表。
LOGON - 登錄到Teradata并啟動(dòng)一個(gè)或多個(gè)會(huì)話。
DATABASE - 設(shè)置默認(rèn)數(shù)據(jù)庫。
BEGIN LOADING - 標(biāo)識(shí)要加載的表。
ERRORFILES - 標(biāo)識(shí)需要?jiǎng)?chuàng)建/更新的2個(gè)錯(cuò)誤表。
CHECKPOINT - 定義何時(shí)采取檢查點(diǎn)。
SET RECORD - 指定輸入文件格式是格式化,二進(jìn)制,文本還是未格式化。
DEFINE - 定義輸入文件布局。
FILE - 指定輸入文件名和路徑。
INSERT - 將輸入文件中的記錄插入目標(biāo)表中。
END LOADING - 啟動(dòng)FastLoad的第2階段。 將記錄分發(fā)到目標(biāo)表中。
LOGOFF - 結(jié)束所有會(huì)話并終止FastLoad。
更多建議: