Teradata - pytania i odpowiedzi
Drodzy Czytelnicy! Teradata Interview Questions zostały zaprojektowane specjalnie, aby zapoznać Cię z naturą pytań, które możesz napotkać podczas rozmowy kwalifikacyjnej na temat Teradata. Z mojego doświadczenia wynika, że dobrzy ankieterzy nie planują zadawać żadnego konkretnego pytania podczas rozmowy kwalifikacyjnej, zwykle pytania zaczynają się od jakiejś podstawowej koncepcji tematu, a później są kontynuowane w oparciu o dalszą dyskusję i odpowiedź -
Architektura Teradata składa się z trzech komponentów.
Parsing Engine - Parsing Engine odbiera zapytanie od użytkownika, analizuje je i przygotowuje plan wykonania.
BYNET - BYNET otrzymuje plan wykonania z silnika analizującego i wysyła go do odpowiedniego AMP.
AMP- AMP jest odpowiedzialny za przechowywanie i pobieranie wierszy. Przechowuje dane na skojarzonym z nim dysku wirtualnym. Oprócz tego AMP jest odpowiedzialny za zarządzanie blokadami, zarządzanie przestrzenią, sortowanie i agregację.
FastLoad | MultiLoad |
---|---|
Tabela docelowa powinna być pusta | Tabela docelowa nie musi być pusta |
Za pomocą jednego skryptu można załadować tylko jedną tabelę | Może załadować / zaktualizować do 5 tabel |
Obsługuje tylko instrukcję CREATE / INSERT | Obsługuje do 20 instrukcji DML w jednym skrypcie |
Nie obsługuje tabel z RI, SI i wyzwalaczami | Obsługuje tabele z NUSI |
FastLoad zapewnia możliwość ponownego uruchomienia za pośrednictwem punktów kontrolnych. Po ponownym uruchomieniu skryptu od ostatniego punktu kontrolnego możliwe jest, że te same wiersze zostaną ponownie wysłane do stron AMP. To jest powód, dla którego FastLoad nie obsługuje duplikatów.
Tabela SET nie zezwala na zduplikowane rekordy, podczas gdy MULTISET zezwala na zduplikowane rekordy.
Dla każdego wstawionego wiersza system sprawdza, czy istnieje rekord z tym samym hashem wiersza. Jeśli tabela ma zdefiniowany UPI, to odrzuci rekord jako duplikat. W przeciwnym razie porówna cały rekord pod kątem duplikatu. Wpłynie to poważnie na wydajność systemu.
Możesz zdefiniować unikalny indeks główny lub unikalny indeks dodatkowy, aby uniknąć podwójnego sprawdzania wierszy.
Tabele są tworzone za pomocą instrukcji CREATE TABLE. Tabele można tworzyć za pomocą
Instrukcja CREATE TABLE z definicją kolumny.
UTWÓRZ TABELĘ z istniejącej tabeli.
Instrukcja CREATE TABLE z instrukcją SELECT.
Zduplikowane rekordy można zidentyfikować za pomocą instrukcji DISTINCT lub instrukcji GROUP BY.
SELECT DISTINCT column 1, column 2…
FROM tablename;
OR
SELECT column 1, column 2,…
FROM tablename
GROUP BY column 1, column 2….;
Klucze podstawowe nie są obowiązkowe w Teradata, podczas gdy indeks podstawowy jest obowiązkowy.
Dystrybucja danych jest oparta na wartości indeksu podstawowego.
Klucze podstawowe nie akceptują wartości NULL, podczas gdy indeks podstawowy akceptuje wartości NULL.
Klucze podstawowe są unikalne, podczas gdy indeks główny może być unikalny (UPI) lub nieunikalny (NUPI).
Klucze podstawowe nie zmieniają się, podczas gdy indeksy podstawowe ulegają zmianie.
Dostęp do danych można uzyskać na 3 różne sposoby -
- Za pośrednictwem indeksu podstawowego
- Poprzez indeks dodatkowy
- Pełne skanowanie tabeli
Można go zidentyfikować za pomocą zapytania SELECT HASHAMP () + 1;
W tym celu można użyć następującego zapytania.
SELECT HASHMAP(HASHBUCKET(HASHROW(primaryindexvalue))), COUNT(*)
FROM tablename GROUP BY 1;
Teradata obsługuje dwa tryby transakcji.
- Teradata
- ANSI
Tryb Teradata jest ustawiany za pomocą polecenia SET SESSION TRANSACTION BTET; Tryb ANSI jest ustawiany za pomocą opcji SET SESSION TRANSACTION ANSI;
Transakcje można wykonywać za pomocą wyciągów BT i ET.
Dołączanie do indeksów nie może być bezpośrednio dostępne dla użytkownika. Dostęp do nich ma tylko optymalizator.
Zduplikowane rekordy zostaną odrzucone z ładowania tabel docelowych i zostaną wstawione do tabeli UV.
FALLBACK to mechanizm ochrony używany przez Teradata do obsługi błędów AMP. Dla każdego wiersza danych kolejna kopia wiersza jest przechowywana w innym AMP w klastrze. Jeśli jakikolwiek AMP się nie powiedzie, dostęp do odpowiednich wierszy uzyskamy za pomocą FALLBACK AMP.
FALLBACK można wspomnieć podczas tworzenia tabeli za pomocą instrukcji CREATE TABLE lub po utworzeniu tabeli za pomocą instrukcji ALTER TABLE.
Błąd miejsca w buforze wystąpi, jeśli pośrednie wyniki zapytania przekroczą limit miejsca na buforowanie AMP ustawiony dla użytkownika, który przesłał zapytanie.
Polecenie SLEEP określa czas oczekiwania, zanim Teradata spróbuje nawiązać połączenie.
Polecenie TENACITY określa całkowity czas oczekiwania na nawiązanie nowego połączenia przez Teradata.
Możesz po prostu zachować instrukcje BEGIN LOADING i END LOADING i przesłać skrypt FASTLOAD. Inną opcją jest usunięcie tabeli i ponowne utworzenie tabeli.
Buforowanie w Teradata działa ze źródłem i pozostaje w tej samej kolejności, to znaczy nie zmienia się często. Pamięć podręczna jest zwykle współdzielona między aplikacjami. Jest to dodatkowa zaleta korzystania z Teradata.
RAID to mechanizm zabezpieczający obsługujący awarie dysku. To oznacza redundant Array of Independent Disks. RAID 1 jest powszechnie używany w Teradata.
Indeks pomocniczy zapewnia alternatywną ścieżkę dostępu do danych. Są używane w celu uniknięcia pełnego skanowania tabeli. Jednak indeksy pomocnicze wymagają dodatkowej struktury fizycznej do obsługi tabel podrzędnych, a także wymagają dodatkowych operacji we / wy, ponieważ tabela podrzędna musi być aktualizowana dla każdego wiersza.
W Teradata istnieją cztery różne blokady - wyłączność, zapis, odczyt i dostęp.
Blokady można stosować na trzech różnych poziomach - bazy danych, tabeli i wiersza.
Za pomocą kompresji wielowartościowej (MVC) można skompresować do 255 wartości, w tym wartości NULL.
FastLoad ładuje dane w blokach 64K. W FastLoad są 2 fazy.
W fazie 1 przenosi dane w blokach 64K i wysyła je do docelowych AMP. Każda strona AMP będzie następnie redystrybuować wiersze do docelowych stron AMP.
W fazie 2 wiersze są sortowane według kolejności skrótów wierszy i zapisywane w tabeli docelowej.
Import MultiLoad składa się z pięciu faz.
Phase 1 - Faza wstępna - wykonuje podstawowe czynności konfiguracyjne.
Phase 2 - Faza transakcji DML - weryfikuje składnię instrukcji DML i przenosi je do systemu Teradata.
Phase 3 - Faza pozyskiwania - przenosi dane wejściowe do tabel roboczych i blokuje tabelę.
Phase 4 - Faza aplikacji - stosuje wszystkie operacje DML.
Phase 5 - Faza czyszczenia - Zwalnia blokadę tabeli.
MULTILOAD DELETE jest szybsze, ponieważ usuwa rekordy w blokach. DELETE FROM usuwa wiersz po wierszu.
Procedura składowana zwraca jedną lub więcej wartości, podczas gdy makra mogą zwracać jeden lub więcej wierszy. Oprócz języka SQL procedura składowana może zawierać instrukcje SPL.
Zarówno FastLoad, jak i MultiLoad ładują dane w blokach 64K, podczas gdy BTEQ będzie przetwarzać jeden wiersz na raz.
FastExport eksportuje dane w blokach 64K, podczas gdy BTEQ eksportuje jeden wiersz na raz.
Teradata Parallel Transporter (TPT) to narzędzie do ładowania / eksportowania danych. Łączy w sobie wszystkie funkcjonalności FastLoad, MultiLoad, BTEQ, TPUMP i FastExport.
Stałe dzienniki śledzą dane przed lub po zastosowaniu zmian. Pomaga to cofnąć lub przesunąć tabelę do określonego stanu. Stałe kroniki można włączyć na poziomie tabeli lub na poziomie bazy danych.
W Teradata każdy AMP jest powiązany z dyskiem wirtualnym. Tylko AMP, który jest właścicielem dysku wirtualnego, może uzyskać dostęp do danych na tym dysku wirtualnym. Nazywa się to architekturą niczego wspólnego.
Jeśli zapytanie korzysta z kolumn podzielonych na partycje, spowoduje to eliminację partycji, co znacznie poprawi wydajność.
Partycja eliminuje inne partycje i uzyskuje dostęp tylko do partycji zawierających dane.
Możesz łatwo usunąć stare partycje i utworzyć nowe.
Tak. Indeks pomocniczy wymaga tabel podrzędnych, które wymagają stałej przestrzeni.
Tak. Za każdym razem, gdy dodawany jest indeks podstawowy partycjonowany, każdy wiersz zajmuje dodatkowe 2 lub 8 bajtów na numer partycji.
Możesz użyć funkcji RANK na określonej kolumnie w kolejności malejącej z warunkiem Qualify = 2.
Możesz sprawdzić plan EXPLAIN zapytania, aby zidentyfikować kroki, które zajmują więcej miejsca w buforze i spróbować zoptymalizować zapytanie. Filtry można zastosować w celu zmniejszenia liczby przetwarzanych rekordów lub podzielić duże zapytanie na wiele mniejszych zapytań.
Gdy polecenie EXPLAIN jest używane w zapytaniu, określa ono pewność optymalizatora przy pobieraniu rekordów.
W Teradata istnieją trzy poziomy ufności: wysoki, średni i niski.
Zarówno NUSI, jak i Full Table Scan (FTS) będą miały dostęp do wszystkich AMP, ale FTS będzie mieć dostęp do wszystkich bloków w AMP, podczas gdy NUSI będzie mieć dostęp do bloków tylko wtedy, gdy podtabela zawiera kwalifikujące się wiersze.
W trybie BTEQ można użyć polecenia SKIP, aby pominąć zapisy.
BYTEINT. Zajmuje tylko jeden bajt i może przechowywać wartości do +127.
- Poprzez unikalny indeks podstawowy - 1 AMP
- Przez nieunikalny indeks podstawowy - 1 AMP
- Poprzez unikalny indeks pomocniczy - 2 AMP
- Poprzez nieunikalny indeks dodatkowy - wszystkie strony AMP
Clique to mechanizm zabezpieczający, który radzi sobie z awariami węzłów. To jest grupa węzłów. Gdy węzeł w klice ulegnie awarii, vprocs (mechanizm analizujący i AMP) zostaną przeniesione do innych węzłów i będą nadal wykonywać operacje odczytu / zapisu na swoich dyskach wirtualnych.
Teradata zapewnia różne poziomy mechanizmu ochrony.
Transient Journal - Aby poradzić sobie z niepowodzeniem transakcji.
Fallback - Aby poradzić sobie z awarią AMP.
Cliques - Aby poradzić sobie z awarią węzła.
RAID - Aby obsłużyć awarię dysku.
Hot standby Node - Obsługa awarii węzła bez wpływu na wydajność i ponowne uruchamianie.
ACTIVITYCOUNT podaje liczbę wierszy, na które miało wpływ poprzednie zapytanie SQL w BTEQ. Jeśli instrukcja ACTIVITYCOUNT następuje po instrukcji wstawiania, zwraca liczbę wstawionych wierszy. Jeśli instrukcja ACTIVITYCOUNT następuje po instrukcji select, zwraca liczbę wybranych wierszy.
Co jest następne?
Ponadto możesz przejrzeć swoje poprzednie zadania, które wykonałeś z tematem i upewnić się, że jesteś w stanie mówić o nich pewnie. Jeśli jesteś świeższy, prowadzący rozmowę kwalifikacyjną nie oczekuje, że odpowiesz na bardzo złożone pytania, a raczej musisz wzmocnić swoje podstawowe koncepcje.
Po drugie, nie ma to większego znaczenia, jeśli nie potrafisz odpowiedzieć na kilka pytań, ale ważne jest, aby cokolwiek odpowiedziałeś, musiałeś odpowiedzieć z pewnością. Więc po prostu bądź pewny siebie podczas rozmowy kwalifikacyjnej. W tutorialspoint życzymy powodzenia w posiadaniu dobrego ankietera i wszystkiego najlepszego w przyszłych przedsięwzięciach. Twoje zdrowie :-)