Teradata - คำถามและคำตอบ

เรียนผู้อ่านเหล่านี้ Teradata Interview Questions ได้รับการออกแบบมาเป็นพิเศษเพื่อให้คุณคุ้นเคยกับลักษณะของคำถามที่คุณอาจพบในระหว่างการสัมภาษณ์ในหัวข้อนั้น ๆ Teradata. จากประสบการณ์ของฉันผู้สัมภาษณ์ที่ดีแทบจะไม่ได้วางแผนที่จะถามคำถามใด ๆ โดยเฉพาะในระหว่างการสัมภาษณ์ของคุณโดยปกติแล้วคำถามจะเริ่มต้นด้วยแนวคิดพื้นฐานบางอย่างของเรื่องและหลังจากนั้นพวกเขาจะดำเนินการต่อโดยพิจารณาจากการสนทนาเพิ่มเติมและสิ่งที่คุณตอบ -

Teradata Architecture ประกอบด้วยสามองค์ประกอบ

  • Parsing Engine - Parsing Engine รับคำถามจากผู้ใช้แยกวิเคราะห์และเตรียมแผนการดำเนินการ

  • BYNET - BYNET ได้รับแผนการดำเนินการจาก Parsing Engine และส่งไปยัง AMP ที่เหมาะสม

  • AMP- AMP มีหน้าที่จัดเก็บและเรียกข้อมูลแถว จัดเก็บข้อมูลในดิสก์เสมือนที่เกี่ยวข้อง นอกจากนี้ AMP ยังรับผิดชอบการจัดการการล็อกการจัดการพื้นที่การเรียงลำดับและการรวม

FastLoad MultiLoad
ตารางเป้าหมายควรว่างเปล่า ตารางเป้าหมายต้องไม่ว่างเปล่า
สามารถโหลดได้เพียงตารางเดียวโดยใช้สคริปต์เดียว สามารถโหลด / อัปเดตได้สูงสุด 5 ตาราง
รองรับเฉพาะคำสั่ง CREATE / INSERT รองรับคำสั่ง DML สูงสุด 20 รายการในสคริปต์เดียว
ไม่รองรับตารางที่มี RI, SI และ Triggers รองรับตารางด้วย NUSI

FastLoad ให้ความสามารถในการรีสตาร์ทผ่านจุดตรวจ เมื่อสคริปต์เริ่มต้นใหม่จากจุดตรวจสุดท้ายอาจเป็นไปได้ว่าแถวเดิมอาจถูกส่งไปยัง AMP อีกครั้ง นั่นเป็นเหตุผลที่ FastLoad ไม่รองรับรายการที่ซ้ำกัน

ตาราง SET ไม่อนุญาตให้มีระเบียนที่ซ้ำกันในขณะที่ MULTISET อนุญาตให้มีระเบียนที่ซ้ำกัน

สำหรับแต่ละแถวที่แทรกระบบจะตรวจสอบว่ามีระเบียนใดที่มีแฮชแถวเดียวกันหรือไม่ หากตารางมีการกำหนด UPI ตารางนั้นจะปฏิเสธการบันทึกว่าซ้ำกัน มิฉะนั้นจะเปรียบเทียบระเบียนทั้งหมดว่าซ้ำกัน สิ่งนี้จะส่งผลกระทบอย่างรุนแรงต่อประสิทธิภาพของระบบ

คุณสามารถกำหนดดัชนีหลักที่ไม่ซ้ำกันหรือดัชนีรองที่ไม่ซ้ำกันเพื่อหลีกเลี่ยงการตรวจสอบแถวที่ซ้ำกัน

ตารางถูกสร้างขึ้นโดยใช้คำสั่ง CREATE TABLE สามารถสร้างตารางโดยใช้ไฟล์

  • สร้างคำสั่ง TABLE ด้วยนิยามคอลัมน์

  • สร้างตารางจากตารางที่มีอยู่

  • สร้างคำสั่ง TABLE ด้วยคำสั่ง SELECT

สามารถระบุระเบียนที่ซ้ำกันได้โดยใช้คำสั่ง 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

FALLBACK สามารถกล่าวถึงในขณะที่สร้างตารางโดยใช้คำสั่ง CREATE TABLE หรือหลังจากสร้างตารางโดยใช้คำสั่ง ALTER TABLE

ข้อผิดพลาดของ Spool space จะเกิดขึ้นหากผลลัพธ์ระดับกลางของข้อความค้นหาเกินขีด จำกัด พื้นที่ spool ของ AMP ที่กำหนดไว้สำหรับผู้ใช้ที่ส่งคำค้นหา

คำสั่ง SLEEP ระบุเวลารอก่อนที่ Teradata จะพยายามสร้างการเชื่อมต่อ

คำสั่ง TENACITY ระบุเวลารอทั้งหมดสำหรับ Teradata เพื่อสร้างการเชื่อมต่อใหม่

คุณสามารถเก็บคำสั่ง BEGIN LOADING และ END LOADING ไว้และส่งสคริปต์ FASTLOAD ตัวเลือกอื่นคือวางตารางและสร้างตารางอีกครั้ง

