はじめに
DP-900取得に向けて学習した内容のメモです。
あくまで、自身が不明な点を調べたメモですので、試験範囲を網羅的に記事にしたものではありません。あしからず。
行指向データベース
- MySQL,PostgreSQL,SQL Serverが行指向にあたる
- それぞれの行をひとかたまりのデータとして扱う
- オンライントランザクション処理が得意
列指向データベース
- Azure Cosmos DB for Apache Cassandra
- データ分析のために最適化されたデータベース
- 行指向が行をひとかたまりとして扱うのに対し、列指向は列単位で処理する為、特定の属性の情報を取り出す処理が得意
- 例えば、テーブルから商品名と値段だけを抜き出す処理とか
- 大量のデータの読み込み効率がいい
Azure Database for PostgreSQL
- リレーショナルデータベース
- 行指向データベース
Azure Cosmos DB
- データベース、コンテナレベルでスループットの設定が可能
- 複数リージョンでの読み取り/書き込みが可能なマルチマスター構成がとれる
Azure Cosmos DB for Apache Cassandra
- 列指向データベース
- 大量のデータ処理に特化しているためWebサービス、IoTなどに使用される
- Cassandra Query Language(CQL)を使用してデータのクエリを行う
Azure Cosmos DB API for MongoDB
- NoSQLデータべース
- Cosmos DBのデータモデルのうちドキュメント型のAPI
- Cosmos DBの中でGoやRustなどのSDKを使用できる
Azure Cosmos DB for Apache Gremlin
- グラフデータベース
- Cosmos DBのデータモデルのうちグラフ型のAPI
リレーショナルデータベース
- SQLでデータの追加、削除、更新、検索を行う
- データは行と列のテーブル形式で保存
非リレーショナルデータベース
- Cosmos DB
- 表や行でなく、JSON形式でデータを保存
- NoSQLデータベース
- リレーショナルデータベースと比べ、処理が速い
- 大量のデータを高速処理するのに向いている
- SQLを使用しないので、複雑な検索はできない
- 正確性を犠牲に高速化しているので、データの正確さが求められるユースケースでは不向き
CSV
ID, Name, Country
111, Mike, USA
222, Nancy, Canada
- データを(,)で区切るだけ
XML
<?xml version='1.0' encoding='utf-8'>
<root>
<employee>
<employ>
<ID>1</ID>
<Name>Hana</Name>
<Country>Japan</Country>
</employ>
<employ>
<ID>2</ID>
<Name>Taro</Name>
<Country>Japan</Country>
</employ>
</employee>
</root>
- タグで囲むhtmlに似た形式
YAML
-
ID: 1
Name: Hana
Country: Japan # (岩手県出身)
-
ID: 2
Name: Taro # 弟は二郎
Country: Japan
- コメントアウトが出来ることが特徴
JSON
[
{'ID': '1', 'Name': 'Hana', 'Country': 'Japan'},
{'ID': '2', 'Name': 'Taro', 'Country': 'Japan'}
]
- []や{}で囲み、項目名と値を(:)で区切ってペアとして扱う
- 複数のデータになるときは(,)で区切る
データウェアハウス
- 複雑なクエリと分析に特化
- 過去データ(販売データや顧客データなど)を利用して分析処理を行うとかに使う
- 非構造化データの処理には向いていない
Azure Data Lake Storage Gen2
- ビッグデータ分析に特化したストレージサービス
- 構造化、非構造化どちらも保存できる
- 階層型名前空間
- Synapse Analyticsを使用した分析の前に生データを保存するのに利用される
- ファイル/フォルダレベルでのRBAC制御とACLをサポート
Azure Databricks
- 大量のデータを高速に分析できるサービス
- 高速な分散処理を実現するApache Sparkが採用されている
- 構造化データ、非構造化データどちらにも対応
- 構造化データを扱うデータウェアハウスと非構造化データをコスパ良く扱えるデータレイクのいいとこどり
- 機械学習モデルの開発も実施できる
- ETL処理できる
Azure HDInsight
- ビックデータを処理する分散データ処理基盤システムとして代表的なHadoopをWindowsで利用できるように改修し、クラウドサービス化したもの
- 分散データ処理基盤は(結構ざっくり言うと)ビックデータ分析に必要な複数のサーバー群を1つのコンピュータとして扱えるようにしたもの
- Apache Sparkの設定ができる
Azure Synapse Analytics
- 大量のデータを高速で処理できるデータ分析プラットフォーム
- Azure Databricks同様、ETL処理ができる
- 構造化データ、非構造化データどちらにも対応できるデータレイク的側面もある
ACID特性
原子性
- トランザクションの処理が「全部実行される」か「1つも実行されない」のどちらかの状態になること
- トランザクション内の処理を1セットとし、途中で失敗すれば、元に戻す。
- 銀行でAさんからBさんに振り込む際、振り込み途中で一部の送金処理は完了していても、入金処理が失敗した場合、振り込み自体していない状態に戻す
一貫性
- トランザクションの前後でデータの整合性が保たれ、矛盾のない状態になること
- ある一定のルール、制約に沿ってトランザクションの実行が行われること
- 銀行口座に100円しかないのに1万円の送金はできない
独立性
- 複数処理が同時に実行されてもお互いが干渉しないこと
- 同時処理時にはテーブルロックで他の処理を待機させ、他の処理に影響を与えないようにする
永続性
- 一度確定したデータは障害が発生しても永続的に変わらず保持される
超並列処理(MPP)
- 複数のプロセッサが並列に動作して、大量のデータを処理する
- Azure Synapse Analyticsが採用している仕組み
Microsoft SQL Server Management Studio(SSMS)
- SQL Server、SQL DatabaseのSQL インフラストラクチャを管理するための統合環境
- Windowsのみで使用可能
- SQL Server、SQL Databaseの設定変更ができる
- Azure Synapse Analyticsへのクエリ実行ができる
- PolyBaseなどの管理機能を持つ
Azure Data Studio
- マルチプラットフォームのため、Windows/Linux/Macで動作するデータ分析ツール
- オンプレ、クラウド問わず、どこにあるデータでも接続、管理できる
- SSMSより機能は劣るが、軽量なため動作が速い
- Azure上でデータベースのバックアップおよび復元ができる
Microsoft Fabric
- 企業が必要とするデータや Analytics 関連の様々なツールを統合した、ワンストップのオールインワン分析ソリューション(分析ツールのハッピーセット的な)
- Power BI、Azure Synapse Analytics、Azure Data Factoryなどが含まれる
Power BI
- データの収集、加工、分析、分析結果の表示などの機能を備えたツール
Power BI デスクトップ
- データを視覚化する高度なクエリ、モデル、レポートを作成できる
- ローカル コンピューターに無料でダウンロードしてインストールするアプリケーション
Power BI サービス
- クラウドベースのサービスまたはサービスとしてのソフトウェア (SaaS)
- Power BI デスクトップ同様にレポートの作成、他ユーザへの共有が可能なうえ、ダッシュボードの作成、アプリの作成と共有が可能
Power Apps
- 高度な知識やノウハウがなくてもアプリを作成できるローコード開発ツール
Power BI Report Builder
- Power BI サービスに発行できる "ページ分割されたレポート" を作成するためのツール
オンライントランザクション処理
- データは正規化されている
- 小規模で高速なデータ処理に特化
オンライン分析処理
- 分析のために複雑なクエリに特化している
- 多次元的なデータを扱う為、正規化されていない
クラスター化インデックス
- キー値に基づいてデータ行を並び替える
- 非クラスター化インデックスより検索が高速