Azure Council Experts 定例会のセッションスライドです。
Introduction toAzure Synapse Analytics2021.4.16Azure Council Experts 定例会
View Slide
自己紹介原 敏之(Toshiyuki Hara)株式会社ネクストスケープMicrosoft Azure の導入支援やクラウドネイティブなアプリケーション開発をしています。https://www.nextscape.net/Microsoft MVP for Microsoft Azure 2017 〜ROMANCE DAWN for the new worldhttps://gooner.hateblo.jp/Japan Azure User Group(JAZUG)Microsoft Azure のゆるふわなコミュニティhttps://jazug.connpass.com/2Copyright© 2021, JAZUG All Rights Reserved.
データ分析基盤 構築支援サービス3Copyright© 2021, JAZUG All Rights Reserved.
GoalAzure Synapse Analytics の概要を知るデータ分析プラットフォームの作り方が分かる4Copyright© 2021, JAZUG All Rights Reserved.
Azure Synapse AnalyticsOverview概要と特徴5Copyright© 2021, JAZUG All Rights Reserved.
Azure Synapse Analytics とは?Azure Synapse Analytics は、データのインジェスト → 分析 →可視化のための開発やモニタリングを、統合して管理できるデータ分析プラットフォームです。6Copyright© 2021, JAZUG All Rights Reserved.従来の Azure Data Platform Azure Synapse Analytics
Synapse StudioAzure Synapse Analytics を構成するリソース群をまとめて管理できるポータルサイトです。Copyright© 2021, JAZUG All Rights Reserved.7Hub DescriptionData ・Synapse Analytics 内のデータベースや外部データソースにアクセスする。Develop ・SQL Script、Notebook、Data flow を管理する。Integrate ・Data Factory ライクなデータ統合パイプラインを管理する。Monitor ・パイプラインやトリガーの実行状況を監視する。Manage ・SQL Pool と Spark Pool のスペックやインスタンスを管理する。・権限の付与や閉域ネットワークなどのセキュリティを管理する。・Synapse Analytics のアーティファクトを Git Repository で管理する。
SQL Pool – Dedicated SQL PoolMassively Parallel Processing(MPP)による並列処理が可能なデータウェアハウスです。(旧称 SQL Data Warehouse)Copyright© 2021, JAZUG All Rights Reserved.8SQL Server がベースのデータウェアハウスT-SQL クエリを実行でき、SSMS など使い慣れたツールで管理できるスター スキーマと呼ばれる構造化されたリレーショナル形式でモデリングコンピューティングとストレージを分離したスケールアウト アーキテクチャCompute Node は最大 60 個データは Azure Storage に配置され、容量は無制限パフォーマンスレベルは、DWU で指定するデータのパーティションやインデックスをチューニングして、効率的に並列処理させる
SQL Pool – Serverless SQL PoolAzure Data Lake Storage に格納したファイルに対して、T-SQLクエリを実行できる論理的なデータウェアハウスです。Copyright© 2021, JAZUG All Rights Reserved.9T-SQL クエリを実行可能なエンドポイントOPENROWSET 関数でファイルを読み取り、スキーマの自動検出も可能対応ファイル形式は、CSV / JSON / Parquetクエリを最適化する Materialized View などはない事前に Compute Node がプロビジョニングされていないサーバーレス アーキテクチャDQP が空いている Compute Node を探して、クエリを分割して実行する専用のローカルストレージをもたないクエリで返されるデータ量に基づいた課金(1日、1週間、1か月で利用上限を設定可能)
Apache Spark PoolSpark を使ってデータをメモリにキャッシュし、並列分散処理によるパフォーマンスに優れた分析エンジンです。Copyright© 2021, JAZUG All Rights Reserved.10✓ Synapse Studio に Notebook が統合されており、Apache Spark クラスタを立ち上げてジョブを実行できる。✓ PySpark (Python)✓ Spark (Scala)✓ SparkSQL✓ .NET for Apache Spark (C#) 。✓ DataFrame を Spark テーブルに格納すれば、T-SQL クエリを実行できる
Synapse PipelineAzure Data Factory と同様に、データの移動や変換のステップを含んだパイプラインを作成し、トリガーでスケジューリングできる ETL ツールです。Copyright© 2021, JAZUG All Rights Reserved.11Object DescriptionPipeline ・Activity が複数集まったもの・ワークフローを構築し、トリガー実行するActivity ・データ移動、データ変換、フロー制御の3種類・統合ランタイム(VM)で実行されるLinked Service ・Activity から利用するデータストアの接続情報Data Set ・接続先データストアのテーブルやファイル・Activity から Data Set に書き込みや読み取りする
Azure Synapse Link for Azure Cosmos DBAzure Cosmos DB と Azure Synapse Analytics をシームレスに統合できるサービスです。業務トランザクションデータに対して、システムのパフォーマンスに影響を与えず、リアルタイムに分析できる完全に分離された列指向な Azure Cosmos DB 分析ストアCopyright© 2021, JAZUG All Rights Reserved.12
Case Study売上分析プラットフォームを構築する13Copyright© 2021, JAZUG All Rights Reserved.
売上分析プラットフォーム各店舗の POS システムから売上データを収集し、全店舗のデータをまとめた横断的な売上分析を行う想定シナリオです。Copyright© 2021, JAZUG All Rights Reserved.14各店舗の売上データは、日次単位で XML形式のファイルがアップロードされる各店舗の顧客マスターは、バラバラのローカルコードが使われているため、標準顧客マスターのコードをマッピングする全店舗の売上データを集めて、顧客ごとの売上状況を分析する
売上データの準備Blob Storage にアップロードする XML のデータは、mockarooというサイトを使って、売上データを作ります。Copyright© 2021, JAZUG All Rights Reserved.15https://www.mockaroo.com/作成した売上データの XML
Ingest LayerIngest Layer は、収集したデータから Data Lake を作る責務を持ちます。Copyright© 2021, JAZUG All Rights Reserved.16Copy Data で Blob Storage の XML を Parquet に変換し、Data Lake Storage Gen2 にコピーするパイプラインを作成します。
Ingest LayerData Lake には、XML の階層データがフラット化された形式で蓄積されます。Copyright© 2021, JAZUG All Rights Reserved.17
Batch LayerBatch Layer は、Data Lake から DWH を作る責務を持ちます。Copyright© 2021, JAZUG All Rights Reserved.18✓ Mapping Data Flow で Data Lake Storage Gen2 の Parquet から Dedicated SQL Pool に売上データを取り込むパイプラインを作成します。✓ 売上データを取り込む過程で、SQL Database の顧客マスターと突き合わせて、各店舗のローカルコードを標準コードに変換します。
Batch LayerDWH には、標準顧客コードをマッピングした売上データがDedicated SQL Pool の Sales テーブルに蓄積されます。Copyright© 2021, JAZUG All Rights Reserved.19
Serving LayerServing Layer は、DWH から Data Mart を作る責務を持ちます。Copyright© 2021, JAZUG All Rights Reserved.20Mapping Data Flow を使って、Dedicated SQL Pool の売上データからSQL Database に顧客別売上データを取り込むパイプラインを作成します。Data Mart には、顧客別売上データが SQL Databaseの SalesByCustomer テーブルに蓄積されます。
Conclusionまとめ21Copyright© 2021, JAZUG All Rights Reserved.
まとめAzure Synapse Analytics は、使い慣れた T-SQL や GUI だけでなく、Spark を組み合わせることもできる統合分析サービスです。データは構造化・非構造化を問わず一元管理データの収集・加工・蓄積をパイプラインで統合モニタリングでパイプラインの実行を監視Azure Active Directory 認証によるセキュリティ強化22Copyright© 2021, JAZUG All Rights Reserved.
参考資料Azure Synapse Analytics の公式ドキュメントhttps://docs.microsoft.com/ja-jp/azure/synapse-analytics/Azure Synapse Analytics で分析ソリューションの統合を実現するhttps://docs.microsoft.com/ja-jp/learn/paths/realize-integrated-analytical-solutions-with-azure-synapse-analytics/Azure Synapse Analytics を使って売上分析プラットフォームを作ってみたhttps://gooner.hateblo.jp/entry/2021/01/12/09232023Copyright© 2021, JAZUG All Rights Reserved.