Microsoft Graph Engine โอเพ่นซอร์สใช้งาน Neo4j

บางครั้งความสัมพันธ์ระหว่างข้อมูลที่คุณรวบรวมมีความสำคัญมากกว่าข้อมูล (ดู: Facebook สร้างรายได้จากรายชื่อเพื่อนของคุณ) นั่นคือสิ่งที่ระบบประมวลผลกราฟมีประโยชน์ เป็นวิธีการที่สำคัญ แต่มักไม่ค่อยเข้าใจในการสำรวจว่ารายการในชุดข้อมูลมีความสัมพันธ์กันอย่างไร

Microsoft ได้สำรวจพื้นที่นี้ตั้งแต่อย่างน้อยปี 2013 เมื่อเผยแพร่บทความที่อธิบายถึงโครงการ Trinity ซึ่งเป็นเครื่องมือสร้างกราฟในหน่วยความจำบนคลาวด์ ผลของความพยายามที่เรียกว่า Microsoft Graph Engine มีวางจำหน่ายแล้วในรูปแบบโครงการโอเพ่นซอร์สที่ได้รับอนุญาตจาก MIT ซึ่งเป็นทางเลือกหนึ่งของ Neo4j หรือ JanusGraph ที่เพิ่งประกาศของ Linux Foundation

ทุกอย่างเชื่อมต่อกัน

Microsoft เรียก Graph Engine (GE) ว่า "ทั้งที่เก็บ RAM และเครื่องมือคำนวณ" ข้อมูลสามารถแทรกลงใน GE และดึงข้อมูลด้วยความเร็วสูงเนื่องจากเก็บไว้ในหน่วยความจำและเขียนกลับไปยังดิสก์ได้ตามต้องการเท่านั้น สามารถทำงานเป็นที่เก็บคีย์ - ค่าแบบง่ายเช่น Memcached แต่ Redis อาจเป็นการเปรียบเทียบที่ดีกว่าเนื่องจาก GE เก็บข้อมูลในรูปแบบที่พิมพ์มากเกินไป (สตริงจำนวนเต็มและอื่น ๆ )

ส่วน "กลไกการคำนวณ" ของสมการหมายถึง GE ใช้อัลกอริทึมแบบกระจายข้ามโหนดซึ่งเขียนด้วย C # ไม่ได้รับการปรับให้เหมาะสมสำหรับอัลกอริทึมกราฟบางประเภทดังนั้นจึงน่าจะดึงดูดผู้ที่ต้องการเขียนอัลกอริทึมการสำรวจกราฟของตนเองตั้งแต่ต้นหรือเพียงแค่เขียนอัลกอริทึมแบบกระจายของตนเอง

"แทนที่จะพยายามจัดหาชุดโมดูลการคำนวณในตัวที่ละเอียดถี่ถ้วน" เอกสารของ Microsoft ระบุ "GE พยายามจัดเตรียมเอกสารสำเร็จรูปทั่วไปเพื่อให้เราสร้างโมดูลดังกล่าวได้อย่างง่ายดาย" บล็อกเหล่านี้รวมถึงระบบสำหรับการส่งผ่านข้อความแบบซิงโครนัสและอะซิงโครนัสตลอดจนภาษาแบบสอบถามกราฟ LIKQ ที่ใช้โดย Academic Graph Search API ใน Microsoft Cognitive Services แล้ว

วิธีต่างๆผ่านเขาวงกต

ทั้งหมดนี้มีรูปร่างอย่างไรเมื่อเทียบกับฐานข้อมูลกราฟโอเพ่นซอร์สชั้นนำ Neo4j ประการแรก Neo4j อยู่ในตลาดมานานกว่าและมีฐานผู้ใช้อยู่แล้ว นอกจากนี้ยังมีให้บริการทั้งในรุ่นชุมชนโอเพ่นซอร์สและผลิตภัณฑ์เชิงพาณิชย์ในขณะที่ GE เป็นเพียงโครงการโอเพ่นซอร์สในขณะนี้

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

ฐานข้อมูลกราฟแบบกระจายอื่นที่มีมูลค่าเมื่อเทียบกับ GE คือ JanusGraph ซึ่งเป็นโครงการใหม่ภายใต้การสนับสนุนของ Linux Foundation ที่มีการสนับสนุนโดย Google, Hortonworks และ IBM สร้างขึ้นเพื่อทำงานอย่างใกล้ชิดและใช้ประโยชน์จากระบบนิเวศของ Hadoop Elasticsearch และ Lucene สามารถใช้เป็นเครื่องมือสร้างดัชนีและ Cassandra และ HBase สามารถใช้เป็นที่เก็บข้อมูลได้ สำหรับ GE ข้อมูลจะต้องถูกนำเข้ามาก่อน

สิ่งที่ Microsoft ดูเหมือนจะมุ่งเป้าไปที่ GE ไม่ใช่การแข่งขันโดยตรงกับโครงการเหล่านั้น GE เป็นโครงสร้างพื้นฐานการจัดเก็บข้อมูลแบบกระจายซึ่งรับข้อมูลใหม่และให้การคำนวณกราฟเป็นประโยชน์หลายประการ การออกใบอนุญาตแบบเสรียังช่วยให้สามารถรีไฟต์เป็นผลิตภัณฑ์อื่น ๆ ได้อย่างง่ายดายหรือนำกลับมาใช้ใหม่ได้อย่างง่ายดายสำหรับการโฮสต์ตามขนาด ไม่ชัดเจนว่า Microsoft ใช้ GE เป็นส่วนหนึ่งของระบบของตนเองหรือไม่ (แม้ว่าจะใช้ LIKQ ตามที่ระบุไว้ข้างต้น)

หากผู้ที่สร้างบนแพลตฟอร์มที่ไม่ใช่ของ Microsoft สนใจที่จะทดลองใช้ Graph Engine การรองรับข้ามแพลตฟอร์มสำหรับ Linux / BSD กำลังจะมาในไม่ช้า