คุณชอบที่จะทำกิจวัตรประจำวันซ้ำแล้วซ้ำอีกหรือไม่? ฉันไม่ทำ แต่ทุกครั้งในไคลเอนต์ SQL เมื่อทำงานกับที่เก็บข้อมูล Rostelecom ฉันต้องลงทะเบียนการรวมทั้งหมดระหว่างตารางด้วยตนเอง และแม้ว่าในกรณี 90% ฟิลด์และเงื่อนไขในการเข้าร่วมตารางจะตรงกันจากการร้องขอ! ดูเหมือนว่าไคลเอ็นต์ SQL ใด ๆ จะมีฟังก์ชันการเติมข้อความอัตโนมัติ แต่สำหรับที่เก็บข้อมูลนั้นไม่ได้ผลเสมอไป: แทบไม่ได้รวมข้อ จำกัด ที่ไม่ซ้ำกันและคีย์ต่างประเทศเพื่อปรับปรุงประสิทธิภาพและหากไม่มีสิ่งนี้โปรแกรมจะไม่ทราบว่าเอนทิตีเกี่ยวข้องกับแต่ละอันอย่างไร อื่น ๆ และสิ่งที่สามารถทำได้สำหรับคุณ
หลังจากผ่านการปฏิเสธ ความโกรธ การต่อรอง ความซึมเศร้า และการเข้าใกล้การยอมรับ ฉันจึงตัดสินใจ - ทำไมไม่ลองใช้การป้อนอัตโนมัติด้วยแบล็คแจ็คด้วยตัวเองและทำด้วยวิธีที่ถูกต้องล่ะ ฉันใช้ไคลเอนต์ dbeaver ซึ่งเขียนด้วยภาษาจาวา แต่ก็มีเวอร์ชันชุมชนโอเพ่นซอร์ส แผนง่ายๆ ได้ครบกำหนดแล้ว:
- ค้นหาคลาสในซอร์สโค้ดที่รับผิดชอบในการเติมข้อความอัตโนมัติ
- เปลี่ยนเส้นทางให้ทำงานกับข้อมูลเมตาภายนอกและดึงข้อมูลเกี่ยวกับการรวมจากที่นั่น
- ??
- กำไร
ฉันเข้าใจจุดแรกได้ค่อนข้างเร็ว - ฉันพบคำขอในตัวติดตามจุดบกพร่องให้ปรับการป้อนอัตโนมัติและในส่วนที่เกี่ยวข้อง
เพื่อทำงานกับ json ฉันตัดสินใจใช้ไลบรารี
ในท้ายที่สุด ฉันจัดการเพื่อแก้ไขข้อผิดพลาดในการสร้าง: ฉันลงทะเบียนไลบรารีที่ไม่ได้อยู่ใน pom.xml แต่อยู่ในรายการ manifest.mf ตามที่ OSGI กำหนด ในขณะที่ระบุเป็นแพ็คเกจการนำเข้า ไม่ใช่วิธีแก้ปัญหาที่สวยงามที่สุด แต่ใช้งานได้ แล้วความประหลาดใจครั้งต่อไปก็ปรากฏขึ้น หากคุณกำลังพัฒนาใน Intellij Idea คุณไม่สามารถเริ่มแก้ไขจุดบกพร่องโปรเจ็กต์ของคุณโดยใช้แพลตฟอร์ม eclipse ได้: นักพัฒนาที่ไม่มีประสบการณ์ควรต้องทนทุกข์ทรมานไม่น้อยไปกว่านักวิเคราะห์หากคิวรีไม่เสร็จสิ้น นักพัฒนาบีเวอร์เองก็มาช่วยเหลือโดยระบุในวิกิถึงการเต้นรำทั้งหมดด้วยแทมบูรีนที่ต้องทำ สิ่งที่น่ารำคาญที่สุดคือแม้หลังจาก squats ทั้งหมดนี้แล้ว โปรเจ็กต์ก็ไม่ต้องการเปิดตัวในการดีบักด้วยไลบรารี json ที่เชื่อมต่อผ่านแพ็คเกจการนำเข้า (แม้ว่าจะยังคงประกอบเป็นผลิตภัณฑ์สำเร็จรูปได้สำเร็จก็ตาม)
เมื่อถึงเวลานั้น ฉันได้ตระหนักถึงความไม่สะดวกในการใช้ json สำหรับงานของฉันแล้ว - อย่างไรก็ตาม ควรแก้ไขข้อมูลเมตาด้วยตนเอง และรูปแบบ xml เหมาะกับสิ่งนี้มากกว่า อาร์กิวเมนต์ที่สองที่สนับสนุน xml คือการมีคลาสที่จำเป็นทั้งหมดใน JDK ซึ่งทำให้สามารถหยุดการต่อสู้กับไลบรารีภายนอกได้ ด้วยความยินดีอย่างยิ่ง ฉันจึงถ่ายโอนข้อมูลเมตาทั้งหมดจาก json ไปยัง xml และเริ่มแก้ไขตรรกะในการเติมข้อความอัตโนมัติ
ตัวอย่างข้อมูลเมตา
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tableRelations>
<tableRelation>
<leftTable>dim_account</leftTable>
<rightTable>dim_partner</rightTable>
<joinColumnPair leftColumn="partner_key" rightColumn="partner_key"/>
<joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
</tableRelation>
<tableRelation>
<leftTable>dim_account</leftTable>
<rightTable>dim_branch</rightTable>
<joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
<joinColumnPair leftColumn="branch_key" rightColumn="branch_key"/>
</tableRelation>
</tableRelations>
ด้วยเหตุนี้ฉัน
เมื่อมีการเปลี่ยนแปลงโค้ด คำถามก็เกิดขึ้น - ใครจะเป็นผู้เติมข้อมูลเมตาในไฟล์ มีเอนทิตีมากมายในพื้นที่เก็บข้อมูล การลงทะเบียนการเชื่อมต่อทั้งหมดด้วยตัวเองมีราคาแพง ด้วยเหตุนี้ ฉันจึงตัดสินใจมอบหมายงานนี้ให้เพื่อนนักวิเคราะห์ของฉัน ฉันโพสต์ไฟล์ข้อมูลเมตาใน svn จากจุดชำระเงินไปยังไดเร็กทอรีในเครื่องด้วยโปรแกรม หลักการคือ: มีเอนทิตีใหม่ปรากฏในที่เก็บหรือไม่? นักวิเคราะห์คนหนึ่งป้อนความเป็นไปได้ในการเข้าร่วมในไฟล์ ดำเนินการเปลี่ยนแปลง ส่วนที่เหลือตรวจสอบกับตัวเองและเพลิดเพลินไปกับการเติมข้อมูลอัตโนมัติที่ทำงาน: ชุมชน การสั่งสมความรู้ และอื่นๆ อีกมากมาย จัดเวิร์คช็อปเกี่ยวกับการใช้โปรแกรมสำหรับเพื่อนร่วมงาน เขียนบทความใน Confluence - ตอนนี้บริษัทมีเครื่องมือที่สะดวกอีกหนึ่งอย่าง
การทำงานเกี่ยวกับฟีเจอร์นี้ทำให้ฉันเข้าใจว่าไม่จำเป็นต้องกลัวที่จะปรับแต่งโปรเจ็กต์โอเพ่นซอร์ส - ตามกฎแล้ว โปรเจ็กต์เหล่านี้มีสถาปัตยกรรมที่ชัดเจน และแม้แต่ความรู้พื้นฐานเกี่ยวกับภาษาก็เพียงพอสำหรับการทดลอง และด้วยความเพียรพยายามในระดับหนึ่ง คุณจะสามารถกำจัดการปฏิบัติงานประจำที่เกลียดชังออกไปได้ ซึ่งจะช่วยประหยัดเวลาสำหรับการทดลองใหม่ ๆ
ที่มา: will.com