首页/新闻资讯/正文详情

TimescaleDB chunk和time_bucket原点

发布时间:2026/11/5 10:20:04 来源:云帆数科 栏目:资讯中心
TimescaleDB chunk和time_bucket原点
chunk内部时间值始终基于 Unix Epoch第 1 步PostgreSQL → 内部值转换utils.c:64-82 —ts_pg_timestamp_to_unix_microseconds// 第 82 行是核心 PG_RETURN_INT64(timestamp TS_EPOCH_DIFF_MICROSECONDS);这里把 PG 内部时间戳距 2000-01-01 的微秒数加上偏移量转为距 Unix epoch 的微秒数。第 2 步偏移量的定义time_utils.h:13-14#define TS_EPOCH_DIFF (POSTGRES_EPOCH_JDATE - UNIX_EPOCH_JDATE) #define TS_EPOCH_DIFF_MICROSECONDS (TS_EPOCH_DIFF * USECS_PER_DAY)POSTGRES_EPOCH_JDATE 2000-01-01 的 Julian DateUNIX_EPOCH_JDATE 1970-01-01 的 Julian Date差值 10957 天(30年中的闰年已计入)第 3 步内部值用于 Chunk 计算utils.c:183-186 —ts_time_value_to_internal调用上述转换case TIMESTAMPTZOID: res DirectFunctionCall1(ts_pg_timestamp_to_unix_microseconds, time_val); return DatumGetInt64(res);dimension.c:291 — 用 Unix epoch 微秒值计算 chunk 边界range_start (value / dim-fd.interval_length) * dim-fd.interval_length;完整转换链2026-02-12 00:00:00 UTC ↓ PG 内部: 9539天微秒 (距 2000-01-01) ↓ ts_pg_timestamp_to_unix_microseconds (10957天微秒) Unix 微秒: 20496天微秒 (距 1970-01-01) ← 这才是 dimension.c:291 的 value ↓ range_start (20496 / 7) * 7 20496 天 ↓ chunk 起始 1970-01-01 20496天 2026-02-12 00:00:00 UTC ✅结论TimescaleDB的chunk是以 Unix epoch1970-01-01为时间原点。time_bucket(1 week)的原点是2000-01-03周一不是 Unix epoch关键代码在 time_bucket.c:94-101#define JAN_3_2000 (2 * USECS_PER_DAY) /* * The default origin is Monday 2000-01-03. We dont use PG epoch since it starts on a saturday. * This makes time-buckets by a week more intuitive and aligns it with date_trunc. Since month * bucketing ignores the day component this makes origin for month buckets 2000-01-01. */ #define DEFAULT_ORIGIN (JAN_3_2000)注释写得非常清楚PostgreSQL epoch2000-01-01是周六如果以它作为周的起点会很别扭所以选了 2000-01-03周一作为默认原点这样time_bucket的周就自然对齐到周一。Chunk 切割 vs time_bucket — 原点完全不同Chunk 切割time_bucket(1 week)原点Unix epoch(1970-01-01周四)Monday 2000-01-03周一代码位置dimension.c:291time_bucket.c:1012026-02-12 结果2026-02-12周四2026-02-09周一TIME_BUCKET_TS 宏的计算逻辑 (time_bucket.c:102-135)time_bucket(1 week, 2026-02-12): 1. timestamp 9539天 (距 2000-01-01) 2. shift origin 2天 (即 2000-01-03) 3. timestamp - shift → 9537天 4. result (9537 / 7) * 7 → 9534天 5. result shift → 9536天 → 2026-02-09 (周一) ✅而对 chunk 来说(value / interval) * interval (20496 / 7) * 7 20496天 → 2026-02-12 (周四)总结Chunk 和 time_bucket 的周边界可能对不齐——chunk 对齐到 Unix epoch周四基准time_bucket对齐到周一。如果需要time_bucket也和 chunk 对齐可以传入第三个参数自定义 origin-- 让 time_bucket 以 1970-01-01 为原点和 chunk 对齐 SELECT time_bucket(1 week, timestamp, 1970-01-01::timestamptz);

相关推荐

终极ROS机器人可视化指南:为什么RViz是你的3D调试神器?
终极ROS机器人可视化指南:为什么RViz是你的3D调试神器?

终极ROS机器人可视化指南:为什么RViz是你的3D调试神器? 【免费下载链接】rviz ROS 3D Robot Visualizer 项目地址: https://gitcode.com/gh_mirrors/rv/rviz 你是否曾经在调试机器人时感到困惑?面对一堆传感器数据和坐标变换&#xff… · 2026/9/1 15:09:51

【Springboot毕设全套源码+文档】基于springboot钱币收藏交流系统的设计与实现(丰富项目+远程调试+讲解+定制)
【Springboot毕设全套源码+文档】基于springboot钱币收藏交流系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… · 2026/9/16 11:49:56

二、C++速通秘籍—C语言核心
二、C++速通秘籍—C语言核心

上一章节: 一、C速通秘籍—C语言基础-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146002496?spm1001.2014.3001.5502 本章节代码: cPart2 CuiQingCheng/cppstudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/cppstudy/t… · 2026/9/25 2:51:05

B2B智能营销平台架构设计与工业场景实践
B2B智能营销平台架构设计与工业场景实践

1. 项目背景与核心价值 这个智能数字营销平台项目来自一家年营收超10亿的B2B企业,他们主要面向制造业客户提供工业自动化解决方案。传统销售团队每年要拨打数万通电话,但转化率不足2%。我们团队接手后,用9个月时间搭建了一套完整的智能营销系… · 2026/11/5 10:18:40

音视频转文字工具:技术原理与效率提升实践
音视频转文字工具:技术原理与效率提升实践

1. 为什么我们需要音视频转文字工具?在信息爆炸的时代,音视频内容正以惊人的速度增长。根据行业统计,普通职场人每天平均要处理3小时以上的会议录音、培训视频和电话沟通内容。传统的手动听写方式,不仅效率低下(每分钟… · 2026/11/5 10:17:40

机器学习数据标注中的认知偏差防控与工程实践
机器学习数据标注中的认知偏差防控与工程实践

1. 数据标注中的认知偏差问题剖析数据标注作为机器学习项目的基础环节,其质量直接影响模型性能。我在参与医疗影像标注项目时,曾遇到标注员将良性肿瘤误标为恶性肿瘤的情况,导致模型召回率虚高。这种系统性偏差往往源于人类认知的固有模式。认… · 2026/11/5 10:16:40

VLAN端口类型实验:Access与Trunk数据帧处理详解
VLAN端口类型实验:Access与Trunk数据帧处理详解

1. 实验背景与目标 作为一名网络工程师,我经常需要在实验室环境中验证各种网络协议和配置的实际效果。这次我决定深入研究VLAN端口类型对数据帧处理的影响,因为这是实际网络部署中最基础也最容易出错的部分。 VLAN(虚拟局域网)是… · 2026/11/5 10:16:40

VS Code+Docker搭建MySQL开发环境全指南
VS Code+Docker搭建MySQL开发环境全指南

1. 开发环境配置思路 在VS Code中通过Docker连接MySQL数据库,本质上是在本地搭建一个轻量级的开发环境。这种组合方案特别适合需要频繁切换项目或测试环境的开发者,既能保持本机环境干净,又能快速部署不同版本的数据库服务。 我推荐这个方案… · 2026/11/5 10:16:40

SSM电竞酒店管理系统架构设计与实践
SSM电竞酒店管理系统架构设计与实践

1. 项目背景与核心价值 电竞酒店作为近年来快速崛起的新型业态,完美融合了传统酒店住宿与专业电竞设备服务。我在实际考察中发现,目前市场上大多数电竞酒店仍在使用传统酒店管理系统或简单拼凑的解决方案,存在几个痛点:房间设备状… · 2026/11/5 10:15:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码