- Teradata 教程
- Teradata - 首頁
- Teradata 基礎
- Teradata - 簡介
- Teradata - 安裝
- Teradata - 架構
- Teradata - 關係型概念
- Teradata - 資料型別
- Teradata - 表
- Teradata - 資料操作
- Teradata - SELECT 語句
- 邏輯與條件運算子
- Teradata - SET 運算子
- Teradata - 字串操作
- Teradata - 日期/時間函式
- Teradata - 內建函式
- Teradata - 聚合函式
- Teradata - CASE 和 COALESCE
- Teradata - 主索引
- Teradata - 連線
- Teradata - 子查詢
- Teradata 高階
- Teradata - 表型別
- Teradata - 空間概念
- Teradata - 二級索引
- Teradata - 統計資訊
- Teradata - 壓縮
- Teradata - EXPLAIN
- Teradata - 雜湊演算法
- Teradata - 連線索引
- Teradata - 檢視
- Teradata - 宏
- Teradata - 儲存過程
- Teradata - 連線策略
- Teradata - 分割槽主索引
- Teradata - OLAP 函式
- Teradata - 資料保護
- Teradata - 使用者管理
- Teradata - 效能調優
- Teradata - FastLoad
- Teradata - MultiLoad
- Teradata - FastExport
- Teradata - BTEQ
- Teradata 有用資源
- Teradata - 問答
- Teradata - 快速指南
- Teradata - 有用資源
- Teradata - 討論
Teradata - 問答
尊敬的讀者,這些Teradata 面試問題是專門為了讓您熟悉在參加Teradata面試時可能遇到的問題型別而設計的。根據我的經驗,優秀的考官在面試期間很少會計劃要問什麼特定問題,通常問題會從主題的一些基本概念開始,然後根據進一步的討論以及您的回答繼續進行。
Teradata 架構由三個元件組成。
解析引擎 - 解析引擎接收來自使用者的查詢,對其進行解析並準備執行計劃。
BYNET - BYNET 接收來自解析引擎的執行計劃並將其分派到相應的 AMP。
AMP - AMP 負責儲存和檢索行。它將資料儲存在其關聯的虛擬磁碟中。除此之外,AMP 還負責鎖管理、空間管理、排序和聚合。
| FastLoad | MultiLoad |
|---|---|
| 目標表應為空 | 目標表不必為空 |
| 使用單個指令碼只能載入一個表 | 可以載入/更新多達 5 個表 |
| 僅支援 CREATE/INSERT 語句 | 在一個指令碼中支援多達 20 個 DML 語句 |
| 不支援具有 RI、SI 和觸發器的表 | 支援具有 NUSI 的表 |
FastLoad 透過檢查點提供重啟功能。當指令碼從最後一個檢查點重啟時,可能會再次將相同的行傳送到 AMP。這就是 FastLoad 不支援重複項的原因。
SET 表不允許重複記錄,而 MULTISET 允許重複記錄。
對於插入的每一行,系統都會檢查是否存在任何具有相同行雜湊的記錄。如果表定義了 UPI,則會拒絕該記錄作為重複記錄。否則,它將比較整個記錄以查詢重複項。這將嚴重影響系統性能。
您可以定義唯一主鍵索引或唯一二級索引來避免重複行檢查。
使用 CREATE TABLE 語句建立表。可以使用以下方法建立表:
帶有列定義的 CREATE TABLE 語句。
從現有表建立 CREATE TABLE。
帶有 SELECT 語句的 CREATE TABLE 語句。
可以使用 DISTINCT 語句或 GROUP BY 語句識別重複記錄。
SELECT DISTINCT column 1, column 2… FROM tablename; OR SELECT column 1, column 2,… FROM tablename GROUP BY column 1, column 2….;
Teradata 中的主鍵不是強制性的,而主鍵索引是強制性的。
資料分佈基於主鍵索引值。
主鍵不接受 NULL 值,而主鍵索引接受 NULL 值。
主鍵是唯一的,而主鍵索引可以是唯一的 (UPI) 或非唯一的 (NUPI)。
主鍵不會更改,而主鍵索引會更改。
可以透過 3 種不同的方式訪問資料:
- 透過主鍵索引
- 透過二級索引
- 全表掃描
可以使用查詢 SELECT HASHAMP() + 1; 來識別。
以下查詢可用於此目的。
SELECT HASHMAP(HASHBUCKET(HASHROW(primaryindexvalue))), COUNT(*) FROM tablename GROUP BY 1;
Teradata 支援兩種事務模式。
- Teradata
- ANSI
Teradata 模式使用 SET SESSION TRANSACTION BTET 設定;ANSI 模式使用 SET SESSION TRANSACTION ANSI 設定;
可以使用 BT 和 ET 語句執行事務。
使用者無法直接訪問連線索引。只有最佳化器可以訪問它們。
重複記錄將被拒絕載入到目標表中,並將插入到 UV 表中。
FALLBACK 是 Teradata 用於處理 AMP 故障的保護機制。對於每一行資料,都會在叢集中的另一個 AMP 中儲存該行的另一份副本。如果任何 AMP 發生故障,則可以使用 FALLBACK AMP 訪問相應的行。
在使用 CREATE TABLE 語句建立表時或在建立表後使用 ALTER TABLE 語句都可以提及 FALLBACK。
如果查詢的中間結果超過了為提交查詢的使用者設定的每個 AMP spool 空間限制,則會發生 Spool 空間錯誤。
SLEEP 命令指定 Teradata 嘗試建立連線之前的等待時間。
TENACITY 命令指定 Teradata 建立新連線的總等待時間。
您可以保留 BEGIN LOADING 和 END LOADING 語句並提交 FASTLOAD 指令碼。另一種選擇是刪除表並重新建立表。
Teradata 中的快取與源一起工作並保持相同的順序,即它不會頻繁更改。快取通常在應用程式之間共享。它是使用 Teradata 的額外優勢。
RAID 是一種處理磁碟故障的保護機制。它代表獨立磁碟冗餘陣列。RAID 1 通常用於 Teradata。
二級索引提供訪問資料的替代路徑。它們用於避免全表掃描。但是,二級索引需要額外的物理結構來維護子表,並且還需要額外的 I/O,因為需要為每一行更新子表。
Teradata 中有四種不同的鎖:獨佔、寫、讀和訪問。
鎖可以在三個不同的級別應用:資料庫、表和行。
使用多值壓縮 (MVC),您可以壓縮多達 255 個值,包括 NULL 值。
FastLoad 以 64K 塊載入資料。FastLoad 有兩個階段。
在階段 1 中,它以 64K 塊的形式獲取資料並將其傳送到目標 AMP。然後,每個 AMP 將對行進行雜湊重新分配到其目標 AMP。
在階段 2 中,行按其行雜湊順序排序並寫入目標表。
MultiLoad 匯入有五個階段。
階段 1 - 預備階段 - 執行基本設定活動。
階段 2 - DML 事務階段 - 驗證 DML 語句的語法並將它們帶到 Teradata 系統。
階段 3 - 獲取階段 - 將輸入資料帶入工作表並鎖定表。
階段 4 - 應用階段 - 應用所有 DML 操作。
階段 5 - 清理階段 - 釋放表鎖。
MULTILOAD DELETE 速度更快,因為它以塊的形式刪除記錄。DELETE FROM 將逐行刪除記錄。
儲存過程返回一個或多個值,而宏可以返回一個或多個行。除了 SQL 之外,儲存過程還可以包含 SPL 語句。
FastLoad 和 MultiLoad 都以 64K 塊載入資料,而 BTEQ 將一次處理一行。
FastExport 以 64K 塊匯出資料,而 BTEQ 一次匯出一行。
Teradata 並行傳輸器 (TPT) 是用於載入/匯出資料的實用程式。它結合了 FastLoad、MultiLoad、BTEQ、TPUMP 和 FastExport 的所有功能。
永久日誌跟蹤應用更改前後資料的狀態。這有助於將表回滾或向前滾到特定狀態。可以在表級或資料庫級啟用永久日誌。
在Teradata中,每個AMP都與一個虛擬磁碟關聯。只有擁有該虛擬磁碟的AMP才能訪問該虛擬磁碟中的資料。這被稱為共享無(Shared Nothing)架構。
如果查詢使用分割槽列,則會導致分割槽消除,這將大大提高效能。
分割槽會消除其他分割槽,並且只訪問包含資料的那些分割槽。
您可以輕鬆地刪除舊分割槽並建立新分割槽。
是的。二級索引需要子表,而子表需要永久空間。
是的。每當新增分割槽主索引時,每行都會為分割槽號額外佔用2或8個位元組。
您可以對指定列使用RANK函式,並使用降序排列,以及Qualify = 2條件。
您可以檢查查詢的EXPLAIN計劃以識別消耗更多Spool空間的步驟,並嘗試最佳化查詢。可以應用過濾器以減少正在處理的記錄數量,或者可以將大型查詢拆分為多個較小的查詢。
當對查詢使用EXPLAIN命令時,它會指定最佳化器檢索記錄的置信度。
Teradata中有三個置信度級別:高置信度、中置信度和低置信度。
NUSI和全表掃描(FTS)都會訪問所有AMP,但FTS會訪問AMP內的所有塊,而NUSI僅在子表包含符合條件的行時才訪問塊。
在BTEQ模式下,可以使用SKIP命令跳過記錄。
BYTEINT。它只佔用一個位元組,並且可以儲存高達+127的值。
- 透過唯一主索引 – 1個AMP
- 透過非唯一主索引 – 1個AMP
- 透過唯一二級索引 – 2個AMP
- 透過非唯一二級索引 – 所有AMP
Clique是一種用於處理節點故障的保護機制。它是一組節點。當Clique中的一個節點發生故障時,vproc(解析引擎和AMP)將遷移到其他節點,並繼續對其虛擬磁碟執行讀/寫操作。
Teradata提供了不同級別的保護機制。
瞬態日誌 - 用於處理事務失敗。
回退 - 用於處理AMP失敗。
Clique - 用於處理節點失敗。
RAID - 用於處理磁碟失敗。
熱備節點 - 用於處理節點故障,而不會影響效能和重啟。
ACTIVITYCOUNT給出BTEQ中前一個SQL查詢影響的行數。如果ACTIVITYCOUNT語句位於插入語句之後,則返回插入的行數。如果ACTIVITYCOUNT語句位於選擇語句之後,則返回選擇的行數。
下一步是什麼?
接下來,您可以回顧一下您之前完成的與主題相關的作業,並確保您能夠自信地談論它們。如果您是應屆畢業生,面試官並不期望您能回答非常複雜的問題,而是需要您將基礎概念掌握牢固。
其次,如果您無法回答一些問題,其實影響並不大,重要的是,無論您回答了什麼,都必須充滿自信。所以在面試過程中保持自信。Tutorialspoint祝您能遇到一位好的面試官,並祝您未來的工作一切順利。乾杯!:-)