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.