PolyBase によるデータ仮想化の概要

適用対象: SQL Server Azure SQL Database Azure Synapse Analytics Parallel Data Warehouse

PolyBase は、SQL Server 用のデータ仮想化機能です。

PolyBase とは

PolyBase を使用すると、SQL Server インスタンスにより、クライアント接続ソフトウェアを別途インストールしなくても、SQL Server、Oracle、Teradata、MongoDB、Hadoop クラスター、Cosmos DB から T-SQL を使用してデータを直接照会できます。 また、汎用 ODBC コネクタを使用して、サードパーティの ODBC ドライバーを使用して追加のプロバイダーに接続することもできます。 PolyBase を使用すると、T-SQL クエリで、外部ソースからのデータを SQL Server のインスタンス内のリレーショナル テーブルに結合できるようになります。

PolyBase 機能を使用したデータの仮想化の主な用途は、データを元の場所と形式で維持されるようにすることです。 SQL Server インスタンスを介してデータを仮想化して、SQL Server 内の他のテーブルと同じようにクエリを行うことができます。 このプロセスにより、データ移動に必要な ETL プロセスを最小化できます。 このデータ仮想化シナリオは、PolyBase コネクタを使用することによって実現します。

注意

PolyBase 機能の一部の機能は、Azure SQL マネージド インスタンス のプライベート プレビューに含まれており、これには Azure Data Lake Storage (ADLS) Gen2 で外部データ (Parquet ファイル) に対してクエリを実行する機能が含まれています。 プライベート プレビューには、一般提供されていないクライアント ライブラリやテスト用のドキュメントへのアクセスが含まれています。 機能をお試しになったり、フィードバックや質問を共有したりしたい場合は、Azure SQL Managed Instance PolyBase プライベート プレビュー ガイドを参照してください。

サポートされる SQL 製品とサービス

PolyBase では、次の Microsoft の SQL 製品にこれらと同じ機能を提供します。

  • SQL Server 2016 (13.x) 以降のバージョン (Windows のみ)
  • SQL Server 2019 (15.x) 以降のバージョン (Linux)
  • SQL Server Parallel Data Warehouse (PDW)、Analytics Platform System (APS) でホストされます
  • Azure Synapse Analytics

PolyBase コネクタ

PolyBase 機能は、次の外部データ ソースへの接続を提供します。

外部データ ソース PolyBase を使用した SQL Server APS PDW Azure Synapse Analytics
Oracle、MongoDB、Teradata Read いいえ いいえ
汎用 ODBC 読み取り (Windows のみ) いいえ いいえ
Azure Storage 読み取り/書き込み 読み取り/書き込み 読み取り/書き込み
Hadoop 読み取り/書き込み 読み取り/書き込み いいえ
SQL Server Read いいえ いいえ
  • SQL Server 2016 (13.x) では、Hadoop および Azure Blob Storage への接続をサポートする PolyBase が導入されました。
  • SQL Server 2019 (15.x) では、SQL Server、Oracle、Teradata、MongoDB などの追加のコネクタが導入されました。

外部コネクタの例を次に示します。

* PolyBase は、Hortonworks Data Platform (HDP) と Cloudera Distributed Hadoop (CDH) の 2 つの Hadoop プロバイダーをサポートしています。

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 で次のシナリオに対応できます。

  • SQL Server インスタンスまたは PDW から Hadoop に格納されているデータのクエリを実行する。 ユーザーは、たとえば Hadoop など、コスト効果の高いスケーラブルな分散システムにデータを格納しています。 PolyBase を使用すると、T-SQL で簡単にデータを照会できます。

  • Azure Blob Storage に格納されたデータのクエリを実行する。 Azure BLOB ストレージは、Azure サービスによって使用されるデータを格納するのに便利な場所です。 PolyBase を使用すると、T-SQL で簡単にデータにアクセスできます。

  • Hadoop、Azure Blob Storage、Azure Data Lake Store からデータをインポートする。 Hadoop、Azure Blob Storage、または Azure Data Lake Store からリレーショナル テーブルにデータをインポートすることで、Microsoft SQL の高速な列ストア テクノロジおよび分析機能を活用できます。 ETL やインポート ツールを個別に用意する必要はありません。

  • Hadoop、Azure Blob Storage、または Azure Data Lake Store にデータをエクスポートする。 Hadoop、Azure Blob Storage、または Azure Data Lake Store にデータをアーカイブすることで、コスト効果の高いストレージを実現し、アクセスしやすいようにそのストレージをオンライン状態にしておくことができます。

  • BI ツールと統合する。 PolyBase を Microsoft のビジネス インテリジェンスや分析スタックと一緒に使用したり、SQL Server と互換性のあるサードパーティ ツールを使用したりすることができます。

パフォーマンス

  • Hadoop に計算をプッシュする。 PolyBase により、クエリ全体を最適化するために計算の一部が外部ソースにプッシュされます。 クエリ オプティマイザーでは、クエリのパフォーマンスが向上する場合は Hadoop への計算のプッシュを行うためのコスト ベースの決定が行われます。 クエリ オプティマイザーでは、コスト ベースの決定に外部テーブルの統計が使用されます。 計算のプッシュでは、MapReduce ジョブが作成され、Hadoop の分散コンピューティング リソースが活用されます。 詳細については、「PolyBase でのプッシュダウン計算」を参照してください。

  • コンピューティング リソースをスケーリングする。 クエリのパフォーマンスを向上させるために、SQL Server PolyBase スケールアウト グループを使用できます。 これにより、SQL Server インスタンスと Hadoop ノードの間の並列データ転送が可能になります。また、外部データに対する操作のためのコンピューティング リソースが追加されます。

次のステップ

PolyBase を使用する前に、Windows に PolyBase をインストールするか、Linux に PolyBase をインストールし、必要に応じて sp_configure で PolyBase を有効にする必要があります。 その後、使用するデータ ソースに応じて、次の構成ガイドを参照してください。