【问题标题】:Should I use InfluxDB or Elasticsearch or others for storing mouse tracking data for websites?我应该使用 InfluxDB 或 Elasticsearch 或其他方法来存储网站的鼠标跟踪数据吗?
【发布时间】:2020-03-20 11:27:33
【问题描述】:

我正在开发一个监控系统来收集用户浏览网站时的鼠标数据(如移动、点击等)。该监控系统可以服务于多个站点。每个站点都有多个用户(由sessionId 标识)。每个用户生成鼠标数据如下:

{
  "sessionId": "12345",
  "url": "/",
  "width": 1249,
  "height": 1074,
  "events": [
    {
      "timestamp": 2291333,
      "type": "mousemove",
      "x": 931,
      "y": 509,
      "isTrusted": true
    },
    {
      "timestamp": 2291381,
      "type": "mousemove",
      "x": 1111,
      "y": 504,
      "isTrusted": true
    },
    {
      "timestamp": 2291413,
      "type": "mousemove",
      "x": 1188,
      "y": 504,
      "isTrusted": true
    },
    {
      "timestamp": 2291445,
      "type": "mousemove",
      "x": 1214,
      "y": 502,
      "isTrusted": true
    },
    {
      "timestamp": 2291671,
      "type": "mousemove",
      "x": 1213,
      "y": 502,
      "isTrusted": true
    },
    {
      "timestamp": 2291671,
      "type": "mousemove",
      "x": 1214,
      "y": 502,
      "isTrusted": true
    },
    {
      "timestamp": 2292285,
      "type": "mousemove",
      "x": 1230,
      "y": 481,
      "isTrusted": true
    },
    {
      "timestamp": 2292589,
      "type": "mousemove",
      "x": 1203,
      "y": 339,
      "isTrusted": true
    },
    {
      "timestamp": 2292622,
      "type": "mousemove",
      "x": 1060,
      "y": 468,
      "isTrusted": true
    },
    {
      "timestamp": 2292653,
      "type": "mousemove",
      "x": 982,
      "y": 541,
      "isTrusted": true
    },
    {
      "timestamp": 2292685,
      "type": "mousemove",
      "x": 961,
      "y": 564,
      "isTrusted": true
    },
    {
      "timestamp": 2292901,
      "type": "mousemove",
      "x": 1079,
      "y": 456,
      "isTrusted": true
    },
    {
      "timestamp": 2292997,
      "type": "mousemove",
      "x": 1247,
      "y": 312,
      "isTrusted": true
    },
    {
      "timestamp": 2293205,
      "type": "mousemove",
      "x": 1247,
      "y": 314,
      "isTrusted": true
    },
    {
      "timestamp": 2293221,
      "type": "mousemove",
      "x": 1244,
      "y": 332,
      "isTrusted": true
    },
    {
      "timestamp": 2293293,
      "type": "mousemove",
      "x": 1222,
      "y": 356,
      "isTrusted": true
    },
    {
      "timestamp": 2293365,
      "type": "mousemove",
      "x": 1071,
      "y": 385,
      "isTrusted": true
    },
    {
      "timestamp": 2293381,
      "type": "mousemove",
      "x": 1016,
      "y": 404,
      "isTrusted": true
    },
    {
      "timestamp": 2293397,
      "type": "mousemove",
      "x": 971,
      "y": 420,
      "isTrusted": true
    },
    {
      "timestamp": 2293421,
      "type": "mousemove",
      "x": 937,
      "y": 434,
      "isTrusted": true
    },
    {
      "timestamp": 2293437,
      "type": "mousemove",
      "x": 926,
      "y": 437,
      "isTrusted": true
    },
    {
      "timestamp": 2293477,
      "type": "mousemove",
      "x": 905,
      "y": 443,
      "isTrusted": true
    },
    {
      "timestamp": 2293485,
      "type": "mousemove",
      "x": 904,
      "y": 443,
      "isTrusted": true
    },
    {
      "timestamp": 2293549,
      "type": "mousemove",
      "x": 899,
      "y": 446,
      "isTrusted": true
    },
    {
      "timestamp": 2293565,
      "type": "mousemove",
      "x": 889,
      "y": 451,
      "isTrusted": true
    },
    {
      "timestamp": 2293629,
      "type": "mousemove",
      "x": 836,
      "y": 489,
      "isTrusted": true
    },
    {
      "timestamp": 2293637,
      "type": "mousemove",
      "x": 831,
      "y": 493,
      "isTrusted": true
    },
    {
      "timestamp": 2293706,
      "type": "mousemove",
      "x": 759,
      "y": 555,
      "isTrusted": true
    },
    {
      "timestamp": 2293725,
      "type": "mousemove",
      "x": 732,
      "y": 603,
      "isTrusted": true
    },
    {
      "timestamp": 2293757,
      "type": "mousemove",
      "x": 692,
      "y": 691,
      "isTrusted": true
    },
    {
      "timestamp": 2293781,
      "type": "mousemove",
      "x": 666,
      "y": 748,
      "isTrusted": true
    },
    {
      "timestamp": 2293805,
      "type": "mousemove",
      "x": 649,
      "y": 794,
      "isTrusted": true
    },
    {
      "timestamp": 2293829,
      "type": "mousemove",
      "x": 645,
      "y": 813,
      "isTrusted": true
    },
    {
      "timestamp": 2294005,
      "type": "mousemove",
      "x": 714,
      "y": 777,
      "isTrusted": true
    },
    {
      "timestamp": 2294101,
      "type": "mousemove",
      "x": 963,
      "y": 562,
      "isTrusted": true
    },
    {
      "timestamp": 2294125,
      "type": "mousemove",
      "x": 1007,
      "y": 512,
      "isTrusted": true
    },
    {
      "timestamp": 2294149,
      "type": "mousemove",
      "x": 1036,
      "y": 479,
      "isTrusted": true
    },
    {
      "timestamp": 2294189,
      "type": "mousemove",
      "x": 1051,
      "y": 468,
      "isTrusted": true
    },
    {
      "timestamp": 2294213,
      "type": "mousemove",
      "x": 1057,
      "y": 458,
      "isTrusted": true
    },
    {
      "timestamp": 2294237,
      "type": "mousemove",
      "x": 1070,
      "y": 442,
      "isTrusted": true
    },
    {
      "timestamp": 2294277,
      "type": "mousemove",
      "x": 1091,
      "y": 404,
      "isTrusted": true
    },
    {
      "timestamp": 2294301,
      "type": "mousemove",
      "x": 1101,
      "y": 382,
      "isTrusted": true
    },
    {
      "timestamp": 2294366,
      "type": "mousemove",
      "x": 1094,
      "y": 375,
      "isTrusted": true
    },
    {
      "timestamp": 2294440,
      "type": "mousemove",
      "x": 872,
      "y": 370,
      "isTrusted": true
    },
    {
      "timestamp": 2294469,
      "type": "mousemove",
      "x": 662,
      "y": 407,
      "isTrusted": true
    },
    {
      "timestamp": 2294485,
      "type": "mousemove",
      "x": 560,
      "y": 421,
      "isTrusted": true
    },
    {
      "timestamp": 2294517,
      "type": "mousemove",
      "x": 374,
      "y": 447,
      "isTrusted": true
    },
    {
      "timestamp": 2294541,
      "type": "mousemove",
      "x": 297,
      "y": 461,
      "isTrusted": true
    },
    {
      "timestamp": 2294566,
      "type": "mousemove",
      "x": 244,
      "y": 473,
      "isTrusted": true
    },
    {
      "timestamp": 2294589,
      "type": "mousemove",
      "x": 216,
      "y": 480,
      "isTrusted": true
    }
  ]
}

我想将这些数据存储到数据库中。当然,我还希望管理员能够通过我的系统轻松查询鼠标数据,例如通过公开 Web UI。我知道像 InfluxDB 这样的时序数据库和像 Elasticsearch 这样的日志解决方案都可以处理类似的数据。但是哪一个更适合我的场景?还是两者都没有?

【问题讨论】:

  • 我建议时间序列数据在每个事件对象中包含 sessionId。这样也更容易索引和查询。

标签: database elasticsearch time-series influxdb


【解决方案1】:

看看ClickHouse。它专为收集分析事件和高速查询原始数据而设计。

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多