用户数据的数据仓库-设计Q

2023-12-06

如何最好地存储用户数据与日期/时间维度?用例是我试图存储每天、每小时的用户操作。例如分享数、喜欢数、好友数等。我有一个时间表和日期表。对于时间来说很简单 - 我每天的每个小时的每一行 = user_id 和列 = 1 到 24 。但问题在于日期。如果我每天= 1 列,那么我一年将有 365 列。我也无法存档数据,因为分析也需要过去的数据。还有哪些其他策略?


enter image description here

dimDate : 1 row per date
dimTime : 1 row per minute

一开始你必须声明“grain事实表的“然后坚持下去.

如果一粒粮食是一日,那么TimeKey总是指向“23:59”这个键。

如果谷物是一小时,那么TimeKey指向“HH:59”的条目。

如果谷物是一分钟,那么TimeKey指向相应的“HH:MM”

如果谷物是15分钟,那么TimeKey指向相应的“HH:14”、“HH:29”、“HH:44”、“HH:59”

等等...

-- How many new friends did specific user gain
-- in first three months of years 2008, 2009 and 2010
-- between hours 3 and 5 in the morning
-- by day of week
-- not counting holidays ?

select
      DayOfWeek
    , sum(NewFriends) as FriendCount
from factUserAction as f
join dbo.dimUser    as u on u.UserKey = f.UserKey
join dbo.dimDate    as d on d.DateKey = f.DateKey
join dbo.dimTime    as t on t.TimeKey = f.TimeKey
where CalendarYear between 2008 and 2010
  and MonthNumberInYear between 1 and 3
  and t.Hour between 3 and 5
  and d.IsHoliday = 'no'
  and UserEmail = '[email protected]' 
