#はじめに
先日BI製品MotionBoardのユーザコミュニティに参加してみました。
そこで参加メンバーのみなさんが口をそろえて「データの下処理をしっかりしないとなかなか活用できないよね」と言っていたのが印象的で、ストアドを組んだり、何かしらのDWH、Dr.Sum等を使って対応されている方が何名かいたかなという感じでした。
ただそのあたりに手を付けられていない方もかなり多く、チャートを作る際に非効率だったり、苦労されているようでした。
今回はその下処理の一助になればとの思いで、どの会社でも活用でき、利用頻度も高い日付マスタ/カレンダーマスタの仕様についてまとめてみたいと思います。
#日付の課題
年、月、週、等、時系列って集計項目には欠かせない要素ですよね。
でも社内のレポートをよくよく見るとイロイロな粒度/要素/形式があることに気が付きます。
だからこそイロイロな課題も発生します。
日付項目が1つあってもそれを色々な形に加工する必要があり、利用する敷居が高いのが現状ではないかと思います。
・加工が必要な項目が多くある(期、年度、四半期、半期、曜日、年次週、他)
・都度加工計算処理するのでパフォーマンスに影響が出る(遅くなる)
・システム毎に日付の形式が異なり結合しずらい
・海外製のBIツールは和暦なんて考慮していないので準備が手間
#日付マスタ/カレンダーマスタに必要な要素、ポイント
日付マスタ/カレンダーマスタに必要な要素やポイントは以下のようになるのではないかと思います。
・日本国内の企業で一般的に利用されるであろう項目(関数等で加工し生成)を一通り用意する
・様々なシステムから結合できるように結合用に複数の日付項目を用意する
#日付マスタ/カレンダーマスタの必要項目
記載した要素ポイントを考慮すると私が準備した日付マスタ/カレンダーマスタはこんな項目を用意することにしました。
項目名 | 形式内容 | 例 |
---|---|---|
日付 | yyyy/MM/dd | 2021/07/09 |
日付2 | yyyy-MM-dd | 2021-07-09 |
年月日 | yyyyMMdd | 20210709 |
年 | yyyy | 2021 |
年月 | yyyyMM | 202107 |
月 | MM | 07 |
Month | 月 英語 | Jul |
日 | dd | 09 |
年度 | 期初時点の年 | 2021年度 |
曜日番号 | 1-7 日曜日が1 | 6 |
曜日 | 日本語 | 金 |
Week | 曜日 英語 | Fri |
和暦 | 年号 | 令和 |
和暦 | 年 | 令和03年 |
和暦年度 | 期初時点の和暦年+"年度" | 令和03年度 |
期 | 創業日からの年数 初年度は1と数える | 1 |
四半期 | 1-4 | 2 |
半期 | 1 or 2 | 1 |
半期上下 | 上期 or 下期 | 上期 |
月次週 | 月のN週目 | 2 |
年次週 | 年のN週目(53週目まで) | 28 |
年次週_年度 | 年度のN週目(53週目まで) | 15 |
#最後に
このような要素を盛り込んだ日付マスタ/カレンダーマスタを用意しておけば、多くのトランザクションデータと結合して簡単に利用できるようになるのではないかと思います。
実際にこの日付マスタを作成するプログラムをCUIのJavaプログラムで作成したので、次回はその作り方をご紹介しようと思います。