Condividi tramite


CREATE REMOTE TABLE AS SELECT (Parallel Data Warehouse)

Si applica a:Piattaforma di strumenti analitici (PDW)

Seleziona i dati da un database PDW (Analytics Platform System) e copia i dati in una nuova tabella in un database di SQL Server SMP in un server remoto. La piattaforma di strumenti analitici (PDW) usa l'appliance, con tutti i vantaggi dell'elaborazione di query MPP, per selezionare i dati per la copia remota. Usare CREATE REMOTE TABLE AS SELECT per scenari che richiedono la funzionalità di SQL Server.

Per configurare il server remoto, vedere Remote Table Copy.To configure the remote server, see Remote Table Copy.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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>  

Argomenti

database_name

Database in cui creare la tabella remota. database_name è un database SQL Server. L'impostazione predefinita corrisponde al database predefinito per l'account di accesso utente nell'istanza di SQL Server di destinazione.

schema_name

Schema della nuova tabella. L'impostazione predefinita corrisponde allo schema predefinito per l'account di accesso utente nell'istanza di SQL Server di destinazione.

table_name

Nome della nuova tabella. Per informazioni dettagliate sui nomi di tabella consentiti, vedere le sezioni relative alle regole di denominazione nella documentazione del prodotto Piattaforma di strumenti analitici (PDW).

La tabella remota viene creata come heap. Non ha vincoli check o trigger. Le regole di confronto delle colonne della tabella remota corrispondono alle regole di confronto delle colonne della tabella di origine. Questo vale per le colonne di tipo char, varchar, nchar e nvarchar.

connection_string

Stringa di caratteri che specifica i parametri Data Source, User ID e Password per la connessione al server remoto e al database.

La stringa di connessione è un elenco di valori delimitati da punto e virgola di coppie chiave-valore. Le parole chiave non fanno distinzione tra maiuscole e minuscole. Gli spazi tra le coppie chiave-valore vengono ignorati. Tuttavia, i valori potrebbero essere con distinzione tra maiuscole e minuscole, a seconda dell'origine dati.

Origine dati

Parametro che specifica il nome o l'indirizzo IP e il numero di porta TCP per l'istanza di SQL Server SMP remota.

hostname o IP_address

Nome o indirizzo IPv4 del server remoto. Gli indirizzi IPv6 non sono supportati. È possibile specificare un'istanza denominata di SQL Server nel formato Nome_computer\Nome_istanza o Indirizzo_IP\Nome_istanza. Il server deve essere remoto e pertanto non può essere specificato come (local).

Numero porta TCP

Numero della porta TCP usata per la connessione. Per un'istanza di SQL Server che non è in ascolto sulla porta predefinita 1433, è possibile specificare un numero di porta TCP compreso tra 0 e 65535. Ad esempio: ServerA,1450 o <ip address>,1435.

Nota

È consigliabile connettersi a un server remoto tramite indirizzo IP. A seconda della configurazione di rete, la connessione tramite nome computer potrebbe richiedere passaggi aggiuntivi perché sia possibile usare il server DNS non appliance per risolvere il nome server in modo corretto. Questo passaggio non è necessario se ci si connette con un indirizzo IP. Per altre informazioni, vedere Usare un server d'inoltro DNS per risolvere i nomi DNS non dell'appliance nella piattaforma di analisi.

user_name

Un nome di accesso con autenticazione di SQL Server valido. Il numero massimo di caratteri è 128.

password

Password di accesso di . Il numero massimo di caratteri è 128.

batch_size

Numero massimo di righe per batch. Piattaforma di strumenti analitici (PDW) invia le righe batch al server di destinazione. Batch_size è un numero intero positivo >= 0. Il valore predefinito è 0.

WITH common_table_expression

Indica un set di risultati denominato temporaneo, noto come espressione di tabella comune (CTE). Per altre informazioni, vedere WITH common_table_expression (Transact-SQL).

SELECT <select_criteria>

Predicato di query che specifica quali dati popolano la nuova tabella remota. Per informazioni sull'istruzione SELECT, vedere SELECT (Transact-SQL).

Autorizzazioni

