นี่ไม่ใช่วิธีการแก้ปัญหาที่สมบูรณ์ แต่คุณอาจต้องการค้นหาOrientDBเป็นส่วนหนึ่งของสแต็กของคุณ Orient เป็นเซิร์ฟเวอร์ฐานข้อมูลกราฟ - เอกสารที่เขียนด้วยภาษาจาวาทั้งหมด
ในฐานข้อมูลกราฟความสัมพันธ์ถือเป็นพลเมืองชั้นหนึ่งดังนั้นการสำรวจความสัมพันธ์เหล่านั้นสามารถทำได้อย่างรวดเร็ว Orient ยังเป็นฐานข้อมูลเอกสารที่จะช่วยให้คุณมีสถาปัตยกรรมที่ปราศจาก schema ซึ่งดูเหมือนว่าคุณต้องการ อย่างไรก็ตามเหตุผลที่แท้จริงที่ฉันแนะนำให้โอเรียนท์นั้นเป็นเพราะความสามารถในการขยายตัวของมัน รองรับการสตรีมผ่านซ็อกเก็ตและฐานข้อมูลทั้งหมดสามารถฝังลงในแอปพลิเคชันอื่น ในที่สุดมันสามารถปรับขนาดได้อย่างมีประสิทธิภาพและ / หรือสามารถทำงานได้อย่างสมบูรณ์ผ่านหน่วยความจำ ดังนั้นด้วยความเชี่ยวชาญของ Java คุณสามารถเรียกใช้คิวรีที่ตั้งไว้ล่วงหน้าของคุณกับฐานข้อมูลในหน่วยความจำ
เรากำลังทำสิ่งที่คล้ายกัน ในการสร้างแอพ / ไซต์สำหรับการทำงานร่วมกันในการวิจัยทางสังคมศาสตร์เราพบว่าตัวเรามีรูปแบบข้อมูลที่ซับซ้อนอย่างมาก เราลงเอยด้วยการเขียนแบบสอบถามหลายข้อโดยใช้ภาษา Gremlin Traversal (ส่วนย่อยของ Groovy ซึ่งแน่นอนว่า Java เป็นหัวใจของมัน) จากนั้นจึงเปิดเผยข้อความค้นหาเหล่านั้นผ่านเซิร์ฟเวอร์การเชื่อมต่อไบนารีของ OrientDB ดังนั้นไคลเอ็นต์จะเปิดซ็อกเก็ต TCP ส่งข้อความไบนารีสั้น ๆ และแบบสอบถามกำลังดำเนินการใน Java โดยตรงกับฐานข้อมูลในหน่วยความจำ
OrientDB ยังรองรับการเขียนแบบสอบถามฟังก์ชันใน Javascript และคุณสามารถใช้ Node.js เพื่อโต้ตอบโดยตรงกับอินสแตนซ์ Orient
สำหรับขนาดนี้ฉันต้องการใช้ Orient ร่วมกับ Hadoop หรืออะไรทำนองนั้น นอกจากนี้คุณยังสามารถใช้ Orient ร่วมกับ esper
พิจารณา: คำแนะนำเกี่ยวกับทิศทาง: http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/
ข้อความค้นหาแบบเรียลไทม์ที่ซับซ้อน: http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-through-bigdata-to-detect-insurance-fraud/
การสนทนาเกี่ยวกับตัวเลือกการสตรีมด้วย Java และทิศทาง: https://github.com/orientechnologies/orientdb/issues/1227