LoginSignup
8
3

AWSエンジニアがAzureをゼロから学習する(データベース編)

Last updated at Posted at 2023-12-04

普段の業務ではAWSをメインに使っていますが、最近Azureを勉強し始めました。データベースに関する学習ガイドの項目が非常によく整理されていたと感じ、関連知識点をまとめてみました。

データの主要概念を説明する

この部分の知識はAzureだけでなく、他のクラウドサービスやローカルデータベースの運用にとって不可欠なものだと考えています。

データを表す方法について

データは主に以下の三つの方法で分類されます:

構造化データ
半構造化データ
非構造化データ

それぞれのデータの種類について簡単に説明します。

構造化データ

構造化データは、Excelやスプレッドシートなどの形式で整理され、データ要素が明確に定義され、固定のデータフィールドに格納されているデータのことを指します。これらのデータは通常、表、行、列、フィールドなどの規則的な構造を持っており、データベース管理システム(DBMS)で管理しやすい形式で格納されています。

例として、顧客情報、在庫データ、取引記録などが挙げられます。

構造化データ

データベース内の特定のテーブルやフィールドに格納され、各要素は特定のデータ型(例:数値、文字列、日付など)を持ちます。

非構造化データ

非構造化データは、明確な構造がないデータ形式です(テキスト、画像、音声、動画等)。
非構造化データは自然言語処理、画像認識、音声認識などのテクノロジーを使用して分析できます。

Windows file folder、ウェブページのテキスト、写真、動画コンテンツ、音声録音等は非構造化データに該当します。

半構造化データ

半構造化データは、構造化データと非構造化データの中間に位置するデータ形式です。データはフィールドや列で構成されていますが、各要素の形式が異なることがあります。

半構造化データは、柔軟性が高く、異なるデータ型や属性を含むことができます。これにより、複雑なデータ構造を表現できます。
たとえば、HTML、 XML、JSON等はこちらの分類に入ります。

よくあるデータのワークロード

以下は3つのリレーショナルデータベースのワークロードです。
▪ トランザクションワークロード(OLTP)
▪ 分析ワークロード(OLAP)
▪ データウェアハウス

トランザクションワークロード(OLTP: Online Transaction Processing):

トランザクションワークロードは、データベース内の短期間で処理される大量のトランザクション(データの追加、更新、削除)をサポートするために設計されています。主に日常の業務処理に使用され、データの一貫性と正確性を重視します。

応用例: 銀行のATM取引、オンライン注文処理、在庫管理等。

Azure OLTPの例

  • Azure SQL Database
  • SQL Server in a VM
  • Azure Database for MySQL
  • Azure Database for PostgreSQL

分析ワークロード(OLAP: Online Analytical Processing):

分析ワークロードは、データベース内の大量のデータをクエリし、洞察を得るために使用されます。
データの集計、統計情報、トレンドの分析、ビジネスインテリジェンスに適しています。レポート作成やダッシュボードの生成にも使用されます。

応用例: 売上分析、市場セグメンテーション、顧客傾向の理解等。

Azure OLAPの例

  • SQL Server with Columnstore indexes
  • Azure Analysis Services
  • SQL Server Analysis Services

データウェアハウス

データウェアハウスは、組織内の異なるデータソースからデータを収集、統合し、歴史データを格納する専用のデータベースです。分析ワークロード向けに最適化されており、大量のデータを高速にクエリし、高度な分析を可能にします。時系列データ、トレンド分析、ビジネスインテリジェンスに使用されます。
応用例: 企業全体の財務データの統合と分析、長期の業績評価等。

Azureデータウェアハウスの例

  • Azure Synapse Analytics

Azure 上のリレーショナル データベース

リレーショナルデータベース(RDS:Relational Database)は、データを表形式で管理し、データ間の関係(リレーション)を利用して情報を格納および操作するためのデータベース管理システム(DBMS)の一種です。リレーショナルデータベースは、データをテーブルとして構造化し、行と列で表現される二次元的なデータ構造を使用します。

▪️データベースのスキーマ:
テーブルとそれに関連するエンティティ(実体)を定義します。データベース内でどのようにデータが組織され、データがどのように関連付けられるかを定義する構造的な設計です。

▪️テーブルとエンティティ
テーブルはデータの実際の格納場所であり、エンティティはテーブル内の特定のデータの種類を表します。たとえば、"顧客"というエンティティは、"顧客テーブル"に対応することがあります。

▪️カラムと属性:
テーブル内の各エンティティは、カラムまたは属性で定義されます。カラムはエンティティの特定の情報または特性を表し、データの型(文字列、数値、日付など)を指定します。
例えば、"顧客テーブル"のカラムには "顧客名"、"住所"、"電話番号"、"メールアドレス"等

▪️キー:
データベーススキーマはテーブル間の関連性を定義します。これは、テーブルのキー(主キーと外部キー)を使用しています。
主キーはテーブル内の一意のエンティティを識別し、外部キーは他のテーブルとの関連を示します。これにより、データベース内のデータ間の結びつきが確立されます。

リレーショナルの正規化

