2017-06-30 8 views
0

HBaseの使い方を学んでいます。私はいくつかの車の各旅行(geolocated(xy)地点)をデータベースに入れる必要があります。これらのデータはJSON形式で提供されます。HBaseテーブルモデル

問題は、復旧した各文書の旅行中に地点が移動した回数が変化することです。 (それぞれの旅行は異なります)

どのようにしてこれらのデータをHBaseに保存できますか?

挿入された各行の列数を変更する必要がありますか?

  • TRIP1:X1、Y1、X2、Y2、X3、Y3
  • TRIP2:X1、Y1、X2、Y2、X3、Y3、X4、Y4

または私はする必要がありますか2列のみを保持します.xのすべてとyの1つです。

  • TRIP1:(X、Y)
  • TRIP2:(X、Y)

答えて

0

Iは、各旅行は(x、y)の時系列座標であることを理解あります。

Row key = shardKey + tripId + timestampと、各行はxyの列を持つことをお勧めします。 シャードキーは(tripId % number of regions)となり、ホットスポットが防止されます。 これにより、1回のスキャンで各トリップのデータを1つの領域から取得できます。

+0

わかりましたら、私が説明した最初の可能性にほぼ相当しますか?そして、私はshardKeyとタイムスタンプが何か分かりません。 –

+0

あなたのtripIdがインクリメンタルであれば、これはあなたの地域サーバーのホットスポットにつながり、分散負荷の考え方全体は機能しません。シャーディングキーはこれを防ぎます。そして、各点(x、y)がある時点で生成されることを理解しているので、タイムスタンプがあります。この方法で、任意の時点での位置を追跡することができます。 – gorros