业务场景:
现在有一个需求,需要计算出我们数据中每个季度的、每个月的、每周一到周日的、节假日、休息日、工作日的数据指标。
此时节假日、休息日、工作日并不能使用SQL直接计算出来,所以我们可以先搞出一张存储着这个日期是否为节假日、休息日、工作日的这样一张日期类型表。然后在在与业务数据表进行一个Join不就有结果了吗。
所以日期类型表具体字段看👇图:
字段名 | 类型 | 示例值 | 描述 |
---|---|---|---|
date_key | string | 20000101 | 代理键 |
date_value | string | 2000-01-01 | 年-月-日 |
day_in_year | string | 1 | 当年的第几天 |
day_in_month | string | 1 | 当月的第几天 |
is_first_day_in_month | string | y | 是否月的第一天 |
is_last_day_in_month | string | n | 是否月的最后一天 |
weekday | string | 星期一 | 星期几 |
week_in_month | string | 1 | 月的第几个星期 |
is_first_day_in_week | string | y、n | 是否周一 |
is_dayoff | string | y、n | 是否休息日 |
is_workday | string | y、n | 是否工作日 |
is_holiday | string | y、n | 是否国家法定节假日 |
date_type | string | workday、weekend、holiday 工作日、周末、法定节假日 | 日期类型 工作日:workday 国家法定节假日:holiday 休息日:weekend |
month_number | string | 1、2、..、12 | 月份 |
year | string | 2000 | 年份 |
quarter_name | string | Q1 | 季度名称 |
quarter_number | string | 1 | 季度 |
year_quarter | string | 2000-Q1 | 年-季度 |
year_month_number | string | 2000-01 | 年-月份 |
开始实现:
一:下载安装Kettle工具
安装Kettle之前必须确保已经安装了Java JDK,因为Ketttle是使用Java语言发开的【JDK