การเปลี่ยนแปลงของช่างไม้ใน Informatica ด้วยตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

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

  • 🧩 หลักและรายละเอียด: มีไปป์ไลน์อินพุตสองอันที่ป้อนข้อมูลเข้าสู่กระบวนการแปลง และแท็บ Ports จะเป็นตัวกำหนดว่าไปป์ไลน์ใดทำหน้าที่เป็นตัวหลัก
  • 💾 ข้อมูลหลักถูกแคชไว้แล้ว: ไปป์ไลน์หลักมักถูกสร้างขึ้นในดัชนีและแคชข้อมูล ดังนั้นแหล่งข้อมูลขนาดเล็กจึงควรอยู่ในนั้น
  • 🔗 การเชื่อมต่อสี่ประเภท: ค่า Normal, Master Outer, Detail Outer และ Full Outer จะเป็นตัวกำหนดว่าแถวที่ไม่ตรงกันแถวใดบ้างที่จะคงอยู่ในการรวมข้อมูล
  • 🧪 ตัวอย่างการทำงาน: ตาราง EMP และ DEPT ถูกเชื่อมเข้าด้วยกันโดยใช้ deptno เป็นการเชื่อมแบบปกติ และโหลดลงในตาราง EMP_DEPTNAME
  • 🇧🇷 ความเท่าเทียมกันเท่านั้น: เงื่อนไขการเชื่อมต่อจะเปรียบเทียบพอร์ตโดยใช้ตัวดำเนินการเท่ากับ และพอร์ตทั้งสองต้องมีชนิดข้อมูลร่วมกันอย่างน้อยหนึ่งชนิด
  • ข้อมูลที่เรียงลำดับแล้ว: การจัดเรียงข้อมูลล่วงหน้าในทั้งสองไปป์ไลน์ตามพอร์ตเงื่อนไขจะช่วยลดการรับส่งข้อมูลลงดิสก์ในระหว่างเซสชัน

การเปลี่ยนแปลงของช่างไม้ใน Informatica

การเปลี่ยนแปลงของช่างไม้คืออะไร?

การแปลง Joiner เป็นการแปลงแบบแอคทีฟและเชื่อมต่อที่ให้คุณสามารถสร้างการเชื่อมต่อ (joins) ใน Informatica ได้ การเชื่อมต่อที่สร้างขึ้นโดยใช้การแปลง Joiner นั้นคล้ายกับการเชื่อมต่อในฐานข้อมูล ข้อดีของการแปลง Joiner คือสามารถสร้างการเชื่อมต่อสำหรับระบบที่แตกต่างกัน (ฐานข้อมูลต่าง ๆ) ได้

ในการแปลง Joiner นั้น มีแหล่งข้อมูลสองแหล่งที่เราจะใช้สำหรับการเชื่อมต่อ แหล่งข้อมูลทั้งสองนี้เรียกว่า

  • แหล่งที่มาของอาจารย์
  • ที่มารายละเอียด

ในคุณสมบัติของการแปลงข้อมูล Joiner คุณสามารถเลือกได้ว่าแหล่งข้อมูลใดจะเป็นแหล่งข้อมูลหลัก และแหล่งข้อมูลใดจะเป็นแหล่งข้อมูลรายละเอียด

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

ประเภทของการเชื่อมต่อใน Joiner Transformation

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

  1. การรวมภายนอกระดับปริญญาโท – ในการเชื่อมแบบ Master Outer Join ระบบจะส่งคืนเรคอร์ดทั้งหมดจากแหล่งข้อมูลรายละเอียด และจะส่งคืนเฉพาะแถวที่ตรงกันจากแหล่งข้อมูลหลักเท่านั้น
  2. รายละเอียดการรวมภายนอก – ในการเชื่อมข้อมูลแบบ Detail Outer Join ระบบจะส่งคืนเฉพาะแถวที่ตรงกันจากแหล่งข้อมูลรายละเอียด และจะส่งคืนทุกแถวจากแหล่งข้อมูลหลัก
  3. การรวมภายนอกแบบเต็ม – ในการเชื่อมข้อมูลแบบ Full Outer Join ระบบจะส่งคืนข้อมูลทั้งหมดจากทั้งสองแหล่งข้อมูล
  4. เข้าร่วมปกติ – ในการเชื่อมข้อมูลแบบปกติ ระบบจะส่งคืนเฉพาะแถวที่ตรงกันจากทั้งสองแหล่งข้อมูลเท่านั้น

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

