CREATE REMOTE TABLE AS SELECT (Parallel Data Warehouse)

S’applique à :Analytics Platform System (PDW)

Sélectionne des données à partir d’une base de données Analytics Platform System (PDW) et copie ces données vers une nouvelle table dans une base de données SQL Server SMP 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. Ceci convient aux scénarios qui nécessitent une fonctionnalité SQL Server.

Pour configurer le serveur distant, consultez « Copie de table distante » dans la documentation du produit Analytics Platform System (PDW).

Conventions de la syntaxe Transact-SQL

Syntaxe

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 = 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 d’informations sur les noms de table autorisés, consultez « Règles de nommage des objets » dans la Documentation du produit Analytics Platform System (PDW).

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 respectent pas la casse. Les espaces entre les paires clé / valeur sont ignorés. Toutefois, les valeurs peuvent respecter 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 10.192.14.27,1435

Notes

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-appliance (Analytics Platform System) » dans la Documentation du produit Analytics Platform System (PDW).

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.

WITH 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).

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

Autorisations

Nécessite :

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

  • L’autorisation CREATE TABLE sur la base de données SMP de destination.

  • Les autorisations ALTER, INSERT et SELECT sur le schéma SMP de destination.

Gestion des erreurs

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

Limitations et restrictions

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 non-appliance. Vous ne pouvez pas utiliser CREATE REMOTE TABLE pour copier des données d’une appliance vers une autre.

  • L’instruction CREATE REMOTE TABLE crée seulement 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.

  • Vous ne pouvez pas exécuter CREATE REMOTE TABLE à l’intérieur d’une transaction active, ni quand le paramètre AUTOCOMMIT OFF est actif pour la session.

SET ROWCOUNT (Transact-SQL) ne produit aucun effet sur cette instruction. Pour obtenir un comportement similaire, utilisez TOP (Transact-SQL).

Comportement de verrouillage

Une fois la table distante créée, la table de destination n’est verrouillée que quand la copie commence. 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. Quand cela se produit, Analytics Platform System (PDW) génère une erreur et la copie échoue.

Métadonnées

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é

L’instruction CREATE REMOTE TABLE utilise l’authentification SQL Server pour se connecter à l’instance distante de SQL Server. Elle 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. Quand cela se produit, un utilisateur malveillant pourrait 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 de SQL Server SMP. Pour éviter ce risque, utilisez le chiffrement des données sur la connexion à l’instance de SQL Server SMP.

Exemples

R. Création d’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. La connexion au serveur utilise les informations d’identification de l’utilisateur David, dont le mot de passe est e4n8@3.

CREATE REMOTE TABLE OrderReporting.Orders.MyOrdersTable  
AT ( 'Data Source = SQLA, 1433; User ID = David; Password = e4n8@3;' )  
AS SELECT <select_criteria>;  

B. Interrogation de la vue de gestion dynamique sys.dm_pdw_dms_workers pour 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. Utilisation d’un indicateur de jointure de requête avec CREATE REMOTE TABLE

Cette requête présente la syntaxe de base pour utiliser 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 la clause OPTION, voir Clause OPTION (Transact-SQL).

USE ssawPDW;  
CREATE REMOTE TABLE OrderReporting.Orders.MyOrdersTable  
AT ( 'Data Source = SQLA, 1433; User ID = David; Password = e4n8@3;' )  
    AS SELECT T1.* FROM OrderReporting.Orders.MyOrdersTable T1   
    JOIN OrderReporting.Order.Customer T2  
    ON T1.CustomerID=T2.CustomerID OPTION (HASH JOIN);