CRÉER À DISTANCE TABLE EN SÉLECTION (Parallel Data Warehouse)

S’applique à :Analytics Platform System (PDW)

Sélectionne les données d’une base de données PDW (Analytics Platform System) et copie ces données dans une nouvelle table d’une base de données SMP SQL Server sur un serveur distant. Analytics Platform System (PDW) utilise l’appliance, avec tous les avantages offerts par le traitement des requêtes MPP, pour sélectionner les données pour la copie distante. Utiliser CREATE REMOTE TABLE AS SELECT pour les scénarios qui nécessitent des fonctionnalités SQL Server.

Pour configurer le serveur distant, consultez Copie de table distante.

Conventions de la syntaxe Transact-SQL

Syntax

CREATE REMOTE TABLE { database_name.schema_name.table_name | schema_name.table_name | table_name }  AT ('<connection_string>')  
    [ WITH ( BATCH_SIZE = batch_size ) ]  
    AS <select_statement>  
[;]  

<connection_string> ::=   
    Data Source = { IP_address | hostname } [, port ]; User ID = user_name ;Password = strong_password;  

<select_statement> ::=  
    [ WITH <common_table_expression> [ ,...n ] ]  
    SELECT <select_criteria>  

Arguments

database_name

Base de données dans laquelle créer la table distante. database_name est une base de données SQL Server. La valeur par défaut est la base de données par défaut pour la connexion utilisateur sur l’instance SQL Server de destination.

schema_name

Schéma de la nouvelle table. La valeur par défaut est le schéma par défaut pour la connexion utilisateur sur l’instance SQL Server de destination.

table_name

Nom de la nouvelle table. Pour plus de détails sur les noms de tables autorisés, voir Noms de bases de données réservées.

La table distante est créée en tant que segment. Elle n’a pas de contraintes de validation ou de déclencheurs. Le classement des colonnes de la table distante est identique à celui des colonnes de la table source. Cela s’applique aux colonnes de type char, nchar, varchar et nvarchar.

connection_string

Chaîne de caractères qui spécifie les paramètres Data Source, User ID et Password pour la connexion au serveur distant et à la base de données.

La chaîne de connexion est une liste délimitée par des points-virgules de paires clé / valeur. Les mots-clés ne sont pas sensibles à la casse. Les espaces entre les paires clé / valeur sont ignorés. Toutefois, les valeurs peuvent être sensibles à la casse, en fonction de la source de données.

Source de données

Paramètre qui spécifie le nom ou l’adresse IP, et le numéro de port TCP pour l’ordinateur SQL Server SMP distant.

hostname ou IP_address

Nom de l’ordinateur serveur distant ou adresse IPv4 du serveur distant. Les adresses IPv6 ne sont pas prises en charge. Vous pouvez spécifier une instance nommée SQL Server au format nom_ordinateur\nom_instance ou adresse_IP\nom_instance. Le serveur doit être distant et ne peut donc pas être spécifié comme (local).

Numéro de port TCP

Numéro de port TCP pour la connexion. Vous pouvez spécifier un numéro de port TCP compris entre 0 et 65 535 pour une instance de SQL Server qui n’est pas à l’écoute sur le port par défaut 1433. Par exemple : ServerA,1450 ou <ip address>,1435.

Note

Nous vous recommandons de vous connecter à un serveur distant à l’aide de l’adresse IP. En fonction de votre configuration réseau, la connexion à l’aide du nom de l’ordinateur peut nécessiter des étapes supplémentaires afin d’utiliser votre serveur DNS non-appliance pour résoudre le nom au serveur approprié. Cette étape n’est pas nécessaire lors de la connexion avec une adresse IP. Pour plus d’informations, consultez Utiliser un redirecteur DNS pour résoudre les noms DNS non-appliances dans le système de plateforme Analytics.

user_name

Nom de connexion d’authentification SQL Server valide. Nombre maximal de caractères : 128.

mot de passe

Mot de passe de connexion. Nombre maximal de caractères : 128.

batch_size

Nombre maximal de lignes par lot. Analytics Platform System (PDW) envoie les lignes par lots au serveur de destination. Batch_size est un entier positif >= 0. La valeur par défaut est 0.

AVEC common_table_expression

Spécifie un jeu de résultats nommé temporaire, désigné par le terme d'expression de table commune (CTE, Common Table Expression). Pour plus d’informations, consultez WITH common_table_expression (Transact-SQL).

SÉLECTIONNEZ <select_criteria>

Prédicat de requête qui spécifie les données qui remplissent la nouvelle table distante. Pour plus d’informations sur l’instruction SELECT, consultez SELECT (Transact-SQL).

Permissions

Nécessite :

  • L’autorisation SELECT sur chaque objet dans la clause SELECT.

  • Nécessite CREATE TABLE une autorisation sur la base de données SMP de destination.

  • Nécessite les permissions ALTER, INSERT, et SELECT sur le schéma SMP de destination.

Gestion des erreurs

