2016-04-05 7 views
0

私たちが維持しているグラフデータの集計を実行するためにTitan Db(ストレージバックエンド:HBase)を使いたいと考えました。データウェアハウスのデータをTitan DBにグラフ形式で格納することを目指しています。しかし、集計には多くの時間がかかります。私はtitanのインスタンスを1つ使用しています。 手順は次のとおりです。 1.グラフの作成-4.5lac頂点、4lacエッジ。 2.インデックスの作成-vertex &エッジ。 3.データベースキャッシングを有効にします。タイタンDB集計

グラフ上を4の深さに渡ってトラバースして、プロパティの約8000頂点の合計を求めると、クエリに応答するのに約30秒かかります。 3分(データベースキャッシュは3インでフラッシュ)までの後続のクエリは、1秒未満で処理されます。しかし、3分後に再びキャッシュを再構築し、応答を提供するのに30秒かかります。 誰もが類似のユースケースを持っていますが、タイタンの集計処理をより速くする方法はありますか?私はタイタンからリアルタイムのパフォーマンスを期待しています。

答えて

1

あなたはこれを既に知っているかもしれませんが、私はTitanからパフォーマンスを向上させるために私たちが行ったことを投稿します。ここのリストはすべてTitan Docsのthisの章に基づいています。

  1. 複合インデックス - これはおそらくこれらを持っていますが、特定の頂点のダイレクトルックアップを大幅に高速化するので言及する価値があります。
  2. 頂点の中心指数 - スーパーノードを使用している場合、これらはすばやくトラバースする必要のないエッジを排除できます。
  3. 混在インデックス - 数値範囲や順序が必要な操作に最適です.Elasticsearchは非常に強力なインデックス作成ツールです。

問題が読んでますが書いていない場合にも、返信FIDOためbulk loading

+0

感謝を試みることができます。私は上記の提案を既に実装していましたが、私は依然としてOLAPワークロードにtitanを使用してより高いレイテンシーを取っています。もしそうなら、それをリアルタイムOLAPソリューションとして使用していますか、または一定時間の間、グラフをキャッシュしてから、URクエリをTitan DBのキャッシュ情報から提供していますか?ありがとう。 –