3
1

More than 3 years have passed since last update.

Azure Synapse Analytics SQLプールのPolyBaseについて

Posted at

Azure Synapse Analytics SQLプールのPolyBaseについて調べましたのでメモ程度に

PolyBaseを使ったデータロード

Azure Synapse Analytics SQLプールでは様々なデータロードの方法がSQL Server同様にサポートされています。その中でもPolyBaseはデータベースへ非常に高速にデータをロード事が可能なロード方法です。Azure Synapse Analytics SQLプールが大量のデータを取り扱う特性上、大量のデータを高速にロードする方法は重要です。

PolyBaseを使ったロード方法は以下の通りです。

  • データをAzure Blob Storage、Hadoop、Azure Data Lake Storage Gen2のいずれかにデータを格納
  • Synapse SQLプールにてAzure Blob Storageのデータ格納場所とデータ形式を定義し外部表を作成
  • Synapse SQLプールのテーブルへ外部表からInsert SELECTを実施

PolyBaseが高速な理由

3層アーキテクチャでの処理の実行

PolyBaseが高速にロードできるのには理由があります。Synapse SQLプールは1つのコントロールノード、複数のコンピュートノード、60のディストリビューションにより構成されています。Synapse SQLプールにてSELECT分等のSQLを実行する場合、複数あるコンピュートノードに処理を分割して実行し、最後コントロールノードで集計を行います。
image.png

このアーキテクチャについては以下の記事に簡単にまとめております。
Azure Synapse Analytics SQLプール(旧:SQL Data Warehouse)とは

ロード時にボトルネックになることのあるコントロールノード

一方、Synapse SQLプールにデータを投入することを考えると、コントロールノードが1つしかない為、ここがボトルネックに陥りがちです。

image.png

PolyBaseはコンピュートノードが直接データをロード

PolyBaseを使ったロードの場合はコントロールノードを利用せず、直接コンピュートノードを使ってパラレルロードを行う仕様になっているようです。これにより高速にロードすることが可能です。

image.png

なので、PolyBaseを使ったロードの場合、コンピュートノードの数やスペックによりロード性能が異なります。

終わりに

具体的なPolyBaseの手順と性能はまたどこかで検証し記載したいと思います。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1