国际业务跨越多个时区的数据处理方案

        国际业务跨越多多个国家或者地区的时候,业务数据也会随着时区的不同产生不统一的发生时间,这就会给数据抽取,加载,清洗,统计等多个环节带来很多问题。下面文章介绍一种较为简单的数据处理方案。

单一时区的数据

业务表需要字段
城市编号业务时间
DLD2021/1/1 12:13

业务表中只需要有业务发生时间即可,数据的ETL和数据的统计分析基于业务发生的事件就能完成。

对于跨越多个时区的数据

业务表需要字段 
城市编号时区业务时间业务日期UTC时间
DLD-52021/1/1 12:13202101012021/1/1 7:13

业务表中加入时区,业务日期和UTC时间,另外新建一张时区维度表

时区维度表
日期城市编号时区是否夏时令是否冬时令偏移量
20210101DLD-510-4

日期月业务表中的业务日期对应,城市编号对应业务表中城市编号。同时考虑有些国家和地区采用夏时令和冬时令的情况,结合时区、UTC时间、夏时令和冬时令计算出与UTC时间的差值作为时间偏移量。

在进行数据统计的时候,业务表和维度表通过业务日期和城市编号做连接,把UTC时间加上偏移量作为业务的发生时间。后续就可以把数据当作单一时区的数据处理。

关于调度问题:

时区不一致,要重新设置时区

查看并修改 本地时区

查看
more /etc/localtime
备份:
cp /etc/localtime /etc/localtime.bak
设置本地时区
设置本地时区为 Shanghai
cp -pf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改 Contab 时区
vim /etc/crontab
添加变量 CRON_TZ=Asia/Shanghai

 

 

 

 

 

 


版权声明:本文为u014612521原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。