Si la copie de données vers la base de données distante échoue, Analytics Platform System (PDW) abandonne l’opération, consigne une erreur et tente de supprimer la table distante. Analytics Platform System (PDW) ne garantit pas un nettoyage réussi de la nouvelle table.

Limitations

Serveur de destination distant :

  • TCP est le protocole par défaut et le seul protocole pris en charge pour la connexion à un serveur distant.

  • Le serveur de destination doit être un serveur nonappliance. CREATE REMOTE TABLE ne peut pas être utilisé pour copier des données d’une appliance vers une autre.

  • L’instruction CREATE REMOTE TABLE crée uniquement de nouvelles tables. Par conséquent, la nouvelle table ne peut pas déjà exister. La base de données et le schéma distants doivent déjà exister.

  • Le serveur distant doit disposer d’espace pour stocker les données qui sont transférées de l’appliance vers la base de données SQL Server distante.

Instruction SELECT :

  • Les clauses ORDER BY et TOP ne sont pas prises en charge dans les critères de sélection.

  • CREATE REMOTE TABLE ne peut pas être exécuté à l’intérieur d’une transaction active ou lorsque le paramètre AUTOCOMMIT OFF est actif pour la session.

SET ROWCOUNT (Transact-SQL) n’a aucun effet sur cette déclaration. Pour obtenir un comportement similaire, utilisez TOP (Transact-SQL).

Comportement du verrouillage

Après avoir créé la table distante, la table de destination n’est pas verrouillée tant que la copie ne démarre pas. Ainsi, il est possible qu’un autre processus supprime la table distante après sa création et avant le démarrage de la copie. Lorsque cela se produit, le système de plateforme Analytics (PDW) génère une erreur et la copie échoue.

Metadata

Utilisez sys.dm_pdw_dms_workers (Transact-SQL) pour afficher la progression de la copie des données sélectionnées vers le serveur SMP distant. Les lignes avec le type PARALLEL_COPY_READER contiennent ces informations.

Sécurité

CREATE REMOTE TABLE utilise l’authentification SQL Server pour se connecter à l’instance SQL Server distante ; il n’utilise pas l’authentification Windows.

Le réseau externe Analytics Platform System (PDW) doit être protégé par un pare-feu, sauf les ports SQL Server, les ports d’administration et les ports de gestion.

Pour aider à prévenir toute altération ou perte accidentelle de données, le compte d’utilisateur servant à effectuer la copie de l’appliance vers la base de données de destination doit avoir uniquement les autorisations minimales requises sur la base de données de destination.

Les paramètres de connexion vous permettent de vous connecter à l’instance de SQL Server SMP avec SSL, protégeant ainsi les données de nom d’utilisateur et mot de passe, mais avec les données proprement dites envoyées en texte clair. Dans ce cas, un utilisateur malveillant peut intercepter le texte de l’instruction CREATE REMOTE TABLE, qui contient le nom d’utilisateur et le mot de passe SQL Server pour se connecter à l’instance SMP SQL Server. Pour éviter ce risque, utilisez le chiffrement des données sur la connexion à l’instance de SQL Server SMP.

Examples

A. Créer une table distante

Cet exemple crée une table distante SMP SQL Server nommée MyOrdersTable sur la base de données OrderReporting et le schéma Orders. La base de données OrderReporting se trouve sur un serveur nommé SQLA à l’écoute sur le port par défaut 1433. Remplacez-le <user name> par votre nom d’utilisateur et <password> par un mot de passe fort.

CREATE REMOTE TABLE OrderReporting.Orders.MyOrdersTable  
AT ( 'Data Source = SQLA, 1433; User ID = <user name>; Password = <password>;' )
AS SELECT <select_criteria>;  

B. Interroger le DMV sys.dm_pdw_dms_workers pour obtenir l’état de copie de table distante

Cette requête montre comment afficher l’état de la copie d’une table distante.

SELECT * FROM sys.dm_pdw_dms_workers   
WHERE type = 'PARALLEL_COPY_READER';  

C. Utilisez un indice de jointure de requête avec CREATE REMOTE TABLE

Cette requête affiche la syntaxe de base pour l’utilisation d’un indicateur de jointure de requête avec CREATE REMOTE TABLE. Une fois la requête soumise au nœud de contrôle, SQL Server, en cours d’exécution sur les nœuds de calcul, applique la stratégie de jointure hachée lors de la génération du plan de requête SQL Server. Pour plus d’informations sur les indicateurs de jointure et sur l’utilisation de la clause OPTION, consultez la clause OPTION (Transact-SQL).

USE ssawPDW;  
CREATE REMOTE TABLE OrderReporting.Orders.MyOrdersTable  
AT ( 'Data Source = SQLA, 1433; User ID = <user name>; Password = <password>;' )
    AS SELECT T1.* FROM OrderReporting.Orders.MyOrdersTable T1   
    JOIN OrderReporting.Orders.Customer T2  
    ON T1.CustomerID=T2.CustomerID OPTION (HASH JOIN);