配置链接的服务器:ms sql服务器和teradata

大家好! 我决定写这篇文章的原因很简单-我没有找到在teradata和ms sql服务器之间设置远程链接服务器的详细说明。

Sberbank将数据存储在不同的服务器上:oracle,teradata,mssql。 我和我的同事常常(有时,每天几次)必须执行被称为“有效”的操作,这非常困难:编写请求,将数据导出到文件,将其导入到mssql服务器并进行工作。 一个请求花费的时间超过3小时(约9000万行)。


高效的工作

采取此类复杂操作的原因是缺乏在Teradata服务器上创建表的特权。 这就是为什么我们将数据“上载”到ms sql服务器(使用权限一切正常)。 这是一个介绍,现在我将对动作顺序进行描述。

注意 :该说明是使用SQL Server Management Studio 12和Teradata Client ver 15准备的(如果Teradata的版本较低,例如14,则必须从官方网站下载其他软件)。

步骤1-配置ODBC连接

转至: 控制面板\系统和安全\管理\ ODBC数据源

在“自定义DSN”部分中,单击“添加”。 接下来,选择Teradata驱动程序并填写字段。

重要提示:请记住新来源的名称。 我们仍然需要它。

第2步 -链接服务器

打开Management Studio-服务器对象-链接服务器-创建链接服务器。

“常规”部分中的字段为:链接服务器-任意名称,提供程序-ODBC驱动程序的Microsoft OLE DB提供程序,产品名称-ServiceNow,数据源-在“步骤1”中创建的数据源的名称。


链接的服务器部分“常规”

“安全性”部分的字段:远程登录-Teradata服务器上KM的名称,带密码-Teradata服务器上KM的密码。


链接服务器安全性部分

为了使没人能通过我的KM下的链接服务器(teradata)登录,我将在本地和远程服务器上添加登录名的映射。 已保存。


匹配本地和远程服务器上的登录名

打开一个新请求。 我们从openquery中写入select *(SERVICENOW,“从double中选择*”),然后得到一个错误。 访问被拒绝。 来吧


错误示例

步骤3 -SQLEXPRESS和集成式KM

我们进入“ SQL配置管理器-SQL Server属性(MSSQLSERVER)”。 将复选标记更改为“使用内置的KM(本地系统)进行输入”。


SQLEXPRESS和集成超声

如果您以管理员身份运行Management Studio 12,它将可以正常工作。 我们不需要在管理员之下。 我们继续进行配置。

步骤4 -SQLEXPRESS和网络服务

我们进入“ SQL配置管理器-SQL Server属性(MSSQLSERVER)”。 将复选标记更改为“使用内置的KM(网络服务)进行登录”,但在KM NT Service \ MSSQLSERVER下


SQLEXPRESS和网络服务

应该是这样


SQL Server配置管理器

步骤5-组件服务

win + R-dcomcnfg-计算机-我的计算机属性-默认属性选项卡。
填写以下示例:


组件服务

第6步 -配置DCOM

win + R-dcomcnfg-计算机-我的计算机-DCOM配置-msdainitialize属性。 复制应用程序ID /应用程序代码。 在Windows注册表中搜索对象所必需。


Msdainitialize对象属性

下一场胜利+ R-regedit-搜索。 您需要通过应用程序代码在注册表中找到对象,然后输入其权限。


Msdainitialize对象注册表

完全控制本地PC管理员。


WINDOWS注册表中msdainitialize对象的属性

确认并保存。 我们这样做是为了使对象(应用程序代码)的“安全性”部分处于活动状态。


msdainitialize对象的“安全性”部分

自定义-编辑(按钮变为活动状态)-我们为NT Service \ MSSQLSERVER服务添加了完整权限。


MSSQLSERVER服务的完整权限

您需要在以下部分中授予服务权限:启动和激活权限,访问权限,配置权限。 接下来,您需要重新启动服务MSQSQLSERVER-重新启动/重新启动NT Service \ MSSQLSERVER

步骤7 COM安全

win + R-dcomcnfg-电脑-我的电脑-DCOM配置
通过添加NT Service \ MSSQLSERVER服务来更改默认值。 为分区分配最大权限:启动和激活权限,访问权限。


访问权限

接下来,您需要重新启动服务MSQSQLSERVER-重新启动/重新启动NT Service \ MSSQLSERVER 。 运行select * from openquery(SERVICENOW,“ select * from dual”)。 可以用


查询执行

我希望本指南对远程访问技术的设置有所帮助。 现在,我们将数据立即导入到mssql服务器(不节省分钟,而是节省数小时)。 设置该技术后,以前运行大约3个小时(将数据导出到文件,再导入到mssql)的查询在47秒内处理完毕(将查询结果立即导入到mssql)。

Source: https://habr.com/ru/post/zh-CN427437/


All Articles