- Teradata 教程
- Teradata - 首頁
- Teradata 基礎知識
- Teradata - 簡介
- Teradata - 安裝
- Teradata - 架構
- Teradata - 關係型概念
- Teradata - 資料型別
- Teradata - 表
- Teradata - 資料操作
- Teradata - SELECT 語句
- 邏輯與條件運算子
- Teradata - 集合運算子
- Teradata - 字串操作
- Teradata - 日期/時間函式
- Teradata - 內建函式
- Teradata - 聚合函式
- Teradata - CASE 和 COALESCE
- Teradata - 主索引
- Teradata - 連線
- Teradata - 子查詢
- Teradata 高階
- Teradata - 表型別
- Teradata - 空間概念
- Teradata - 二級索引
- Teradata - 統計資訊
- Teradata - 壓縮
- Teradata - Explain
- Teradata - 雜湊演算法
- Teradata - 連線索引
- Teradata - 檢視
- Teradata - 宏
- Teradata - 儲存過程
- Teradata - 連線策略
- Teradata - 分割槽主索引
- Teradata - OLAP 函式
- Teradata - 資料保護
- Teradata - 使用者管理
- Teradata - 效能調優
- Teradata - FastLoad
- Teradata - MultiLoad
- Teradata - FastExport
- Teradata - BTEQ
- Teradata 有用資源
- Teradata - 問答
- Teradata - 快速指南
- Teradata - 有用資源
- Teradata - 討論
Teradata - FastLoad
FastLoad 實用程式用於將資料載入到空表中。由於它不使用臨時日誌,因此可以快速載入資料。即使目標表是 MULTISET 表,它也不會載入重複的行。
限制
目標表不應該有二級索引、連線索引和外部索引鍵引用。
FastLoad 如何工作
FastLoad 分兩個階段執行。
階段 1
解析引擎從輸入檔案讀取記錄,並將一個塊傳送到每個 AMP。
每個 AMP 儲存記錄塊。
然後 AMP 對每條記錄進行雜湊並將其重新分配到正確的 AMP。
在階段 1 結束時,每個 AMP 都有其行,但它們不是按行雜湊順序排列的。
階段 2
當 FastLoad 接收 END LOADING 語句時,階段 2 開始。
每個 AMP 按行雜湊對記錄進行排序,並將它們寫入磁碟。
釋放目標表的鎖並刪除錯誤表。
示例
建立一個包含以下記錄的文字檔案,並將檔案命名為 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
以下是一個將上述檔案載入到 Employee_Stg 表中的 FastLoad 指令碼示例。
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;
執行 FastLoad 指令碼
建立輸入檔案 employee.txt 後,並將 FastLoad 指令碼命名為 EmployeeLoad.fl,您可以在 UNIX 和 Windows 中使用以下命令執行 FastLoad 指令碼。
FastLoad < EmployeeLoad.fl;
執行上述命令後,FastLoad 指令碼將執行並生成日誌。在日誌中,您可以看到 FastLoad 處理的記錄數和狀態程式碼。
**** 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 術語
以下是 FastLoad 指令碼中常用的術語列表。
LOGON − 登入 Teradata 並啟動一個或多個會話。
DATABASE − 設定預設資料庫。
BEGIN LOADING − 標識要載入的表。
ERRORFILES − 標識需要建立/更新的 2 個錯誤表。
CHECKPOINT − 定義何時進行檢查點。
SET RECORD − 指定輸入檔案格式是格式化、二進位制、文字還是非格式化。
DEFINE − 定義輸入檔案佈局。
FILE − 指定輸入檔名和路徑。
INSERT − 將輸入檔案中的記錄插入到目標表中。
END LOADING − 啟動 FastLoad 的階段 2。將記錄分發到目標表中。
LOGOFF − 結束所有會話並終止 FastLoad。