none
Melhor lugar para armazenamento de logs RRS feed

  • Discussão Geral

  • Boa tarde a todos,

    Gostaria de opinião e experiência de vocês em relação ao armazenamento de logs dentro das tecnologias Microsoft.

    O que vocês utilizam? Table Storage? Tabelões em bancos relacionais? Tabelas com column store index em banco relacional? Cosmos DB?

    O problema dos Logs é que ele tem muita gravação e quase nada de leitura (apenas quando queremos rastrear um problema). Acredito que o mais barato seja armazenar em Table Storage e construir uma API que faça a leitura dos JSONs quando necessário, certo?

    Se os logs forem muito acessados, o melhor é deixá-los no relacional mesmo com um column store index?

    Por favor, me contem o que vocês tem aí.

    Obrigada.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    segunda-feira, 9 de setembro de 2019 18:11

Todas as Respostas

  • Olá Mariana, 

    Sua pergunta é sobre o BD em Azure certo ? ou sobre 'qualquer' Sql Server? 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    segunda-feira, 9 de setembro de 2019 21:23
  • Olá Jefferson,

    Qualquer opção Microsoft. 
    Minha intenção é colher opiniões, vivências mesmo dos colegas de banco de dados.

    Artigos tem muitos, mas queria saber o que as pessoas estão usando? Cosmos? Cosmos com Mongo? Blob Storage? Enfim...

    Obrigada.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    segunda-feira, 9 de setembro de 2019 21:26
  • Mari, bom dia.

    Tudo bem? Falando de ambiente cloud, realmente temos que analisar a questão do custo benefício, mas v vou tentar responder de forma breve as suas perguntas, com base, nas minhas últimas experiências em cloud:

    1 - O problema dos Logs é que ele tem muita gravação e quase nada de leitura (apenas quando queremos rastrear um problema). Acredito que o mais barato seja armazenar em Table Storage e construir uma API que faça a leitura dos JSONs quando necessário, certo?

    -- Sim, o uso do JSON a cada dia esta se tornando um padrão para troca de dados via web sendo armazenados em cloud, ainda mais pensando na possibilidade de trabalhar com JSON compactado e posteriormente contido em um Table Storage, as vezes não seja nem necessário criar uma API, dependendo do que você for fazer o acesso ao dado poderá ser reconhecido diretamente.

    2 - Se os logs forem muito acessados, o melhor é deixá-los no relacional mesmo com um column store index?

    Particularmente falando eu ainda vejo como uma boa possibilidade o uso do relacional aplicado ao conceito de ColumnStore, ainda mais se você dimensionar somente o que deverá ser armazenado nesta estrutura, planejar dentro do possível algo que transacione o menos possível de dados e instruções para gerar o menos possível de log.

    Neste momento, tenho utilizo muito do Azure SQL Database para ambientes bem específicos e dedicados a cenários de coleta de dados, mas tenho observado um crescimento enorme do uso do Cosmos DB para soluções de armazenamento e manipulações de dados que envolvam aplicações que devem trabalhar totalmente na internet, este é um ponto que temos que analisar, se a sua aplicação vai rodar na Web e não tem a necessidade de se manter logs da maneira que os SGBDs trabalham, acredito que podemos começar a repensar e adotar uma tecnologia de NoSQL.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 10 de setembro de 2019 12:27
  • Olá Junior, 

    Obrigada pela resposta.

    O que fico pensando em relação aos logs que são acessados frequentemente pelo sistema é: se eu deixar no relacional, tenho competição no uso de recursos com todas as outras operações do sistema.
    Então mesmo colocando um column store index, tenho competição por I/O, memória, etc etc etc.

    Mas se colocar num Cosmos, terei o ônus de ter que ir buscar numa fonte externa ao meu banco, outra conexão, outra maneira de tratar os dados antes de serem exibidos.

    Fico pensando qual preço é o melhor para pagar.. rs

    Obrigada!


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    terça-feira, 10 de setembro de 2019 13:00
  • Mariana,

    Em relação ao preço falando de dinheiro, realmente isso poderá custar um pouco!

    Agora, se for para ter outra fonte de dados externa, porque não pensar em criar um outro banco de dados, trabalhando no modelo de recuperação Simples?

    Eu então, analisar o que realmente você vai precisar de log, será que as vezes, não poderiamos pensar no uso do filesystem trabalhando diretamente com arquivos para armazenar este log, algo do tipo XML ou até mesmo JSON.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 10 de setembro de 2019 18:54