ประเภทการเข้าร่วม แถวที่เก็บไว้จากมาสเตอร์ แถวต่างๆ ถูกกันออกจากรายละเอียด เทียบเท่า SQL
เข้าร่วมปกติ การจับคู่เท่านั้น การจับคู่เท่านั้น การเข้าร่วมภายใน
การรวมภายนอกระดับปริญญาโท การจับคู่เท่านั้น ทุกแถว การเชื่อมต่อภายนอกด้านซ้ายบนแหล่งข้อมูลรายละเอียด
รายละเอียดการรวมภายนอก ทุกแถว การจับคู่เท่านั้น การเชื่อมต่อภายนอกด้านซ้ายบนแหล่งข้อมูลหลัก
การรวมภายนอกแบบเต็ม ทุกแถว ทุกแถว การรวมภายนอกแบบเต็ม

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

วิธีใช้งาน Joiner Transformation ใน Informatica

ในตัวอย่างนี้ เราจะรวมตาราง emp และ dept โดยใช้การแปลง Joiner ทำตามขั้นตอนทั้งแปดด้านล่างในแผนผังping นักออกแบบ

ขั้นตอน 1) สร้างตารางเป้าหมายใหม่ชื่อ EMP_DEPTNAME ในฐานข้อมูลโดยใช้สคริปต์ด้านล่าง และนำเข้าตารางดังกล่าวในเป้าหมายของ Informatica

ดาวน์โหลดไฟล์ emp_deptname.sql ด้านบน

ขั้นตอน 2) สร้างใหม่ แผนที่ping และนำเข้าตารางต้นทาง “EMP” และ “DEPT” รวมถึงตารางปลายทางที่เราสร้างไว้ในขั้นตอนก่อนหน้า ตอนนี้คำจำกัดความทั้งสามปรากฏอยู่บนผืนผ้าใบแล้ว ดังแสดงด้านล่าง

แผนที่แสดงที่ตั้งบริษัทping พื้นที่ทำงานของนักออกแบบที่มีแหล่งข้อมูล EMP และ DEPT และคำจำกัดความเป้าหมาย EMP_DEPTNAME

ขั้นตอน 3) จากเมนู Transformation ให้เลือกตัวเลือก Create จากนั้นในหน้าต่าง Create Transformation ที่แสดงด้านล่าง

  1. เลือกการแปลงตัวเชื่อม
  2. ป้อนชื่อการเปลี่ยนแปลง “jnr_emp_dept”
  3. เลือกตัวเลือกสร้าง

สร้างหน้าต่าง Transformation โดยเลือก Joiner และป้อนชื่อ jnr_emp_dept

ขั้นตอน 4) ลากและวางคอลัมน์ทั้งหมดจากทั้งสอง ตัวกรองแหล่งที่มา ไปยังการแปลง Joiner แล้ว ตอนนี้ไปป์ไลน์ทั้งสองเชื่อมโยงเข้ากับ jnr_emp_dept แล้ว ดังที่แสดงในภาพหน้าจอ

คอลัมน์จาก Source Qualifier ทั้งสองตัวถูกลากเข้าไปในการแปลง Joiner jnr_emp_dept

ขั้นตอน 5) Double คลิกที่การแปลง Joiner จากนั้นในหน้าต่าง Edit Transformations

  1. เลือกแท็บเงื่อนไข
  2. คลิกที่ไอคอนเพิ่มเงื่อนไขใหม่
  3. เลือก deptno ในรายการคอลัมน์หลักและรายละเอียด

แท็บเงื่อนไขขณะนี้มีเงื่อนไขการเชื่อมต่อแบบเดี่ยวบน deptno แล้ว

แท็บเงื่อนไขของการแปลง Joiner โดยเลือก deptno ในคอลัมน์หลักและรายละเอียด

ขั้นตอน 6) จากนั้นในหน้าต่างเดียวกัน

  1. เลือกแท็บคุณสมบัติ
  2. เลือก Normal Join เป็นประเภทการเชื่อมต่อ
  3. กดปุ่ม OK

ถัดไปจะแสดงแท็บ Properties ที่มีการตั้งค่าประเภทการเชื่อมต่อไว้แล้ว

แท็บคุณสมบัติของการแปลง Joiner โดยตั้งค่าประเภทการเชื่อมต่อเป็น Normal Join

เพื่อเพิ่มประสิทธิภาพการทำงาน เราจึงกำหนดแหล่งข้อมูลหลักให้กับไปป์ไลน์ตารางต้นทางที่มีจำนวนระเบียนน้อยกว่า วิธีการดำเนินการมีดังนี้:

