Hola a todos! Decidí escribir este artículo por una simple razón: no encontré instrucciones detalladas para configurar un servidor vinculado remoto entre los servidores teradata y ms sql.
Sberbank almacena datos en diferentes servidores: oracle, teradata, mssql. A menudo (a veces, varias veces al día), mis colegas y yo tenemos que realizar acciones que se denominan "efectivas" es muy difícil: escribir una solicitud, exportar datos a un archivo, importarlos al servidor mssql y trabajar. El tiempo dedicado a una solicitud es más de 3 horas (aproximadamente 90 millones de líneas).
Trabajo eficienteLa razón de tales acciones complejas es la falta de privilegios para crear tablas en servidores teradata. Es por eso que "subimos" los datos al servidor ms sql (todo está bien con permisos). Esta fue una introducción, y ahora paso a la descripción de la secuencia de acciones.
Nota : la instrucción se preparó utilizando SQL Server Management Studio 12 y Teradata Client ver 15 (si la versión de Teradata es inferior, por ejemplo 14, entonces se debe descargar software adicional del sitio web oficial).
Paso 1 : configurar una conexión ODBC
Ir:
Panel de control \ Sistema y seguridad \ Administración \ Fuentes de datos ODBCEn la sección "DSN personalizado", haga clic en "Agregar". A continuación, seleccione el controlador Teradata y complete los campos.
Importante: recuerde el nombre de la nueva fuente. Aún lo necesitamos.
Paso 2 : servidor vinculado
Open Management Studio - Objetos de servidor - Servidores vinculados: cree un servidor vinculado.
Los campos en la sección General son: Servidor vinculado: un nombre arbitrario, Proveedor: proveedor OLE DB de Microsoft para controladores ODBC, Nombre del producto: ServiceNow, Fuente de datos: el nombre de la fuente de datos que se creó en el "Paso 1".
Sección del servidor vinculado "General"Campos de la sección "Seguridad": Inicio de sesión remoto: el nombre del KM en el servidor Teradata, Con contraseña, la contraseña del KM en el servidor Teradata.
Sección de seguridad del servidor vinculadoPara que nadie pueda ingresar a través del servidor vinculado (teradata) debajo de mi KM, agregaré una asignación de nombres de inicio de sesión en los servidores locales y remotos. Guardado
Inicios de sesión coincidentes en servidores locales y remotosAbrir una nueva solicitud. Escribimos select * desde openquery (SERVICENOW, 'select * from dual') y obtenemos un error. Acceso denegado. Adelante
Ejemplo de errorPaso 3 : SQLEXPRESS y KM integrado
Entramos en el Administrador de configuración de SQL - Propiedades del servidor SQL (MSSQLSERVER). Cambie la marca de verificación a "Usar el KM (Sistema local) incorporado para la entrada".
SQLEXPRESS y ultrasonido integradoSi ejecuta Management Studio 12 como administrador, funcionará. No necesitamos bajo el administrador. Seguimos configurando.
Paso 4 - SQLEXPRESS y servicio de red
Entramos en el Administrador de configuración de SQL - Propiedades del servidor SQL (MSSQLSERVER). Cambie la marca de verificación a "Usar el KM (Servicio de red) incorporado para iniciar sesión", pero en KM
NT Service \ MSSQLSERVER .
SQLEXPRESS y servicio de redDebería ser así.
Administrador de configuración de SQL ServerPaso 5 - Servicio de componentes
win + R - dcomcnfg - computadoras - propiedades mi computadora - pestaña de propiedades por defecto.
Complete el siguiente ejemplo:
Servicio de componentesPaso 6 - Configurar DCOM
win + R - dcomcnfg - computadoras - mi computadora - configuración DCOM - propiedades de msdainitialize. Copiar ID de aplicación / Código de aplicación. Necesario para buscar un objeto en el registro de Windows.
Msdainitialize propiedades de objetoPróxima victoria + R - regedit- búsqueda. Debe encontrar el objeto en el registro, mediante el código de la aplicación, e ingresar su permiso.
Msdainitialize registro de objetosControl total para el administrador de PC local.
Propiedades del objeto msdainitialize en el registro de WINDOWSConfirmar y guardar. Hicimos esto para que la sección de Seguridad del objeto (código de aplicación) se active.
Sección de seguridad del objeto msdainitializePersonalizar - Editar (el botón se ha activado) - agregamos derechos completos al
servicio NT Service \ MSSQLSERVER .
Derechos completos para el servicio MSSQLSERVERDebe otorgar derechos al servicio en las secciones: Permiso de inicio y activación, Permiso de acceso, Permiso de configuración. A continuación, debe reiniciar el servicio MSQSQLSERVER: reiniciar / reiniciar el
servicio NT \ MSSQLSERVER .
Paso 7 Seguridad COM
win + R - dcomcnfg - computadoras - mi computadora - configuración DCOM
Cambie el valor predeterminado agregando el
servicio NT Service \ MSSQLSERVER . Asigne permisos máximos para particiones: Permiso de lanzamiento y activación, Permiso de acceso.
Permiso de accesoA continuación, debe reiniciar el servicio MSQSQLSERVER: reiniciar / reiniciar el
servicio NT \ MSSQLSERVER . Ejecute select * desde openquery (SERVICENOW, 'select * from dual'). Funciona
Ejecución de la consultaEspero que esta guía le ayude con la configuración de la tecnología de acceso remoto. Ahora importamos los datos inmediatamente al servidor mssql (ahorrando no minutos, sino horas). Una solicitud que solía ejecutarse durante aproximadamente 3 horas (exportación de datos a un archivo, importación a mssql), después de configurar la tecnología, se procesa en 47 segundos (importación del resultado de la consulta inmediatamente a mssql).