Teradata - Hızlı Yükleme
FastLoad yardımcı programı, verileri boş tablolara yüklemek için kullanılır. Geçici günlükleri kullanmadığı için, veriler hızlı bir şekilde yüklenebilir. Hedef tablo bir MULTISET tablosu olsa bile yinelenen satırları yüklemez.
Sınırlama
Hedef tabloda ikincil dizin, birleştirme dizini ve yabancı anahtar referansı olmamalıdır.
FastLoad Nasıl Çalışır?
FastLoad iki aşamada yürütülür.
Faz 1
Ayrıştırma motorları giriş dosyasındaki kayıtları okur ve her AMP'ye bir blok gönderir.
Her AMP, kayıt bloklarını depolar.
Daha sonra AMP'ler her bir kayda hashing uygular ve bunları doğru AMP'ye yeniden dağıtır.
Aşama 1'in sonunda, her AMP'nin kendi satırları vardır, ancak bunlar satır hash dizisinde değildir.
Faz 2
FastLoad, END LOADING deyimini aldığında 2. aşama başlar.
Her AMP, satır karmasında kayıtları sıralar ve diske yazar.
Hedef tablodaki kilitler kaldırılır ve hata tabloları kaldırılır.
Misal
Aşağıdaki kayıtlarla bir metin dosyası oluşturun ve dosyayı Employee.txt olarak adlandırın.
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şağıda, yukarıdaki dosyayı Employee_Stg tablosuna yüklemek için örnek bir FastLoad komut dosyası verilmiştir.
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 Komut Dosyasını Yürütme
EmployeeLoad.fl giriş dosyası oluşturulduktan ve FastLoad komut dosyası EmployeeLoad.fl olarak adlandırıldıktan sonra, UNIX ve Windows'da aşağıdaki komutu kullanarak FastLoad komut dosyasını çalıştırabilirsiniz.
FastLoad < EmployeeLoad.fl;
Yukarıdaki komut yürütüldüğünde, FastLoad betiği çalışacak ve günlüğü oluşturacaktır. Günlükte, FastLoad tarafından işlenen kayıtların sayısını ve durum kodunu görebilirsiniz.
**** 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
Hızlı Yükleme Koşulları
FastLoad komut dosyasında kullanılan genel terimlerin listesi aşağıdadır.
LOGON - Teradata'da oturum açar ve bir veya daha fazla oturum başlatır.
DATABASE - Varsayılan veritabanını ayarlar.
BEGIN LOADING - Yüklenecek tabloyu tanımlar.
ERRORFILES - Oluşturulması / güncellenmesi gereken 2 hata tablosunu belirtir.
CHECKPOINT - Kontrol noktasının ne zaman alınacağını tanımlar.
SET RECORD - Girdi dosyası formatının formatlı mı, ikili mi, metin mi yoksa formatsız mı olduğunu belirtir.
DEFINE - Giriş dosyası düzenini tanımlar.
FILE - Girdi dosyası adını ve yolunu belirtir.
INSERT - Giriş dosyasındaki kayıtları hedef tabloya ekler.
END LOADING- FastLoad'un 2. aşamasını başlatır. Kayıtları hedef tabloya dağıtır.
LOGOFF - Tüm oturumları sonlandırır ve FastLoad'u sonlandırır.