group by DayOfWeek
order by DayOfWeek ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用户数据的数据仓库-设计Q 的相关文章

  • 设计基于 Firebase 的可扩展 Feed 模型

    问题 如何设计一个以 Firebase 作为后端 可扩展的社交网络 提要 可能的答案 MVP 解决方案是设计一个feedsroot 子级 每个用户一个 并在每个关注者的提要中附加来自关注用户的任何新帖子 users user1 name b
  • 为什么使用散列来为大量文件创建路径名?

    我注意到在许多情况下 应用程序或数据库使用 has 来存储文件 blob 集合来确定路径和文件名 我相信预期的结果是路径永远不会太深 或者文件夹太满 文件夹中的文件 或文件夹 太多 导致访问速度变慢 编辑 示例通常是数字图书馆或存储库 尽管
  • 两种表结构的区别

    我对这两种结构很困惑 这两个表各有什么优缺点 哪一个更好 为什么 TABLE1 反模式 在常见情况下 第二个表是反模式在数据库设计的背景下 而且 更重要的是 它有特定的名称 实体 属性 值 EAV 在某些情况下 使用这种设计是合理的 但这种
  • Postgres 动态创建序列

    我正在编写一个应用程序 其中有多个用户 用户可以在应用程序内上传报告 目前 我有一个 报告 表 其中包含所有提交的报告 其中有一个 id 字段 该字段是表上的序列主键 我指定的要求是 用户需要能够指定其报告开始计数的前缀和数字 例如 用户应
  • ERM:三元关系中的基数

    如何读取和 或指定实体关系模型 陈表示法 三元关系中的基数 最小 最大 例如 一位领导与他的相关员工一起考察了多项资格认证 现在 我想知道如何在最小 最大 表示法中指定基数 这是给定基数的另一个示例 我想知道如何阅读它 三元关系可以解读为
  • 将关系 R 分解为 1NF 后最少存在多少张表?

    考虑具有以下属性类型的关系 R A B C D E F G 键总数 1 A 一组简单 或 原子 或 单值属性 B C 多值属性集 D E 复合属性集 F G 将关系 R 分解为 1NF 后 存在的表的最小数量是多少 A 3 B 2 C 4
  • 每个表都应该有主键吗?

    我正在创建一个数据库表 但没有为其分配逻辑主键 每个表都应该有主键吗 简短回答 yes 长答案 你需要你的桌子可以加入一些东西 如果您希望表聚集 则需要某种主键 如果您的表设计不需要主键 请重新考虑您的设计 很可能您遗漏了某些内容 为什么要
  • SQL原型设计:面对使用varchar(N)静默截断数据——有更好的选择吗? (天数据)

    情况 varchar 20 好像默默地截断在 Teradata 和not当遇到长度超过 20 个字符的字符串时扩展或抱怨 这有点令人惊讶 因为我预计列会自动扩展以适应更大的字符串 例如 30 个字符 或者如果更大的字符串会抛出错误遇到字符串
  • 数据库中的 GUID 类型

    GUID不是数据库中的正式数据类型 在我们现有的 SQL Server 设计中 Uniqueidentifier类型用于GUID价值 现在我们正在切换到Sybase数据库 我们应该使用varchar 36 来代替那个Uniqueidenti
  • 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

    执行以下 SQL 查询 SELECT Account Amount AS Deposit 0 00 AS Withdrawal Date FROM Deposits WHERE Account Account UNION SELECT Ac
  • 事件源和 SQL Server 多个关系表

    我们使用 SQL Server 2016 的事件源 我们有完整的客户产品应用程序 每个应用程序都标记为CustomerId并在事件商店中获取单个指南行项目 这是写入事件存储指南的主要标识符 产品应用程序附带许多不同的关系事物 没有引导 但有
  • 在 django 中创建“历史”类型模型的最佳方法是什么?

    我想为我的 Django 应用程序创建一个类似于 Django 管理员的 最近操作 的功能 以便存储其他模型的历史信息 例如 假设我有两个模型 分别称为 Book 和 Author 我想要第三个模型来存储信息 例如由谁以及何时对模型中的给定
  • 创建用于存储高尔夫球成绩的可扩展数据库架构

    我正在尝试设计一个数据库来存储我所有的朋友和我的高尔夫球成绩 您可能知道 高尔夫得分由 18 洞的个人得分组成 我可以想到两种设计模式的方法 创建一个表 每个洞有一列 例如 h1 到 h18 该表具有引用其他表的 FK player id
  • 如何使用 django 更新会计应用程序中的余额?

    我正在学习 Django 尝试制作一个会计应用程序来跟踪我的开支等 我使用两种模型创建数据库 一种用于帐户 一种用于操作 但我不知道如何在每次操作时更新我的 余额 我在想 也许每次我保存一个新操作时 我都会通过覆盖操作模型的保存方法来更新余
  • 有很多数据库视图可以吗?

    我很少 每月 每季度 使用 Microsoft SQL Server 2005 数据库视图生成数百份 Crystal Reports 报告 在我不读取这些视图的所有时间里 这些视图是否会浪费 CPU 周期和 RAM 因为我很少从视图中读取数
  • 为什么要为字符变化类型指定长度

    参考 Postgres 文档字符类型 http www postgresql org docs current static datatype character html 我不清楚指定字符变化 varchar 类型的长度 假设 字符串的长
  • 数据库分区 - 水平与垂直 - 规范化和行拆分之间的区别?

    我试图理解不同的概念数据库分区这就是我的理解 水平分区 分片 将表拆分为不同的表 其中将包含初始表中的行的子集 如果按大陆拆分用户表 我见过很多这样的示例 例如北美的子表 欧洲的另一个子表 ETC 每个分区位于不同的物理位置 理解 机器 据
  • 是否值得为 SqlServer 查找表使用tinyint 而不是 int 呢?

    在 SqlServer 2005 中设计查找表 枚举 时 如果您知道条目数永远不会变得很高 是否应该使用tinyint 而不是 int 我最关心的是性能 尤其是索引的效率 假设您有这些代表性表格 Person PersonId int PK
  • 实时数据和草稿数据的数据库模型

    我一直在考虑在数据库中保存 实时 数据集和草稿数据集的最佳方法 实际版本会显示在网站上 草稿版本会一直进行下去 直到准备好上线为止 该模型是关系模型 由许多表组成 我目前的方法是拥有 2 个数据库 一个用于草稿 一个用于实时 当您将数据提升
  • 如何处理长期运行系统中旧的、过时的数据库数据?

    程序员有哪些可能性来处理很少使用但不能简单删除的数据 因为至少报告仍然需要它 我想到的一些例子 大学老年时期停止的资助类型 未使用的货币 例如意大利里拉 消失国家的名称 例如奥匈帝国 苏联 一些部分解决方案是活动标志 活动周期 可视化优先级

