Freigeben über


CREATE REMOTE TABLE AS SELECT (Parallel Data Warehouse)

Gilt für:Analytics Platform System (PDW)

Wählt Daten aus einer PDW-Datenbank (Analytics Platform System) aus und kopiert diese Daten in eine neue Tabelle in einer SMP SQL Server-Datenbank auf einem Remoteserver. Analytics-Plattformsystem (PDW) verwendet die Appliance mit allen Vorteilen der MPP-Abfrageverarbeitung, um die Daten für die Remotekopie auszuwählen. Wird für Szenarien verwendet CREATE REMOTE TABLE AS SELECT , die SQL Server-Funktionalität erfordern.

Informationen zum Konfigurieren des Remoteservers finden Sie unter Remotetabellenkopie.

Transact-SQL-Syntaxkonventionen

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>  

Argumente

database_name

Die Datenbank, in der die Remotetabelle erstellt werden soll. database_name ist eine SQL Server-Datenbank. Standardmäßig vorgegeben ist die Standarddatenbank für den Anmeldenamen des Benutzers auf der SQL Server-Zielinstanz.

schema_name

Das Schema der neuen Tabelle. Standardmäßig vorgegeben ist das Standardschema für den Anmeldenamen des Benutzers auf der SQL Server-Zielinstanz.

table_name

Der Name der neuen Tabelle. Informationen zu zulässigen Tabellennamen finden Sie unter „Objektbenennungsregeln“ in der Produktdokumentation zu Analytics Platform System (PDW).

Die Remotetabelle wird als Heap erstellt. Sie verfügt weder über CHECK-Einschränkungen noch über Trigger. Die Sortierung der Remotetabellenspalten und die Sortierung der Spalten der Quelltabelle sind identisch. Dies gilt für Spalten der Typen char, nchar, varchar und nvarchar.

connection_string

Eine Zeichenfolge, die die Parameter Data Source, User ID und Password für das Herstellen einer Verbindung mit dem Remoteserver und der Datenbank angibt.

Die Verbindungszeichenfolge ist eine durch Semikola getrennte Liste von Schlüssel-Wert-Paaren. Bei Schlüsselwörtern muss die Groß-/Kleinschreibung nicht beachtet werden. Leerzeichen zwischen den Schlüssel-Wert-Paaren werden ignoriert. Bei Werten wird jedoch je nach Datenquelle möglicherweise die Groß-/Kleinschreibung beachtet.

Data Source

Der Parameter, der den Namen oder die IP-Adresse und die TCP-Portnummer für den SMP-SQL Server-Remote-Instanz angibt.

hostname oder IP_address

Name des Remoteservercomputers oder IPv4-Adresse des Remoteservers. IPv6-Adressen werden nicht unterstützt. Sie können eine benannte SQL Server-Instanz im Format Computer_Name\Instance_Name oder IP_address\Instance_Name angeben. Der Server muss remote sein und kann daher nicht als „(local)“ angegeben werden.

TCP port number

Die für die Verbindung verwendete TCP-Portnummer. Sie können eine TCP-Portnummer zwischen 0 und 65535 für eine Instanz von SQL Server angeben, die nicht am Standardport 1433 lauscht. Beispiel: ServerA,1450 oder <ip address>,1435.

Hinweis

Es wird empfohlen, die Verbindung mit dem Remoteserver über die IP-Adresse herzustellen. Je nach Netzwerkkonfiguration sind zur Herstellung einer Verbindung unter Angabe des Computernamens möglicherweise weitere Schritte erforderlich, damit Ihr nicht zur Appliance gehörender DNS-Server zum Auflösen des Namens in den korrekten Server verwendet werden kann. Dieser Schritt ist nicht erforderlich, wenn Sie die Verbindung mit einer IP-Adresse herstellen. Weitere Informationen finden Sie unter Verwenden einer DNS-Weiterleitung zum Auflösen von NICHT-Appliance-DNS-Namen in Analytics Platform System.

user_name

Eine gültige SQL Server-Anmelde-ID für die Authentifizierung. Die maximale Anzahl von Zeichen ist 128.

password

Das Anmeldekennwort. Die maximale Anzahl von Zeichen ist 128.

batch_size

Die maximale Anzahl der Zeilen pro Batch. Analytics-Plattformsystem (PDW) sendet Zeilen in Batches an den Zielserver. Batch_size ist eine positive ganze Zahl >= 0. Standard ist "0".

WITH common_table_expression

Gibt ein temporäres benanntes Resultset an, das als allgemeiner Tabellenausdruck (CTE, Common Table Expression) bezeichnet wird. Weitere Informationen finden Sie unter WITH common_table_expression (Transact-SQL).

SELECT <select_criteria>

Das Abfrage-Prädikat, das angibt, welche Daten die neue Remotetabelle auffüllen. Informationen zur SELECT-Anweisung finden Sie unter SELECT (Transact-SQL).

Berechtigungen

Erfordert:

  • SELECT-Berechtigung für jedes Objekt in der SELECT-Klausel.

  • CREATE TABLE-Berechtigung für die SMP-Zieldatenbank.

  • ALTER-, INSERT- und SELECT-Berechtigungen für das SMP-Zielschema.

