การแปลงการค้นหาใน Informatica (ตัวอย่าง)

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

การแปลงข้อมูลแบบ Lookup ใน Informatica จะอ่านตารางเชิงสัมพันธ์ ไฟล์ข้อความ มุมมอง หรือคำพ้องความหมาย และส่งคืนค่าที่ตรงกันสำหรับแต่ละแถวที่เข้ามา โดยทำงานเหมือนกับการเชื่อมต่อ (join) ซึ่งด้านหนึ่งเป็นแหล่งข้อมูลสำหรับการค้นหา

  • 🔎 สภาพสนามเป็นปัจจัยสำคัญในการตัดสินผลการแข่งขัน: แท็บเงื่อนไขจะแสดงการเปรียบเทียบ เช่น DEPTNO = DEPTNO1 ซึ่งจะเป็นตัวกำหนดว่าแถวค้นหาใดจะถูกส่งคืน
  • 🧪 ตัวอย่างการทำงาน: แผนที่เจ็ดping ขั้นตอนการออกแบบจะดึงชื่อแผนกจาก DEPT ไปยังเป้าหมาย EMP_DEPTNAME โดยไม่ต้องใช้ Joiner
  • 🔌 เชื่อมต่อหรือไม่เชื่อมต่อ: การค้นหาแบบเชื่อมต่อจะอยู่ในไปป์ไลน์ ในขณะที่การค้นหาแบบไม่เชื่อมต่อจะถูกเรียกจากนิพจน์ที่มีตัวระบุ :LKP
  • 🇧🇷 โดยค่าเริ่มต้นจะเป็นโหมดพาสซีฟ: การส่งคืนแถวเดียวจะทำให้การแปลงข้อมูลอยู่ในสถานะไม่ทำงาน และการส่งคืนแถวที่ตรงกันทั้งหมดจะทำให้การแปลงข้อมูลอยู่ในสถานะทำงาน
  • ♻️ สิ่งของที่สามารถนำกลับมาใช้ใหม่ได้: การเลือก "ทำให้ใช้ซ้ำได้" จะเปลี่ยนการแปลงหนึ่งครั้งให้เป็นวัตถุที่มีแผนที่หลายแบบpingสามารถแบ่งปันได้
  • ⚠️ การเลื่อนตำแหน่งทางเดียว: การแปลงที่ได้รับการยกระดับให้สามารถนำกลับมาใช้ใหม่ได้แล้ว จะไม่สามารถลดระดับลงได้อีก ดังนั้นจึงควรอ่านข้อความยืนยันอย่างละเอียดถี่ถ้วน

การแปลงการค้นหาใน Informatica

การแปลงการค้นหาคืออะไร?

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

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

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

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

ในหัวข้อก่อนหน้านี้ เราได้ใช้ การเปลี่ยนแปลงของช่างไม้ เพื่อเชื่อมตาราง “emp” และ “dept” เข้าด้วยกันเพื่อดึงชื่อแผนก ในส่วนนี้ เราจะนำวิธีการดังกล่าวมาใช้โดยใช้การแปลงข้อมูลแบบ Lookup

วิธีสร้างการเปลี่ยนแปลงการค้นหา

ต่อไปนี้คือขั้นตอนการสร้าง Lookup transformation ใน Informatica

ขั้นตอน 1) สร้างแผนที่ใหม่ping โดยใช้ EMP เป็นแหล่งที่มาและ EMP_DEPTNAME เป็นเป้าหมาย แผนที่นี้แสดงแผนที่ping จากนั้น พื้นที่ทำงานของนักออกแบบจะประกอบด้วยแหล่งข้อมูล ตัวระบุคุณสมบัติของแหล่งข้อมูล และคำจำกัดความของเป้าหมาย

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

ขั้นตอน 2) สร้างการแปลงข้อมูลใหม่โดยใช้เมนู Transformation จากนั้นในหน้าต่าง Create Transformation:

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

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

ขั้นตอน 3) ขั้นตอนนี้จะเปิดหน้าต่างตารางค้นหา ในหน้าต่างนี้:

  1. ปุ่มเลือกแหล่งที่มา
  2. เลือกตาราง DEPT
  3. เลือกปุ่มตกลง

เลือกกล่องโต้ตอบ Lookup Table โดยเลือกปุ่ม Source และไฮไลต์ตาราง DEPT

ขั้นตอน 4) ระบบจะสร้างการแปลงข้อมูลแบบ Lookup โดยใช้คอลัมน์จากตาราง DEPT จากนั้นเลือกปุ่มเสร็จสิ้น ตอนนี้อ็อบเจ็กต์ lkp_dept จะมี DEPTNO, DNAME และ LOC เป็นพอร์ต Lookup แล้ว

การแปลงข้อมูลแบบ Lookup ชื่อ lkp_dept ถูกสร้างขึ้นโดยใช้คอลัมน์จากตาราง DEPT เป็นพอร์ตการค้นหา

