【Microsoft Azure】Azure Synapse Analyticsでできることを理解する

こんばんは。今日は、これまでずっと興味のあったAzure Synapse Analyticsについて、勉強してみる夜にしようと思います。

MicrosoftのAzure系資格は一通り取ったのですが、そういえばこの辺りのビッグデータ周りはあまり深くは学ばなかったような・・・(記憶が飛んでいるだけかなぁ笑)

というわけでは、まずは、概要をしっかりと整理しておこうと思います。将来の自分への備忘も兼ねたメモとしたいと思います。

なお、以下は私が公式ドキュメントを読んだりして理解した内容として書いていますので、正確でない場合もあるかと思います。その際には、コメント等でご指摘をいただけますと幸いです><

(内容は工事中で、順次拡張予定です)

Azure Synapse Analyticsとは?

https://docs.microsoft.com/ja-jp/azure/synapse-analytics/overview-what-is

  • 統合型の分析プラットフォームであり、データ ウェアハウス、ビッグ データ分析、データ統合、視覚化を 1 つの環境に結合したもの

Microsoftの方がまとめたこのスライドが参考にできそうです。

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ポータルから直接アクセス可能

(参考)https://docs.microsoft.com/ja-jp/learn/modules/explore-data-storage-processing-azure/3-explore-azure-synapse-analytics

他のデータ分析ソリューションとの違い

Azure Data Factoryとの違い

自分のおぼろげな理解では、Data FactoryはETLに強く、Synapseはその後のデータ分析、PowerBIと連携した可視化含めて全てをカバーできる、というイメージでしたが、改めて調べてみました。

まず、公式Docに説明がありました。ん・・・SynapseのDocなのにData Factoryの方がカバー範囲が広いようなまとめられ方がしていますが、それでいいんだっけ?笑

https://docs.microsoft.com/ja-jp/azure/synapse-analytics/data-integration/concepts-data-factory-differences

もう少し調べてみると、以下のブログに細かい違い含めてまとめられていました。

https://www.mssqltips.com/sqlservertip/6678/azure-synapse-analytics-vs-azure-data-factory-building-synapse-pipeline/

(要約は工事中)

Azure Synapse Analyticsについてもっと勉強するなら?

とっかかりとしては、無料で利用できるMicrosoft Learnがとてもおすすめです。

下記以外にも、Synapse Analyticsが登場するラーニングパスは複数あるので、ぜひ検索してみてください。

https://docs.microsoft.com/ja-jp/learn/paths/realize-integrated-analytical-solutions-with-azure-synapse-analytics/

また、より詳細なMicrosoftの公式ドキュメントは、以下にあります。

https://docs.microsoft.com/ja-jp/azure/synapse-analytics/

以上、Azure Synapse Analyticsの概要についてまとめてみました。ご参考になりましたら幸いです。

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US

Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。