調べた事などを中心に記載します。
#Azure Synapse Analytics SQLプール(旧:SQL Data Warehouse)とは
Azure Synapseはデータウェアハウスとビックデータ分析がまとめられたサービスであり、Synapse SQL プールはデータウェアハウス機能の事を指す。(旧名称:SQL Data Warehouse)
特長は以下の通りです。
##エンジンの基盤はRDBMSで実績のあるSQL Server
Synapse SQLプールのエンジンの基盤はSQL Serverであり、RDBMSです。なので、扱うデータは、Hadoopのような非定型のデータではなく、定型データをリレーショナル管理により取り扱う事になります。
エンジンがSQL Serverと言う事は非常に重要で、SQL Serverのストアドやユーザ定義、パーティション分割、インデックス等に特殊性が少なく互換性が高い為、SQL Serverを扱った事のあるエンジニアはSynapse SQLプールを扱う為に新たな知識やスキルを身につける事は非常に少なく、ストレス少なく扱う事が可能です。
勿論SSMS(SQL Server Management Studio)から接続し、操作する事もできます。
##並列分散アーキテクチャ
SQL Serverと同じRDBMSであると説明しましたが、大量かつ大容量のデータを取り扱う為、様々なアーキテクチャや機能が実装されており、異なる点も多くあります。主な機能の一つが超並列分散処理(MPP)です。Synapse SQLプールは、データと処理機能を複数のノード(コンピュータ)に分散し、1つのデータベースとして扱います。ようするに非常に大量のデータであったとしても分割し、処理を行う事で、高速に処理が行えるようになると言う事です。例えば1億件のデータがあったとしても、10分割すれば、1000万件のデータが10個になり、この10個を並列で処理する事で高速化を測っています。今の例は10分割で説明しましたが、分割は多ければ多いほど、高速に処理が可能となり、理論上は線形にクエリ性能が向上します。
##3層構造のアーキテクチャ
Synapse SQLプール前述した通り超並列処理(MPP)分散データシステムです。この機能により単一のシステムよりもはるかに大量のデータ処理を可能にしていますが、このSynapse SQLプールはいわゆる3層構造のクラスタ―構成となっています。
###制御ノード(コントロールノード)
接続を受け付け、クエリを受け取るノード
###計算ノード(コンピュートノード)
コントロールノードから処理を受け取り、分散処理を行うノード
###ストレージ
処理対象となるデータを分散して格納。(60分割されている)
計算ノードはその台数を増やすことが可能で、最大60台まで台数を増やすことができ、処理の並列数を高める事が出来ます。データを格納するストレージですが、これは最初から60に分割されたストレージが用意されており、データは60分割されて格納されることになります。計算ノードが最大60台まで台数が増やすことが出来るのは、60に分割されたストレージ領域に起因し、基本的には6の倍数しか計算ノードを増やすことが出来ません。
1台の制御ノード、複数台の計算ノード、60のストレージはそれぞれ分離されており、計算ノード、ストレージでそれぞれ別々に従量課金が発生します。(制御ノードは無料です。)
また、それぞれが分離されている事により以下の機能を可能にしています。
- データベースの停止
- 瞬時にスケールアウト、スケールインが可能__