Configurer PolyBase pour accéder à des données externes avec des types génériques ODBC

S’applique à :SQL Server

PolyBase à partir de SQL Server 2019 vous permet de vous connecter à des sources de données compatibles ODBC à l’aide du connecteur ODBC.

Cet article montre comment créer la configuration de la connectivité à l’aide d’une source de données ODBC. L’aide fournie utilise un pilote ODBC spécifique comme exemple. Contactez votre fournisseur ODBC pour obtenir des exemples spécifiques. Pour déterminer les options de chaîne de connexion appropriées, référez-vous à la documentation du pilote ODBC relative à votre source de données. Les exemples présentés dans cet article peuvent ne s’appliquer à aucun pilote ODBC spécifique.

Prerequisites

Note

Cette fonctionnalité nécessite SQL Server sur Windows.

  • PolyBase doit être installé et activé pour votre installation de PolyBase dans l’instance SQL Server.

  • La clé principale doit être créée avant les informations d’identification incluses dans l’étendue de la base de données.

Installer le pilote ODBC

Téléchargez et installez le pilote ODBC de la source de données à laquelle vous souhaitez vous connecter sur chacun des nœuds PolyBase. Une fois que le pilote est correctement installé, vous pouvez voir et tester le pilote à partir de l’Administrateur de sources de données ODBC.

PolyBase scale-out groups

Dans l’exemple ci-dessus, le nom du pilote est entouré en rouge. Utilisez ce nom quand vous créez la source de données externe.

Important

Afin d’améliorer les performances des requêtes, activez le regroupement de connexions. Cette opération peut être effectuée à partir de l’Administrateur de sources de données ODBC.

Créer des objets dépendants dans SQL Server

Pour utiliser la source de données ODBC, vous devez d’abord créer quelques objets pour finaliser la configuration.

Les commandes Transact-SQL suivantes sont utilisées dans cette section :

  1. Créez des informations d’identification incluses dans l’étendue de la base de données pour accéder à la source ODBC.

    CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
    

    Par exemple, l’exemple suivant crée des informations d’identification nommées credential_name, avec l’identité username et un mot de passe complexe.

    CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
    
  2. Créez une source de données externe avec CREATE EXTERNAL DATA SOURCE.

    CREATE EXTERNAL DATA SOURCE [<external_data_source_name>]
    WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]',
    CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>};
    ServerNode = <name of server  address>:<Port>',
    -- PUSHDOWN = [ON] | OFF,
    CREDENTIAL = [<credential_name>] );
    

    L’exemple suivant crée une source de données externe :

    • external_data_source_name nommée
    • Situé sur le serveur ODBC SERVERNAME et sur le port 4444
    • Connexion avec CData ODBC Driver For SAP 2015 : il s’agit du pilote créé dans Installer le pilote ODBC
    • Sur ServerNodesap_server_node le port 5555
    • Configuré pour un traitement transmis au serveur (PUSHDOWN = ON)
    • Utilisation des informations d’identification credential_name
    CREATE EXTERNAL DATA SOURCE external_data_source_name
    WITH ( LOCATION = 'odbc://SERVERNAME:4444',
    CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
    ServerNode = sap_server_node:5555',
    PUSHDOWN = ON,
    CREDENTIAL = credential_name );
    

Créer une table externe

Une fois que vous avez créé les objets dépendants, vous pouvez créer une table externe à l’aide de T-SQL.

Les commandes Transact-SQL suivantes sont utilisées dans cette section :

  1. Créez une ou plusieurs tables externes.

    Créez une table externe. Vous devrez référencer la source de données externe créée ci-dessus à l’aide de l’argument DATA_SOURCE et spécifier la table source comme LOCATION. Vous n’avez pas besoin de référencer toutes les colonnes, mais vous devez vous assurer que les types sont correctement mappés.

      CREATE EXTERNAL TABLE [<your_table_name>]
      (
      [<col1_name>]     DECIMAL(38) NOT NULL,
      [<col2_name>]     DECIMAL(38) NOT NULL,
      [<col3_name>]     CHAR COLLATE Latin1_General_BIN NOT NULL
      )
      WITH (
      LOCATION='<sap_table_name>',
      DATA_SOURCE= [<external_data_source_name>]
      )
      ;
    

    Note

    Remarque : vous pouvez réutiliser les objets dépendants pour toutes les tables externes à l’aide de cette source de données externe.

  2. Facultatif : Créez des statistiques sur une table externe.

    Pour des performances de requêtes optimales, nous vous recommandons de créer des statistiques sur les colonnes de table externe, en particulier celles utilisées pour les jointures, les filtres et les agrégats.

    CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN; 
    

Étapes suivantes

Pour en savoir plus sur PolyBase, consultez Vue d’ensemble de SQL Server PolyBase.

Pour plus de tutoriels sur la création de sources de données externes et de tables externes vers diverses sources de données, consultez référence PolyBase Transact-SQL.