リレーショナルデータベースの正規形は、データベース内のデータを整理し、冗長性を減少させ、データの一貫性と整合性を確保するための規則のセットです。正規形には第1正規形(1NF)、第2正規形(2NF)、第3正規形(3NF)などがあります。以下にそれぞれの正規形を説明します:

第1正規形(1NF)

第1正規形は、テーブル内の各列が個別の値を持ち、重複のないデータが格納されていることを要求します。
テーブル内の各カラムは、単一のデータ型(数値、文字列、日付など)を持つ必要があります。
また、各行(レコード)は一意の識別子(主キー)によって区別される必要があります。

第2正規形(2NF):

第2正規形は、第1正規形を満たすうえで、追加の条件を加えます。それは、非キー属性(主キー以外の属性)が主キーに完全に関連する必要があることです。
つまり、テーブル内の各非キー属性は、主キー全体に関連し、部分的にではなく、主キーの値全体に依存する必要があります。

第3正規形(3NF):

第3正規形は、第2正規形を満たすうえで、さらに追加の条件を付け加えます。それは、非キー属性同士が互いに関連しないようにすることです。
つまり、テーブル内の各非キー属性は、他の非キー属性に依存していてはならず、トランジティブな関数従属(過度な関連性)が存在してはなりません。

一般的な構造化クエリ言語 (SQL) ステートメント

SQL

SQL(Structured Query Language)は、データベース管理システム(RDBMS)内でデータの操作、クエリ、管理を行うための標準化されたプログラミング言語です。SQLはリレーショナルデータベース内のデータの格納、取得、更新、削除、操作に広く使用され、データベース関連のタスクを実行するための強力なツールです。

DDL(Data Definition Language):

DDLはデータベースの構造とスキーマを定義および変更するためのSQLコマンドのカテゴリです。
DDLコマンドには以下のようなものが含まれます:

▪️CREATE: 新しいデータベース、テーブル、ビュー、インデックスなどのオブジェクトを作成します。
▪️ALTER: データベースオブジェクトの構造を変更します(例:テーブルのカラムの追加、変更、削除)。
▪️DROP: データベースオブジェクトを削除します。
▪️TRUNCATE: テーブル内のデータを削除します。
▪️COMMENT: テーブルやカラムにコメントを追加します。

DML(Data Manipulation Language):

DMLはデータベース内のデータの操作、挿入、更新、削除、およびデータのクエリに使用されるSQLコマンドのカテゴリです。
DMLコマンドには以下のようなものが含まれます:

▪️SELECT: データの取得とクエリを実行します。
▪️INSERT: データをテーブルに挿入します。
▪️UPDATE: データを変更または更新します。
▪️DELETE: データをテーブルから削除します。

DCL(Data Control Language):

DCLはデータベースへのアクセス権、セキュリティ、およびデータの整合性を管理するためのSQLコマンドのカテゴリです。
DCLコマンドには以下のようなものが含まれます:

▪️GRANT: 特定のデータベースオブジェクトに対する特定の権限をユーザーやロールに付与します。
▪️REVOKE: データベースオブジェクトから特定の権限を取り消します。
▪️COMMIT: トランザクション内の変更を確定し、データベースに反映します。
▪️ROLLBACK: トランザクション内の変更を取り消し、データベースを以前の状態に戻します。

Azure のリレーショナル Data Services

Azure SQL 製品ファミリ

▪️Azure Virtual Machines 上の SQL Server
▪️Azure SQL Managed Instance
▪️Azure SQL Database

Azure Virtual Machines 上の SQL Server

Azure仮想マシン(VM)上にSQL Serverをデプロイするものです。これはSQL Serverの伝統的なオンプレミス展開に似ており、SQL Serverの完全な制御を提供します。
お客様はSQL Serverエンタープライズエディション、標準エディション、Webエディションなどを選択でき、自分でSQL Serverの設定と管理を行う必要があります。
カスタムアプリケーションのホスティング、既存のSQL Serverワークロードの移行、高度なカスタマイズに適しています。

Azure ポータルで検索すると、たくさんの選択が出てきます。
※SQL Server Option: 2008, 2012, 2014, 2017, 2019, 2022

SQL Server Option

Azure SQL Managed Instance

Azure SQL Managed Instanceは、SQL Serverの完全なエンタープライズ機能と互換性を持つ完全にマネージドされたデータベースプラットフォームです。既存のアプリケーションとワークロードをAzureに移行し、SQL Serverとの適切な互換性を保ちつつ、クラウドのメリットを享受できます。データベースの設定やパフォーマンスに関する多くの管理タスクは自動化されており、アプリケーションの移行を容易にします。

Azure SQL Managed Instance

Azure SQL Database

Azure SQL Databaseは、完全にマネージドされたクラウドデータベースプラットフォームで、リレーショナルデータベースをホストするために設計されています。ユーザーはデータベースの作成、スケーリング、バックアップ、セキュリティなどをAzureに任せることができ、データベースのパフォーマンスと可用性について心配する必要はありません。サーバーレスSQLプール、ハイブリッドトランザクションレプリケーション、Elastic Database Poolなど、多くの機能が提供されています。

