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 ArbeitDer 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-DatenquellenKlicken 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 VerbindungsserverDamit 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.
FehlerbeispielSchritt 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 UltraschallWenn 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 NetzwerkdienstEs sollte so sein.
SQL Server-KonfigurationsmanagerSchritt 5 - Komponentenservice
win + R - dcomcnfg - Computer - Eigenschaften Mein Computer - Registerkarte Standardeigenschaften.
Füllen Sie das folgende Beispiel aus:
KomponentenserviceSchritt 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 ObjekteigenschaftenNächster Gewinn + R - Regedit-Suche. Sie müssen das Objekt anhand des Anwendungscodes in der Registrierung finden und seine Berechtigung eingeben.
Msdainitialize ObjektregistrierungVolle Kontrolle für den lokalen PC-Administrator.
Eigenschaften des msdainitialize-Objekts in der WINDOWS-RegistrierungBestätigen und speichern. Wir haben dies getan, damit der Abschnitt Sicherheit des Objekts (Anwendungscode) aktiv wird.
Sicherheitsabschnitt des msdainitialize-ObjektsAnpassen - 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-DienstSie 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.
ZugriffsberechtigungAls 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ührungIch 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).