Olá pessoal! Decidi escrever este artigo por um motivo simples - não encontrei instruções detalhadas para configurar um servidor vinculado remotamente entre os servidores teradata e ms sql.
O Sberbank armazena dados em diferentes servidores: oracle, teradata, mssql. Freqüentemente (às vezes, várias vezes ao dia), meus colegas e eu temos que executar ações que são chamadas de “eficazes” é muito difícil: você escreve uma solicitação, exporta dados para um arquivo, importa-os para o servidor mssql e trabalha. O tempo gasto em uma solicitação é superior a 3 horas (cerca de 90 milhões de linhas).
Trabalho eficienteO motivo de tais ações complexas é a falta de privilégios para criar tabelas em servidores teradados. É por isso que "carregamos" os dados no servidor ms sql (tudo está bem com as permissões). Esta foi uma introdução e agora volto à descrição da sequência de ações.
Nota : as instruções foram preparadas usando o SQL Server Management Studio 12 e o Teradata Client versão 15 (se a versão do Teradata for menor, por exemplo 14, então é necessário fazer o download de software adicional no site oficial).
Etapa 1 - Configurar uma conexão ODBC
Vá:
Painel de Controle \ Sistema e Segurança \ Administração \ Fontes de Dados ODBCNa seção "DSN personalizado", clique em "Adicionar". Em seguida, selecione o driver Teradata e preencha os campos.
Importante: lembre-se do nome da nova fonte. Nós ainda precisamos disso.
Etapa 2 - Servidor vinculado
O Open Management Studio - Objetos de servidor - Servidores vinculados - cria um servidor vinculado.
Os campos na seção Geral são: Servidor vinculado - um nome arbitrário, Provedor - Microsoft OLE DB Provider para drivers ODBC, Nome do produto - ServiceNow, Fonte de dados - o nome da fonte de dados criada na "Etapa 1".
Seção de servidor vinculado "Geral"Campos da seção Segurança: Login remoto - o nome do KM no servidor Teradata, Com senha - a senha do KM no servidor Teradata.
Seção Segurança do Servidor VinculadoPara que ninguém possa acessar o servidor vinculado (teradata) no meu KM, adicionarei um mapeamento dos nomes de login nos servidores local e remoto. Salvo.
Correspondência de logons em servidores locais e remotosAbra uma nova solicitação. Escrevemos select * from openquery (SERVICENOW, 'select * from dual') e obtemos um erro. Acesso negado. Vá em frente.
Exemplo de erroEtapa 3 - SQLEXPRESS e KM integrado
Entramos no SQL Configuration Manager - Propriedades do SQL Server (MSSQLSERVER). Altere a marca de seleção para "Use o KM (sistema local) interno para entrada".
SQLEXPRESS e ultra-som integradoSe você executar o Management Studio 12 como administrador, ele funcionará. Não precisamos do administrador. Continuamos a configurar.
Etapa 4 - SQLEXPRESS e serviço de rede
Entramos no SQL Configuration Manager - Propriedades do SQL Server (MSSQLSERVER). Altere a marca de seleção para "Use o KM (Serviço de Rede) interno para fazer login", mas em KM
NT Service \ MSSQLSERVER .
SQLEXPRESS e serviço de redeDeveria ser assim.
Gerenciador de Configuração do SQL ServerEtapa 5 - Serviço de Componentes
win + R - dcomcnfg - Computers - Properties meu computador - guia Propriedades padrão.
Preencha o exemplo abaixo:
Serviço de ComponentesEtapa 6 - Configurar o DCOM
win + R - dcomcnfg - computadores - meu computador - configuração DCOM - msdainitialize propriedades. Copie o ID do aplicativo / código do aplicativo. Necessário para procurar um objeto no registro do Windows.
Propriedades do objeto MsdainitializePróxima vitória + R - regedit- pesquisa. Você precisa encontrar o objeto no registro, pelo código do aplicativo, e inserir sua permissão.
Registro de objeto MsdainitializeControle total para o administrador local do PC.
Propriedades do objeto msdainitialize no registro do WindowsConfirme e salve. Fizemos isso para que a seção Segurança do objeto (código do aplicativo) se torne ativa.
Seção de segurança do objeto msdainitializePersonalizar - Editar (o botão ficou ativo) - adicionamos direitos totais ao
serviço NT Service \ MSSQLSERVER .
Direitos totais para o serviço MSSQLSERVERVocê precisa conceder direitos ao serviço nas seções: permissão de inicialização e ativação, permissão de acesso, permissão de configuração. Em seguida, você precisa reiniciar o serviço MSQSQLSERVER - Reiniciar / Reiniciar
NT Service \ MSSQLSERVER .
Etapa 7 Segurança COM
win + R - dcomcnfg - computadores - meu computador - configuração DCOM
Altere o valor padrão adicionando o
serviço NT Service \ MSSQLSERVER . Atribua permissões máximas para partições: permissão de inicialização e ativação, permissão de acesso.
Permissão de acessoEm seguida, você precisa reiniciar o serviço MSQSQLSERVER - Reiniciar / Reiniciar
NT Service \ MSSQLSERVER . Execute select * from openquery (SERVICENOW, 'select * from dual'). Isso funciona.
Execução de consultaEspero que este guia ajude com as configurações da tecnologia de acesso remoto. Agora importamos os dados imediatamente para o servidor mssql (economizando não minutos, mas horas). Uma solicitação que costumava ser executada por cerca de 3 horas (exportação de dados para um arquivo, importação para mssql), após a configuração da tecnologia, processada em 47 segundos (importação do resultado da consulta imediatamente para mssql).