AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 331390
Accepted
Skary
Skary
Asked: 2023-09-20 17:33:39 +0800 CST2023-09-20 17:33:39 +0800 CST 2023-09-20 17:33:39 +0800 CST

Como fazer um SQL Server remoto para extrair dados locais do SQL Server

  • 772

No meu cenário, tenho um SQL Server Express que é minha fonte de dados. Periodicamente produz lotes de dados, que devem ser carregados em um repositório central (um SQL Server SE na nuvem). A fonte de dados conhece o repositório central, mas o repositório central não conhece nenhuma fonte de dados possível (pode mudar com o tempo). Não sei se o SQL Server Express suporta envio de logs, nem estou familiarizado com essa tecnologia; de qualquer forma, especificaria que, por outro motivo, não é uma solução viável.

Minha solução atual é fazer upload, da fonte de dados, através do servidor vinculado (apontar para a nuvem SQL Server SE), todos os dados quando necessário. Dá trabalho sem dúvida, mas monitorando o SQL Server SE central (na nuvem) vejo um grande volume de solicitação. A leitura da documentação me parece que o envio de dados é ineficiente e enviará uma linha por vez (isso explica o baixo desempenho que tenho e o volume de solicitações no SQL Server SE central).

Gostaria de saber se existe uma maneira de executar remotamente um pull no SQL Server central, acionado pelo remoto. Dessa forma, posso explorar o fato de que extrair dados deve ser eficiente, empurrá-los e contornar o problema de que o SQL Server central não sabe qual fonte de dados irá contatá-lo e quando.

sql-server
  • 2 2 respostas
  • 50 Views

2 respostas

  • Voted
  1. Best Answer
    Sean Gallardy
    2023-09-20T23:05:22+08:002023-09-20T23:05:22+08:00

    Dessa forma posso explorar o fato de que a extração de dados deve ser eficiente [...]

    Como sabemos que é mais eficiente ir de Central->Edge em vez de Edge->Central? Este parece ser um problema XY.

    Um servidor vinculado não é eficiente, esteja indo para um lado ou para outro. Idealmente, isso seria concluído pelo aplicativo, não pelo mecanismo de banco de dados. Também não leva em consideração regras de firewall ou quaisquer outros itens que possam ser necessários.

    contornando o problema de que o SQL Server central não sabe qual fonte de dados entrará em contato com ele e quando.

    Se você quiser ter uma lista de itens externos, como você conhece as informações do servidor central, faça com que os clientes externos coloquem suas informações no servidor central para que ele saiba com quem entrar em contato e quando. Isso também deve ser feito por meio de um aplicativo e não diretamente no mecanismo de banco de dados.

    Novamente, isso não leva em consideração quaisquer outras configurações que possam ser necessárias.

    • 2
  2. Aman Raiyyani
    2023-09-21T00:05:38+08:002023-09-21T00:05:38+08:00

    Existem várias maneiras de atingir seu objetivo de transferir dados com eficiência do SQL Server Express local para um SQL Server SE central na nuvem. No entanto, entendo que você está procurando uma solução onde o servidor central possa extrair dados do servidor local sem saber de antemão. Isto pode ser um pouco desafiador devido a questões de segurança e conectividade, mas aqui está uma estratégia potencial:

    Etapa 1: Configurar um serviço Web ou API Você precisaria configurar um serviço Web ou API no lado do seu servidor local. Este serviço pode ser configurado para expor os dados necessários ao servidor central. Você pode usar tecnologias como ASP.NET Core ou Flask (para Python) para criar este serviço.

    Etapa 2: Segurança e autenticação Certifique-se de que seu serviço web ou API seja seguro, utilizando autenticação e criptografia apropriadas para proteger seus dados. Você pode usar OAuth, JWT ou outros mecanismos de autenticação para proteger seu serviço.

    Passo 3: Disparar a partir do Servidor Local A partir do servidor local, sempre que houver novos dados a serem transferidos, você poderá enviar uma notificação ao servidor central. Esta notificação seria essencialmente uma solicitação ao servidor central para extrair dados do servidor local.

    Etapa 4: Recuperação de dados pelo servidor central Ao receber a notificação, o servidor central pode fazer chamadas HTTP/REST ao seu serviço web para recuperar os dados. Você teria que desenvolver um mecanismo em seu servidor central para lidar com essas notificações e iniciar o processo de recuperação de dados. Pode ser um serviço ou uma tarefa agendada que escuta notificações e recupera dados quando notificado.

    Etapa 5: Importação de dados para o servidor central Assim que os dados forem recuperados pelo servidor central, ele os importará para o banco de dados SQL Server. Você pode usar várias técnicas para isso, como operações de inserção em massa, para melhorar a eficiência. Você pode tentar usar um processo ETL para importar dados com base na frequência.

    Conclusão: Ao seguir esta estratégia, você estaria efetivamente configurando um mecanismo onde o servidor central pode extrair dados do servidor local ao ser notificado. Essa abordagem aproveitaria os serviços da Web para facilitar a transferência de dados, fornecendo uma solução flexível e segura para o seu problema.

    • -4

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve