Foire aux questions sur PolyBase

S’applique à : SQL Server 2016 (13.x) et versions ultérieures

Serveurs PolyBase et serveurs liés

Le tableau suivant présente les différences de fonctionnalités entre PolyBase et les serveurs liés :

PolyBase Serveurs liés
Objet inclus dans l’étendue de la base de données Objet inclus dans l’étendue de l’instance
Utilise des pilotes ODBC Utilise des fournisseurs OLE DB
Prend en charge les opérations en lecture seule pour toutes les sources de données et l’écriture dans certaines sources de données externes Prend en charge les opérations de lecture et d’écriture
Possibilité de monter en charge les requêtes effectuées sur une source de données distante en une seule connexion Les requêtes vers une source de données distante depuis une seule connexion ne peuvent pas être réduites à l’échelle
Pushdown de prédicats pris en charge Pushdown de prédicats pris en charge
Pas de configuration distincte nécessaire pour le groupe de disponibilité Configuration distincte nécessaire pour chaque instance du groupe de disponibilité
Authentification de base uniquement Authentification basique et intégrée
Adapté aux requêtes analytiques qui traitent un grand nombre de lignes Adapté aux requêtes OLTP qui retournent une seule ligne ou quelques lignes
Les requêtes utilisant une table externe ne peuvent pas participer à une transaction distribuée Les requêtes distribuées peuvent participer aux transactions distribuées

Nouveautés de PolyBase dans SQL Server 2022

SQL Server 2022 (16.x) prend en charge les fichiers CSV, Parquet et Delta stockés sur stockage Azure Account v2, Azure Data Lake Storage Gen2, ou tout stockage objet compatible S3 via l’API REST S3, sur site ou dans le cloud.

SQL Server 2022 (16.x) prend en charge CREATE EXTERNAL TABLE AS SELECT (CETAS), ainsi que des commandes comme OPENROWSET, CREATE EXTERNAL TABLE (CET) et les améliorations T-SQL.

SQL Server 2022 (16.x) ne prend pas en charge les sources de données externes Hadoop.

SQL Server 2022 (16.x) La mise à jour cumulative 2 introduit la prise en charge des fichiers Oracle TNS. Pour plus d’informations et d’exemples, consultez CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.

Pour plus d’informations, consultez Data Virtualization with PolyBase for SQL Server 2022 et consultez les améliorations de SQL Server 2022 PolyBase.

Nouveautés dans PolyBase dans SQL Server 2019

PolyBase dans SQL Server 2019 (15.x) peut lire des données provenant de plusieurs sources. Vous pouvez stocker les données de ces sources externes sous forme de tables externes sur votre instance SQL Server. PolyBase prend également en charge le calcul pushdown sur ces sources de données externes, à l’exception de types génériques ODBC.

Sources de données compatibles

  • SQL Server
  • Oracle
  • Teradata
  • MongoDB
  • Types génériques ODBC compatibles

SQL Server 2019 (15.x) La mise à jour cumulative 19 introduit la prise en charge des fichiers Oracle TNS. Pour plus d’informations et d’exemples, consultez CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.

Note

PolyBase peut se connecter à des sources de données externes en utilisant des pilotes ODBC tiers. PolyBase n’inclut pas ces pilotes, et ils pourraient ne pas fonctionner comme prévu. Pour plus d’informations, voir Configurer PolyBase pour accéder à des données externes avec des types génériques ODBC.

Que puis-je CONNECTION_OPTIONS spécifier pour la connexion à des sources de données tierces ?

Consultez CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS les options de connexion des fournisseurs de données prises en charge pour SQL Server, Oracle, Teradata, l’API MongoDB pour Cosmos DB, et les fournisseurs de données ODBC génériques.

Comment consulter le plan d’exécution de requêtes distantes du calcul pushdown PolyBase ?

Vous pouvez consulter le plan d’exécution des requêtes à distance en utilisant différentes méthodes selon la version de SQL Server. Pour plus d’informations, voir PolyBase Troubleshooting - Pour consulter le plan de requête PolyBase.

Comment savoir si le calcul pushdown PolyBase se produit ?

Pour plus d’informations, consultez Comment savoir si un pushdown externe s’est produit.

PolyBase est-il pris en charge sur Azure SQL Database ?

Non, mais vous pouvez interroger des données dans des fichiers sur Stockage Blob Azure en utilisant la OPENROWSET fonction, ou utiliser CREATE EXTERNAL TABLE pour lire à partir d’un pool SQL serverless dans Synapse Analytics. Pour plus d’informations, consultez Azure SQL peut lire les fichiers de stockage Azure Data Lake à l’aide de tables externes Synapse SQL.

PolyBase est-il pris en charge sur Azure SQL Managed Instance ?

Azure SQL Managed Instance dispose de ses propres fonctionnalités de virtualisation des données pour Azure Data Lake Storage (ADLS) et Stockage Blob Azure en tant que sources de données. Pour plus d’informations, consultez Virtualisation des données avec Azure SQL Managed Instance (préversion).

Quels ports dois-je autoriser via mon pare-feu pour PolyBase ?

PolyBase lui-même ne nécessite pas d’ouvrir de ports supplémentaires, sauf lorsque vous utilisez un groupe polyBase à échelle réduite. Sans groupe de montée en charge, le service PolyBase n’a besoin d’aucune règle de pare-feu.

Sur les serveurs Windows, PolyBase utilise les ports que l’instance de SQL Server utilise dans la section IPAll des paramètres TCP/IP dans Gestionnaire de configuration SQL Server. Pour plus d’informations, voir TCP/Propriétés IP (onglet Adresses IP). Sur les serveurs Linux, PolyBase utilise ce network.tcpport paramètre. Pour plus d'informations, consultez port TCP.

Pour les groupes de scale-out PolyBase sur plusieurs serveurs de Windows, consultez les informations de port dans la question suivante.

Cependant, vous devez autoriser d’autres ports pour communiquer avec les différentes sources de données externes utilisées par PolyBase. Reportez-vous à la configuration ODBC, à la configuration des ressources Azure ou à la documentation de la source de données spécifique. Par exemple:

Plateforme source Reference
Microsoft SQL Server Ports utilisés par SQL Server
Hortonworks HDP Administration de HDFS
Cloudera CDH Ports utilisés par les composants CDH

Quels ports sont utilisés pour le groupe de scale-out PolyBase ?

Par défaut, le service de déplacement de données PolyBase se connecte au nœud principal d’un groupe de mise à l’échelle sur une plage de ports allant de TCP 16450 à 16460 (typiquement 16450-1645), plus le port 17001. PolyBase utilise ces ports uniquement lorsque vous configurez un groupe de scale-out ; autorisez donc ces ports sur les pare-feu du serveur. SQL Server Setup crée automatiquement une règle de pare-feu local qui permet ces ports lors de l’installation de la fonctionnalité. Pour plus d’informations, consultez Configurer des groupes de scale-out PolyBase sur Windows.

Note

Les groupes de scale-out PolyBase de SQL Server ont été supprimés dans SQL Server 2022 (16.x).