数据仓库日期维表怎么做

本文介绍了如何设计一个数据仓库中的日期维表,包括日历日期、农历日期、年份、季度、月份等详细信息,以及是否为周末、节假日等属性。还提到了节假日类型和工作日分类,并分享了数据获取部分的代码,但未包含实际落表的实现。
摘要由CSDN通过智能技术生成

最近终于有点时间了,东拼西凑的设计了一个日期维表,也是数仓设计时比较常用的。表结构如下:

dt string COMMENT '日历日期',
lunar_dt string COMMENT '农历日期',
calendar_year int COMMENT '日历年',
quarter_of_year int COMMENT '季度',
month_of_year int COMMENT '月份',
week_of_year int COMMENT '一年第几周',
dt_of_week int COMMENT '一周第几天',
dt_of_month int COMMENT '一个月第几天',
dt_of_year int COMMENT '一年第几天',
is_last_day_of_month boolean COMMENT '是否一个月最后一天',
is_weekend boolean COMMENT '是否周末日',
is_holiday boolean COMMENT '是否节假日',
holiday_cnt tinyint COMMENT '节日天数',
holiday_type tinyint COMMENT '日历天类型:1:工作日;2:周末(和假期连着按假期,因节假日调休上班按工作日算:3:元旦 4:春节 5:清明节 6:劳动节:7:端午节 8:中秋节 9:国庆'

实际落表代码没有写,只写了数据获取部分,具体实现代码如下,欢迎大佬指点~

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import requests
import json
import datetime
import time
import calendar
import lunardate
import csv

reload(sys)                      # reload 才能调用 setdefaultencoding 方法
sys.setdefaultencoding('utf-8')

holiday_dict = {}

# 判断二月闰月
def isLeapYear(year):
    return calendar.monthrange(year, 2)[1] == 29
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值