ขั้นตอน 5) ลากและวางคอลัมน์ DEPTNO จาก Source Qualifier ไปยัง Lookup transformation ซึ่งจะสร้างคอลัมน์ใหม่ชื่อ DEPTNO1 ใน Lookup transformation จากนั้นเชื่อมโยงคอลัมน์ DNAME จาก Lookup transformation ไปยังตารางเป้าหมาย

การแปลงข้อมูลแบบ Lookup จะค้นหาและส่งคืนชื่อแผนกโดยอิงจากค่า DEPTNO1 โดยที่ DEPTNO1 คือพอร์ตขาเข้าที่เก็บหมายเลขแผนกของพนักงาน ในขณะที่ DEPTNO คือพอร์ตที่อ่านได้จากตารางค้นหา DEPT

DEPTNO เชื่อมโยงจาก Source Qualifier ไปยัง lkp_dept และ DNAME เชื่อมโยงไปยังเป้าหมาย EMP_DEPTNAME

ขั้นตอน 6) Double คลิกที่การแปลงข้อมูลแบบ Lookup จากนั้นในหน้าต่างแก้ไขการแปลงข้อมูล:

  1. เลือกแท็บเงื่อนไข
  2. ตั้งค่าคอลัมน์เงื่อนไขเป็น DEPTNO = DEPTNO1
  3. เลือกปุ่มตกลง

แท็บเงื่อนไขของหน้าต่างแก้ไขการแปลง โดยป้อนเงื่อนไข DEPTNO = DEPTNO1

ขั้นตอน 7) เชื่อมโยงคอลัมน์ที่เหลือจาก Source Qualifier ไปยังตารางเป้าหมาย

คอลัมน์ Source Qualifier ที่เหลือซึ่งเชื่อมโยงกับตารางเป้าหมาย EMP_DEPTNAME

ตอนนี้บันทึก แผนที่ping และเรียกใช้งานหลังจากสร้างเซสชันและเวิร์กโฟลว์แล้ว แผนผังนี้ping จะดึงชื่อแผนกโดยใช้การแปลงข้อมูลแบบ Lookup

การแปลงข้อมูลแบบ Lookup ถูกตั้งค่าให้ค้นหาในตาราง DEPT และเงื่อนไขการเชื่อมต่อถูกตั้งค่าตามหมายเลขแผนก หากมีมากกว่าหนึ่งแถวในตาราง DEPT ที่ตรงตามเงื่อนไข นโยบายการค้นหา (Lookup Policy) ในคุณสมบัติการจับคู่หลายรายการ (Multiple Match) บนแท็บคุณสมบัติ (Properties) จะเป็นตัวตัดสินว่าค่าใดจะถูกส่งกลับ

การเปลี่ยนแปลงแบบใช้ซ้ำได้

การแปลงปกติคือวัตถุที่อยู่ในแผนที่ping และสามารถใช้งานได้ภายในแผนที่นั้นping เท่านั้น อย่างไรก็ตาม การทำให้การแปลงสามารถนำกลับมาใช้ใหม่ได้ จะทำให้สามารถนำไปใช้ซ้ำได้ภายในแผนที่หลายๆ แผนที่pings.

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

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

วิธีสร้างการเปลี่ยนแปลงแบบใช้ซ้ำได้

ต่อไปนี้คือขั้นตอนในการสร้างการแปลงข้อมูลที่สามารถนำกลับมาใช้ใหม่ได้

ขั้นตอน 1) เปิดแผนที่ping ซึ่งกำลังมีการเปลี่ยนแปลง ที่นี่เรากำลังสร้าง การแปลงลำดับ นำมาใช้ใหม่

แผนที่แสดงที่ตั้งบริษัทping เปิดใช้งานใน Designer ด้วยการแปลง Rank ที่กำลังจะสามารถนำกลับมาใช้ใหม่ได้

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

  1. เลือกแท็บการเปลี่ยนแปลงในหน้าต่าง
  2. เลือกช่องกาเครื่องหมายเพื่อให้การแปลงสามารถนำมาใช้ซ้ำได้
  3. เลือกใช่ในหน้าต่างยืนยัน
  4. เลือก ตกลง ในหน้าต่างคุณสมบัติการแปลง

แท็บการแปลงในหน้าต่างแก้ไขการแปลง โดยเลือกช่องทำเครื่องหมาย "นำกลับมาใช้ใหม่ได้"

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

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

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

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

คุณสมบัติ Lookup Policy on Multiple Match จะเป็นตัวกำหนดว่าสามารถรายงานข้อผิดพลาด หรือส่งคืนค่าที่ตรงกันค่าแรก ค่าสุดท้าย หรือค่าใดๆ ก็ได้ การเลือกส่งคืนค่าที่ตรงกันทั้งหมดจะทำให้การแปลงข้อมูลทำงาน และต้องตั้งค่าในขณะสร้าง

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

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

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

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

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

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