当前位置: 首页 > news >正文

西安市高新区建设局网站郑州市热点新闻

西安市高新区建设局网站,郑州市热点新闻,深圳市官网,重庆建设教育协会网站文章目录 mysql 8.0 时间维度表生成实例时间维度表的作用时间维度表生成技术细节使用时间维度表的好处 mysql 8.0 时间维度表生成实例 时间维度表的作用 dim_times(时间维度表)在数据仓库(Data Warehouse)中的作用至关重要。作为…

文章目录

  • mysql 8.0 时间维度表生成实例
    • 时间维度表的作用
    • 时间维度表生成
    • 技术细节
    • 使用时间维度表的好处

mysql 8.0 时间维度表生成实例

时间维度表的作用

dim_times(时间维度表)在数据仓库(Data Warehouse)中的作用至关重要。作为维度表,dim_times 主要提供与时间相关的详细信息,帮助用户按照时间维度对事实数据进行查询、分析和聚合。以下是时间维度表在数据仓库中的主要作用:

  • 提供一致的时间表示
    dim_times 表提供一致且标准化的时间表示。时间维度表通常包括从秒、分钟、小时、天、星期、月、季度、年份等不同的时间层级信息,确保数据分析中所有与时间相关的操作都使用同一套时间标准,避免时间计算中的不一致。

时间维度表生成

  • 创建时间维度表
