点击流关键字维度

时间:2013-03-18 21:14:02

标签: sql sql-server data-warehouse dimension

我目前正在尝试确定如何构建关键字维度表。我们正在跟踪网站访问我们的网站,并希望能够找到用于搜索网站搜索引擎的最常用关键字,以及在网站访问期间使用的任何搜索字词(价格> 100美元) ,评论> 4星等)。由于关键字是完全动态的,并且可以无限多种组合使用,因此我很难确定如何存储这些关键字。我有一个网页浏览事实表,每次查看页面时都包含一条记录。我正在提取的源包括分隔列表中的所有搜索术语,我能够使用正则表达式进行解析,我只是不知道如何将其存储在数据库中,因为关键字的数量可以从页面视图中变化很大到网页浏览。我认为这可能更适合尝试将其塞入MSSQL表的NOSQL解决方案,但我不知道。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

根据您想要分析数据的方式,有一些解决方案。

但是对于您可能正在分析的数据量,我只是创建一个使用事实PK来存储每个关键字的表。

FACT_PAGEVIEW_ID bigint -- Surrogate key of fact table. Or natural key if you don't have a surrogate.
KEYWORD varchar(255) -- or whatever max len the keywords are
VALUE varchar(255)

此表的粒度为每个ID /关键字组合1行。如果在查询字符串中多次允许相同的关键字,则可能必须添加值。

这允许您按网页浏览对关键字进行分组,或者从网页浏览事实开始,对其进行过滤,然后加入此关键字以识别关键字。

另一个选项是关键字维度和多个具有“关键字组”的桥表,但由于可以使用任意数量的组合,这可能是更快的方式,并且可能会让你获得90%的那边的路。大多数问题,例如“最常使用的关键字组合”,以及“最常用的10%用户群使用的关键字”都可以通过此结构得到解答。