
この記事はFIXER Advent Calendar 2021( https://adventar.org/calendars/6837 )3日目の記事です。
前日の記事は、なむゆさんの「今更ながら学ぼう kubernetes での Pod の立て方」でした。Pod を立てる方法を通して、k8sの裏がどういった仕組みになっているのか理解を深められる記事になっております。こちらも是非、ご覧ください。
はじめに
この記事では、今年私がDP-900を受験した際、MS LearnのDP-900ラーニングパスで学んだ内容を12の図と共にまとめました。DP-900の主な構成要素、概要、用語のイメージを掴むのにお使いください。
特に似ている用語やサービスの違い、あれってどうだったっけなと自分で忘れやすい点を中心に書いています。
DP-900とは
まずDP-900とは、仕事でAzure、DBを中心に扱っていく人はもちろん、DBの基礎を学びたい人も対象にした間口の広い資格です。DBの基礎概念の他にAzureのDBサービス、Power BI、それらを扱うためのツールについての理解が問われます。
評価
この試験の内容は2021年10月25日に更新されました。変更点を確認するには、以下の試験スキルの概要をダウンロードしてください。
コアデータの概念を説明する(15〜20%)
Azureでリレーショナルデータを操作する方法を説明してください(25〜30%)
Azureで非リレーショナルデータを操作する方法を説明してください(25〜30%)
Azureの分析ワークロードについて説明してください(25〜30%)
(「評価されるスキル」より引用)
DBに関する基礎概念
ここではデータベースに関する基礎概念についてまとめます。
データの種類

上の図はデータベースに実際に蓄積されるデータの分類イメージです。構造化データとは、いわゆるデータベースと言われて想像される行と列でできた中に格納されるデータです。次に出てくる半構造化データと比較していうなら、列の種類・数が固定で正規化されたものです。
次に半構造化データとはJSONやParquetなどのスキーマ(データ構造のルール)は決まっているが、レコードによって列の種類や数が異なるものです。
最後に、非構造化データとは画像やビデオ、オーディオなどのスキーマが定まっていないバイナリデータなどです。
データ分析の種類

データ分析には大きく5種類あります。
履歴データが分析の基になり、過去・現在に 何が 起きているかを分析するのが記述的分析です。その記述的分析の結果から、なぜ その結果が起きたかという原因を分析するのが診断的分析です。
また、履歴データから次 何が起きるか を分析、予想するのが予測的分析で、その分析結果から目標を達成するために 何をするべき かというネクストアクションを分析するのが処方的分析です。 最後に履歴データからデータ同士の 関係性やモデル を分析することを認知的分析と言います。
ワークロードタイプ
データを処理する手順(ワークロード)には大きくETLとELTがあります。この2つは同じ処理(抽出:Extract、読み込み:Load、変換:Translate)の順序が違うものです。
ETLはシンプルな構造のデータを抽出して保存する前に都度変換していくストリーミング処理に適しています。

対してELTは一定量のデータを溜め込み、一気に変換したりデータモデルを構築するバッチ処理に適したワークロードタイプです。Every Little Thingではありません。

SQLステートメントタイプ
データベースの操作にはSQLがよく使われます。そのSQL文を構成するコマンドはDDL(データ定義言語)、DML(データ操作言語)、DCL(データ制御言語)というもので構成されます。 以下は、T-SQL(SQLの一種)でデータベースにテーブルとレコードを作成するサンプルです。ここで、全体を挟んでいるBEGIN
やCOMMIT
がDCLの一種で、テーブルなどデータ構造を対象とした操作コマンド(CREATE
、DROP
、ALTER
など)がDDL、レコードに対する操作コマンド(INSERT
、SELECT
、UPDATE
、DELETE
など)がDMLです。

Azure DBサービス
ここではAzureのデータベースサービスについて、ざっくりSQL、NoSQLに分けて紹介します。ただしNoSQLという言葉は定義が曖昧なので、少し引っ掛かる部分があってもこの記事内での分類と割り切ってください。
SQL、リレーショナルデータ
Azureの代表的なSQLサービスにSQL ServerとAzure Database Servicesがあります。SQL ServerはAzureの仮想マシン上にユーザーがSQL Serverを立てるIaaSのサービスです。Azure Database ServicesはPaaSで、SQL DBや Azure Database for PostgreSQLなどがあります。IaaSやPaaSの違いはユーザーが手を加えることができる自由度や責任を担う範囲です。

また、SQL DBはPaaSですがIaaSのSQL Serverとの互換性があるManaged Instanceというオプションのようなものもあります。詳しくはこちら。

NoSQL、非リレーショナルデータ
非RDBデータの格納用サービスの代表的なものにはStorage Accountで作成することができるStorageとCosmos DBがあります。
半構造化データ
AzureでStorage Accountを作成すると、大きなバイナリデータの格納に適したBLOB StorageやWindowsマシン間での共有ストレージ用に適したファイルStorageなど4種類のストレージを一つのアカウント内にいくつでも作ることができます。
後のデータウェアハウスで登場するData Lake StorageはBLOB Storageのオプションで使用できる機能です。

非構造化
AzureでCosmos DB Accountを作成するとCosmos DBが使用できます。Cosmos DBは複数タイプのデータモデルの格納に対応しており、作成時にどのタイプのデータを扱うか選択します。一つのCosmos DBで扱えるデータの種類は一つなので、追加で異なるタイプのデータを扱う必要が出てきたときには新しくCosmos DB Accountを作成しないといけない箇所がStorage Accountと異なります。色々なデータタイプのDBに進化できるイーブイみたいなやつです。

データウェアハウス
複数のデータソースからデータを収集して蓄積、変換、分析などをする全体的な仕組みをデータウェアハウスと言います。Azure Data Factoryで抽出したデータをまとめてData Lake Storageに格納、データの型や目的に応じて変換を担うサービスに転送、モデルの分析や視覚化を行います。図の構成は一例で、他にデータの格納にはCosmosDB、分析にはHDInsightやCognitive Serviceも使われることもあります。

Power BI
Power BIはデータ分析、可視化ツールの一つです。
構成要素
Power BIが使用するデータのコレクションをデータセットと言います。単一のデータセットの情報を1ページ以上のページにグラフや表といった視覚的な表現(視覚化)のタイルでまとめたものをレポートと言います。1つ以上のレポートの内容をキャンバスと呼ばれる1ページにまとめたものをダッシュボードと言います。

アプリ
Power BIにはPower BI Desktop、Power BI サービス、Power BI Mobileの3種類のアプリがあり、これらは使用できるプラットフォームが異なるのに加え、用途も異なります。アプリによって作成できる資料が異なるのは非常に紛らわしいですよね。この辺りは実際に使うのが分かり易いと思います。また、Power BIのデータ分析をメインとしたDA-100という資格もあるので、そのMS Learnでより詳しく解説されています。

最後に
以前、社内で共有されたナレッジの中に「未知の用語を意味を知ること、全体の概念を体系的に理解することが重要」という言葉がありました。新しい分野を勉強するときほど、こういったことが大切だと思ったので、自分の理解をさらに深める&備忘録用にこの記事を書きました。少しでもそういった方の参考になれば幸いです。