ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ Π²Π΅ΡΡΠΈΡ 3.2 Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½Π°ΡΠ° Π‘Π£ΠΠ Nebula Graph, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠΈ Π³ΡΠ°Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π° ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ Π²ΡΠ·Π»ΠΎΠ²ΠΈ ΡΠΎΡΠΊΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΠΎΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π‘Π£ΠΠ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Go, Python ΠΈ Java.
Π Π‘Π£ΠΠ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π±Π΅Π· ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ (shared-nothing), ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ graphd ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ storaged. ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π³ΡΠ°ΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΡ ΠΌΠ΅ΡΠ°-ΡΠ΅ΡΠ²ΠΈΠ·Π°. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½Π° Π±Π°Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° RAFT.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Nebula Graph:
- ΠΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π½Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΡΠΈΠΈΡΠΎ ΠΏΡΠ°Π²Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π±Π°Π·Π° ΡΠΎΠ»ΠΈ (RBAC).
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Ρ Π½ΠΎΠ²ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ.
- ΠΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ. ΠΡΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Ρ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π» graphd ΠΈ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π° storaged Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ 632 GB, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ° Π³ΡΠ°Ρ Ρ 1.2 ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄Π° Π²ΡΡΡ Π° ΠΈ 8.4 ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄Π° ΡΠ΅Π±ΡΠ°, Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π±ΡΡ Π° Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π΄ΠΎΡΡΠΈΠ³Π½Π° Π΄ΠΎ 140 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
- ΠΠΈΠ½Π΅ΠΉΠ½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ.
- SQL-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΌΠΎΡΠ΅Π½ ΠΈ Π»Π΅ΡΠ΅Π½ Π·Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ GO (Π΄Π²ΡΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° Π³ΡΠ°ΡΠ°), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅). ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.
- ΠΠ±Π΅Π·ΠΏΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ.
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΠ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ.
- ΠΠΎΡΠΎΠ²Π½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠΌΠΈΡΠ»Π΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ JD, Meituan ΠΈ Xiaohongshu).
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π±Π΅Π· ΡΠΏΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° TTL Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΆΠΈΠ²ΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅.
- ΠΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌ (ΠΎΡ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ COMPACT ΠΈ FLUSH).
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΡ ΠΈ Π½Π°ΠΉ-ΠΊΡΠ°ΡΠΊΠΈΡ ΠΏΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π²ΡΡΡ ΠΎΠ²Π΅.
- OLAP ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²ΡΠ½ΡΠ½ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
- Π£ΡΠΈΠ»ΠΈΡΠΈ Π·Π° Π²Π½ΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ CSV ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΎΡ Spark.
- ΠΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Prometheus ΠΈ Grafana.
- Web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Nebula Graph Studio Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π³ΡΠ°ΡΠ°, Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ Π³ΡΠ°ΡΠ°, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° extract() Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ».
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ AppendVertices ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠ»ΡΡΠΈ Π·Π° ΡΠ΅Π±ΡΠ° ΠΈ Π²ΡΡΡ ΠΎΠ²Π΅.
- Π‘ΡΠΊΡΠ°ΡΠ΅Π½ Π΅ ΠΎΠ±Π΅ΠΌΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΏΠΈΡΠ°Π½ΠΈ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° JOIN, Π° ΡΡΡΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Traverse ΠΈ AppendVertices.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° SHORTEST PATH ΠΈ SUBGRAPH.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π΅ Arena Allocator).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
