Verbindungsserver konfigurieren: MS SQL Server und Teradata

Hallo allerseits! Ich habe mich aus einem einfachen Grund entschlossen, diesen Artikel zu schreiben: Ich habe keine detaillierten Anweisungen zum Einrichten eines Remote-Verbindungsservers zwischen Teradata- und MS SQL-Servern gefunden.

Sberbank speichert Daten auf verschiedenen Servern: oracle, teradata, mssql. Oft (manchmal mehrmals am Tag) müssen meine Kollegen und ich Aktionen ausführen, die als „effektiv“ bezeichnet werden. Dies ist sehr schwierig: Sie schreiben eine Anfrage, exportieren Daten in eine Datei, importieren sie auf den MSSQL-Server und arbeiten. Die für eine Anfrage aufgewendete Zeit beträgt mehr als 3 Stunden (ca. 90 Millionen Leitungen).


Effiziente Arbeit

Der Grund für solch komplexe Aktionen ist das Fehlen von Berechtigungen zum Erstellen von Tabellen auf Teradata-Servern. Aus diesem Grund „laden“ wir die Daten auf den MS SQL Server hoch (mit Berechtigungen ist alles in Ordnung). Dies war eine Einführung, und jetzt komme ich zur Beschreibung der Abfolge der Aktionen.

Hinweis : Die Anweisung wurde mit SQL Server Management Studio 12 und Teradata Client Version 15 erstellt (wenn die Teradata-Version niedriger ist, z. B. 14, muss zusätzliche Software von der offiziellen Website heruntergeladen werden).

Schritt 1 - Konfigurieren Sie eine ODBC-Verbindung

Gehen Sie zu Systemsteuerung \ System und Sicherheit \ Administration \ ODBC-Datenquellen

Klicken Sie im Abschnitt "Benutzerdefinierter DSN" auf "Hinzufügen". Wählen Sie als Nächstes den Teradata-Treiber aus und füllen Sie die Felder aus.

Wichtig: Merken Sie sich den Namen der neuen Quelle. Wir brauchen es noch.

Schritt 2 - Verbindungsserver

Open Management Studio - Serverobjekte - Verbindungsserver - Erstellen Sie einen Verbindungsserver.

Die Felder im Abschnitt Allgemein sind: Verbindungsserver - ein beliebiger Name, Anbieter - Microsoft OLE DB-Anbieter für ODBC-Treiber, Produktname - ServiceNow, Datenquelle - der Name der Datenquelle, die in "Schritt 1" erstellt wurde.


Verbindungsserverbereich "Allgemein"

Felder des Abschnitts "Sicherheit": Remote-Anmeldung - der Name des KM auf dem Teradata-Server, mit Kennwort - das Kennwort des KM auf dem Teradata-Server.


Sicherheitsbereich für Verbindungsserver

Damit sich niemand über den Verbindungsserver (Teradata) unter meinem KM anmelden kann, füge ich eine Zuordnung der Anmeldenamen auf lokalen und Remote-Servern hinzu. Gespeichert.


Übereinstimmende Anmeldungen auf lokalen und Remote-Servern

Öffnen Sie eine neue Anfrage. Wir schreiben select * from openquery (SERVICENOW, 'select * from dual') und erhalten eine Fehlermeldung. Zugriff verweigert. Mach weiter.


Fehlerbeispiel

Schritt 3 - SQLEXPRESS und integriertes KM

Wir gehen in den SQL Configuration Manager - SQL Server-Eigenschaften (MSSQLSERVER). Ändern Sie das Häkchen in "Verwenden Sie das integrierte KM (lokales System) für die Eingabe."


SQLEXPRESS und integrierter Ultraschall

Wenn Sie Management Studio 12 als Administrator ausführen, funktioniert dies. Wir müssen nicht unter dem Administrator. Wir konfigurieren weiter.

Schritt 4 - SQLEXPRESS und Netzwerkdienst

Wir gehen in den SQL Configuration Manager - SQL Server-Eigenschaften (MSSQLSERVER). Ändern Sie das Häkchen in "Verwenden Sie das integrierte KM (Netzwerkdienst) für die Anmeldung", jedoch unter KM NT-Dienst \ MSSQLSERVER .


SQLEXPRESS und Netzwerkdienst

Es sollte so sein.


SQL Server-Konfigurationsmanager

Schritt 5 - Komponentenservice

win + R - dcomcnfg - Computer - Eigenschaften Mein Computer - Registerkarte Standardeigenschaften.
Füllen Sie das folgende Beispiel aus:


Komponentenservice

Schritt 6 - Konfigurieren Sie DCOM

win + R - dcomcnfg - Computer - mein Computer - DCOM-Konfiguration - msdainitialize Eigenschaften. Anwendungs-ID / Anwendungscode kopieren. Erforderlich, um nach einem Objekt in der Windows-Registrierung zu suchen.


Msdainitialize Objekteigenschaften

Nächster Gewinn + R - Regedit-Suche. Sie müssen das Objekt anhand des Anwendungscodes in der Registrierung finden und seine Berechtigung eingeben.


Msdainitialize Objektregistrierung

Volle Kontrolle für den lokalen PC-Administrator.


Eigenschaften des msdainitialize-Objekts in der WINDOWS-Registrierung

Bestätigen und speichern. Wir haben dies getan, damit der Abschnitt Sicherheit des Objekts (Anwendungscode) aktiv wird.


Sicherheitsabschnitt des msdainitialize-Objekts

Anpassen - Bearbeiten (die Schaltfläche ist aktiv geworden) - Wir fügen dem Dienst NT Service \ MSSQLSERVER die vollen Rechte hinzu .


Volle Rechte für den MSSQLSERVER-Dienst

Sie müssen dem Dienst Rechte in den Abschnitten gewähren: Start- und Aktivierungsberechtigung, Zugriffsberechtigung, Konfigurationsberechtigung. Als Nächstes müssen Sie den Dienst MSQSQLSERVER neu starten - NT-Dienst \ MSSQLSERVER neu starten / neu starten .

Schritt 7 COM-Sicherheit

win + R - dcomcnfg - Computer - mein Computer - DCOM-Konfiguration
Ändern Sie den Standardwert, indem Sie den Dienst NT Service \ MSSQLSERVER hinzufügen . Weisen Sie ihm maximale Berechtigungen für Partitionen zu: Start- und Aktivierungsberechtigung, Zugriffsberechtigung.


Zugriffsberechtigung

Als Nächstes müssen Sie den Dienst MSQSQLSERVER neu starten - NT-Dienst \ MSSQLSERVER neu starten / neu starten . Führen Sie select * from openquery aus (SERVICENOW, 'select * from dual'). Es funktioniert.


Abfrageausführung

Ich hoffe, dass dieser Leitfaden bei den Einstellungen der Fernzugriffstechnologie hilft. Jetzt importieren wir die Daten sofort auf den mssql-Server (was nicht Minuten, sondern Stunden spart). Eine Anforderung, die früher etwa 3 Stunden lang ausgeführt wurde (Datenexport in eine Datei, Import in mssql), wird nach dem Einrichten der Technologie in 47 Sekunden verarbeitet (Import des Abfrageergebnisses sofort in mssql).

Source: https://habr.com/ru/post/de427437/


All Articles