適用対象: SQL Server
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
PolyBase を使用すると、SQL Server のデータ仮想化が可能になります。
PolyBase とは
PolyBase を使用すると、SQL Server インスタンスは、クライアント接続ソフトウェアを個別にインストールすることなく、SQL Server、Oracle、Teradata、MongoDB、Hadoop クラスター、Cosmos DB、S3 互換オブジェクト ストレージから直接、Transact-SQL (T-SQL) を使用してデータにクエリを実行できます。 また、汎用 ODBC コネクタを使用して、サードパーティの ODBC ドライバーを使用して追加のプロバイダーに接続することもできます。 PolyBase を使用すると、T-SQL クエリで、外部ソースからのデータを SQL Server のインスタンス内のリレーショナル テーブルに結合できるようになります。
PolyBase では、CSV、Parquet、JSON、Delta Lake ファイルなどの半構造化および構造化されたファイル ベースのデータ形式のクエリもサポートしています。 これにより、ファイル ベースのデータを T-SQL ワークフローにシームレスに統合できます。
PolyBase 機能を使用したデータの仮想化の主な用途は、データを元の場所と形式で維持されるようにすることです。 SQL Server インスタンスを介して外部データを仮想化し、SQL Server 内の他のテーブルと同じようにクエリを行うことができます。 このプロセスにより、データ移動に必要な ETL プロセスを最小化できます。 このデータ仮想化シナリオは、PolyBase コネクタを使用することによって実現します。
サポートされる SQL 製品とサービス
PolyBase では、次の Microsoft の SQL 製品にこれらと同じ機能を提供します。
SQL Server 2016 (13.x) 以降のバージョン (Windows)
SQL Server 2019 (15.x) 以降のバージョン (Windows と Linux)
Azure SQL Managed Instance の詳細については、Azure SQL Managed Instance を使用したデータ仮想化の確認
Azure SQL Database の詳細については、Azure SQL Database を使用したデータ仮想化 (プレビュー) を確認してください
SQL Server Analytics Platform System (PDW)
Azure Synapse Analytics (専用 SQL プール用)
- Azure Synapse Analytics のデータ仮想化は、PolyBase とネイティブの 2 つのモードで利用できます。 詳しくは、「Synapse SQL で外部テーブルを使用する」を参照してください。
SQL Server 2025 PolyBase の機能強化
| SQL Server 2025 (17.x) プレビューの新機能 | 説明 |
|---|---|
| CSV、Parquet、デルタ 1 のネイティブ サポート | 外部データのインストールに対する PolyBase クエリ サービスは、次の種類の外部データで OPENROWSET、 CREATE EXTERNAL TABLE、または CREATE EXTERNAL TABLE AS SELECT を使用する必要がなくなりました:Parquet、Delta、Azure Blob Storage (ABS)、Azure Data Lake Storage (ADLS)、または S3-Compatible オブジェクト ストレージ。 |
| Linux で汎用 ODBC データ ソースを使用する | 詳細については、「 ODBC ジェネリック型を使用して外部データにアクセスするように PolyBase を構成する」を参照してください。 |
| TDS 8.0 のサポート | Windows で Microsoft ODBC Driver for SQL Server の機能を使用する場合、外部データ ソースとして SQL Server で TDS 8.0 を使用できます。 SQL Server 2025 プレビューの破壊的変更を確認します。 |
| マネージド ID | マネージド ID は、Azure VM 上の Azure Arc および SQL Server 2025 によって有効になっている SQL Server で使用できます。 |
1 SQL Server 2025 (17.x) プレビューでは、外部データに対する PolyBase クエリ サービスは、他のデータベースと接続するために引き続き必要です。 たとえば、SQL Server、Oracle、DB2、Teradata、MongoDB、ODBC などです。
SQL Server 2022 PolyBase の機能強化
| SQL Server 2022 (16.x) の新機能 | 説明 |
|---|---|
| S3 互換オブジェクト ストレージ | SQL Server 2022 (16.x) では、S3 REST API を使用して、新しいコネクタ、S3 互換オブジェクト ストレージが追加されます。 OPENROWSET と CREATE EXTERNAL TABLE の両方を使用して、S3 互換オブジェクト ストレージ内のデータ ファイルに対してクエリを実行できます。 |
| PolyBase サービスとは別の一部のコネクタ | S3 互換オブジェクト ストレージ コネクタ、ADSL Gen2、および Azure Blob Storage は、PolyBase サービスに依存しなくなりました。 Oracle、Teradata、MongoDB、汎用 ODBC との接続をサポートするには、PolyBase サービスを引き続き実行する必要があります。 PolyBase 機能は、引き続き SQL Server インスタンスにインストールする必要があります。 |
| Parquet ファイル形式 | PolyBase では、S3 互換オブジェクト ストレージに格納されている Parquet ファイルのデータに対してクエリを実行できるようになりました。 詳細については、PolyBase を使用した S3 互換オブジェクト ストレージ内の Parquet ファイルの仮想化に関するページを参照してください。 |
| Delta テーブル形式 | PolyBase では、S3 互換のオブジェクト ストレージ、Azure Storage Account V2、および Azure Data Lake Storage Gen2 に格納されている Delta テーブル形式のデータをクエリ (読み取り専用) できるようになりました。 詳細については、「PolyBase を使用してデルタ テーブルを仮想化する」を参照してください。 |
| Select として外部テーブルを作成する (CETAS) | PolyBase では、CETAS を使用して外部テーブルを作成し、Transact-SQL SELECT ステートメントの結果を Azure Data Lake Storage Gen2、Azure Storage Account V2、および S3 互換オブジェクト ストレージにエクスポートできるようになりました。 詳細については、 CREATE EXTERNAL TABLE AS SELECT (CETAS) を参照してください。 |
SQL Server 2022 (16.x) のその他の新機能については、「 SQL Server 2022 の新機能」を参照してください。
ヒント
SQL Server 2022 (16.x) の PolyBase の機能と性能のチュートリアルについては、「SQL Server 2022 での PolyBase の概要」を参照してください。
PolyBase コネクタ
PolyBase 機能は、次の外部データ ソースへの接続を提供します。
| 外部データ ソース | PolyBase を使用した SQL Server 2016 から 2019 | PolyBase を使用した SQL Server 2022 (16.x) | APS PDW | Azure Synapse Analytics |
|---|---|---|---|---|
| Oracle、MongoDB、Teradata | お読みください | お読みください | いいえ | いいえ |
| 汎用 ODBC | 読み取り (Windows のみ) | 読み取り (Windows のみ) | いいえ | いいえ |
| Azure Storage | 読み取り/書き込み | 読み取り/書き込み | 読み取り/書き込み | 読み取り/書き込み |
| Hadoop | 読み取り/書き込み | いいえ | 読み取り/書き込み | いいえ |
| SQL Server | お読みください | お読みください | いいえ | いいえ |
| S3 互換オブジェクト ストレージ | いいえ | 読み取り/書き込み | いいえ | いいえ |
- SQL Server 2022 (16.x) 以降のバージョンでは Hadoop はサポートされていません。
- SQL Server 2016 (13.x) では、Hadoop および Azure Blob Storage への接続をサポートする PolyBase が導入されました。
- SQL Server 2019 (15.x) では、SQL Server、Oracle、Teradata、MongoDB など、より多くのコネクタが導入されました。
- SQL Server 2022 (16.x) では、S3 互換ストレージ コネクタが導入されました。
- SQL Server 2019 (15.x) の累積的な更新プログラム 19 に、Oracle TNS のサポートが導入されました。
- SQL Server 2022 (16.x) の累積的な更新プログラム 2 に、Oracle TNS のサポートが導入されました。
外部コネクタの例を次に示します。
1 PolyBase では、SQL Server 2019 を通じて、Hortonworks Data Platform (HDP) と Cloudera Distributed Hadoop (CDH) の 2 つの Hadoop プロバイダーがサポートされています。 HDFS Cloudera (CDP) および Hortonworks (HDP) 外部データ ソースに対する SQL Server のサポートは廃止され、SQL Server 2022 (16.x) 以降のバージョンには含まれていません。 詳細については、「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。
PolyBase を使用するには SQL Server のインスタンスで次のようにします。
- Windows に PolyBase をインストールするか、Linux に PolyBase をインストールします。
- SQL Server 2019 (15.x) 以降では、必要に応じて、sp_configure で PolyBase を有効にします。
- 外部データ ソースを作成します。
- 外部テーブルを作成します。
Azure との統合
下層 の PolyBase のサポートにより、T-SQL クエリでは Azure Blob Storage のデータをインポートおよびエクスポートすることもできます。 さらに、PolyBase によって、Azure Synapse Analytics で Azure Data Lake Store および Azure Blob Storage のデータをインポートおよびエクスポートできるようになります。
PolyBase を使用する理由
PolyBase を使用すると、SQL Server インスタンスのデータを外部データと結合できます。 PolyBase が外部データ ソースへのデータの結合を許可する前に、次のいずれかを実行できます。
- すべてのデータが 1 つの場所に配置されるように、データの半分を転送します。
- 両方のデータのソースに対してクエリを実行した後、クライアント レベルでデータを結合および統合するためにカスタムのクエリ ロジックを記述する。
PolyBase を使用すると、Transact-SQL を使用してデータを結合できます。
PolyBase では、Hadoop 環境に追加のソフトウェアをインストールする必要はありません。 外部データを照会するには、データベース テーブルの照会に使用したのと同じ T-SQL 構文を使用します。 PolyBase が実装する補助的なアクションは、すべて透過的に実行されます。 クエリ作成者は、外部ソースに関する知識を必要としません。
PolyBase の使用
PolyBase を使用すると、SQL Server で次のシナリオに対応できます。
- シームレスなデータ アクセス: T-SQL を使用して、他の RDBM や CSV、Parquet、Delta Lake テーブルなどの外部ファイルをネイティブ テーブルと同様に照会します。
- コールド データの読み込みオフ: 簡単にアクセスできる状態を維持しながら。
- 生産性の向上: 複数のソースからのデータを統合および分析するために必要な時間と労力を削減します。
- コスト効率: 従来のデータ統合方法に関連するデータ レプリケーションとストレージ コストの必要性を最小限に抑えます。
- リアルタイムの分析情報: データの移動や同期によって発生する遅延なしで、リアルタイムのデータ クエリと分析情報を有効にします。
- 安全: 詳細なアクセス許可、資格情報の管理、および制御には、SQL Server のセキュリティ機能を使用します。
パフォーマンス
クエリできるファイル数やデータ量に厳密な制限はありません。 クエリのパフォーマンスは、データ量、データ形式、データの編成方法、およびクエリと結合の複雑さによって異なります。
PolyBase のパフォーマンス ガイダンスとレコメンデーションの詳細については、「PolyBase for SQL Server のパフォーマンスに関する考慮事項」を参照してください。
SQL Server 2022 へのアップグレード
SQL Server 2022 (16.x) 以降では、Hortonworks Data Platform (HDP) と Cloudera Distributed Hadoop (CDH) はサポートされなくなりました。 これらの変更により、SQL Server 2022 (16.x) 以降に移行する前に、 TYPE = HADOOP または Azure Storage を使用する以前のバージョンの SQL Server で作成された PolyBase 外部データ ソースを手動で削除する必要があります。 外部データ ソースを削除するには、データベース スコープの資格情報や外部テーブルなどの関連付けられているデータベース オブジェクトも削除する必要があります。
Azure Storage コネクタは、次の参照表に基づいて変更する必要があります。
| 外部データ ソース | 送信者 | 受信先 |
|---|---|---|
| Azure Blob Storage | wasb[s] |
abs |
| ADLS Gen 2 | abfs[s] |
adls |
概要
PolyBase を使用する前に、Windows に PolyBase をインストールするか、Linux に PolyBase をインストールし、必要に応じて sp_configure で PolyBase を有効にする必要があります。
PolyBase の機能と性能のチュートリアルについては、「SQL Server 2022 での PolyBase の概要」を参照してください。
さまざまな外部データ ソースに関するチュートリアルについては、以下を参照してください。
- Hadoop
- Azure Blob Storage
- SQL Server
- オラクル
- Teradata
- MongoDB
- ODBC ジェネリック型
- S3 互換オブジェクト ストレージ
- CSV ファイル
- Parquet ファイル
- Delta テーブル
他のプラットフォームでのデータ仮想化
データ仮想化機能は、他のプラットフォームでも使用できます。
- Synapse SQL で外部テーブルを使用します。
- Azure SQL Managed Instance によるデータ仮想化
- Azure SQL Database を使用したデータ仮想化 (プレビュー)