2017-03-02 11 views
0

私はArangoDBを、より小さなシステム要件にしばらく使用しています。私たちは最近、クライアントがSQLに格納されている大量の財務データを分析することを任されましたが、私はArangoDBのデータをより効率的に照会することを望んでいました。バルクデータをグラフに含める必要がありますか?

より簡単な要件の1つは、glエントリー金額をロールアップして総勘定元帳全体の口座合計を決定することです。総勘定元帳には最大深さ約10の約2200口座があります。口座登録件数は約1億5千万であり、口座合計を集計する最も効率的な方法は何でしょうか?

グラフを使用してアカウントの階層構造を管理する予定ですが、1億5000万回のエントリに対してエッジを作成するか、インバウンド関係をトラバースしてGLエントリコレクションでサブクエリを実行すると効率的です金額?

私は通常、テストを自分で実行しますが、ローカルのarangoインスタンスにデータをロードするだけでは苦労しています。データをロードする際には、洞察を得ることができます。

ありがとうございます!

答えて

0

データをグラフモデルに移動することで得られるメリットは何ですか?アカウント、顧客、GLなどとの接続を構築する場合は、ハイブリッドモデルを使用するのが最適かもしれません。

アカウントとGLの階層グラフスタイルの関係を構築することはできますが、GLエントリはフラットなドキュメントコレクションに保存することができます。

この方法で、AQLスタイルのグラフクエリを使用して、アカウントとGL間の関係をすばやく判断できます。 GLで項目をSUMする必要がある場合は、GL._idを識別するクエリを持つことができ、それらが関連付けられているGL._idを参照する外部キーを持つフラットな集合を合計することができます。

外部キーにインデックスを追加すると、クエリの処理速度が向上し、Foxx Micro Servicesを使用すると、RESTスタイルのクエリと使用している実際のデータモデルの間に抽象レイヤーを提供できます。そうすれば、データベースモデルを変更する必要がある場合は、Foxx MicroServicesを更新することで、コンシューマはその変更を認識する必要がありません。

パフォーマンスに関する質問には答えられません。ハードウェアが適切に仕様されていることを確認するだけで済みます。

関連する問題