CREATE TABLE `dim_time` (`time_key` int NOT NULL COMMENT '唯一的时间键,表示一天中的秒数 (0 - 86399)',`time_value` time DEFAULT NULL COMMENT '一天中的具体时间值,格式为HH:MM:SS',`hour24` tinyint DEFAULT NULL COMMENT '24小时制的小时数 (0 - 23)',`hour12` tinyint DEFAULT NULL COMMENT '12小时制的小时数 (1 - 12)',`minutes` tinyint DEFAULT NULL COMMENT '分钟 (0 - 59)',`seconds` tinyint DEFAULT NULL COMMENT '秒数 (0 - 59)',`am_pm` char(2) DEFAULT NULL COMMENT '时间的上午/下午标识 (AM/PM)',PRIMARY KEY (`time_key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='时间维度表,记录一天中每秒的时间信息';
  • 创建生成时间维度过程

```sql
CREATE PROCEDURE generate_dim_time()
begin-- SET SESSION cte_max_recursion_depth = 100000;-- 清空表,确保数据为全新的DELETE FROM dim_time;-- 使用递归CTE生成一天中的秒数(0 到 86399)INSERT INTO dim_time (time_key, time_value, hour24, hour12, minutes, seconds, am_pm)select time_key, time_value, hour24, hour12, minutes, seconds, am_pm from  (
WITH RECURSIVE time_cte AS (SELECT 0 AS seconds_of_dayUNION ALLSELECT seconds_of_day + 1FROM time_cteWHERE seconds_of_day < 86399  -- 一天 24 小时有 86400 秒(0-86399)
)
SELECT seconds_of_day AS time_key,                     -- time_key为秒数SEC_TO_TIME(seconds_of_day) AS time_value,      -- 使用SEC_TO_TIME函数将秒数转为时间HOUR(SEC_TO_TIME(seconds_of_day)) AS hour24,    -- 24小时制的小时数IF(HOUR(SEC_TO_TIME(seconds_of_day)) = 0 OR HOUR(SEC_TO_TIME(seconds_of_day)) = 12, 12, HOUR(SEC_TO_TIME(seconds_of_day)) % 12) AS hour12,  -- 12小时制的小时数MINUTE(SEC_TO_TIME(seconds_of_day)) AS minutes, -- 分钟SECOND(SEC_TO_TIME(seconds_of_day)) AS seconds, -- 秒IF(HOUR(SEC_TO_TIME(seconds_of_day)) < 12, 'AM', 'PM') AS am_pm  -- AM/PM
FROM time_cte ) time_cte;END

执行以后得截图
在这里插入图片描述

技术细节

  • 技术点1

由于 默认 mysql 8.0 递归有限制1000层, 需要修改

SET SESSION cte_max_recursion_depth = 100000;

注意事项
调整递归深度限制时,务必谨慎,因为递归层数过多可能会消耗大量的内存和 CPU,影响数据库性能。
在大多数情况下,默认的 1000 层递归深度已经足够,如果不需要非常复杂的递归操作,尽量避免大幅提升这个限制。

  • 技术点2

1天=24小时 ,1小时 =60分钟 。1分钟=60秒
所以 是 246060=86400秒

  • 技术点3
    我这里是从 0开始 递归 ,根据每个公司的需求也可以从 1开始
//如果从1开始 
WITH RECURSIVE time_cte AS (SELECT 1 AS seconds_of_dayUNION ALLSELECT seconds_of_day + 1FROM time_cteWHERE seconds_of_day < 86400  -- 一天 24 小时有 86400 秒(0-86399)
)
  • 技术点4
    维度表引擎建议用 MyISAM ,因为生成一次后,一般不会在修改
ENGINE=MyISAM

使用时间维度表的好处

  • 时间维度表的定义

dim_time 表是数据仓库中的一个重要维度表,用来存储一天中每秒的时间信息,并提供标准化的时间表示。该表通过 time_key 唯一标识每一秒,并为其提供多层级的时间信息,如 24 小时制、12 小时制、分钟、秒和 AM/PM 标识等。

  • 表结构概述

time_key:以秒为单位的唯一标识,范围从 0 到 86399,表示一天中的每一秒。
time_value:秒数对应的具体时间(HH:MM:SS 格式)。
hour24:24 小时制的小时数,用于与时间相关的精确分析。
hour12:12 小时制的小时数,配合 AM/PM 标识支持更常见的时间展示。
minutes 和 seconds:分别表示分钟和秒数,提供精确的时间粒度。
am_pm:表示当前时间为上午(AM)或下午(PM),方便时间分段分析。

  • 时间维度表的作用

标准化时间表示:dim_time 提供了一致的时间表示,避免在数据分析中因时间格式不统一而导致的混淆。
支持多层级时间聚合:能够在不同时间粒度上进行聚合分析,例如按小时、天、月、季度或年等进行业务汇总。
简化时间查询:提供与时间相关的字段,支持复杂的时间计算,如按 AM/PM、工作日、周末、节假日等分类进行分析。
提高查询效率:通过关联事实表中的 time_key,大幅提高与时间相关的数据查询性能,避免实时计算时间字段。
历史趋势分析:时间维度表是执行历史数据分析、同比、环比等时间比较的基础,帮助用户进行数据趋势洞察和预测。

  • 性能优化

时间维度表中使用了整数型的 time_key 作为主键,便于事实表高效地与时间维度表进行关联查询。这种方式减少了复杂时间字段的存储和计算压力,同时提高了查询响应速度。

  • 数据仓库建模中的关键角色

在星型或雪花型数据仓库模型中,时间维度表是所有与时间相关的分析、汇总和计算的基础。它为事实表提供了完整的时间维度支持,使得业务分析能够在不同的时间层级和时间段上展开。

  • 应用场景

销售分析:按小时、日、月、季度、年等时间维度聚合销售数据,分析销售趋势。
用户行为分析:分析用户的访问时间分布,比如按小时、工作日与周末、节假日进行比较。
财务报表:生成按时间维度汇总的财务报表,支持时间段对比,如去年同期或上季度的财务表现。

http://www.yayakq.cn/news/310829/

相关文章:

  • 北京网站制作公司有哪些网站建设培训费用
  • 网站建设前期准备方案医疗网站怎么做优化
  • 新万网站建设公司网站建设方案拓扑图
  • 做销售网站那家好企业网站源码 多语言
  • 长沙做网站设计公司如何在百度上营销
  • 网站建设与制作布局移动端显卡
  • 用html制作个人网站源代码二维码怎么制作出来的
  • 网站开发实现总结微信app下载安装2024最新版
  • 游戏源码网站免费秦皇岛房管局备案查询网
  • wordpress 评论美化免费seo课程
  • 移动电商网站搭建什么网站能盈利
  • 安徽城乡建设厅网站番禺区建设局网站
  • 中国建设银行积分商城网站计算机课程网站建设实训报告总结
  • seo优化标题昆明seo排名外包
  • 做网站是属火的职业吗做短链的网站
  • 做app的网站返回json数据的网站
  • 网站制作哪些分类天河网站建设信科网络
  • 查网站服务器ip 被k传媒公司有哪些
  • iis 网站设置网站怎么实现手机号注册会员
  • 义乌网站建设zisou8安徽建设工程信息网查询平台蔡庆树
  • 有哪些好点的单页网站自己做网站的网址
  • 做网站的文案怎么写腾讯云建设一个网站要多少钱
  • 景德镇网站开发wordpress新建页面不能保存路径
  • 做电子网站教育行业网站建设方案
  • 免费模板网站制作网络营销企业推广策划
  • 成都门户网站有哪些网站与支付宝对接
  • 如何在自己的服务器上搭建微网站做美食没有广告的网站
  • 做网站的费用怎么做账wordpress最新文章显示数量
  • 如何用html制作网站百度云域名注册
  • 网站搭建系统外包接活平台