โหลดไฟล์ Flat (.txt) ใน SSIS พร้อมกัน

ฉันกำลังมีสถานการณ์ที่ต้องโหลดไฟล์เดี่ยว (abc.txt) พร้อมจำนวนบันทึกในตารางอื่น เช่น Package 1 : มีงาน Dataflow ที่จะรับจำนวนบันทึกจากตารางที่ 1 และโหลดในชุดบันทึก จากนั้นค่าชุดบันทึกจะถูกเขียนไปที่ abc.txt โดยใช้ตัวจัดการการเชื่อมต่อไฟล์แบบแฟลต

Package 2 : มี Data Flow Task โดยจะนับจำนวน Record จากตารางที่ 2 แล้วโหลดเข้า Record set จากนั้นค่าชุดบันทึกจะถูกเขียนไปที่ abc.txt โดยใช้ตัวจัดการการเชื่อมต่อไฟล์แบบแฟลต

Package 3 : มี Data Flow Task โดยจะนับจำนวน Record จากตารางที่ 3 แล้วโหลดเข้า Record set จากนั้นค่าชุดบันทึกจะถูกเขียนไปที่ abc.txt โดยใช้ตัวจัดการการเชื่อมต่อไฟล์แบบแฟลต

ตอนนี้ฉันมีแพ็คเกจหลักซึ่งจะเรียกแพ็คเกจ 1, แพ็คเกจ 2 และแพ็คเกจ 3 พร้อมงานดำเนินการแพ็คเกจที่แตกต่างกัน 3 งาน (ดำเนินการงานแพ็คเกจ 1, ดำเนินการงานแพ็คเกจ 2, ดำเนินการงานแพ็คเกจ 3) Execute Package Task จะทำงานแบบขนาน เมื่อฉันใช้งานแพ็คเกจ การดำเนินการแพ็คเกจงาน (1/2/3) ล้มเหลวโดยบอกว่าไม่สามารถเปิดไฟล์ abc.txt เป็นเพียงเพราะฉันพยายามเขียนไฟล์ปลายทางเดียวกันพร้อมกันจากแพ็คเกจที่แตกต่างกันหรือด้วยเหตุผลอื่นใด มีวิธีใดบ้างที่แพ็คเกจที่แตกต่างกันสามารถเขียนบนไฟล์แฟลตปลายทางเดียวกันได้พร้อม ๆ กัน?

ขอบคุณ


person user3048456    schedule 27.06.2017    source แหล่งที่มา
comment
คุณได้ลองสร้างแพ็คเกจแยกจากกันหรือไม่ เช่น ไม่มีแพ็คเกจหลัก และรันแพ็คเกจ Three ในลำดับโดยใช้อินสแตนซ์ SQL Job Agent เพื่อให้มั่นใจว่าแพ็คเกจก่อนหน้านี้เสร็จสมบูรณ์ ก่อนที่แพ็คเกจถัดไปจะเริ่มใช้งานหรือไม่   -  person Cenderze    schedule 27.06.2017


คำตอบ (1)


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

person Samay    schedule 27.06.2017
comment
ดีใจที่ได้ผลสำหรับคุณ :) โปรดทำเครื่องหมายว่าเป็นคำตอบเพราะอาจช่วยผู้อื่นได้เช่นกัน! - person Samay; 23.08.2017