Teradata - FastLoad

Tiện ích FastLoad được sử dụng để tải dữ liệu vào các bảng trống. Vì nó không sử dụng nhật ký tạm thời, dữ liệu có thể được tải nhanh chóng. Nó không tải các hàng trùng lặp ngay cả khi bảng đích là bảng MULTISET.

Giới hạn

Bảng mục tiêu không được có chỉ mục phụ, chỉ mục tham gia và tham chiếu khóa ngoại.

Cách hoạt động của FastLoad

FastLoad được thực hiện trong hai giai đoạn.

Giai đoạn 1

  • Các công cụ phân tích cú pháp đọc các bản ghi từ tệp đầu vào và gửi một khối đến mỗi AMP.

  • Mỗi AMP lưu trữ các khối bản ghi.

  • Sau đó, AMP sẽ băm từng bản ghi và phân phối lại chúng cho đúng AMP.

  • Vào cuối Giai đoạn 1, mỗi AMP có các hàng nhưng chúng không nằm trong chuỗi băm hàng.

Giai đoạn 2

  • Giai đoạn 2 bắt đầu khi FastLoad nhận được câu lệnh END LOADING.

  • Mỗi AMP sắp xếp các bản ghi trên băm hàng và ghi chúng vào đĩa.

  • Các khóa trên bảng mục tiêu được giải phóng và các bảng lỗi bị loại bỏ.

Thí dụ

Tạo một tệp văn bản với các bản ghi sau và đặt tên tệp là worker.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

Sau đây là một đoạn script FastLoad mẫu để tải tệp trên vào bảng 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;

Thực thi một tập lệnh FastLoad

Sau khi tệp đầu vào Employee.txt được tạo và tập lệnh FastLoad được đặt tên là EmployeeLoad.fl, bạn có thể chạy tập lệnh FastLoad bằng lệnh sau trong UNIX và Windows.

FastLoad < EmployeeLoad.fl;

Khi lệnh trên được thực thi, tập lệnh FastLoad sẽ chạy và tạo ra nhật ký. Trong nhật ký, bạn có thể thấy số lượng bản ghi được FastLoad xử lý và mã trạng thá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

Điều khoản FastLoad

Sau đây là danh sách các thuật ngữ phổ biến được sử dụng trong tập lệnh FastLoad.

  • LOGON - Đăng nhập vào Teradata và bắt đầu một hoặc nhiều phiên.

  • DATABASE - Đặt cơ sở dữ liệu mặc định.

  • BEGIN LOADING - Xác định bảng được tải.

  • ERRORFILES - Xác định 2 bảng lỗi cần được tạo / cập nhật.

  • CHECKPOINT - Xác định thời điểm đi điểm kiểm tra.

  • SET RECORD - Chỉ định nếu định dạng tệp đầu vào là định dạng, nhị phân, văn bản hoặc không được định dạng.

  • DEFINE - Xác định bố cục tệp đầu vào.

  • FILE - Chỉ định tên và đường dẫn tệp đầu vào.

  • INSERT - Chèn các bản ghi từ tệp đầu vào vào bảng đích.

  • END LOADING- Bắt đầu giai đoạn 2 của FastLoad. Phân phối các bản ghi vào bảng đích.

  • LOGOFF - Kết thúc tất cả các phiên và chấm dứt FastLoad.