【Azure Synapse Analytics】Public Preview ～ GA にかけて実装されたアップデート内容のおさらい

# はじめに

本記事は [Azure SQL & Synapse Analytics Advent Calendar 2020](https://qiita.com/advent-calendar/2020/azure-sqldb-and-synapse) の 15 日目の投稿です。

先日 Azure Synapse Analytics がめでたく GA されました！Public Preview が提供開始されてから GA に至るまでに多くの機能強化が図られましたが、特に 2020 年 9 月に開催された Microsoft Ignite 以降に非常に多くのアップデートがありました。

本記事ではそんな Azure Synapse Analytics の直近のアップデート情報をまとめていきます。 [Azure Update](https://azure.microsoft.com/ja-jp/updates/) に掲載されてこない情報も多数あり自分の把握できた範囲での内容となりますが、可能な限りご紹介していきたいと思います。

以下、カテゴリごとに紹介していきます。

## ワークスペース

### Synapse SQL のリブランディング・名称変更

Public Preview 時点では T-SQL の実行環境として従来の Azure SQL DataWarehouse を継承した SQL pool とサーバーレスな実行環境である SQL-on-demand の 2 つが提供されていました。

今回、両者が Synapse SQL という統一的な名称の下でリブランディングされ、それまでの SQL pool が dedicated SQL pool、同じく SQL-on-demand が serverless SQL pool にそれぞれ名称変更されました。

参考: [Azure Synapse Analytics の用語-Synapse SQL](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/overview-terminology#synapse-sql)

### Knowledge Center

Azure Synapse Analytics をすぐに使い始められるよう、サンプルデータやコードギャラリーを集約した Knowledge Center が提供されました。

参考: [Synapse Knowledge Center を探索する](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/get-started-knowledge-center)

関連記事: [Azure Synapse Analytics の Knowledge Center を触ってみた](https://qiita.com/yoneya-fumihiko/items/2a937b079d319b2baa74)

### Git 連携

Synapse Studio で作成した SQL や Notebook、Pipeline は規定では Synapse サービス内で管理されますが、GA に伴いソース管理機能が提供され Azure DevOps や GitHub との関連付けが可能になりました。

これにより、エンジニア間でのコラボレーションや CI/CD がより円滑に進められる環境が整ったといえます。

参考: [Azure Synapse Studio でのソース管理](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/cicd/source-control)

### フォルダー作成

Synapse Studio で作成したファイルはこれまで単一の階層でしか配置できずファイル数が増加した際の管理が煩雑になりがちでしたが、フォルダーを作成しその配下でファイルを管理できるようになりました。

参考: [Azure Synapse Analytics についてよく寄せられる質問](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/overview-faq#q-will-synapse-workspace-support-folder-organization-of-objects-and-granularity-at-ga)

### Monitor Hub の表示項目

Monitor Hub の Analtyics pools で SQL pools と Apache Spark pools の項目が分離され、それぞれの情報を個別に確認しやすくなりました。

また、SQL requests で serverless SQL pool の過去の実行履歴が参照可能になりました。

参考: [Synapse ワークスペースを監視する](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/get-started-monitor)

## Synapse SQL

### serverless SQL pool でのスキーマの自動検出

serverless SQL pool で OPENROWSET 関数を使う際に、 WITH 句を省略した暗黙的なスキーマ推論の記述がサポートされました。

参考: [Azure Synapse Analytics でサーバーレス SQL プール (プレビュー) を使う際の OPENROWSET の使用方法-スキーマの自動検出](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/sql/develop-openrowset#automatic-schema-discovery)

関連記事: [【Azure Synapse Analytics】serverless SQL pool で CSV ファイルのスキーマを自動検出する](https://qiita.com/yoneya-fumihiko/items/ec3a582bfe22f7408cab)

### serverless SQL pool でのストアドプロシージャ作成

serverless SQL pool でストアドプロシージャの作成と実行がサポートされました。

参考: [Azure Synapse Analytics での Synapse SQL を使用したストアド プロシージャ](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/sql/develop-stored-procedures)

### serverless SQL pool のコスト管理

serverless SQL pool にコスト管理機能が実装され、データ処理量の予算を 1 日、1 週間、1 か月の期間で TB 単位で設定できるようになりました。

参考: [Azure Synapse Analytics でのサーバーレス SQL プールのコスト管理](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/sql/data-processed#cost-control)

## Apache Spark

### Microsoft Spark Utilities の提供

ファイルシステム操作や環境変数の取得をサポートするパッケージとして Microsoft Spark Utilities が提供されました。

参考: [Microsoft Spark Utilities の概要](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/spark/microsoft-spark-utilities?pivots=programming-language-csharp)

### 新しい Notebook エクスペリエンス(Preview)

生産性やコラボレーションの最大化のため、新しい Synapse Notebook エクスペリエンスがプレビュー提供されました。

参考: [Azure Synapse Analytics で Synapse Studio ノートブックを作成、開発、管理する](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/spark/apache-spark-development-using-notebooks?tabs=classical#preview-of-the-new-notebook-experience)

## Synapse Link

### Azure Synapse Link for Azure Cosmos DB の serverless SQL pool のサポート(Preview)

Synapse Link で Spark pool に加え serverless SQL pool での対応がプレビュー提供されました。Spark pool と比べた場合に、現時点ではいくつか機能制限があります。詳細は以下に記載の通りです。

参考: [Azure Cosmos DB 用の Azure Synapse Link でサポートされる機能](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/synapse-link/concept-synapse-link-cosmos-db-support)

## パイプラインとデータフロー

### ラングリングデータフロー(Preview)

Power Query をベースとしたラングリングデータフローが Azure Data Facory 同様にプレビュー提供されました。(注:本稿執筆時点においても Microsoft Docs では非対応扱いなのですが、Synapse Studio からは利用可能です。)

関連記事: [Azure Synapse Analytics のラングリングデータフローでデータ変換を行う](https://qiita.com/yoneya-fumihiko/items/2eddbd16166a9610b69e)

## Machine Learning

### dedicated SQL pool 向けの機械学習モデル スコアリング ウィザード

Azure Machine Learning で作成した機械学習モデルを dedicated SQL pool に配置し、SQL スコアリング ウィザードを使用して機械学習モデルを使った予測ができるようになりました。

参考: [チュートリアル:専用 SQL プール向けの機械学習モデル スコアリング ウィザード (プレビュー)](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/machine-learning/tutorial-sql-pool-model-scoring-wizard)

### Synapse Studio での Azure Machine Learning の AutoML を使用した機械学習モデルトレーニング

Azure Machine Learning の AutoML を使用した機械学習モデルのトレーニングが Synapse Studio の GUI でノンコーディングでできるようになりました。

参考: [チュートリアル:AutoML を使用した Azure Synapse でのコード不要の機械学習モデル トレーニング (プレビュー)](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/machine-learning/tutorial-automl)

### Cognitive Services を使用した感情分析/異常検出(Preview)

Synapse 上のデータに対して Cognitive Services を連携させた感情分析/異常検出を実施できるようになりました。

参考: [チュートリアル:Cognitive Services を使用した感情分析 (プレビュー)](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/machine-learning/tutorial-cognitive-services-sentiment)

参考: [チュートリアル:Cognitive Services を使用した異常検出 (プレビュー)](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/machine-learning/tutorial-cognitive-services-anomaly)

## おわりに

今回まとめ直して、Synapse Analytics のカバー範囲の広さに改めて気づかされました。Synapse Link 等、自分であまり触れていない機能も沢山あるため、今後も理解を深めて情報発信し続けていきたいと思います。