php エディター Apple Gremlin-Go は、新しいタイプの分散データベースです。シリアル化不可能なツリー ステップのテクノロジーを使用して、より効率的で信頼性の高いデータをユーザーに提供します。ストレージと処理のオプション。データをツリー構造に保存し、シリアル化不可能な手順を使用してデータの読み取りと書き込みを行うことにより、Gremlin-Go は分散環境でデータの一貫性と信頼性を維持できます。この革新的な設計コンセプトにより、Gremlin-Go は現在主要な分散データベースの 1 つとなり、あらゆる規模の企業に強力なデータ サポートを提供します。
特定のラベルの背後にあるすべての「イン」エッジを反復処理するクエリを実行しています。後で「アウト」エッジに対して同様のクエリを実行します。横断する複数のエッジを持つ頂点がある可能性があり、これをクライアントに反映する必要があるため、これをツリーにしたいのですが、ここで単に tolist()
を使用することはできません。
現在 gremlin-go SDK を使用していますが、tree()
ステップを呼び出すときに逆シリアル化エラーが発生します。これは私のクライアント コードのスニペットです:
これにより、グラフバイナリ コア データ型「tree」であるデータ型 0x2b
で逆シリアル化エラーが生成されます
gremlin-go リファレンス ドキュメントには、特定のシリアル化サポートについては何も記載されていないようです。 gremlin-go
Readme によると、すべてのコア グラフバイナリ データ型をサポートしています。 gremlin コンソールでクエリをテストして、クエリとサーバーを確認しました。
g.v(<id>).emit().repeat(__.in(<label>)).tree().next()</label></id>
。
追加のコンテキストとして、私は gremlin-server:3.5.3
に対してローカルで開発し、AWS Neptune のサポートでクエリを完了するという目標を実験しています。これらが完全に互換性があるわけではないことは承知しており、neptune-gremlin のリファレンスに従うことになります。 neptune の最新バージョンでは、サポートされている gremlin の最新バージョンが 3.5.3 であることが指定されています。
一般に、サブグラフやツリーなどの構造を逆シリアル化できるのは Java (および他の JVM ベースのクライアント) だけです。これは、現在利用可能なデータ構造のネイティブ実装を備えているのは、これらの Gremlin クライアントだけであるためです (たとえば、JVM クライアントには TinkerGraph が利用可能です)。
これは TinkerPop コミュニティがよく知っているものであり、改善する価値のあるもののリストに載っています。
考えられる回避策の 1 つ (あまり良くありません) は、HTTP エンドポイントを使用し (クエリをテキストとして送信し)、返された GraphSON を処理することです (そのようなデータ構造を返す必要がある場合)。
以上がGremlin-Go: ツリー ステップはシリアル化できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。