ในการผลิตฐานข้อมูลของเรามีขนาดไม่กี่ร้อยกิกะไบต์ สำหรับการพัฒนาและการทดสอบเราจำเป็นต้องสร้างสแนปชอตของฐานข้อมูลนี้ที่มีฟังก์ชันเทียบเท่ากัน แต่มีขนาดเพียง 10 หรือ 20 กิ๊กเท่านั้น
ความท้าทายคือข้อมูลสำหรับหน่วยงานธุรกิจของเรากระจัดกระจายไปตามตารางต่างๆ เราต้องการสร้างสแนปชอตที่กรองบางประเภทเพื่อให้มีเพียงเอนทิตีบางส่วนเท่านั้นที่รวมอยู่ในดัมพ์ ด้วยวิธีนี้เราจะได้รับสแนปช็อตใหม่ทุกเดือนหรือมากกว่านั้นสำหรับการพัฒนาและการทดสอบ
ตัวอย่างเช่นสมมติว่าเรามีเอนทิตีที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่มเหล่านี้:
- บริษัท มีแผนก N
- แผนกมีพนักงาน N
- พนักงานมีประวัติผู้เข้าร่วม N
อาจมี บริษัท 1,000 แห่งแผนก 2,500 คนพนักงาน 175,000 คนและประวัติการเข้าร่วมงานหลายสิบล้านคน เราต้องการวิธีที่จำลองแบบเพื่อดึงพูด, 100 บริษัท แรกและทุกหน่วยงานที่เป็นส่วนประกอบพนักงานและการเข้าร่วมของมัน
ปัจจุบันเราใช้ pg_dump สำหรับสคีมาจากนั้นเรียกใช้ pg_dump ด้วย --disable-trigger และ --data-only เพื่อดึงข้อมูลทั้งหมดออกจากตารางขนาดเล็ก เราไม่ต้องการที่จะต้องเขียนสคริปต์ที่กำหนดเองเพื่อดึงข้อมูลบางส่วนออกมาเนื่องจากเรามีวงจรการพัฒนาที่รวดเร็วและกังวลว่าสคริปต์ที่กำหนดเองจะเปราะบางและมีแนวโน้มที่จะล้าสมัย
เราจะทำเช่นนี้ได้อย่างไร? มีเครื่องมือของบุคคลที่สามที่สามารถช่วยดึงโลจิคัลพาร์ติชันออกจากฐานข้อมูลได้หรือไม่? เครื่องมือเหล่านี้เรียกว่าอะไร?
คำแนะนำทั่วไปใด ๆ ที่ชื่นชม!