Fehlerbehandlung

Wenn das Kopieren von Daten in die Remotedatenbank fehlschlägt, bricht das Analytics Platform System (PDW) den Vorgang ab, protokolliert einen Fehler und versucht, die Remotetabelle zu löschen. Analytics-Plattformsystem (PDW) gewährleistet nicht die erfolgreiche Bereinigung der neuen Tabelle.

Begrenzungen

Remotezielserver:

  • TCP ist die Standardeinstellung und das einzige unterstützte Protokoll zum Herstellen einer Verbindung mit einem Remoteserver.

  • Der Zielserver muss ein Nichtanwendungsserver sein. CREATE REMOTE TABLE können nicht verwendet werden, um Daten aus einer Appliance in eine andere zu kopieren.

  • Mit der CREATE REMOTE TABLE-Anweisung werden nur neue Tabellen erstellt. Aus diesem Grund darf die neue Tabelle noch nicht vorhanden sein. Remotedatenbank und Remoteschema müssen bereits vorhanden sein.

  • Der Remoteserver benötigt verfügbaren Speicherplatz zum Speichern der Daten, die von der Appliance zur SQL Server-Remotedatenbank übertragen werden.

SELECT-Anweisung:

  • Die klauseln ORDER BY und TOP werden in den Auswahlkriterien nicht unterstützt.

  • CREATE REMOTE TABLE kann nicht innerhalb einer aktiven Transaktion ausgeführt werden oder wenn die AUTOCOMMIT OFF-Einstellung für die Sitzung aktiv ist.

SET ROWCOUNT (Transact-SQL) hat keine Auswirkung auf diese Anweisung. Verwenden Sie TOP (Transact-SQL), um ein ähnliches Verhalten zu erzielen.

Sperrverhalten

Nachdem Sie die Remotetabelle erstellt haben, ist die Zieltabelle erst gesperrt, wenn die Kopie gestartet wird. Aus diesem Grund ist es möglich, dass ein anderer Prozess die Remotetabelle löscht, nachdem sie erstellt wurde und bevor der Kopiervorgang gestartet wird. In diesem Fall generiert das Analytics Platform System (PDW) einen Fehler, und die Kopie schlägt fehl.

Metadaten

Verwenden Sie sys.dm_pdw_dms_workers (Transact-SQL), um den Status des Kopiervorgangs der ausgewählten Daten auf den SMP-Remoteserver anzuzeigen. Zeilen mit dem Typ PARALLEL_COPY_READER enthalten diese Informationen.

Sicherheit

CREATE REMOTE TABLE verwendet die SQL Server-Authentifizierung, um eine Verbindung mit der SQL Server-Remoteinstanz herzustellen; sie verwendet keine Windows-Authentifizierung.

Das von außen zugängliche Netzwerk Analytics-Plattformsystem (PDW) muss durch eine Firewall geschützt sein. Ausnahmen sind SQL Server-Ports, administrative Ports und Managementports.

Zur Vermeidung versehentlicher Datenverluste oder -beschädigungen sollte das Benutzerkonto, das zum Kopieren von der Appliance in die Zieldatenbank verwendet wird, nur über die mindestens erforderlichen Berechtigungen für die Zieldatenbank verfügen.

Mithilfe der Verbindungseinstellungen können Sie eine Verbindung mit der SMP-SQL Server-Instanz herstellen. Dabei sind Benutzername und Kennwortdaten SSL-geschützt, die eigentlichen Daten werden jedoch unverschlüsselt gesendet. In diesem Fall kann ein böswilliger Benutzer den CREATE REMOTE TABLE Anweisungstext abfangen, der den SQL Server-Benutzernamen und das Kennwort enthält, um sich bei der SMP SQL Server-Instanz anzumelden. Um dieses Risiko zu vermeiden, verwenden Sie die Verschlüsselung von Daten für die Verbindung mit der SMP-SQL Server-Instanz.

Beispiele

A. Erstellen einer Remotetabelle

In diesem Beispiel wird eine SQL Server-SMP-Remotetabelle, die MyOrdersTable heißt, in der Datenbank OrderReporting und dem Schema Orders erstellt. Die OrderReporting-Datenbank befindet sich auf einem Server mit dem Namen SQLA, der am Standardport 1433 lauscht. Anbieter Ihrer eigenen <user name> und <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. Abfragen des sys.dm_pdw_dms_workers DMV für den Remotetabellenkopiestatus

Diese Abfrage zeigt, wie der Kopierstatus für eine Remotetabellenkopie angezeigt wird.

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

C. Verwenden eines Abfragebeitrittshinweiss mit CREATE REMOTE TABLE

Diese Abfrage zeigt die grundlegende Syntax für die Verwendung eines Abfragebeitrittshinweiss mit CREATE REMOTE TABLE. Nachdem die Abfrage an den Steuerungsknoten übermittelt wurde, wendet SQL Server (wird auf den Computeknoten ausgeführt) die Hashjoinstrategie an, wenn der SQL Server-Abfrageplan generiert wird. Weitere Informationen zu Verknüpfungshinweisen und zur Verwendung der OPTION-Klausel finden Sie unter OPTION-Klausel (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);