適用対象: SQL Server 2016 (13.x) 以降のバージョン
PolyBase とリンク サーバー
次の表に、PolyBase とリンク サーバーの機能の違いを示します。
PolyBase | リンク サーバー |
---|---|
データベース スコープ オブジェクト | インスタンス スコープ オブジェクト |
ODBC ドライバーを使用します | OLEDB プロバイダーを使用します |
すべてのデータ ソースに対する読み取り専用操作と、一部の外部データ ソースへの書き込みをサポートします | 読み取りと書き込み両方の操作をサポートします |
単一の接続からのリモート データ ソースに対するクエリをスケールアウトできます | 単一の接続からのリモート データ ソースに対するクエリをスケールアウトできません |
述語のプッシュダウンがサポートされています | 述語のプッシュダウンがサポートされています |
可用性グループについて個別に構成する必要はありません | 可用性グループの各インスタンスについて個別に構成する必要があります |
基本認証のみ | 基本認証と統合認証 |
多くの行を処理する分析クエリに適しています | 1 つまたは少数の行を返す OLTP クエリに適しています |
外部テーブルを使用するクエリは分散トランザクションに参加できません | 分散クエリが分散トランザクションに参加できます |
SQL Server 2022 の PolyBase の新機能
SQL Server 2022 (16.x) では、オンプレミスまたはクラウドの Azure ストレージ アカウント v2、Azure Data Lake Storage Gen2、または S3 と互換性のあるオブジェクト ストレージに S3 REST API を使用して保存された CSV ファイル、Parquet ファイル、デルタ ファイルがサポートされるようになりました。
SQL Server 2022 (16.x) では、CREATE EXTERNAL TABLE as SELECT (CETAS) と、OPENROWSET、CREATE EXTERNAL TABLE (CET) などのコマンド、およびすべての新しい T-SQL の改良を使用できるようになりました。
現在、Hadoop 外部データ ソースのサポートは SQL Server 2022 (16.x) で削除されています。
SQL Server 2022 (16.x) の累積的な更新プログラム 2 に、Oracle TNS ファイルのサポートが導入されることになりました。 詳細とサンプルについては、CREATE EXTERNAL DATA SOURCE に関する記事を参照してください。
詳細については、「SQL Server 2022 用 PolyBase を使用したデータ仮想化」を参照し、「SQL Server 2022 PolyBase の改良」を確認してください。
SQL Server 2019 の PolyBase の新機能
SQL Server 2019 (15.x) の PolyBase は、さまざまな大規模なデータ ソースからデータを読み取ることができるようになりました。 これらの外部データ ソースのデータは、SQL Server で外部テーブルとして格納できます。 PolyBase により、ODBC ジェネリック型を除くこれらの外部データ ソースへのプッシュ ダウン計算もサポートされます。
互換性のあるデータ ソース
- SQL Server
- Oracle
- Teradata
- MongoDB
- 互換性のある ODBC ジェネリック型
SQL Server 2019 (15.x) の累積的な更新プログラム 19 に、Oracle TNS ファイルのサポートが導入されるようになりました。 詳細とサンプルについては、CREATE EXTERNAL DATA SOURCE に関する記事を参照してください。
Note
PolyBase では、サード パーティ製 ODBC ドライバーを使用して外部データ ソースへの接続を許可できます。 これらのドライバーは PolyBase と共に提供されておらず、意図したとおりに動作しない可能性があります。 詳細については、「ODBC ジェネリック型の外部データにアクセスするための PolyBase の構成」を参照してください。
サード パーティのデータ ソースへの接続にはどのような CONNECTION_OPTIONS を指定できますか?
SQL Server、Oracle、Teradata、MongoDB API for Cosmos DB、汎用 ODBC Data Provider でサポートされている Data Provider 接続オプションについては、CREATE EXTERNAL DATA SOURCE (Transact-SQL) CONNECTION_OPTIONS を確認してください。
PolyBase プッシュダウン計算のリモート クエリ実行プランを表示するにはどうすればよいですか?
これは、SQL Server のバージョンに応じて、いくつかの方法で行うことができます。 PolyBase のトラブルシューティング - PolyBase クエリ プランを表示するにはに関するページを参照してください。
PolyBase プッシュダウン計算が行われているかどうかを確認するにはどうすればよいですか?
「外部プッシュダウンが発生した場合の確認方法」を参照してください。
PolyBase は Azure SQL Database でサポートされていますか?
いいえ。ただし、OPENROWSET 関数 を使用して Azure Blob Storage に配置されているファイル内のデータに対してクエリを実行できます。または、CREATE EXTERNAL TABLE を使用して、Synapse Analytics 内のサーバーレス SQL プールから読み取ります。 詳細については、「Synapse SQL 外部テーブルを使用して Azure SQL で Azure Data Lake Storage ファイルの読み取りができます」を参照してください。
Azure SQL Managed Instance で PolyBase はサポートされていますか?
Azure SQL Managed Instance には、データ ソースとして Azure Data Lake Storage (ADLS) と Azure Blob Storage 用の独自のデータ仮想化機能があります。 詳細については、「Azure SQL Managed Instance によるデータ仮想化」を参照してください。
PolyBase のファイアウォールを通過するには、どのポートを許可する必要がありますか?
PolyBase スケールアウト グループの場合を除き、PolyBase 自体のために追加のポートを開く必要はありません。 スケールアウト グループがない場合、PolyBase サービスだけではファイアウォール規則を必要としないはずです。
Windows サーバーでは、PolyBase は、SQL Server 構成マネージャー の TCP/IP 設定の IPAll セクションにある SQL Server で使用されるポートを利用します。 詳細については、TCP/IP のプロパティ を参照してください。 Linux サーバーでは、PolyBase は network.tcpport 設定を利用します。 詳しくは、TCP ポート を参照してください。
複数の Windows サーバー上の PolyBase スケールアウト グループについては、次の質問のポート情報を参照してください。
ただし、PolyBase で使用されるさまざまな外部データ ソースへの通信には、他のポートを許可する必要があります。 ODBC 構成、Azure リソース構成、または特定のデータ ソースのドキュメントを参照してください。 次に例を示します。
ソース プラットフォーム | リファレンス |
---|---|
Microsoft SQL Server | SQL Server で使用されるポート |
Hortonworks HDP | HDFS の管理 |
Cloudera CDH | CDH コンポーネントで使用されるポート |
PolyBase スケールアウト グループに使用されるのはどのポートですか?
既定では、PolyBase データ移動サービスは、TCP 16450 から 16460 までの範囲のポートを使用 (通常は 16450 - 16453 とポート 17001 を使用) して、スケールアウト グループのヘッド ノードに接続します。 これらのポートは、PolyBase スケールアウト グループが構成されている場合にのみ使用され、サーバー ファイアウォールの通過を許可する必要があります。 SQL Server セットアップでは、機能のインストール時にこれらのポートを許可するローカル ファイアウォール規則が自動的に作成されるはずです。 詳細については、「Windows で PolyBase スケールアウト グループを構成する」を参照してください。
Note
Microsoft SQL Server PolyBase スケールアウト グループは廃止されます。 SQL Server 2022 (16.x) では、スケールアウト グループ機能が製品から削除されます。
ビッグ データ クラスターの PolyBase とスタンドアロン インスタンスの PolyBase
ODBC ジェネリック コネクタを使用した接続の詳細については、「ODBC ジェネリック型を構成するためのハウツー ガイド」の記事をご覧ください。
次の表は、SQL Server 2019 (15.x) スタンドアロン インストールと SQL Server 2019 (15.x) ビッグ データ クラスターで使用できる PolyBase 機能を示しています。
機能 | ビッグ データ クラスター | スタンドアロン インスタンス |
---|---|---|
SQL Server、Oracle、Teradata、Mongo DB に対する外部データ ソースを作成する | x | x |
互換性のあるサードパーティ製 ODBC ドライバーを使用して外部データ ソースを作成する | x | |
HADOOP データ ソースに対する外部データ ソースを作成する | x | x |
Azure Blob Storage に対する外部データ ソースを作成する | x | x |
SQL Server データ プールに外部テーブルを作成する | x | |
SQL Server ストレージ プールに外部テーブルを作成する | x | |
クエリの実行をスケールアウトする | x | X (Windows のみ) |
重要
Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。