Teradata - BİRLEŞME stratejileri
Bu bölüm, Teradata'da bulunan çeşitli JOIN stratejilerini tartışır.
Birleştirme Yöntemleri
Teradata, birleştirme işlemlerini gerçekleştirmek için farklı birleştirme yöntemleri kullanır. Yaygın olarak kullanılan Birleştirme yöntemlerinden bazıları şunlardır:
- Birleştir Katıl
- İç içe Birleştirme
- Ürün Birleştirme
Birleştir Katıl
Birleştirme Birleştirme yöntemi, birleştirme eşitlik koşuluna dayandığında gerçekleşir. Birleştirme Birleştirme, birleştirme satırlarının aynı AMP'de olmasını gerektirir. Satırlar, satır karmalarına göre birleştirilir. Birleştirme Birleştirme, satırları aynı AMP'ye getirmek için farklı birleştirme stratejileri kullanır.
Strateji 1
Birleştirme sütunları karşılık gelen tabloların birincil diziniyse, birleşen satırlar zaten aynı AMP üzerindedir. Bu durumda dağıtıma gerek yoktur.
Aşağıdaki Çalışan ve Maaş Tablolarını düşünün.
CREATE SET TABLE EMPLOYEE,FALLBACK (
EmployeeNo INTEGER,
FirstName VARCHAR(30) ,
LastName VARCHAR(30) ,
DOB DATE FORMAT 'YYYY-MM-DD',
JoinedDate DATE FORMAT 'YYYY-MM-DD',
DepartmentNo BYTEINT
)
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE Salary (
EmployeeNo INTEGER,
Gross INTEGER,
Deduction INTEGER,
NetPay INTEGER
)
UNIQUE PRIMARY INDEX(EmployeeNo);
Bu iki tablo EmployeeNo sütununda birleştirildiğinde, EmployeeNo birleştirilen her iki tablonun birincil indeksi olduğundan yeniden dağıtım gerçekleşmez.
Strateji 2
Aşağıdaki Çalışan ve Departman tablolarını inceleyin.
CREATE SET TABLE EMPLOYEE,FALLBACK (
EmployeeNo INTEGER,
FirstName VARCHAR(30) ,
LastName VARCHAR(30) ,
DOB DATE FORMAT 'YYYY-MM-DD',
JoinedDate DATE FORMAT 'YYYY-MM-DD',
DepartmentNo BYTEINT
)
UNIQUE PRIMARY INDEX ( EmployeeNo );
CREATE SET TABLE DEPARTMENT,FALLBACK (
DepartmentNo BYTEINT,
DepartmentName CHAR(15)
)
UNIQUE PRIMARY INDEX ( DepartmentNo );
Bu iki tablo DeparmentNo sütununda birleştirilirse, DepartmentNo bir tablodaki birincil dizin ve başka bir tablodaki birincil olmayan dizin olduğundan satırların yeniden dağıtılması gerekir. Bu senaryoda, birleştirme satırları aynı AMP üzerinde olmayabilir. Böyle bir durumda Teradata, çalışan tablosunu DepartmentNo sütununda yeniden dağıtabilir.
Strateji 3
Yukarıdaki Çalışan ve Departman tabloları için Teradata, Departman tablosunun boyutu küçükse Departman tablosunu tüm AMP'lerde çoğaltabilir.
İç içe Birleştirme
Yuvalanmış Birleştirme tüm AMP'leri kullanmaz. İç İçe Birleştirme işleminin gerçekleşmesi için koşullardan birinin, bir tablonun benzersiz birincil dizininde eşitlik olması ve ardından bu sütunun diğer tablodaki herhangi bir dizine katılması gerekir.
Bu senaryoda, sistem bir tablonun Benzersiz Birincil dizinini kullanarak bir satırı alır ve diğer tablodan eşleşen kayıtları almak için bu satır karmasını kullanır. İç içe birleştirme, tüm Birleştirme yöntemlerinin en etkilisidir.
Ürün Birleştirme
Ürün Birleştirme, bir tablodaki her uygun satırı, diğer tablodaki her bir uygun satırla karşılaştırır. Ürün birleştirme, aşağıdaki faktörlerden bazıları nedeniyle gerçekleşebilir -
- Koşulun eksik olduğu yer.
- Birleştirme koşulu eşitlik koşuluna bağlı değildir.
- Tablo takma adları doğru değil.
- Çoklu katılma koşulları.