私は現在usecaseのNoSQL技術を評価中です。 私は多くのセンサーデータログ(数TB)を持ち、スケーラブルで効率的な方法でデータを分析したいと考えています。センサーデータのグラフデータベース - 関係をモデル化する方法?
私のセンサーデータには、タイムスタンプ、場所、センサー属性名(たとえば「温度」)およびセンサー属性値(たとえば12.9℃)のリストが含まれています。ただし、その場所は私のすべてのデータエントリに存在しません。また、エントリごとの属性のリストも変化します。
- sensor_id:1つの
- 場所:緯度/経度 だからつのログエントリは次のようにデータを含めることができます(しかし常にではないは、各エントリに含ま注):timestamp_of_log_date
- attribute_name1: "attribute_value1"
- attribute_name2:123123
- attribute_name3:0.933
- attribute_nameN: "attribute_valueN"
私は最近、グラフデータベースを見て、興味深い概念を見つけました。私のユースケースをグラフデータベースに適用するかどうかは、私のデータ間の関係が(おそらく)不足しているためにはわかりません。
私のセンサデータとの間の関係をモデル化するが、今の私は、次の関係を考えることができるいくつかの方法があります。
- 日のエントリの/時間Year-> Month->日 - >へHour-> Minute-> Continent-へのエントリの
- 第二の場所>国別>状態 - >シティ - >ストリート/ POI
- センサーID->
属性名は、私は私のデータを照会していますジオスペースクエリ、時間エイリアスと「通常の」属性クエリー(field_x < = 1000)です。
もう1つ注意すべきこと:地理空間クエリを実行しているとき、私は通常、空間クエリで見つかったレコードのタイムスタンプに基づいてさらにレコードを読み込みたいと思っています。したがって、私の地理空間クエリが終了し、タイムスタンプ "25.06.2016-20:40:30"のレコードを返すと、ジオスペースクエリで見つかったレコードごとに1分以内にタイムスタンプを持つ他のすべてのレコードも読み込みたいと思います。
たとえば、Neo4jは地理空間クエリを処理するのに適しています。これは、私の用途にとって非常に一般的なクエリタイプです。しかし、私はどのように私のデータをモデル化するだろうか?私のノードはどのように他のノードに接続されていますか?彼らは接続する必要がありますか?
neo4jには空間プラグインを使用できます。 https://github.com/neo4j-contrib/spatial – piyush121
このデータを処理するためにグラフデータベースは必要ありません。 –
@stdobこのデータを扱うにはグラフデータベースを必要としませんが、それは悪い考えですか? – j9dy