การแคชใน Teradata ทำงานกับแหล่งที่มาและยังคงอยู่ในลำดับเดิมนั่นคือจะไม่เปลี่ยนแปลงบ่อย โดยปกติแคชจะใช้ร่วมกันระหว่างแอปพลิเคชัน เป็นข้อดีเพิ่มเติมของการใช้ Teradata

RAID เป็นกลไกการป้องกันเพื่อจัดการกับความล้มเหลวของดิสก์ ย่อมาจาก Redundant Array of Independent Disks RAID 1 มักใช้ใน Teradata

ดัชนีรองจัดเตรียมเส้นทางอื่นในการเข้าถึงข้อมูล ใช้เพื่อหลีกเลี่ยงการสแกนแบบเต็มตาราง อย่างไรก็ตามดัชนีทุติยภูมิจำเป็นต้องมีโครงสร้างทางกายภาพเพิ่มเติมสำหรับการดูแลตารางย่อยและยังต้องการ I / O เพิ่มเติมเนื่องจากตารางย่อยต้องได้รับการอัพเดตสำหรับแต่ละแถว

Teradata มีสี่ล็อคที่แตกต่างกัน ได้แก่ Exclusive เขียนอ่านและเข้าถึง

สามารถใช้การล็อกได้ในสามระดับที่แตกต่างกัน - ฐานข้อมูลตารางและแถว

การใช้การบีบอัดแบบหลายค่า (MVC) คุณสามารถบีบอัดค่าได้มากถึง 255 ค่ารวมทั้งค่า NULL

FastLoad โหลดข้อมูลในบล็อก 64K FastLoad มี 2 เฟส

  • ในระยะที่ 1 จะนำข้อมูลในบล็อก 64K และส่งไปยัง AMP เป้าหมาย AMP แต่ละตัวจะแฮชกระจายแถวไปยัง AMP เป้าหมายอีกครั้ง

  • ในระยะที่ 2 แถวจะเรียงลำดับตามลำดับแฮชของแถวและเขียนลงในตารางเป้าหมาย

การนำเข้า MultiLoad มีห้าขั้นตอน

  • Phase 1 - ขั้นตอนเบื้องต้น - ดำเนินกิจกรรมการตั้งค่าพื้นฐาน

  • Phase 2 - DML Transaction Phase - ตรวจสอบไวยากรณ์ของคำสั่ง DML และนำไปยังระบบ Teradata

  • Phase 3 - Acquisition Phase - นำข้อมูลเข้ามาในตารางงานและล็อกตาราง

  • Phase 4 - Application Phase - ใช้การดำเนินการ DML ทั้งหมด

  • Phase 5 - Cleanup Phase - ปลดล็อคตาราง

MULTILOAD DELETE เร็วกว่าเนื่องจากจะลบบันทึกในบล็อก DELETE FROM จะลบทีละแถว

ขั้นตอนที่จัดเก็บจะส่งคืนค่าอย่างน้อยหนึ่งค่าในขณะที่มาโครสามารถส่งคืนหนึ่งแถวหรือมากกว่า นอกจาก SQL แล้วกระบวนงานที่เก็บไว้อาจมีคำสั่ง SPL

ทั้ง FastLoad และ MultiLoad โหลดข้อมูลในบล็อก 64K ในขณะที่ BTEQ จะประมวลผลทีละแถว

FastExport ส่งออกข้อมูลใน 64K บล็อกในขณะที่ BTEQ ส่งออกทีละแถว

Teradata Parallel Transporter (TPT) เป็นยูทิลิตี้สำหรับโหลด / ส่งออกข้อมูล มันรวมฟังก์ชันทั้งหมดของ FastLoad, MultiLoad, BTEQ, TPUMP และ FastExport

วารสารถาวรจะติดตามข้อมูลก่อนหรือหลังใช้การเปลี่ยนแปลง วิธีนี้ช่วยในการย้อนกลับหรือเลื่อนตารางไปข้างหน้าในสถานะเฉพาะ วารสารถาวรสามารถเปิดใช้งานได้ที่ระดับตารางหรือระดับฐานข้อมูล

ใน Teradata AMP แต่ละรายการจะเชื่อมโยงกับดิสก์เสมือน มีเพียง AMP ที่เป็นเจ้าของดิสก์เสมือนเท่านั้นที่สามารถเข้าถึงข้อมูลภายในดิสก์เสมือนนั้นได้ สิ่งนี้เรียกว่าเป็น Shared Nothing Architecture

  • หากแบบสอบถามใช้คอลัมน์ที่แบ่งพาร์ติชันจะส่งผลให้มีการลบพาร์ติชันซึ่งจะช่วยเพิ่มประสิทธิภาพได้มาก

  • พาร์ติชันกำจัดพาร์ติชันอื่นและเข้าถึงเฉพาะพาร์ติชันที่มีข้อมูล

  • คุณสามารถวางพาร์ติชันเก่าและสร้างพาร์ติชันใหม่ได้อย่างง่ายดาย

