Teradata - FastLoad
O utilitário FastLoad é usado para carregar dados em tabelas vazias. Visto que não usa diários temporários, os dados podem ser carregados rapidamente. Ele não carrega linhas duplicadas, mesmo se a tabela de destino for uma tabela MULTISET.
Limitação
A tabela de destino não deve ter índice secundário, índice de junção e referência de chave estrangeira.
Como funciona o FastLoad
FastLoad é executado em duas fases.
Fase 1
Os mecanismos de análise lêem os registros do arquivo de entrada e enviam um bloco para cada AMP.
Cada AMP armazena os blocos de registros.
Em seguida, os AMPs codificam cada registro e os redistribuem para o AMP correto.
No final da Fase 1, cada AMP tem suas linhas, mas elas não estão na sequência hash de linha.
Fase 2
A fase 2 começa quando FastLoad recebe a instrução END LOADING.
Cada AMP classifica os registros em hash de linha e os grava no disco.
Os bloqueios na tabela de destino são liberados e as tabelas de erros são eliminadas.
Exemplo
Crie um arquivo de texto com os seguintes registros e nomeie o arquivo como 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
A seguir está um script FastLoad de amostra para carregar o arquivo acima na tabela 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;
Executando um Script FastLoad
Depois que o arquivo de entrada employee.txt é criado e o script FastLoad é nomeado como EmployeeLoad.fl, você pode executar o script FastLoad usando o seguinte comando no UNIX e no Windows.
FastLoad < EmployeeLoad.fl;
Assim que o comando acima for executado, o script FastLoad será executado e produzirá o log. No log, você pode ver o número de registros processados pelo FastLoad e o código de status.
**** 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
Termos do FastLoad
A seguir está a lista de termos comuns usados no script FastLoad.
LOGON - Efetua login no Teradata e inicia uma ou mais sessões.
DATABASE - Define o banco de dados padrão.
BEGIN LOADING - Identifica a tabela a ser carregada.
ERRORFILES - Identifica as 2 tabelas de erros que precisam ser criadas / atualizadas.
CHECKPOINT - Define quando fazer checkpoint.
SET RECORD - Especifica se o formato do arquivo de entrada é formatado, binário, texto ou não formatado.
DEFINE - Define o layout do arquivo de entrada.
FILE - Especifica o nome e o caminho do arquivo de entrada.
INSERT - Insere os registros do arquivo de entrada na tabela de destino.
END LOADING- Inicia a fase 2 do FastLoad. Distribui os registros na tabela de destino.
LOGOFF - Termina todas as sessões e encerra o FastLoad.