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.