Teradata - MultiLoad

MultiLoad có thể tải nhiều bảng cùng một lúc và nó cũng có thể thực hiện các loại tác vụ khác nhau như INSERT, DELETE, UPDATE và UPSERT. Nó có thể tải tối đa 5 bảng cùng một lúc và thực hiện tối đa 20 hoạt động DML trong một tập lệnh. Bảng mục tiêu không bắt buộc đối với MultiLoad.

MultiLoad hỗ trợ hai chế độ -

  • IMPORT
  • DELETE

MultiLoad yêu cầu một bảng làm việc, một bảng nhật ký và hai bảng lỗi ngoài bảng đích.

  • Log Table - Được sử dụng để duy trì các điểm kiểm tra được thực hiện trong quá trình tải sẽ được sử dụng để khởi động lại.

  • Error Tables- Các bảng này được chèn trong quá trình tải khi xảy ra lỗi. Bảng lỗi đầu tiên lưu trữ các lỗi chuyển đổi trong khi bảng lỗi thứ hai lưu trữ các bản ghi trùng lặp.

  • Log Table - Duy trì kết quả từ mỗi giai đoạn của MultiLoad cho mục đích khởi động lại.

  • Work table- MultiLoad script tạo một bảng làm việc cho mỗi bảng đích. Bảng công việc được sử dụng để giữ các tác vụ DML và dữ liệu đầu vào.

Giới hạn

MultiLoad có một số hạn chế.

  • Chỉ mục phụ duy nhất không được hỗ trợ trên bảng mục tiêu.
  • Tính toàn vẹn tham chiếu không được hỗ trợ.
  • Trình kích hoạt không được hỗ trợ.

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

Nhập MultiLoad có năm giai đoạn -

  • Phase 1 - Giai đoạn sơ bộ - Thực hiện các hoạt động thiết lập cơ bản.

  • Phase 2 - Giai đoạn Giao dịch DML - Xác minh cú pháp của các câu lệnh DML và đưa chúng vào hệ thống Teradata.

  • Phase 3 - Giai đoạn Thu nhận - Đưa dữ liệu đầu vào vào bảng công việc và khóa bảng.

  • Phase 4 - Giai đoạn Ứng dụng - Áp dụng tất cả các hoạt động DML.

  • Phase 5 - Giai đoạn Dọn dẹp - Giải phóng khóa bàn.

Các bước liên quan đến một tập lệnh MultiLoad là:

  • Step 1 - Lập bảng nhật ký.

  • Step 2 - Đăng nhập vào Teradata.

  • Step 3 - Chỉ định các bảng Mục tiêu, Công việc và Lỗi.

  • Step 4 - Xác định bố cục tệp INPUT.

  • Step 5 - Xác định các truy vấn DML.

  • Step 6 - Đặt tên cho tệp IMPORT.

  • Step 7 - Chỉ định LAYOUT được sử dụng.

  • Step 8 - Bắt đầu tải.

  • Step 9 - Kết thúc tải và kết thúc phiên.

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

Ví dụ sau là một kịch bản MultiLoad đọc các bản ghi từ bảng nhân viên và tải vào bảng 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;

Thực thi MultiLoad Script

Khi tệp đầu vào worker.txt được tạo và tập lệnh đa tải được đặt tên là EmployeeLoad.ml, thì bạn có thể chạy tập lệnh đa tải bằng lệnh sau trong UNIX và Windows.

Multiload < EmployeeLoad.ml;