Azure SQL Database

オープンソース データベース システム用の Azure データベース サービス

Azureは多くのオープンソースデータベースプラットフォームをホスティングおよびサポートしており、これらのデータベースをAzure上で実行できます。以下はいくつかの主要なAzureでサポートされているオープンソースデータベースの例です。

Azure Database for PostgreSQL:

PostgreSQLは高度に拡張可能なオープンソースのリレーショナルデータベース管理システム(RDBMS)です。Azure Database for PostgreSQLは、PostgreSQLデータベースをAzureでホストし、自動バックアップ、スケーリング、セキュリティを提供します。

例として、
Document Data
Column family data
Key-value Data
Graph Data

Azure Database for MySQL:

MySQLは人気のあるオープンソースのRDBMSで、Webアプリケーションやアプリケーション開発で広く使用されています。Azure Database for MySQLはMySQLデータベースをAzureでホストし、高可用性とセキュリティを提供します。

Azure Database for MariaDB

MariaDBはMySQLから派生したオープンソースのRDBMSで、高性能で安定性があります。Azure Database for MariaDBはMariaDBデータベースをAzureで実行し、スケーリング、セキュリティ、バックアップを提供します。

※SQL Server uses T-SQL, Oracle uses PL/SQL, MYSQL uses SQL/PML, PostgreSQL users PL/pgSQL

Azure 上の非リレーショナル データ

非リレーショナルデータベース、またはNoSQLデータベースは、伝統的なリレーショナルデータベース(RDBMS)に対抗するデータモデルおよびアーキテクチャを提供するデータベースタイプです。これらのデータベースは、大容量データの保存、高速データの読み書き、柔軟なデータモデリングなどの異なる要件に対応します。

Azure Storage の機能について

Azure Storageは、Microsoft Azureクラウドプラットフォーム上でデータを格納、管理、保護するための統合ストレージソリューションです。Azure Storageにはさまざまなストレージサービスが提供されており、それぞれ異なるデータの格納およびアクセス要件をサポートします。以下に、主要なAzure Storageサービスについて説明します:

Azure Blob Storage:

Azure Blob Storageは、大容量の非構造化データを保存および管理するためのストレージサービスです。Blob(Binary Large Object)は、画像、ビデオ、ドキュメント、バックアップ、アーカイブなどのデータを格納できます。ファイルの保存、アクセス制御、バックアップ、バージョン管理、CDN(Content Delivery Network)との統合などが可能です。

Azure File Storage:

Azure File Storageは、クラウドベースの共有ファイルストレージサービスです。これにより、Azureベーブル仮想マシンおよびクラウドサービスとの間でファイルを共有できます。
グループでのファイルアクセス、サーバーメッセージブロック(SMB)プロトコルの使用、フォルダとファイルのアクセス制御が可能です。

Azure Table Storage:

Azure Table Storageは、スケーラブルで高速なNoSQLデータベースサービスです。大量のデータを格納し、クエリでき、高可用性を提供します。データのカラムファミリー、キーによるアクセス、スケーラビリティ、複数のデータセンターでのデータレプリケーションがサポートされています。

Azure Cosmos DB の機能

Azure Cosmos DBは、Microsoft Azureのマルチモデル分散データベースサービスで、グローバルな規模でデータを格納、クエリ、およびスケーリングするために設計されています。Azure Cosmos DBは、多くの異なるデータモデル(API、ドキュメント、キー値、列指向、グラフ)をサポートし、高い可用性、低遅延、セキュリティ、スケーラビリティを提供します。
Azure Cosmos DB

ノーリレーショナル データのデータタイプ

Document Data

Document Data:

Key-value型、Json、XML等の半構造化データ格納します。

Column family data:

データを列ごとに格納します。データは列ファミリーと呼ばれる論理的なグループにまとめられます。

Key value Data:

Key-Valueデータベースは、単純なキー(Key)とその対応する値(Value)のペアでデータを格納します。各キーは一意であり、それに対応する値はデータの本体となります。

Graph data:

Graphデータベースでは、データはノード(Node)とエッジ(Edge)の2つの基本要素から構成されます。ノードは実体を表し、エッジはノード間の関係を示します。

大規模な分析の一般的な要素について説明する

Azure Data Warehousing

データウェアハウスは、組織内の異なるデータソースからデータを収集、統合し、歴史データを格納する専用のデータベースです。分析ワークロード向けに最適化されており、大量のデータを高速にクエリし、高度な分析を可能にします。時系列データ、トレンド分析、ビジネスインテリジェンスに使用されます。
例:企業全体の財務データの統合と分析、長期の業績評価等。

対称型マルチプロセッシング(SMP: Symmetric Multi-Processing)

  • Azure SQL Bdatabase
  • SQL Server in a VM

大規模並列処理(MPP:Massively Parallel Processing)

  • Azure Synapse Analytics(SQL DW)
  • Apache Hive on HDlnsight
  • Interactive Query(Hive LLAP) on Hdlnsight
8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3