Учебники

Teradata — MultiLoad

MultiLoad может загружать несколько таблиц одновременно, а также может выполнять различные типы задач, таких как INSERT, DELETE, UPDATE и UPSERT. Он может загружать до 5 таблиц одновременно и выполнять до 20 операций DML в скрипте. Таблица назначения не требуется для MultiLoad.

MultiLoad поддерживает два режима —

  • ИМПОРТИРОВАТЬ
  • УДАЛЯТЬ

MultiLoad требует рабочую таблицу, таблицу журнала и две таблицы ошибок в дополнение к целевой таблице.

  • Таблица журнала — используется для сохранения контрольных точек, снятых во время загрузки, которые будут использоваться для перезапуска.

  • Таблицы ошибок — эти таблицы вставляются во время загрузки при возникновении ошибки. Первая таблица ошибок хранит ошибки преобразования, тогда как вторая таблица ошибок хранит дубликаты записей.

  • Таблица журналов — содержит результаты каждого этапа MultiLoad для перезапуска.

  • Рабочая таблица — скрипт MultiLoad создает одну рабочую таблицу для каждой целевой таблицы. Рабочая таблица используется для хранения задач DML и входных данных.

Таблица журнала — используется для сохранения контрольных точек, снятых во время загрузки, которые будут использоваться для перезапуска.

Таблицы ошибок — эти таблицы вставляются во время загрузки при возникновении ошибки. Первая таблица ошибок хранит ошибки преобразования, тогда как вторая таблица ошибок хранит дубликаты записей.

Таблица журналов — содержит результаты каждого этапа MultiLoad для перезапуска.

Рабочая таблица — скрипт MultiLoad создает одну рабочую таблицу для каждой целевой таблицы. Рабочая таблица используется для хранения задач DML и входных данных.

ограничение

MultiLoad имеет некоторые ограничения.

  • Уникальный вторичный индекс не поддерживается на целевой таблице.
  • Ссылочная целостность не поддерживается.
  • Триггеры не поддерживаются.

Как работает MultiLoad

Импорт MultiLoad имеет пять этапов —

  • Этап 1 — Предварительный этап — выполняет основные действия по настройке.

  • Этап 2 — этап транзакции DML — проверяет синтаксис операторов DML и переносит их в систему Teradata.

  • Этап 3 — Этап сбора данных — переносит входные данные в рабочие таблицы и блокирует таблицу.

  • Этап 4 — Этап применения — Применяет все операции DML.

  • Фаза 5 — Фаза очистки — Снимает блокировку стола.

Этап 1 — Предварительный этап — выполняет основные действия по настройке.

Этап 2 — этап транзакции DML — проверяет синтаксис операторов DML и переносит их в систему Teradata.

Этап 3 — Этап сбора данных — переносит входные данные в рабочие таблицы и блокирует таблицу.

Этап 4 — Этап применения — Применяет все операции DML.

Фаза 5 — Фаза очистки — Снимает блокировку стола.

Шаги, включенные в скрипт MultiLoad:

  • Шаг 1 — Настройте таблицу журнала.

  • Шаг 2 — Войдите в Teradata.

  • Шаг 3 — Укажите таблицы Target, Work и Error.

  • Шаг 4 — Определите формат файла INPUT.

  • Шаг 5 — Определите запросы DML.

  • Шаг 6 — Назовите файл ИМПОРТ.

  • Шаг 7 — Укажите LAYOUT для использования.

  • Шаг 8 — Инициируйте загрузку.

  • Шаг 9 — Завершите загрузку и завершите сеансы.

Шаг 1 — Настройте таблицу журнала.

Шаг 2 — Войдите в Teradata.

Шаг 3 — Укажите таблицы Target, Work и Error.

Шаг 4 — Определите формат файла INPUT.

Шаг 5 — Определите запросы DML.

Шаг 6 — Назовите файл ИМПОРТ.

Шаг 7 — Укажите LAYOUT для использования.

Шаг 8 — Инициируйте загрузку.

Шаг 9 — Завершите загрузку и завершите сеансы.

пример

Создайте текстовый файл со следующими записями и назовите его как 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_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;

Выполнение MultiLoad-скрипта

После создания входного файла employee.txt и сценария мультизагрузки с именем EmployeeLoad.ml можно запустить сценарий мультизагрузки с помощью следующей команды в UNIX и Windows.