![見出し画像](https://assets.st-note.com/production/uploads/images/61070098/rectangle_large_type_2_a3359b6eb264e2df649619a89f264e87.jpeg?width=1200)
20210912_抽出が始まるのはいつ? #WOW2021 Week 36
ここのところ表計算をテーマにした Workout Wednesday が続いていた感じですが、今回は日付です。
2021 Week 36 | Tableau: When do extracts run during the day?
今回はTableau Server でどのデータソースやワークブックがいつ更新しているのかのログデータの可視化がお題だったのですが、パッと見何を表しているかが慣れない表現のチャートを作るのは、正直気乗りもせずなかなか疲れました。
要求事項
今回の要求事項はモリモリです。
1.ダッシュボードサイズ 1000×800
2.シート2枚
3.24時間の間にタスクが実行され、どれくらい待たされ(細いバー)、どれくらい処理に時間がかかったか(太いバー)を示すチャートを作成してください。
4.処理バーは、以下に定義されているように、抽出タスクのステータスに基づいて色付けされるべきである。
5.待機中のバーは、タスクが10分以上待たされたかどうかに基づいて色付けされます。
6.このタスクでは、ダッシュボードが2021年2月5日16:30に表示されていると仮定します。
7.チャート上の「コア・ワーキング・アワー」である午前8時から午後5時までを色付きの帯で示します。
8.過去1~10日間のデータを閲覧できるようにします。
9.バーの読み方を説明するキーを追加する(どのように実装するかはあなた次第)。
10.ツールチップとフォーマットを一致させる(バーのツールチップは若干異なります)。
抽出物の状態
Finish CodeとProgressフィールドに基づいて、抽出物の状態を決定するための計算フィールドを導き出しました(正直に言うと、これは抽出物の背景タスクのサーバー管理ビューの詳細な分析から引き継いだ定義だと思うので、ロジックはTableauに任せています)。
IF [Finish Code] = 1 AND [Progress] <> 100 THEN ‘In Progress’ ELSEIF [Finish Code] = 0 AND NOT [Progress] = 1 THEN ‘Success’
ELSE ‘Failed’
END
www.DeepL.com/Translator(無料版)で翻訳しました。
アタマの整理として、要求事項を完成後のダッシュボードに被せてみると以下のような感じになります。こうやって整理してみると表示の多くを占めるガントチャート部分が今回のメインの攻略ポイントになってくることがなんとなく分かってくると思います。
今回の攻略ポイント1
まず、特徴的な細いバーと太いバーの組み合わせから作っていきます。
3.24時間の間にタスクが実行され、どれくらい待たされ(細いバー)、どれくらい処理に時間がかかったか(太いバー)を示すチャートを作成してください。
■ 細いバーと太いバーの作り方
細いバーの起点を DATEADD関数とDATEDIFF関数を用いて Created At(タスク生成日時)から、時間以外を全て 2021/1/1 にした Created At Baseline を作ることで作成します。
細いバーの長さ Waiting Time は、DATEDIFF関数を用いて Created At と Started At の差分から作ります。
同様に、太いバーの起点を DATEADD関数とDATEDIFF関数を用いて Started At (タスク開始日時)から、時間以外を全て 2021/1/1 にした Started At Baseline を作ることで作成します。
太いバーの長さ Processing Time は、DATEDIFF関数を用いて Started At と Completed At の差分から作ります。
絵にまとめると、細いバーと太いバーはそれぞれ以下のようになります。
■ Created At Baseline とはどのようなものか
数式を見ると複雑に感じますが、実際に何をしているかを見てみると、日付と時刻のデータ型を維持した状態で、時刻を残して年月日を同じ値で書き換えていることがわかります。
今回の攻略ポイント2
次に、指定の日時を起点として過去1~10日のデータを表示するフィルタをつくっていきます。
6.このタスクでは、ダッシュボードが2021年2月5日16:30に表示されていると仮定します。
8.過去1~10日間のデータを閲覧できるようにします。
2月5日から過去1~10日間のデータを閲覧するということは、
1月27日から2月5日までということになります。頭だけで考えているとよくわからなくなってくるので、絵にかいて確認してみました。
一番右の 2/5 を最小として、1/27までパラメータ pDaysToShow の切り替えによって表示できる。1/26以前は表示させない。という内容となります。
数式だけでパッと何をやっているかを正しくイメージするのは、まだまだ修行を重ねて馴染ませていく必要を痛感しました…
今回の攻略ポイント3
ここまでくればほぼほぼ完成です。残りの部分はメモ程度に。
7.チャート上の「コア・ワーキング・アワー」である午前8時から午後5時までを色付きの帯で示します。
9.バーの読み方を説明するキーを追加する(どのように実装するかはあなた次第)。
7の色付きの帯は、リファレンスバンドを使って表現します。
リファレンスラインは使うことが多いですが、リファレンスバンドはそんな使わないので、あれ?これ何で表現しているのかと一瞬考えてしまいました。
9のバーの読み方を説明するキーの追加は、これまでの Workout Wednesday で出てきた MIN(1) を使ったダミー軸を使って解説とは異なる作り方をしてみました。ここも作り方がありそうです。
あとはダッシュボードに組み上げていきます。
タイトル下の罫線が空白でできていたのですが、高さのピクセル指定がアクティブにならず、結局浮動にして同じように配置してみました。
今回作ったもの
クリックで Tableau Public に遷移します
今回のふりかえり
普段見慣れないデータやチャートは、その中身を理解しようとするだけで、すごく疲れますね。今回はまさにそんな内容でした。
また今回の Workout Wednesday は 日付をテーマにしたものでしたが、日付関数をなんとなく見たことあるレベルでしか理解していないことを再認識することになりました。
特に今回使った DATEADD、DATEDIFF、DATETRUNC などの基本的な日付関数は、苦手意識なく自然と使えるようにいつかなりたい…
ここまで読んでいただいた方、ありがとうございました!
もしよければ 「スキ」や フォローいただけると嬉しいです。
以上