ข้อความ Wrangler
แอพ Text-Wrangler เพื่อแปลงข้อมูล CSV ตามที่ระบุโดย Bespoke AntlR4 DSL
การใช้งาน
- เรียกใช้
mvn package เพื่อสร้าง AntlR4 parser - นำเข้า MySQL Schema ใน
main/java/resources/schema.sql - อัปเดตรายละเอียดการเชื่อมต่อ mysql ใน
main/java/resources/configuraiton.ini - เริ่มต้นที่ app.java สำหรับการสาธิตวิธีการใช้ห้องสมุด
การเปลี่ยนแปลง DSL
- ตัวอย่าง DSL สำหรับการแปลงมีให้ใน
main/java/resources/transformations.dsl - ไวยากรณ์และ Lexer ที่อธิบายกฎ DSL และไวยากรณ์สามารถก่อตั้งได้ใน
srcmainantlr4orgluisaminiwrangler
ไวยากรณ์ Regex
- รองรับรูปแบบ java regex ซึ่งสามารถใช้ในการข้ามข้อมูล
- นอกจากนี้รูปแบบน้ำตาลได้รับการสนับสนุนผ่านรูปแบบที่แมป
ตัวแยกวิเคราะห์ CSV
- ANTLR4 ยังใช้สำหรับการแยกวิเคราะห์ CSV
- กฎการแยกวิเคราะห์ CSV ไวยากรณ์และ Lexer สามารถพบได้ใน
srcmainantlr4orgluisaminiwrangler
ข้อมูล CSV
- ตัวอย่างข้อมูล CSV อยู่ใน
main/java/resources/orders.csv - ไม่มีคำสั่งซื้อจากตัวอย่างนี้
- ค่าข้อมูลที่ไม่ตรงกับรูปแบบที่ให้ไว้ (ถ้าหนึ่ง) ถูกข้ามไป
สมมติฐาน
- ข้อมูล CSV มีแถวส่วนหัวพร้อมชื่อฟิลด์
การทดสอบ
- app.java เรียกใช้และบันทึกคำสั่งซื้อสำหรับข้อมูลที่กำหนดและตัวอย่าง DSL
การพึ่งพาอาศัยกัน
- Mariadb เป็นไดรเวอร์ JBDC
- ANTLR4 สำหรับการประมวลผลการประมวลผลและการแยกวิเคราะห์ DSL และ CSV
- junit สำหรับการทดสอบหน่วย
Javadoc
- Javadoc อยู่ภายใต้โฟลเดอร์ 'Doc' ที่มีการใช้งานเพิ่มเติมสมมติฐานและบันทึกการใช้งาน
งานในอนาคต
- refactor เพื่อเป็นนามธรรมคำสั่งประเภท (รายละเอียดที่ระบุในซอร์สโค้ดที่ทำเครื่องหมายด้วย // todo ความคิดเห็น) ทำให้สามารถนำกลับมาใช้ใหม่ได้อย่างง่ายดายสำหรับข้อมูลประเภทอื่น ๆ
- สร้างยูทิลิตี้เพื่อสนับสนุนการสร้างสคีมาฐานข้อมูลจาก DSL หรือ Schema นำเข้าจากฐานข้อมูล
- ขยายไวยากรณ์ DSL/Lexer เพื่ออนุญาตให้ตั้งค่า Formatters สำหรับการเป็นตัวแทนของวัตถุเป้าหมายใน stdout
- ขยาย DSL Grammar/Lexer เพื่ออนุญาตตัวกรอง regex ที่ช่วยให้ผู้ใช้สามารถแยกวิเคราะห์เฉพาะวัตถุที่ตรงกับตัวกรองนั้น
- ขยายเพื่อสนับสนุนภาษา DB อื่น ๆ เช่นมันค่อนข้างน่าสนใจที่จะสนับสนุน Redis
- ขยายเพื่อสนับสนุนแผนที่ <> ลดโปรเซสเซอร์เพื่อให้การทำงานแบบขนานกับ BigData
- ขยายเพื่อสนับสนุนสตรีมปฏิกิริยาและผู้เผยแพร่/สมาชิก
- เพิ่มชุดทดสอบ Junit ที่เหมาะสมด้วยชุดตัวอย่างที่หลากหลาย
- จัดทำเอกสารทางเทคนิคที่เหมาะสมเช่นแผนภาพคลาสและไดอะแกรมการโต้ตอบ