次の方法で共有


SQL Server の PolyBase によるデータ仮想化

適用対象: 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 2025 PolyBase の機能強化

SQL Server 2025 (17.x) プレビューの新機能 説明
CSV、Parquet、デルタ 1 のネイティブ サポート 外部データのインストールに対する PolyBase クエリ サービスは、次の種類の外部データで OPENROWSETCREATE 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 互換オブジェクト ストレージが追加されます。 OPENROWSETCREATE 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 のインスタンスで次のようにします。

  1. Windows に PolyBase をインストールするか、Linux に PolyBase をインストールします。
  2. SQL Server 2019 (15.x) 以降では、必要に応じて、sp_configure で PolyBase を有効にします
  3. 外部データ ソースを作成します。
  4. 外部テーブルを作成します。

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 の概要」を参照してください。

さまざまな外部データ ソースに関するチュートリアルについては、以下を参照してください。

他のプラットフォームでのデータ仮想化

データ仮想化機能は、他のプラットフォームでも使用できます。