こんばんは。今日は、これまでずっと興味のあったAzure Synapse Analyticsについて、勉強してみる夜にしようと思います。
MicrosoftのAzure系資格は一通り取ったのですが、そういえばこの辺りのビッグデータ周りはあまり深くは学ばなかったような・・・(記憶が飛んでいるだけかなぁ笑)
というわけでは、まずは、概要をしっかりと整理しておこうと思います。将来の自分への備忘も兼ねたメモとしたいと思います。
なお、以下は私が公式ドキュメントを読んだりして理解した内容として書いていますので、正確でない場合もあるかと思います。その際には、コメント等でご指摘をいただけますと幸いです><
(内容は工事中で、順次拡張予定です)
Contents
Azure Synapse Analyticsとは?
https://docs.microsoft.com/ja-jp/azure/synapse-analytics/overview-what-is
- 統合型の分析プラットフォームであり、データ ウェアハウス、ビッグ データ分析、データ統合、視覚化を 1 つの環境に結合したもの
Microsoftの方がまとめたこのスライドが参考にできそうです。
対応するAWSやGCPのサービスは?
まずAWSです。Synpaseはいろいろな機能があつまったサービスなので、AWS上だと機能ごとにRedShiftやAuroraDB, Athenaなど複数のサービスが対応しているようです。
https://docs.microsoft.com/ja-jp/azure/architecture/aws-professional/services#big-data-and-analytics
続いてGCP。こちらもBig QueryとCloud Fusionなど複数のサービスが対応しているようです。
https://docs.microsoft.com/ja-jp/azure/architecture/gcp-professional/services#data-warehouse
トレンドは?
なんか一部本当かなぁという感じですが(Amazon Redshiftは2004年にはなかったはず・・?)、世界でみると、この領域の製品だと、直近ではAWS ≒ GCP > Azureの順のトレンドになっていそうです。まあ、あくまで参考値程度ということで。
AWSとGoogleのトレンドが数年前にがくっとおちているのは不思議ですね。なにかあったかな・・。
Azure Synapse Analyticsの構成要素
Azure Synapse Analyticsは、以下の要素で構成されています。
- Synapse SQLプール
- Synapse Sparkプール
- Synapse パイプライン
- Synapse Link
- Synapse Studio
Synapse SQLプール
- Transact-SQLを実行しているサーバのコレクション。具体的には、分散クエリをサポートするAzure SQL Database上で実行されている。
- プール内のサーバは、制御ノードと計算ノードに役割が分かれている。
- Transact-SQLを制御ノードに渡すと、データのサブセット(ディストリビューション)に対して動作するクエリを生成して、複数の計算ノードに渡し、並列計算する。
- 制御ノードと計算ノードはデータ移動サービス(DMS)を利用して、必要に応じて複数のノード間でデータのやり取りを行う。
- 処理中のデータはAzure Storage上で管理される。
- Synapse Analyticsでは、規定でオンデマンドのSQLプールが用意され、必要に応じて追加のプールをプロビジョニング可能。
Synapse Sparkプール
- SQLプールではAzure SQL Database上でワークロードが実行されるのに対し、こちらではApache Spark上で実行される。
- Python, Scala, C#, Spark SQLを用いて、ノートブック上でクエリを実行可能。
- ノートブック上で処理を実行後、機械学習モデルの構築も行える。
- Sparkの特性として、クエリはディスク上ではなくメモリ上で実行されるため、非常に高速。
- Sparkプールは自動スケーリングが可能なので、ワークロードに応じてノードの自動追加・削除が可能。
- Data Engineeringや機械学習を実行したい場合には、SQLプールよりもこちらのオプションが最適。
Synapse パイプライン
- 同時に実行する複数のアクティビティの論理的なグループ
- パイプライン単位でタスク実行のスケジューリングなどをできるため、管理が簡単になる
- Azure Data Factoryのデータ統合エンジンと同じものが動いている
Synapse Link
- CosmosDBなどのAzureリソースに接続する機能。以下、CosmosDBに接続した場合・・・
- CosmosDBのデータに対してリアルタイムの分析が可能になる
- CosmosDB上(正確には分析ストア上)で実行するため、Synapse Analytics上にデータが残らない。このためSynapse上でETLを組む必要がない。
- CosmosDBのCosmosDB分析ストアという機能を利用する
- この分析ストアでは、CosmosDBコンテナデータのコピーが存在するが、列ストアとして分析に最適化されている
- ワークロードはCosmosDB分析ストア上で実行されるため、CosmosDB自体のワークロードへ影響しない。
- リアルタイムの可視化や分析を行いたい場合には最適か。
Synapse Studio
- プールとパイプラインを対話形式で実行できるWebインターフェース
- プールで実行する処理、パイプラインの開発や、実行状況のモニタリングが行える
- Azureポータルから直接アクセス可能
他のデータ分析ソリューションとの違い
Azure Data Factoryとの違い
自分のおぼろげな理解では、Data FactoryはETLに強く、Synapseはその後のデータ分析、PowerBIと連携した可視化含めて全てをカバーできる、というイメージでしたが、改めて調べてみました。
まず、公式Docに説明がありました。ん・・・SynapseのDocなのにData Factoryの方がカバー範囲が広いようなまとめられ方がしていますが、それでいいんだっけ?笑
もう少し調べてみると、以下のブログに細かい違い含めてまとめられていました。
(要約は工事中)
Azure Synapse Analyticsについてもっと勉強するなら?
とっかかりとしては、無料で利用できるMicrosoft Learnがとてもおすすめです。
下記以外にも、Synapse Analyticsが登場するラーニングパスは複数あるので、ぜひ検索してみてください。
また、より詳細なMicrosoftの公式ドキュメントは、以下にあります。
https://docs.microsoft.com/ja-jp/azure/synapse-analytics/
Azure Synpase Analytics一通り触ってみた
一通り触ってみた記事もまとめてみました。こちらも参考になりましたら幸いです。
以上、Azure Synapse Analyticsの概要についてまとめてみました。ご参考になりましたら幸いです。この記事が少しでもお役に立ちましたら下のいいねボタンをポチって頂けると励みになります。
おしまい
コメントを残す