ขั้นตอน 7) Double คลิกที่การแปลง Joiner เพื่อเปิดหน้าต่างแก้ไขการแปลง จากนั้น

  1. เลือกแท็บพอร์ต
  2. เลือกคอลัมน์ของแหล่งข้อมูลเฉพาะที่คุณต้องการสร้างต้นแบบ
  3. เลือกตกลง

แท็บ Ports จะกำหนดให้ไปป์ไลน์ที่เลือกเป็นมาสเตอร์ ดังแสดงในภาพด้านล่าง

แท็บพอร์ตของการแปลง Joiner โดยตั้งค่าแฟล็ก master ไว้กับไปป์ไลน์ต้นทางหนึ่งรายการ

ขั้นตอน 8) เชื่อมโยงคอลัมน์ที่เกี่ยวข้องจากการแปลง Joiner ไปยังตารางเป้าหมาย แผนผังนี้สร้างขึ้นping ตอนนี้รันจากทั้งสองแหล่งข้อมูลผ่านการเชื่อมต่อเข้ากับ EMP_DEPTNAME แล้ว

คอลัมน์ที่เชื่อมโยงจาก jnr_emp_dept ไปยังตารางเป้าหมาย 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 สองครั้งที่เชื่อมต่อกัน เนื่องจากแต่ละครั้งรับไปป์ไลน์หลักและไปป์ไลน์รายละเอียดอย่างละหนึ่งรายการเท่านั้น ในกรณีที่แหล่งข้อมูลที่สองเป็นตารางอ้างอิงขนาดเล็กที่อ่านทีละแถวแทน การแปลงการค้นหา มักจะเป็นการออกแบบที่เรียบง่ายกว่า

คำถามที่พบบ่อย

สอง. ตัวเชื่อมต่อแต่ละตัวรับไปป์ไลน์หลักหนึ่งตัวและไปป์ไลน์รายละเอียดหนึ่งตัว ดังนั้นการเชื่อมต่อแหล่งข้อมูลสามแหล่งหมายถึงการเชื่อมต่อสองแหล่งเข้าด้วยกัน: เอาต์พุตของแหล่งแรกจะกลายเป็นไปป์ไลน์อินพุตของแหล่งที่สอง โดยทั่วไปแล้ว แหล่งข้อมูล n แหล่งต้องการแหล่งข้อมูล n ลบหนึ่ง

เมื่อทั้งสองตารางอยู่ในฐานข้อมูลเชิงสัมพันธ์เดียวกัน ตัวกำหนดคุณสมบัติของแหล่งข้อมูล (Source Qualifier) ​​จะผลักดันการเชื่อมต่อลงไปยังฐานข้อมูล ซึ่งช่วยหลีกเลี่ยงการแคชโดยสิ้นเชิง ควรใช้ตัวเชื่อมต่อ (Joiner) เฉพาะเมื่อแหล่งข้อมูลทั้งสองแตกต่างกัน หรืออยู่ในไปป์ไลน์ที่แยกจากกันอยู่แล้ว

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

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

ใช่ เพิ่มคำจำกัดความของแหล่งที่มาลงในแผนที่ping ทำซ้ำสองครั้งเพื่อให้มีไปป์ไลน์แยกกันสองอัน จากนั้นป้อนไปป์ไลน์หนึ่งเข้าฝั่งหลักและอีกไปป์ไลน์หนึ่งเข้าฝั่งรายละเอียด นี่เป็นวิธีปกติในการแปลงคอลัมน์ผู้จัดการกลับไปเป็นชื่อพนักงาน

ใช่ และกรณีที่ไม่เป็นเนื้อเดียวกันนั้นเป็นเหตุผลหลักที่ทำให้ต้องมีการแปลงข้อมูล ไปป์ไลน์ไฟล์แบบเรียบและไปป์ไลน์เชิงสัมพันธ์จะเชื่อมต่อกันโดยใช้พอร์ตที่ตรงกัน เหมือนกับการเชื่อมต่อตารางฐานข้อมูลสองตาราง เพราะการเชื่อมต่อเกิดขึ้นภายใน Integration Service

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

Copilot จะร่างคำสั่ง SQL ที่เทียบเท่าและการแปลงประเภทข้อมูลอย่างรวดเร็ว ซึ่งช่วยลดเวลาในการเตรียมพอร์ต อย่างไรก็ตาม Copilot ไม่สามารถมองเห็นขนาดแคชหรือจำนวนแถวของคุณได้ ดังนั้นโปรดตรวจสอบข้อเสนอแนะทุกข้อกับแผนผังความสัมพันธ์ (map) อีกครั้งping ก่อนบันทึก

สรุปโพสต์นี้ด้วย: