周六晚11实习生上线数据观测突发问题(涉及MYSQL,Hive等)
前提
有点恐怖,上次需求上线后,部分线上数据观测要留到11月初,上次是一个税收相关的需求,已有功能的线上数据观察已经完成,还剩下部分只有在十一月初才可以观察
简单提一嘴(非技术相关)
之前把hive sql发给了mentor,结果hive sql里的pt居然写成了20251011,人都麻了,搞得我这次一直没发现,一直以为查出数据集为空只是数据还没生成
并且意外发生了,之前mentor是当天晚上7点左右就有了对应的数据而我突然想起忘了执行,现在晚上11点执行了好几次都没有数据生成,人麻了
这时候告诉mentor除了打电话估计也没人响应了,所以只能死马当活马医
尝试梳理情况解决问题
转机出现
发现数据平台标明了表产出时间的描述
表产出时间是在T+1产出,今天产出昨天的数据,时间分区为当前国家首都时间
产生好奇
在Mysql数据库查到的任务拒绝或者通过时间都是11/2开头的,诶那这是否有点不对
由于之前的我很喜欢分析数据库表,并且之前听到mentor们讨论过数据库的时间字段是时间戳
回忆
立马想起了时间戳有鬼(感恩之前了解过timestamp和datatime等等的区别,在脑子里留下了点印象)
通过AI验证后发现确实如此
timeStamp是会随着MySQL会话时区而自动变换查询的结果
记得当时听mentor说,用timestamp,是因为跨多个国家业务,所以使用timestamp来统一,这里查了下我之前做的笔记,不用datetime是因为datetime存在存储时的时区不一样,那么拿出来后的时区也不一样,也就是不统一啦,不统一对于之后线上bug确定这会更麻烦
那么接下来问题就只剩
确认下当前的时区是否是北京时区,如果是北京时区那hive中的数据就能作为观察的数据了
如何查时区
- 第一次尝试
SELECT @@session.time_zone;
发现返回给我的结果是SYSTEM
,实习生可没有那么多权限去访问线上服务器
- 第二次尝试
SELECT @@global.time_zone;
还是SYSTEM
底层原理是当前会话并没有设置时区,所以也就是直接用的默认时区,即查了也没用
陷入困惑,回到题目
突然想到Mysql中select CURRENT_TIMESTAMEP
再和我们当前北京时间确定下不就行了吗?
当然上面是运气好的情况,不然24时区一一确定也够呛
所以运气来了!正好是我电脑的时间
解决问题
目前的Mysql显示的税收相关时间为2024-11-02 06:21:38
那么步骤如下:
- 找个网站时间换算
- 只要时间换算完成对应MX的时间是11-01即可,那么数据就是对应的(万幸正好是01号前)
嘿嘿!看了所有代码改动都没问题,司机照常出车完单!至少避免了P0 Bug
让我复习了挺多的,但愿这次秋招来个人收了我吧
不过上述内容都是出自于我对于hive数据库表描述没有理解出现偏差,pt字段的类型也是string,这个确实没法百分百确认,我还查了和我们国家相近的日本,发现pt字段也是1101,可能上次mentor查的时候是意外吧
周六晚11实习生上线数据观测突发问题(涉及MYSQL,Hive等)的更多相关文章
- 使用hibernate在5秒内插入11万条数据,你觉得可能吗?
需求是这样的,需要查询某几个表的数据,然后插入到另外一个表. 一看到需求,很多人都会用hibernate去把这些数据都查询出来,然后放到list中, 然后再用for循环之类的进行遍历,一条一条的取出数 ...
- 微软YY公开课[《微软中国云计算Azure平台体验与新企业架构设计》 周六晚9点
YY频道是 52545291//@_勤_: YY账号真的是一次一账号啊! 全然记不得之前注冊的//@老徐FrankXuLei: 最火爆的微软免费公开课.第一次顶峰126人.第二次96人.第三次我们又来 ...
- 11步教你选择最稳定的MySQL版本
11步教你选择最稳定的MySQL版本 来源:CSDN 作者:网络 发表于:2012-07-18 08:36 点击: MySQL开源数据库有多个重要分支,目前拥有的分支分别为:MySQL Cluster ...
- kafka传数据到Flink存储到mysql之Flink使用SQL语句聚合数据流(设置时间窗口,EventTime)
网上没什么资料,就分享下:) 简单模式:kafka传数据到Flink存储到mysql 可以参考网站: 利用Flink stream从kafka中写数据到mysql maven依赖情况: <pro ...
- 数据备份 及 Python 操作 Mysql
一 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用 ...
- paip.导入数据英文音标到数据库mysql为空的问题之道解决原理
paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙, E ...
- 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...
- 一文看懂大数据的技术生态Hadoop, hive,spark都有了[转]
大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可 ...
- scrapy爬虫事件以及数据保存为txt,json,mysql
今天要爬取的网页是虎嗅网 我们将完成如下几个步骤: 创建一个新的Scrapy工程 定义你所需要要抽取的Item对象 编写一个spider来爬取某个网站并提取出所有的Item对象 编写一个Item Pi ...
- 浅析大数据的技术生态圈(Hadoop,hive,spark)
大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可 ...
随机推荐
- 我是如何使用 vue2+element-ui 处理负责表单,避免单文件过大的问题
引言 在工作中我经常需要处理一些复杂.动态表单,但是随着需求不断迭代,我们也许会发现曾经两三百行的.vue文件现在不知不觉到了两千行,三千行,甚至更多... 这对于一个需要长期维护的项目,无疑是增加了 ...
- .NET8 Blazor 从入门到精通:(二)组件
目录 Blazor 组件 基础 路由 参数 组件参数 路由参数 生命周期事件 状态更改 组件事件 Blazor 组件 基础 新建一个项目命名为 MyComponents ,项目模板的交互类型选 Aut ...
- Linux下SPI驱动详解
更多嵌入式原创文章,请关注公众号:一口Linux 1. SPI总线 1.1. SPI总线概述 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口. ...
- Java微信授权登录小程序接口
1.微信授权登录小程序的流程是什么 微信授权登录小程序的流程是一个涉及前端和后端交互的过程,主要目的是让用户能够使用微信账号快速登录小程序,避免重复输入用户名和密码.以下是该流程的详细步骤: 1.1前 ...
- 【爬虫实战】——利用bs4和sqlalchemy操作mysql数据库,实现网站多行数据表格爬取数据
前言 此篇接上一篇的内容,在其基础上爬取网站的多行表格数据,以及把数据写入到mysql数据库中 目录 一.定位表格查找元素 二.提取数据 三.写入mysql数据库 四.附录 一.定位表格查找元素 首先 ...
- PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024
基于像素级分类器的单图像超分辨率方法(PCSR)是一种针对大图像高效超分辨率的新方法,在像素级别分配计算资源,处理不同的恢复难度,并通过更精细的粒度减少冗余计算.它还在推断过程中提供可调节性,平衡性能 ...
- 随机读取数组中n个元素
需求 随机不重复的显示一系列图片 分析 可使用Math.random(),其作用是返回介于 0(包含) ~ 1(不包含) 之间的一个随机数.先获取到图片路径,将图片路径放入数组中,再随机从数组中读取n ...
- Effective C++——Item33: 避免隐藏继承的名字
Effective C++--Item33: 避免隐藏继承的名字 一.从原理理解隐藏 从变量作用域看隐藏 全局变量x和局部变量x的类型是不同的,但C++的隐藏规则:只隐藏名字(hiding names ...
- Atziluth's Last Contest. 001题解
被dalaoYHH爆虐 问题 H:mcd 题目描述 给出两个长为 \(n\) 的数列 \({a_n},{b_n}\),保证 \(a_i\le b_i(i=1,2,\cdots,n)\). 现在您需要对 ...
- elementUI的日期时间控件实现分钟固定步长
日期时间控件实现固定步长,例如5分钟间隔.10分钟间隔 一.效果图 二.实现方法 通过日期时间控件的箭头来控制步长的显示与否,具体代码详见