Учебники

Teradata — FastLoad

Утилита FastLoad используется для загрузки данных в пустые таблицы. Поскольку он не использует временные журналы, данные могут быть загружены быстро. Он не загружает повторяющиеся строки, даже если целевая таблица является таблицей MULTISET.

ограничение

Таблица назначения не должна иметь вторичного индекса, индекса соединения и ссылки на внешний ключ.

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

FastLoad выполняется в два этапа.

Фаза 1

  • Механизмы синтаксического анализа считывают записи из входного файла и отправляют блок каждому AMP.

  • Каждый AMP хранит блоки записей.

  • Затем AMP хэшируют каждую запись и перераспределяют их в правильный AMP.

  • В конце Фазы 1 у каждого AMP есть свои строки, но они не находятся в последовательности хэша строки.

Механизмы синтаксического анализа считывают записи из входного файла и отправляют блок каждому AMP.

Каждый AMP хранит блоки записей.

Затем AMP хэшируют каждую запись и перераспределяют их в правильный AMP.

В конце Фазы 1 у каждого AMP есть свои строки, но они не находятся в последовательности хэша строки.

Фаза 2

  • Этап 2 начинается, когда FastLoad получает инструкцию END LOADING.

  • Каждый AMP сортирует записи по хешу строк и записывает их на диск.

  • Блокировки на целевой таблице сняты, а таблицы ошибок удалены.

Этап 2 начинается, когда FastLoad получает инструкцию END LOADING.

Каждый 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

Ниже приведен пример сценария FastLoad для загрузки вышеуказанного файла в таблицу 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;

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

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

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 и инициирование одного или нескольких сеансов.

БАЗА ДАННЫХ — Устанавливает базу данных по умолчанию.

НАЧАЛО ЗАГРУЗКИ — Определяет таблицу для загрузки.

ERRORFILES — определяет 2 таблицы ошибок, которые необходимо создать / обновить.

CHECKPOINT — Определяет, когда взять контрольную точку.

SET RECORD — указывает, является ли формат входного файла отформатированным, двоичным, текстовым или неформатированным.

DEFINE — Определяет структуру входного файла.

ФАЙЛ — Определяет имя входного файла и путь.

INSERT — вставляет записи из входного файла в целевую таблицу.

КОНЕЦ ЗАГРУЗКИ — Инициирует фазу 2 FastLoad. Распределяет записи в целевой таблице.

LOGOFF — Завершает все сеансы и завершает FastLoad.