SGでは、蓄積先の名前と分析の目的をつなげる
現行SGシラバスVer.4.1のデータベース応用には、データウェアハウス、ビッグデータ、分散ファイルシステムが挙がっています。データウェアハウス(DWH)は、業務で生まれたデータなどを分析に使える形へ整理・統合して蓄える仕組みです。単に容量が大きい保存先、又はバックアップの別名と覚えないようにします。
業務DBは、一件の受付や更新を正しく処理する目的で使われます。一方、分析では期間別・部署別の傾向など、まとまったデータを読みたい場合があります。MicrosoftのOLAP解説も、取引処理と分析処理では求める使い方が異なる点を説明しています。物理的に別の機械へ必ず分けるという定義ではなく、両方を扱う仕組みもあります。
以下は当サイト独自の架空の研修予約データです。実在する利用者・企業の分析や不具合、公式問題・過去問の再現ではありません。本文の数字は説明用で、当サービスの売上や受講者の実績ではありません。ETLなどの関連語も学習の補助として説明し、全てがシラバスの用語例に明記されているとは扱いません。

架空ケース:四つの受付記録を、締切時点で区切る
架空の研修受付に、下表の四つの記録があるとします。時刻は全て同じ日の日本時間です。R01とR02は同じ人U01による別の研修への予約、R03は取消済み、R04は12時20分の新しい予約です。本例にはこのほかの記録や重複取込みはなく、各状態も表のとおり変わらない条件です。
分析資料は「当日12時までに受け付けた記録」を対象にし、その範囲を12時10分に取込み・確認し終えたとします。R04は資料を開く12時30分には業務DBにありますが、12時までという集計範囲には入りません。資料を生成した時刻と、含めた記録の締切は同じとは限りません。
実際の業務では、取消しや状態変更が後から届く場合もあります。その場合は、いつ時点の状態で数えるかも定めます。本例は締切と集計単位に集中するため、その追加条件を置いていません。表にない更新や障害を想像して、数字の差の原因として確定しないようにします。
| 受付ID | 人・研修 | 受付時刻 | 状態・12時までの対象か |
|---|---|---|---|
| R01 | U01・研修X | 09:00 | 有効・対象 |
| R02 | U01・研修Y | 10:00 | 有効・対象 |
| R03 | U02・研修X | 11:00 | 取消済み・受付記録として対象 |
| R04 | U03・研修X | 12:20 | 有効・締切後なので対象外 |
ETLは、何を取り出し、どう整え、どこへ入れるか
ETLはExtract・Transform・Load、すなわち抽出・変換・格納というデータ統合の処理です。例えば複数の受付元から必要な列を取り出し、時刻の基準や状態の表現をそろえ、分析用に保存します。変換には絞込みや重複の扱いも関係します。コピーが成功したというだけで、定義どおりに集計できるとは限りません。
本例なら、対象の締切をそろえ、受付IDで一件を識別し、取消済みの記録を何の集計に含めるかを決めます。取り消した記録を消してしまう方法だけがあるわけではありません。受付総数の分析に必要なら保持し、有効予約を数えるときに状態で選ぶ、という整理もできます。
ELTでは、抽出して格納した先の処理能力で変換を行います。ETLとの違いは変換する場所・順序にあり、文字を入れ替えただけの同じ手順とはしません。どちらを使うかだけで、個人情報の取扱いが適切になるわけでもありません。必要な情報、利用目的、権限、保存期間は別に確認します。
- 1
対象を抽出
同日の12時までの受付R01・R02・R03を取り出す。
- 2
意味をそろえる
受付ID、人ID、時刻、状態を区別。取消しの扱いを決める。
- 3
分析用に格納
対象範囲と取込み結果を記録。元の受付DBの代わりにしない。
- 4
定義付きで表示
件数か人数か、締切と更新時刻を添えて分析する。
収集先を一つにするだけでなく、同じ意味で比較できる状態に整えます。
当サイトの架空例を簡略化したETL側の流れです。実装上の並列処理、全てのエラー処理や外部連携を示す構成図ではありません。
受付3件、有効予約2件、予約者1人は矛盾しない
12時までの受付記録はR01・R02・R03の3件です。そのうち取消済みを除いた有効な予約はR01とR02の2件です。有効予約をした人を、人IDの重複を除いて数えるとU01だけなので1人です。同じデータに対する異なる問いであり、三つの数をそのまま比較して不一致とするものではありません。
ここで受付総数には取消済みも含め、有効予約は状態を条件にしています。また「有効予約の予約者」と「受付記録に現れる全ての人」は別で、後者ならU01とU02の2人です。資料に人数とだけ書くと、何をした人なのかが曖昧になります。分母に使う場合も同じ定義でそろえます。
複数の受付元のIDを統合する場合は、同じ人が別のIDを持つ可能性と、同じ記号が別の人を指す可能性を確認します。IDが同じというだけで同一人物とする設計は危険です。本例ではU01が同じ人だと最初に定義していますが、実データへその前提を無条件に移すことはできません。
受付記録:3件
- R01・R02・R03
- 取消済みも受付として含む
- 単位は受付IDごとの記録
有効予約:2件
- R01・R02
- 取消済みR03を除く
- 単位は有効な予約記録
有効予約の予約者:1人
- U01だけ
- 同じ人の二予約は一人と数える
- 単位は有効予約の人ID
3件・2件・1人は異なる指標。どの数字が正しいかではなく、何を知りたいかを確かめます。
全て当サイトの架空値。列は別の指標であり、足し合わせる内訳や、実際の受講完了人数ではありません。
12時30分の業務DBと、12時締切の資料が違うとき
12時30分の業務DBでは、R04も有効なので、有効予約はR01・R02・R04の3件です。一方、12時締切の分析資料では有効予約2件です。本例の差は、明示した締切後のR04によるもので、直ちにデータ破損や取込み失敗があるという意味ではありません。業務DBも12時までの条件で数えれば、この例では同じ2件になります。
もちろん、数字が違えばいつも更新待ちと説明してよいわけではありません。同じ定義・範囲・状態時点にそろえても違うなら、取込みの抜け、重複、変換、対象外の記録などを調べる必要があります。最終更新の表示が新しいだけで、全ての受付元を正常に取り込めた証拠にはなりません。
分析基盤が必ず一日一回しか更新できないという制約もありません。更新頻度や反映の遅れは構成と運用で異なります。最新状態で受付を可否判断する用途に、対象範囲の異なる分析資料をそのまま使わないようにします。過去の傾向を読む用途と、今この予約を受け付ける処理を区別してください。
数字を比較する前に、五つの定義を確認する
復習では、画面名や製品名より先に、集計対象と数える単位を書きます。本例の「12時まで・有効予約・予約ID単位」と「12時まで・有効予約をした人・人ID単位」を一文にすると、何が違うかがはっきりします。分析の数字から実際の研修参加や学習成果まで確認できたと飛躍しないことも大切です。
同じ資料を部署別に分ける場合も、所属をいつ時点で対応付けるかを決めます。現在の所属と受付時点の所属では結果が変わり得ます。表にその履歴がなければ推測で補わず、どの目的にどの記録が必要かを確認します。集める情報を無制限に増やすという指示ではありません。
| 観点 | そろえる条件 | 見落としやすい点 |
|---|---|---|
| 単位 | 受付・有効予約・人などの定義 | 件数を参加者数へ読み替える |
| 範囲 | 対象日・締切・時刻の基準 | 更新時刻と対象の締切を同じにする |
| 状態 | 取消し・変更をいつ時点で扱うか | 状態の違う記録を混ぜて比較する |
| 統合 | 受付ID・人IDと受付元の対応 | 重複取込みと同一人物を混同する |
| 確認 | 取込み結果・不足・変換の根拠 | 新しい表示日時だけで全件成功とする |
SGのデータベース学習と、数字の読み方へ戻る
業務の更新を確定する単位はSGのトランザクションと排他制御、行の識別と対応は主キー・外部キーへ。集めた対象と結論の範囲は統計的・認知バイアス、処理のタイミングそのものはストリームとバッチで確認できます。
範囲はSGシラバス案内へ。登録不要の無料6問は学習画面の体験で、データ分析分野全体の診断ではありません。SGの教材・料金で収録範囲と購入条件を確認してください。