随机推荐

  • MVC 6 下使用 ADO.NET 的 DataTable 的替代方案是什么?

    我正在创建一个 MVC 6 项目 我宁愿使用 Classic ADO net 而不是 Entity Framework 7 但是 据说两者都找不到名称空间DataTable and SqlDataAdapter 我有一个使用System D
  • Python 谷歌翻译 API 错误

    我对 python 非常陌生 并尝试使用 google API 翻译一堆关键字 我有一个包含 3000 个关键字的 Excel 文件 其中包含英语 西班牙语 德语等 试图将所有内容翻译成英语 但是 每次运行代码时 我都会收到不同值的错误 有
  • 如何设置GradientDescentOptimizer的自适应学习率?

    我正在使用 TensorFlow 来训练神经网络 这就是我初始化的方式GradientDescentOptimizer init tf initialize all variables sess tf Session sess run in
  • 映射不同类型对象的通用方法

    我想编写一个通用方法 将 List 映射到新列表 类似于 JS 的 map 方法 然后我会像这样使用这个方法 var words new List
  • 控制台中的 Firebase 实时数据库无法正常工作?

    当我尝试删除或编辑实时数据库中的节点时 我总是得到这样的信息 我必须选择具有较少元素的键来更改某些内容 否则它处于只读模式 但是当我单击低级节点时 什么也没有发生 所以我实际上无法从控制台更改数据库中的任何内容 一周前我没有看到这个警告 一
  • 如何使用 Azure 门户内的设置限制对应用服务的访问

    我们有一个 Web 应用程序作为应用程序服务部署在 Azure 中 我们希望通过设置 IP 地址白名单来限制对其的访问 这可以在某些 Azure 应用服务设置中完成 而不是在web config我们在项目中拥有的 目前 这就是我们在我们的环
  • Python Tkinter 中的单选按钮值

    我正在尝试使用 Tkinter 在 Python 中创建一个对话框 目标是有一个带有两个单选按钮和一个 确定 按钮的对话框 单选按钮一选择选项 默认 单选按钮二选择 用户定义 选项 确定 按钮关闭窗口 问题一 如何保存单选按钮中的值 也就是
  • 在 jQuery ajax 中传递数组

    我的想象代码 document ready function sub click function info moto moto val info motox motox val ajax type POST url index php d
  • QGraphicsSVGItem 忽略(某些)剪切路径。为什么?

    这个 SVG 图像在 Firefox 和 Inkscape 中正确呈现 但由于某种原因 当使用QGraphicsSVGItem没有任何花哨的东西 它会这样呈现 作为参考 这是它在 Firefox 上的样子 如您所见 卡片背面不应超出白色边框
  • Matlab:矩阵邻域提取

    我有大量图像 我已将它们分解成多个片段 使得它们的矩阵看起来像 img 1 1 1 1 1 2 2 2 3 3 3 3 1 1 1 1 2 2 2 2 2 3 3 3 1 1 1 4 4 4 2 2 2 3 3 3 5 5 5 5 5 5
  • 在单元测试中使用多个断言是一种不好的做法吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在单元测试中使用多个断言是一种不好的做法吗 有关系吗 有时我恰好有一个assert每个测试用例 但我认为更常见的是我有几个assert声明 我见过 Arkain 逃避的情况 其中一段非常大
  • Windows Phone 7中如何释放应用程序缓存?

    在我的项目中 我创建了一个图像控件 我还有一个按钮 单击该按钮会删除图像 我将图像的 url 设置为 null 并将图像控件本身设置为 null 但是 并非所有 Image 控件的内存都被释放 如果我添加更多图像控件 我的项目将很容易耗尽内
  • 如何对字符串进行 HTML 编码/转义?有内置的吗?

    我有一个不受信任的字符串 我想将其显示为 HTML 页面中的文本 我需要逃避字符 lt and 作为 HTML 实体 越少大惊小怪越好 我使用的是 UTF8 不需要其他实体来表示重音字母 Ruby 或 Rails 中是否有内置函数 或者我应
  • ServerXMLHTTP 附加到内容类型

    我正在 VBScript 中使用 JSON 正文发出服务器端 HTTP 请求 如下所示 Set oXMLHttp Server CreateObject MSXML2 ServerXMLHTTP oXMLHttp open cMethod
  • 谷歌云:身份验证范围不足

    我在向部署在 Google Cloud Kubernetes 集群中的 Spring Boot 应用程序发送请求时遇到困难 我的应用程序收到一张照片并将其发送到 Google Vision API 我正在使用提供的客户端库 https cl
  • 对工作流程进行故障排除,将上游更改合并到分叉存储库中

    我分叉了一个 git 存储库 然后创建了一个名为 strlen 的分支 提交 PR 并做出建议的更改后 以下是我尝试合并上游更改的尝试 A 部分 从上游获取并合并 git fetch upstream git merge upstream
  • 使用 Javascript 函数重新加载 HTML 元素

    我有一个嵌入在 DIV 中的 Flash 对象 现在我想使用该 div 上方的链接 a 标签 以便用户能够重新加载该 flash 拨号器 或更具体地说是它包含的 div 标签 我无法以任何方式更改 flash 文件 我尝试过使用下面的 JS
  • 32 位系统的 INT 最大大小

    假设我们正在谈论 32 位系统 PHP 不支持无符号 INT 这意味着 INT 值应介于 2 147 483 648 和 2 147 483 647 值之间 INT 需要 4 个字节来存储 32 位长度的值 那么这是否意味着我只有 31 位
  • OLEDB 连接支持超过 65536 行(从 Excel 工作表更新访问)

    我可以使用以下 SQL 命令从 Excel 工作表中选择要插入到 Access 表中的数据 SELECT FROM Excel 12 0 HDR YES DATABASE K FolderName FileName xlsb SheetNa
  • 用户数据的数据仓库-设计Q

    如何最好地存储用户数据与日期 时间维度 用例是我试图存储每天 每小时的用户操作 例如分享数 喜欢数 好友数等 我有一个时间表和日期表 对于时间来说很简单 我每天的每个小时的每一行 user id 和列 1 到 24 但问题在于日期 如果我每