【发布时间】:2019-04-26 05:02:10
【问题描述】:
这是一个相对广泛的问题,我知道解决此类问题可能需要使用的工具(例如 Spark、Kafka 和 Hadoop),但我正在从经验丰富的专业人士的角度寻找具体的愿景
手头的问题如下所示:
我们正在使用类似谷歌分析的服务,它向我们发送事件流。事件是在页面上执行的操作。它可以是单击按钮、鼠标移动、页面滚动或我们定义的自定义事件。
{
"query_params":[
],
"device_type":"Desktop",
"browser_string":"Chrome 47.0.2526",
"ip":"62.82.34.0",
"screen_colors":"24",
"os":"Mac OS X",
"browser_version":"47.0.2526",
"session":1,
"country_code":"ES",
"document_encoding":"UTF-8",
"city":"Palma De Mallorca",
"tz":"Europe/Madrid",
"uuid":"A37F2D3A4B99FF003132D662EFEEAFCA",
"combination_goals_facet_term":"c2_g1",
"ts":1452015428,
"hour_of_day":17,
"os_version":"10.11.2",
"experiment":465,
"user_time":"2016-01-05T17:37:10.675000",
"direct_traffic":false,
"combination":"2",
"search_traffic":false,
"returning_visitor":false,
"hit_time":"2016-01-05T17:37:08",
"user_language":"es",
"device":"Other",
"active_goals":[
1
],
"account":196,
"url”:”http://someurl.com”,
“action”:”click”,
"country":"Spain",
"region":"Islas Baleares",
"day_of_week":"Tuesday",
"converted_goals":[
],
"social_traffic":false,
"converted_goals_info":[
],
"referrer”:”http://www.google.com”,
"browser":"Chrome",
"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36",
"email_traffic":false
}
现在我们需要构建一个解决方案来分析这些数据。我们需要做一个可以聚合、过滤、切片和切块数据的报告平台。
我们需要构建的报告的一个例子是
显示所有来自美国并使用 chrome 浏览器并在 iPhone 上使用该浏览器的用户。
或
显示来自referrer =“http://www.google.com”且位于印度以外并使用桌面的所有用户对特定按钮的点击总和。 在一天之内,该服务每天发送数百万个此类事件,总计 GB 的数据。
这是我的具体疑问
- 我们应该如何存储如此大量的数据
- 我们应该如何让自己能够实时分析数据。
- 这里的查询系统应该如何工作(我对这部分比较一窍不通)
- 如果我们正在考虑维护大约 4 TB 的数据,我们估计会在 3 个月内累积,那么保留这些数据的策略应该是什么。我们应该何时以及如何删除它?
【问题讨论】:
标签: hbase bigdata streaming spark-streaming apache-kafka-streams