Hadoop 是否有人可以就HBase架构提供建议单击流数据
我想使用HBase创建一个点击流应用程序,在sql中这将是一个非常简单的任务,但在HBase中我还没有得到第一条线索。有人能就HBase中使用的模式设计和键向我提供建议吗 我提供了一个粗略的数据模型和几个问题,我想询问这些数据 关于访问数据我想问的问题 哪些事件导致了转换? 最后一页是什么/浏览了多少页? 客户会放弃哪些页面? 20岁至30岁的男性顾客喜欢购买什么产品? 客户购买了产品x也可能购买产品y? 第一页的转换金额Hadoop 是否有人可以就HBase架构提供建议单击流数据,hadoop,schema,hbase,bigdata,Hadoop,Schema,Hbase,Bigdata,我想使用HBase创建一个点击流应用程序,在sql中这将是一个非常简单的任务,但在HBase中我还没有得到第一条线索。有人能就HBase中使用的模式设计和键向我提供建议吗 我提供了一个粗略的数据模型和几个问题,我想询问这些数据 关于访问数据我想问的问题 哪些事件导致了转换? 最后一页是什么/浏览了多少页? 客户会放弃哪些页面? 20岁至30岁的男性顾客喜欢购买什么产品? 客户购买了产品x也可能购买产品y? 第一页的转换金额 { PageViews: [ {
{
PageViews: [
{
date: "19700101 00:00",
domain: "http://foobar.com",
path: "pageOne.html",
timeOnPage: "10",
pageViewNumber: 1,
events: [
{ name: "slideClicked", value: 0, time: "00:00"},
{ name: "conversion", value: 100, time: "00:05"}
],
pageData: {
category: "home",
pageTitle: "Home Page"
}
},
{
date: "19700101 00:01",
domain: "http://foobar.com",
path: "pageTwo.html",
timeOnPage: "20",
pageViewNumber: 2,
events: [
{ name: "addToCart", value: 50.00, time: "00:02"}
],
pageData: {
category: "product",
pageTitle: "Mans Shirt",
itemValue: 50.00
}
},
{
date: "19700101 00:03",
domain: "http://foobar.com",
path: "pageThree.html",
timeOnPage: "30",
pageViewNumber: 3,
events: [],
pageData: {
category: "basket",
pageTitle: "Checkout"
}
}
],
Customer: {
IPAddress: 127.0.0.1,
Browser: "Chrome",
FirstName: "John",
LastName: "Doe",
Email: "john.doe@email.com",
isMobile: 1,
returning: 1,
age: 25,
sex: "Male"
}
}
你的数据主要是一对多的关系。一个客户和一组页面视图实体。而且,由于您的所有查询都是以客户为中心的,因此在Hbase中将每个客户存储为一行并将customerid(在您的情况下可能是电子邮件)作为行键的一部分是有意义的 如果您决定为一个客户存储一行,则每个页面视图详细信息将以嵌套方式存储。有关hbase设计的视频链接将帮助您了解这一点。对于上面的示例,您可以得到一行和三个嵌套实体 另一种方法是使用非规范化形式,使hbase能够执行良好的查找。这里的每一行都是页面视图,每一行都会附加客户数据。数据将被复制。同样,视频也提供了相关信息(压缩内容) 在每个页面视图中都有更多嵌套级别—实时事件和页面数据。因此,在非规范化方面,情况只会变得更糟。由于Hbase中的所有内容都是键值对,因此很难查询和匹配这些嵌套级别。希望这能帮助你开始
好的视频链接好吧,你的数据主要是一对多的关系。一个客户和一组页面视图实体。而且,由于您的所有查询都是以客户为中心的,因此在Hbase中将每个客户存储为一行并将customerid(在您的情况下可能是电子邮件)作为行键的一部分是有意义的 如果您决定为一个客户存储一行,则每个页面视图详细信息将以嵌套方式存储。有关hbase设计的视频链接将帮助您了解这一点。对于上面的示例,您可以得到一行和三个嵌套实体 另一种方法是使用非规范化形式,使hbase能够执行良好的查找。这里的每一行都是页面视图,每一行都会附加客户数据。数据将被复制。同样,视频也提供了相关信息(压缩内容) 在每个页面视图中都有更多嵌套级别—实时事件和页面数据。因此,在非规范化方面,情况只会变得更糟。由于Hbase中的所有内容都是键值对,因此很难查询和匹配这些嵌套级别。希望这能帮助你开始
好的视频链接好吧,你的数据主要是一对多的关系。一个客户和一组页面视图实体。而且,由于您的所有查询都是以客户为中心的,因此在Hbase中将每个客户存储为一行并将customerid(在您的情况下可能是电子邮件)作为行键的一部分是有意义的 如果您决定为一个客户存储一行,则每个页面视图详细信息将以嵌套方式存储。有关hbase设计的视频链接将帮助您了解这一点。对于上面的示例,您可以得到一行和三个嵌套实体 另一种方法是使用非规范化形式,使hbase能够执行良好的查找。这里的每一行都是页面视图,每一行都会附加客户数据。数据将被复制。同样,视频也提供了相关信息(压缩内容) 在每个页面视图中都有更多嵌套级别—实时事件和页面数据。因此,在非规范化方面,情况只会变得更糟。由于Hbase中的所有内容都是键值对,因此很难查询和匹配这些嵌套级别。希望这能帮助你开始
好的视频链接好吧,你的数据主要是一对多的关系。一个客户和一组页面视图实体。而且,由于您的所有查询都是以客户为中心的,因此在Hbase中将每个客户存储为一行并将customerid(在您的情况下可能是电子邮件)作为行键的一部分是有意义的 如果您决定为一个客户存储一行,则每个页面视图详细信息将以嵌套方式存储。有关hbase设计的视频链接将帮助您了解这一点。对于上面的示例,您可以得到一行和三个嵌套实体 另一种方法是使用非规范化形式,使hbase能够执行良好的查找。这里的每一行都是页面视图,每一行都会附加客户数据。数据将被复制。同样,视频也提供了相关信息(压缩内容) 在每个页面视图中都有更多嵌套级别—实时事件和页面数据。因此,在非规范化方面,情况只会变得更糟。由于Hbase中的所有内容都是键值对,因此很难查询和匹配这些嵌套级别。希望这能帮助你开始
好的视频链接您好,谢谢您的回复。考虑到该示例,可能建议使用您建议的一种格式,然后使用另一种格式,以便在询问不同的数据问题时更快地访问数据?因为您已经有多个嵌套级别,可能会使用第二种方法,所以非规范化的一种会更好,因为您将pageview id和cust id作为行键,而其余的细节在一个级别上是平坦的。这样可以减少嵌套级别。我希望你已经看过这段视频,并且对我所说的有了一个想法。谢谢你的回复。考虑到这个例子,最好按照您建议的一种格式保存数据,然后使用另一种格式以便更快地访问