ใช่. ดัชนีรองต้องการตารางย่อยซึ่งต้องการพื้นที่ถาวร

ใช่. เมื่อใดก็ตามที่มีการเพิ่มดัชนีหลักที่แบ่งพาร์ติชันแต่ละแถวจะใช้พื้นที่เพิ่มเติม 2 หรือ 8 ไบต์สำหรับหมายเลขพาร์ติชัน

คุณสามารถใช้ฟังก์ชัน RANK บนคอลัมน์ที่ระบุโดยเรียงลำดับจากมากไปหาน้อยโดยมีเงื่อนไข Qualify = 2

คุณสามารถตรวจสอบแผน EXPLAIN ของแบบสอบถามเพื่อระบุขั้นตอนที่ใช้พื้นที่สปูลมากขึ้นและพยายามปรับการสืบค้นให้เหมาะสม สามารถใช้ตัวกรองเพื่อลดจำนวนบันทึกที่ประมวลผลหรือคุณสามารถแบ่งแบบสอบถามขนาดใหญ่ออกเป็นแบบสอบถามขนาดเล็กหลายรายการ

เมื่อใช้คำสั่ง EXPLAIN กับคิวรีคำสั่งจะระบุความเชื่อมั่นของเครื่องมือเพิ่มประสิทธิภาพในการดึงข้อมูลเรกคอร์ด

Teradata มีสามระดับความมั่นใจ: ความมั่นใจสูงความมั่นใจปานกลางและความมั่นใจต่ำ

ทั้ง NUSI และ Full Table Scan (FTS) จะเข้าถึง AMP ทั้งหมด แต่ FTS จะเข้าถึงบล็อกทั้งหมดภายใน AMP ในขณะที่ NUSI จะเข้าถึงบล็อกก็ต่อเมื่อตารางย่อยมีแถวที่เข้าเกณฑ์

ในโหมด BTEQ สามารถใช้คำสั่ง SKIP เพื่อข้ามบันทึกได้

BYTEINT. ใช้พื้นที่เพียงหนึ่งไบต์และสามารถจัดเก็บค่าได้ถึง +127

  • ผ่านดัชนีหลักที่ไม่ซ้ำ - 1 AMP
  • ผ่านดัชนีหลักที่ไม่ซ้ำ - 1 AMP
  • ผ่านดัชนีรองที่ไม่ซ้ำกัน - 2 AMP
  • ผ่านดัชนีรองที่ไม่ซ้ำกัน - AMP ทั้งหมด

Clique เป็นกลไกการป้องกันเพื่อจัดการกับความล้มเหลวของโหนด มันเป็นกลุ่มของโหนด เมื่อโหนดภายในกลุ่มล้มเหลว vprocs (Parsing Engine และ AMP) จะย้ายไปยังโหนดอื่นและดำเนินการอ่าน / เขียนบนดิสก์เสมือนต่อไป

Teradata มีกลไกการป้องกันในระดับที่แตกต่างกัน

  • Transient Journal - เพื่อจัดการความล้มเหลวของธุรกรรม

  • Fallback - เพื่อจัดการความล้มเหลวของ AMP

  • Cliques - เพื่อจัดการกับความล้มเหลวของโหนด

  • RAID - เพื่อจัดการกับความล้มเหลวของดิสก์

  • Hot standby Node - เพื่อจัดการกับความล้มเหลวของโหนดโดยไม่ส่งผลต่อประสิทธิภาพและเริ่มต้นใหม่

ACTIVITYCOUNT แสดงจำนวนแถวที่ได้รับผลกระทบจากแบบสอบถาม SQL ก่อนหน้าใน BTEQ ถ้าคำสั่ง ACTIVITYCOUNT เป็นไปตามคำสั่งแทรกจะส่งกลับจำนวนแถวที่แทรก ถ้าคำสั่ง ACTIVITYCOUNT เป็นไปตามคำสั่ง select จะส่งกลับจำนวนแถวที่เลือก

Next คืออะไร?

นอกจากนี้คุณยังสามารถดูงานที่ได้รับมอบหมายในอดีตของคุณที่คุณทำกับหัวเรื่องและตรวจสอบให้แน่ใจว่าคุณสามารถพูดกับพวกเขาได้อย่างมั่นใจ หากคุณเป็นคนใหม่ผู้สัมภาษณ์ไม่คาดหวังว่าคุณจะตอบคำถามที่ซับซ้อนมากนัก แต่คุณต้องทำให้แนวคิดพื้นฐานของคุณแข็งแกร่งมาก

ประการที่สองมันไม่สำคัญมากนักหากคุณไม่สามารถตอบคำถามสองสามข้อได้ แต่สิ่งสำคัญคือสิ่งที่คุณตอบคุณต้องตอบด้วยความมั่นใจ ดังนั้นเพียงแค่รู้สึกมั่นใจในระหว่างการสัมภาษณ์ของคุณ พวกเราขอให้คุณโชคดีที่มีผู้สัมภาษณ์ที่ดีและสิ่งที่ดีที่สุดสำหรับความพยายามในอนาคตของคุณ ไชโย :-)