ฉันรู้ว่า บริษัท ของฉันใช้กระบวนการ ELT (แยกโหลดแปลง) แทนที่จะใช้กระบวนการ ETL (แยกโหลดเปลี่ยน)
อะไรคือความแตกต่างในสองแนวทางและสถานการณ์ใดที่จะ "ดี" กว่าอีกสถานการณ์หนึ่ง มันจะดีถ้าคุณสามารถยกตัวอย่าง
ฉันรู้ว่า บริษัท ของฉันใช้กระบวนการ ELT (แยกโหลดแปลง) แทนที่จะใช้กระบวนการ ETL (แยกโหลดเปลี่ยน)
อะไรคือความแตกต่างในสองแนวทางและสถานการณ์ใดที่จะ "ดี" กว่าอีกสถานการณ์หนึ่ง มันจะดีถ้าคุณสามารถยกตัวอย่าง
คำตอบ:
มีการพูดคุยมากมายเกี่ยวกับ ETL กับ ELT
ความแตกต่างที่สำคัญระหว่าง ETL กับ ELT คือการประมวลผลที่เกิดขึ้น การประมวลผล ETL ของข้อมูลเกิดขึ้นในเครื่องมือ ETL (มักจะบันทึกในเวลาและในหน่วยความจำ) การประมวลผลข้อมูลของ ELT เกิดขึ้นในเอนจิ้นฐานข้อมูล
ข้อมูลเหมือนกันและผลลัพธ์สุดท้ายของข้อมูลสามารถทำได้ทั้งสองวิธี
มันขึ้นอยู่กับคุณและสภาพแวดล้อมของคุณเป็นอย่างมากหากคุณมีโปรแกรมฐานข้อมูลที่แข็งแกร่งและฮาร์ดแวร์ที่ดีและคุณสามารถทำการประมวลผลอย่างหนักได้ ELT นั้นดีสำหรับคุณถ้าคุณมีเครื่องมือจัดเก็บข้อมูลที่ยุ่งและคุณต้องการปลดปล่อยมันจากการประมวลผล สำหรับ ETL
โปรดสังเกตว่าการมีเครื่องมือ ETL ให้ตัวเลือกทั้งสองเช่น ETL (T) คุณสามารถทำการแปลงในเครื่องมือ ETL และคุณสามารถทำการแปลงในเครื่องมือฐานข้อมูลได้เช่นกัน
แต่ ELT คุณมีเพียงตัวเลือกของการเปลี่ยนแปลงในเอ็นจิ้นฐานข้อมูล แต่คุณควรรู้ว่าฐานข้อมูลนั้นดีกว่าในการใช้งานที่ตั้งไว้มากกว่าเครื่องมือ ETL แบบบันทึกต่อครั้ง
คำถามที่คล้ายกันถามในSOแต่สนับสนุน ETL และยังเป็นบทความที่ดีเปรียบเทียบ ETL กับ ELT แต่นิยม ELT
มันเกือบจะเป็นเรื่องของความหมาย อากาศร้อนจำนวนมากถูกปล่อยออกมาในการอภิปรายเกี่ยวกับเรื่องนี้ แต่ฉันไม่เชื่อจริง ๆ ว่ามีความลึกทางปรัชญาที่แท้จริงสำหรับความแตกต่างระหว่างทั้งสอง
ในบางระดับคุณสามารถดู ETL ว่าเป็นการแปลงข้อมูลในเครื่องมือฝั่งไคลเอ็นต์ก่อนที่จะโหลดในที่สุดด้วย ELT หมายความว่าข้อมูลถูกถ่ายโอนไปยังพื้นที่การจัดเตรียมบางประเภทที่มีการเปลี่ยนแปลงรูปแบบค่อนข้างน้อย 'การเปลี่ยนแปลง' จะเกิดขึ้นในภายหลัง
เหล่านี้เป็นคำจำกัดความที่นุ่มมากและสามารถนำไปใช้กับสถาปัตยกรรมทางเทคนิคที่หลากหลายและมีการออกแบบที่เป็นไปได้มากมายที่คำใดคำหนึ่งสามารถใช้เพื่ออธิบาย
ฉันชอบสถาปัตยกรรมที่การเปลี่ยนแปลงและตรรกะทางธุรกิจทั้งหมดสามารถสร้างขึ้นในฐานรหัสที่เป็นเนื้อเดียวกันมากขึ้นหรือน้อยลงและฉันได้ทำระบบจำนวนมากที่ตรรกะการเปลี่ยนแปลงค่อนข้างซับซ้อน สิ่งนี้มีแนวโน้มที่จะเพียงแค่ใช้เครื่องมือ ETL เพื่อลงข้อมูลและจากนั้นการเปลี่ยนแปลงทั้งหมดจะทำในขั้นตอนการจัดเก็บ เนื้อหานี้สามารถอธิบายเป็น ETL หรือ ELT ด้วยความแตกต่างเพียงแค่หนึ่งในความหมาย
เครื่องมือบางอย่างนั้นมีฐานข้อมูลเป็นศูนย์กลางมาก (ตัวอย่างเช่น Oracle Data Integrator มักถูกอ้างถึงว่าเป็นเครื่องมือ ELT) หากคุณสมัครสมาชิกกับมุมมองนี้ 'แยก' และ 'โหลด' จะเกิดขึ้นก่อนที่ข้อมูลจะถูกแปลงขณะที่กำลังลงสู่พื้นที่จัดแสดงและจากนั้นกระทืบโดย SQL หรือรหัส PL / SQL (ซึ่งอาจถูกสร้างขึ้นโดยเครื่องมือหรือ เขียนด้วยมือ) หลายคนที่ฉันได้พูดคุยดูเหมือนจะคำนึงถึงประโยชน์หลักของ ODI เพราะไม่ใช่ OWB
หากคุณใช้เครื่องมือฝั่งไคลเอ็นต์เช่น Informatica Powercentre หรือ MS SQL Server Integration Services เครื่องมือนี้สามารถทำการแปลงข้อมูลไปยังฝั่งไคลเอ็นต์ได้อย่างกว้างขวาง เครื่องมือ ETL บางตัวเช่น Ascential Datastage และ Ab Initio ได้รับการออกแบบมาเพื่อทำงานจำนวนมากกับไฟล์แบนและโครงสร้างข้อมูลในหน่วยความจำเพื่อความรวดเร็ว ในสถาปัตยกรรมประเภทนี้การแปลงได้ทำไปแล้วก่อนที่จะโหลด บางทีสถาปัตยกรรมประเภทนี้อาจจำแนกได้อย่างแน่นอนว่า 'ETL' ถึงแม้ว่าฉันเคยเห็นโครงการที่เน้นเครื่องมือเป็นจำนวนมากซึ่งงานจริงทั้งหมดทำโดยใช้รหัสกระบวนงานที่เก็บไว้จำนวนมาก
มีข้อดีสำหรับเครื่องมือและวิธีการทางสถาปัตยกรรมที่หลากหลาย แต่ไม่มีใครสามารถกล่าวได้อย่างครอบคลุมถึงข้อดีของ 'ETL' กับ 'ELT' เพราะข้อตกลงนั้นกว้างมากจนแทบไม่มีความแตกต่าง เครื่องมือและสถาปัตยกรรมบางอย่างอาจมีข้อได้เปรียบเฉพาะ - ตัวอย่างเช่นการใช้ไฟล์แฟลตของ Ab Initio อย่างหนักทำให้ได้เปรียบด้านประสิทธิภาพอย่างมากในปริมาณข้อมูลขนาดใหญ่
ในทางปฏิบัติการสร้างความแตกต่างระหว่าง 'ETL' และ 'ELT' นั้นค่อนข้างไร้ความหมายโดยไม่ต้องพูดถึงข้อกำหนดของระบบแพลตฟอร์มและสถาปัตยกรรมทางเทคนิคที่ลึกซึ้งยิ่งขึ้น
มันเป็นเรื่องของเงินด้วย ที่ที่ปริมาณข้อมูลสูงที่สุดเท่าที่คุณจะทำได้โซลูชั่นแบบแฟลตไฟล์เช่น Ab Initio และ DataStage Parallel Extender นั้นเร็วกว่าจริง ๆ แต่อาจเป็นข้อเสนอตัวเลขหกถึงกลางถึงสูง IRI CoSort นั้นเป็น ETL-centric มาก (ต่อการเปรียบเทียบ ELT ของพวกเขา) และเป็นวิธีที่ไม่แพงเพียงวิธีเดียวที่ฉันได้เห็นเพื่อจัดการกับปริมาณการแปลงข้อมูลด้วยความเร็วของระบบไฟล์นอกเหนือจากการใช้ Hadoop ที่ซับซ้อน ฉันยังคิดว่าการขว้างปาฮาร์ดแวร์ด้วยปัญหาโดยทั่วไป (ซึ่งอุปกรณ์ ELT และฐานข้อมูลในหน่วยความจำทำเช่นกัน) ไม่ได้ปรับขนาดด้วยราคาที่เหมาะสมเช่นกัน