การเปลี่ยนแปลงของช่างไม้ใน Informatica ด้วยตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การแปลงข้อมูลแบบ Joiner ใน Informatica เป็นอ็อบเจ็กต์ที่เชื่อมต่อและทำงานอยู่ ซึ่งทำหน้าที่เชื่อมต่อแหล่งข้อมูลสองแหล่งที่แตกต่างกันโดยอาศัยเงื่อนไขการจับคู่ โดยจะแคชไปป์ไลน์หลักไว้ในหน่วยความจำในขณะที่ไปป์ไลน์รายละเอียดไหลผ่าน

การเปลี่ยนแปลงของช่างไม้คืออะไร?
การแปลง Joiner เป็นการแปลงแบบแอคทีฟและเชื่อมต่อที่ให้คุณสามารถสร้างการเชื่อมต่อ (joins) ใน Informatica ได้ การเชื่อมต่อที่สร้างขึ้นโดยใช้การแปลง Joiner นั้นคล้ายกับการเชื่อมต่อในฐานข้อมูล ข้อดีของการแปลง Joiner คือสามารถสร้างการเชื่อมต่อสำหรับระบบที่แตกต่างกัน (ฐานข้อมูลต่าง ๆ) ได้
ในการแปลง Joiner นั้น มีแหล่งข้อมูลสองแหล่งที่เราจะใช้สำหรับการเชื่อมต่อ แหล่งข้อมูลทั้งสองนี้เรียกว่า
- แหล่งที่มาของอาจารย์
- ที่มารายละเอียด
ในคุณสมบัติของการแปลงข้อมูล Joiner คุณสามารถเลือกได้ว่าแหล่งข้อมูลใดจะเป็นแหล่งข้อมูลหลัก และแหล่งข้อมูลใดจะเป็นแหล่งข้อมูลรายละเอียด
ระหว่างการประมวลผล แหล่งข้อมูลหลักจะถูกแคชไว้ในหน่วยความจำเพื่อใช้ในการเชื่อมต่อ ดังนั้นจึงแนะนำให้เลือกแหล่งข้อมูลที่มีจำนวนระเบียนน้อยกว่าเป็นแหล่งข้อมูลหลัก ไปป์ไลน์หลักจะถูกเก็บไว้ในแคชสองส่วน คือ แคชดัชนีสำหรับค่าที่ใช้ในเงื่อนไขการเชื่อมต่อ และแคชข้อมูลสำหรับข้อมูลแถวที่เหลือ
ประเภทของการเชื่อมต่อใน Joiner Transformation
คุณสมบัติ Join Type ในแท็บ Properties จะกำหนดว่าจะเกิดอะไรขึ้นกับแถวที่ไม่พบการจับคู่ การเชื่อมต่อต่อไปนี้สามารถสร้างได้โดยใช้การแปลง Joiner
- การรวมภายนอกระดับปริญญาโท – ในการเชื่อมแบบ Master Outer Join ระบบจะส่งคืนเรคอร์ดทั้งหมดจากแหล่งข้อมูลรายละเอียด และจะส่งคืนเฉพาะแถวที่ตรงกันจากแหล่งข้อมูลหลักเท่านั้น
- รายละเอียดการรวมภายนอก – ในการเชื่อมข้อมูลแบบ Detail Outer Join ระบบจะส่งคืนเฉพาะแถวที่ตรงกันจากแหล่งข้อมูลรายละเอียด และจะส่งคืนทุกแถวจากแหล่งข้อมูลหลัก
- การรวมภายนอกแบบเต็ม – ในการเชื่อมข้อมูลแบบ Full Outer Join ระบบจะส่งคืนข้อมูลทั้งหมดจากทั้งสองแหล่งข้อมูล
- เข้าร่วมปกติ – ในการเชื่อมข้อมูลแบบปกติ ระบบจะส่งคืนเฉพาะแถวที่ตรงกันจากทั้งสองแหล่งข้อมูลเท่านั้น
การเชื่อมต่อภายนอกหลักและการเชื่อมต่อภายนอกรายละเอียดเทียบเท่ากับการเชื่อมต่อภายนอกด้านซ้ายใน SQLแต่ละแบบจะเก็บทุกแถวจากแหล่งข้อมูลหนึ่ง และเก็บเฉพาะข้อมูลที่ตรงกันจากแหล่งข้อมูลอื่น ตารางด้านล่างแสดงการเปรียบเทียบประเภททั้งสี่กับคำสั่ง SQL ที่เทียบเท่ากัน
| ประเภทการเข้าร่วม | แถวที่เก็บไว้จากมาสเตอร์ | แถวต่างๆ ถูกกันออกจากรายละเอียด | เทียบเท่า SQL |
|---|---|---|---|
| เข้าร่วมปกติ | การจับคู่เท่านั้น | การจับคู่เท่านั้น | การเข้าร่วมภายใน |
| การรวมภายนอกระดับปริญญาโท | การจับคู่เท่านั้น | ทุกแถว | การเชื่อมต่อภายนอกด้านซ้ายบนแหล่งข้อมูลรายละเอียด |
| รายละเอียดการรวมภายนอก | ทุกแถว | การจับคู่เท่านั้น | การเชื่อมต่อภายนอกด้านซ้ายบนแหล่งข้อมูลหลัก |
| การรวมภายนอกแบบเต็ม | ทุกแถว | ทุกแถว | การรวมภายนอกแบบเต็ม |
ประเภทของการเชื่อมต่อเป็นคุณสมบัติ ไม่ใช่ตัวเลือกเชิงโครงสร้าง ดังนั้นจึงสามารถเปลี่ยนแปลงได้ในภายหลังโดยไม่ต้องสร้างแผนที่ใหม่ping หรือเชื่อมต่อพอร์ตใหม่
วิธีใช้งาน Joiner Transformation ใน Informatica
ในตัวอย่างนี้ เราจะรวมตาราง emp และ dept โดยใช้การแปลง Joiner ทำตามขั้นตอนทั้งแปดด้านล่างในแผนผังping นักออกแบบ
ขั้นตอน 1) สร้างตารางเป้าหมายใหม่ชื่อ EMP_DEPTNAME ในฐานข้อมูลโดยใช้สคริปต์ด้านล่าง และนำเข้าตารางดังกล่าวในเป้าหมายของ Informatica
ดาวน์โหลดไฟล์ emp_deptname.sql ด้านบน
ขั้นตอน 2) สร้างใหม่ แผนที่ping และนำเข้าตารางต้นทาง “EMP” และ “DEPT” รวมถึงตารางปลายทางที่เราสร้างไว้ในขั้นตอนก่อนหน้า ตอนนี้คำจำกัดความทั้งสามปรากฏอยู่บนผืนผ้าใบแล้ว ดังแสดงด้านล่าง
ขั้นตอน 3) จากเมนู Transformation ให้เลือกตัวเลือก Create จากนั้นในหน้าต่าง Create Transformation ที่แสดงด้านล่าง
- เลือกการแปลงตัวเชื่อม
- ป้อนชื่อการเปลี่ยนแปลง “jnr_emp_dept”
- เลือกตัวเลือกสร้าง
ขั้นตอน 4) ลากและวางคอลัมน์ทั้งหมดจากทั้งสอง ตัวกรองแหล่งที่มา ไปยังการแปลง Joiner แล้ว ตอนนี้ไปป์ไลน์ทั้งสองเชื่อมโยงเข้ากับ jnr_emp_dept แล้ว ดังที่แสดงในภาพหน้าจอ
ขั้นตอน 5) Double คลิกที่การแปลง Joiner จากนั้นในหน้าต่าง Edit Transformations
- เลือกแท็บเงื่อนไข
- คลิกที่ไอคอนเพิ่มเงื่อนไขใหม่
- เลือก deptno ในรายการคอลัมน์หลักและรายละเอียด
แท็บเงื่อนไขขณะนี้มีเงื่อนไขการเชื่อมต่อแบบเดี่ยวบน deptno แล้ว
ขั้นตอน 6) จากนั้นในหน้าต่างเดียวกัน
- เลือกแท็บคุณสมบัติ
- เลือก Normal Join เป็นประเภทการเชื่อมต่อ
- กดปุ่ม OK
ถัดไปจะแสดงแท็บ Properties ที่มีการตั้งค่าประเภทการเชื่อมต่อไว้แล้ว
เพื่อเพิ่มประสิทธิภาพการทำงาน เราจึงกำหนดแหล่งข้อมูลหลักให้กับไปป์ไลน์ตารางต้นทางที่มีจำนวนระเบียนน้อยกว่า วิธีการดำเนินการมีดังนี้:
ขั้นตอน 7) Double คลิกที่การแปลง Joiner เพื่อเปิดหน้าต่างแก้ไขการแปลง จากนั้น
- เลือกแท็บพอร์ต
- เลือกคอลัมน์ของแหล่งข้อมูลเฉพาะที่คุณต้องการสร้างต้นแบบ
- เลือกตกลง
แท็บ Ports จะกำหนดให้ไปป์ไลน์ที่เลือกเป็นมาสเตอร์ ดังแสดงในภาพด้านล่าง
ขั้นตอน 8) เชื่อมโยงคอลัมน์ที่เกี่ยวข้องจากการแปลง Joiner ไปยังตารางเป้าหมาย แผนผังนี้สร้างขึ้นping ตอนนี้รันจากทั้งสองแหล่งข้อมูลผ่านการเชื่อมต่อเข้ากับ EMP_DEPTNAME แล้ว
ตอนนี้บันทึกแผนที่ping และเรียกใช้งานหลังจากสร้างเสร็จแล้ว เซสชั่น และ เวิร์กโฟลว์ สำหรับขั้นตอนนี้ การเชื่อมต่อตารางจะถูกสร้างขึ้นโดยใช้ Informatica Joiner และรายละเอียดที่เกี่ยวข้องจะถูกดึงมาจากทั้งสองตาราง
คุณสมบัติการแปลงโฉมของ Joiner
แท็บ Properties ไม่ได้มีเพียงแค่ข้อมูลเกี่ยวกับประเภทการเชื่อมต่อเท่านั้น การตั้งค่าด้านล่างนี้จะควบคุมว่าการเชื่อมต่อใช้หน่วยความจำเท่าใด และไฟล์แคชจะถูกเขียนไปที่ใด
| การตั้งค่า | สิ่งที่มันควบคุม |
|---|---|
| ประเภทการเข้าร่วม | แบบปกติ, แบบหลัก, แบบรายละเอียด หรือแบบเต็ม จะเป็นตัวกำหนดว่าแถวที่ไม่ตรงกันแถวใดจะถูกเก็บไว้ |
| เงื่อนไขการเข้าร่วม | รายการคู่พอร์ตหลักไปยังรายละเอียดที่เปรียบเทียบโดยใช้ตัวดำเนินการเท่ากับ มีการรวมเงื่อนไขหลายอย่างเข้าด้วยกันโดยใช้ AND |
| ข้อมูลที่เรียงลำดับแล้ว | ระบุว่าทั้งสองไปป์ไลน์ได้รับการจัดเรียงตามพอร์ตเงื่อนไขแล้ว ซึ่งช่วยให้ Integration Service ลดการรับส่งข้อมูลเข้าและออกจากดิสก์ให้น้อยที่สุด |
| ลำดับการจัดเรียงหลัก | ลำดับการเรียงของข้อมูลต้นฉบับหลัก ใช้ร่วมกับข้อมูลป้อนเข้าที่เรียงลำดับแล้ว |
| ไดเร็กทอรีแคช | ไดเร็กทอรีที่ใช้สร้างไฟล์ดัชนีและแคชข้อมูล โดยค่าเริ่มต้นคือตัวแปรกระบวนการ $PMCacheDir |
| ขนาดแคชข้อมูลของ Joiner | ขนาดของแคชข้อมูลที่เก็บข้อมูลแถวหลัก ค่าเริ่มต้นคือ อัตโนมัติ ซึ่งจะปล่อยให้ Integration Service กำหนดขนาดเอง |
| ขนาดแคชดัชนี Joiner | ขนาดของแคชดัชนีที่เก็บค่าเงื่อนไขหลัก ค่าเริ่มต้นคือ อัตโนมัติ |
| ขอบเขตการเปลี่ยนแปลง | ใช้การเชื่อมต่อ (join) กับแต่ละธุรกรรม กับข้อมูลขาเข้าทั้งหมด หรือกับขอบเขตระดับแถว |
การป้อนข้อมูลที่เรียงลำดับแล้วเป็นค่าที่ควรเลือกใช้เป็นอันดับแรก เมื่อทั้งสองไปป์ไลน์มาถึงโดยเรียงลำดับตามพอร์ตเงื่อนไขแล้ว บริการการรวมระบบไม่จำเป็นต้องเก็บแหล่งข้อมูลหลักทั้งหมดไว้ก่อนที่การจับคู่จะเริ่มต้น ซึ่งเป็นหลักการเดียวกันกับที่ใช้ระหว่าง การปรับแต่งประสิทธิภาพ รวมถึงการแปลงข้อมูลที่ถูกแคชไว้อื่นๆ ด้วย
กฎและข้อจำกัดในการแปลง Joiner
ข้อจำกัดบางอย่างจะปรากฏให้เห็นก็ต่อเมื่อใช้แผนที่เท่านั้นping ได้รับการตรวจสอบแล้ว ดังนั้นการทราบข้อมูลเหล่านี้ก่อนที่จะเชื่อมต่อพอร์ตจึงประหยัดกว่า
- ความเท่าเทียมกันเท่านั้น เงื่อนไขการเชื่อมต่อจะเปรียบเทียบพอร์ตโดยใช้ตัวดำเนินการเท่ากับ ตัวดำเนินการเปรียบเทียบอื่นๆ เช่น มากกว่า น้อยกว่า หรือไม่เท่ากับ ไม่สามารถใช้ได้ในเงื่อนไขนี้
- การจับคู่ประเภทข้อมูล พอร์ตทั้งสองในเงื่อนไขต้องมีชนิดข้อมูลเดียวกัน ตัวออกแบบจะตรวจสอบเรื่องนี้ ดังนั้นคอลัมน์ที่ไม่ตรงกันจะต้องถูกแปลงก่อน โดยปกติจะทำในการแปลงนิพจน์
- ไม่มีกลยุทธ์การอัปเดตในส่วนต้นทาง ไม่สามารถใช้การแปลง Joiner ได้หากไปป์ไลน์อินพุตใดไปป์ไลน์หนึ่งมีการแปลง Update Strategy อยู่แล้ว
- ไม่มีลำดับ Generator อยู่ตรงหน้ามันเลย การเชื่อมต่อลำดับ Generator การแปลงข้อมูลที่เกิดขึ้นทันทีก่อนการเชื่อมต่อ (Joiner) ไม่ได้รับการสนับสนุน
- ไม่สามารถปิดการใช้งานแคชได้ ไปป์ไลน์หลักจะถูกแคชไว้เสมอ ซึ่งเป็นเหตุผลว่าทำไมแหล่งข้อมูลขนาดเล็กกว่าจึงควรอยู่ฝั่งไปป์ไลน์หลัก และทำไมขนาดของแคชจึงมีความสำคัญในการเชื่อมต่อข้อมูลขนาดใหญ่
การรวมแหล่งข้อมูลสามแหล่งจำเป็นต้องใช้การแปลง Joiner สองครั้งที่เชื่อมต่อกัน เนื่องจากแต่ละครั้งรับไปป์ไลน์หลักและไปป์ไลน์รายละเอียดอย่างละหนึ่งรายการเท่านั้น ในกรณีที่แหล่งข้อมูลที่สองเป็นตารางอ้างอิงขนาดเล็กที่อ่านทีละแถวแทน การแปลงการค้นหา มักจะเป็นการออกแบบที่เรียบง่ายกว่า