Richiede:

  • Autorizzazione SELECT per ogni oggetto nella clausola SELECT.

  • Autorizzazione CREATE TABLE per il database SMP di destinazione.

  • Autorizzazioni ALTER, INSERT e SELECT per lo schema SMP di destinazione.

Gestione errori

Se la copia dei dati nel database remoto ha esito negativo, Analytics Platform System (PDW) interrompe l'operazione, registra un errore e tenta di eliminare la tabella remota. Piattaforma di strumenti analitici (PDW) non garantisce una pulizia corretta della nuova tabella.

Limiti

Server di destinazione remoto:

  • TCP è il protocollo predefinito e l'unico protocollo supportato per la connessione a un server remoto.

  • Il server di destinazione deve essere un server di non conformità. CREATE REMOTE TABLE non può essere usato per copiare dati da un'appliance a un'altra.

  • L'istruzione CREATE REMOTE TABLE crea solo nuove tabelle. La nuova tabella, quindi, non può essere già esistente. Il database remoto e lo schema devono essere già esistenti.

  • Il server remoto deve avere spazio disponibile per archiviare i dati che vengono trasferiti dall'appliance per il database remoto SQL Server.

Istruzione SELECT:

  • Le clausole ORDER BY e TOP non sono supportate nei criteri di selezione.

  • CREATE REMOTE TABLE non può essere eseguito all'interno di una transazione attiva o quando l'impostazione AUTOCOMMIT OFF è attiva per la sessione.

SET ROWCOUNT (Transact-SQL) non influisce su questa istruzione. Per ottenere un comportamento simile, usare TOP (Transact-SQL).

Comportamento di blocco

Dopo aver creato la tabella remota, la tabella di destinazione non viene bloccata fino all'avvio della copia. È pertanto possibile che un altro processo elimini la tabella remota dopo che è stata creata e prima che la copia venga avviata. In questo caso, analytics Platform System (PDW) genera un errore e la copia non riesce.

Metadati UFX

Usare sys.dm_pdw_dms_workers (Transact-SQL) per visualizzare lo stato della copia dei dati selezionati nel server SMP remoto. Queste informazioni sono contenute all'interno di righe di tipo PARALLEL_COPY_READER.

Sicurezza

CREATE REMOTE TABLE usa l'autenticazione di SQL Server per connettersi all'istanza remota di SQL Server; non usa l'autenticazione di Windows.

La rete di Piattaforma di strumenti analitici (PDW) connessa con l'esterno deve essere protetta tramite firewall, a eccezione delle porte di SQL Server, delle porte amministrative e delle porte di gestione.

Per evitare la perdita o il danneggiamento accidentale di dati, l'account utente usato per copiare dall'appliance al database di destinazione deve avere solo le autorizzazioni minime necessarie per il database di destinazione.

Le impostazioni di connessione consentono di connettersi all'istanza di SQL Server SMP proteggendo i dati relativi a nome utente e password tramite SSL, ma inviando i dati effettivi in testo non crittografato. In questo caso, un utente malintenzionato potrebbe intercettare il testo dell'istruzione CREATE REMOTE TABLE, che contiene il nome utente e la password di SQL Server per accedere all'istanza di SQL Server SMP. Per evitare questo rischio, usare la crittografia dei dati per la connessione all'istanza di SQL Server SMP.

Esempi

R. Creare una tabella remota

Questo esempio crea una tabella remota di SQL Server SMP denominata MyOrdersTable nel database OrderReporting e nello schema Orders. Il database OrderReporting si trova in un server denominato SQLA in ascolto sulla porta predefinita 1433. Provider di <user name> e <strong password>.

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

B. Eseguire una query sulla DMV sys.dm_pdw_dms_workers per lo stato di copia della tabella remota

Questa query illustra come visualizzare lo stato della copia di tabelle remote.

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

C. Usare un hint di join di query con CREATE REMOTE TABLE

Questa query mostra la sintassi di base per l'uso di un hint di join di query con CREATE REMOTE TABLE. Dopo l'invio della query al nodo di controllo, SQL Server, in esecuzione nei nodi di calcolo, genera il piano di query di SQL Server applicando la strategia di hash join. Per altre informazioni sugli hint di join e su come usare la clausola OPTION, vedere clausola OPTION (Transact-SQL).

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