Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Um pouco atrasado no tópico mas vamos lá... Em 24 de outubro de 2016 20:15, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu: > > > Em seg, 24 de out de 2016 às 13:50, Luiz Henrique < > luiz.henriqu...@gmail.com> escreveu: > >> Pessoal, >> >> Temos uma aplicação jboss que recebemos como "herança", ela armazena >> diversos arquivos de imagens (jpeg,bmp,etc). Essa tabela com os binários >> representa mais que 90% do tamanho total do banco, hoje com 210GB. >> >> Aí vem a pergunta. O que os participantes do grupo acham dessa prática ? >> O que é mais indicado, gravar arquivos em file system ou no próprio banco ? >> Sendo file system vocês tem sugestão de ferramentas ? >> > > Não vejo boa prática nem em A nem em B. > Colocar arquivos em banco de dados tem suas vantagens, como por exemplo, > ter um backup unificado. Você também pode lidar com replicação dos dados e > dos arquivos simultaneamente. Sem contar que tudo se torna transacional, > portanto, você pode criar, modificar ou remover um arquivo ao mesmo tempo > que outra transação e o banco cuida do isolamento e atomicidade da coisa > toda. > Ter um sistema de arquivos separado pode ser interessante quando você tem > muitos acessos aos arquivos, isso é mais fácil de escalar que o banco de > dados. Por outro lado, ao contrário do controle transacional que falei > acima, é muuuito comum arquivos ficarem perdidos no sistema de arquivos > sendo que o "caminho" já foi removido do banco de dados. > > Enfim, cada caso é um caso, acho que simplesmente o "tamanho do banco" e > "uma grande tabela" não é fator de decisão ou exclusão. > Como bem colocado pelo Gurgel o simples fato do "tamanho do banco" não é um bom indicativo para qualquer mudança e cada caso é um caso. Todavia, como regra geral, sistemas de arquivos lidam melhores com arquivos do que SGBD's. Toda vez que você adiciona uma nova camada de abstração, neste caso o banco de dados, você não apenas pode perder em performance mas adiciona um nível maior de complexidade que pode causar problemas indesejados, como por exemplo corrupção dos arquivos armazenados no banco. Com relação as vantagens do SGBD sobre o FS eu não vejo tanto ganho assim. Por exemplo, não é preciso perder as vantagens transacionais ao colocar toda a operação, incluindo as chamadas ao FS, na mesma transação. Pode-se colocar as alterações no FS pro final da transação e em último caso pode-se utilizar ferramentas de versionamento para garantir que o estado do sistema de arquivos esteja consistente e em um caso onde o FS retorne um erro basta executar um rollback. Com relação ao backup não vejo como vantagem tão grande uma vez que de qualquer forma devemos ter uma boa estratégia para ambos, SGBD e FS. Por outro lado concentrar os arquivos no BD irá aumenta o tempo de backup e principalmente o tempo de recuperação pois fica mais complexo a aplicação de paralelismo. Outro ganho que se pode ter com arquivos no FS é a utilização de servidores para mídias e arquivos estáticas. Muito mais eficientes e pode-se utilizar CDN para distribuir a carga através da rede o que descentraliza o tráfego e melhora performance. Mas como foi falado acima pelo Gurgel, se não existe um problema real não vejo porque mudar pelo simples fato de as tabelas estarem crescendo. Att, Charly Batista ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Em 2 de novembro de 2016 01:38, Felipe Pereiraescreveu: > > > Em 25 de outubro de 2016 09:34, Michel Luiz Milezzi < > michelmile...@gmail.com> escreveu: > >> >>O que é mais indicado, gravar arquivos em file system ou no próprio >>> banco ? >>> >> >> Existe uma terceira via, que é a de usar um serviço exclusivo para este >> fim, como o Cloudinary [1]. >> >> [1] http://cloudinary.com/ >> >> ___ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > > > Na empresa em que trabalho, também armazenamos os binários no Banco. É realmente um problema. Nosso banco hoje, com 3TB, possuí mais de 2.3TB de imagens, etc. Incomoda bastante, não só pelo tamanho, mas pela performance (principalmente) Estamos com um projeto grande para remover estes binários do Banco e armazena-los no S3 Bucket (Estamos migrando da Rackspace para AWS). Minha sugestão é: Tire estes binários do Banco antes que o seu banco fique enorme e torne as coisas mais difíceis :) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Em 25 de outubro de 2016 09:34, Michel Luiz Milezziescreveu: > >>O que é mais indicado, gravar arquivos em file system ou no próprio >> banco ? >> > > Existe uma terceira via, que é a de usar um serviço exclusivo para este > fim, como o Cloudinary [1]. > > [1] http://cloudinary.com/ > > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > Adicionando à pergunta original: li um paper da Microsoft uma vez tratando do assunto, obviamente que a relação era entre SQL Server e File System. A conclusão do artigo deles era que arquivos até 2 MB eram melhor gerenciados pelo Banco de Dados, já de 2 MB até 10 MB não havia diferença e arquivos maiores do que 10 MB eram melhor gerenciados pelo file system. De qualquer forma a resposta do Gurgel levanta os assuntos necessários a se verificar antes de tomar a decisão. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
> > >>O que é mais indicado, gravar arquivos em file system ou no próprio > banco ? > Existe uma terceira via, que é a de usar um serviço exclusivo para este fim, como o Cloudinary [1]. [1] http://cloudinary.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
>>O que é mais indicado, gravar arquivos em file system ou no próprio banco ? Também tive essa dúvida e decidi por utilizar o melhor de ambos, Para Inserir/Alterar/Excluir gravo no banco de dados, pois tenho backup unificado e controle de transação. Para Visualizar utilizo o servidor web nginx (funciona como cache), pois não sobrecarrego o banco de dados. >>Sendo file system vocês tem sugestão de ferramentas ? Como minha aplicação fica no mesmo servidor que o banco de dados, utilizo a biblioteca Apache FileUtils. Atenciosamente, Alessandro Lima > ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
2016-10-24 10:46 GMT-02:00 Eduardo Bohrer: > Como o amigo Flavio salientou, existem prós e contras. > > De bate e pronto o mais recomendado seria deixar fora do banco mesmo. Não, o que o Flávio disse, e eu concordo, é que não há ‘mais recomendado’. A pessoa tem de avaliar sua situação e decidir. Se não há problemas reais e constatados, melhor deixar como estar. Havendo problemas, aí podem-se avaliar prós e contras de mudar. Mudar sem saber exatamente porquê vai dar problemas novos sem que houvesse antigos a resolver. E na dúvida, deixe no banco. Ele foi feito para resolver problemas, não para criá-los. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (61) 9302 2691ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT−3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Como o amigo Flavio salientou, existem prós e contras. De bate e pronto o mais recomendado seria deixar fora do banco mesmo. Pois em geral binários e multimidia são muito grandes e aumentam o tamanho do banco de maneira feroz, tornando a operação do banco mais complicada e cara. Uma forma bastante comum (que tenho utilizado muito) é em conjunto com o S3 da amazon. Imagens vão para o S3 e referências para a base de dados. E deixo o S3 respondendo pelas imagens de maneira pública.(No meu caso pode) Desta forma desonero a base de dados de qualquer storage ou trasferência destes dados. De quebra ganho replicação em diferentes zonas, mas isso é papo pra outro post. Att; ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Em seg, 24 de out de 2016 às 13:50, Luiz Henriqueescreveu: > Pessoal, > > Temos uma aplicação jboss que recebemos como "herança", ela armazena > diversos arquivos de imagens (jpeg,bmp,etc). Essa tabela com os binários > representa mais que 90% do tamanho total do banco, hoje com 210GB. > > Aí vem a pergunta. O que os participantes do grupo acham dessa prática ? O > que é mais indicado, gravar arquivos em file system ou no próprio banco ? > Sendo file system vocês tem sugestão de ferramentas ? > Não vejo boa prática nem em A nem em B. Colocar arquivos em banco de dados tem suas vantagens, como por exemplo, ter um backup unificado. Você também pode lidar com replicação dos dados e dos arquivos simultaneamente. Sem contar que tudo se torna transacional, portanto, você pode criar, modificar ou remover um arquivo ao mesmo tempo que outra transação e o banco cuida do isolamento e atomicidade da coisa toda. Ter um sistema de arquivos separado pode ser interessante quando você tem muitos acessos aos arquivos, isso é mais fácil de escalar que o banco de dados. Por outro lado, ao contrário do controle transacional que falei acima, é muuuito comum arquivos ficarem perdidos no sistema de arquivos sendo que o "caminho" já foi removido do banco de dados. Enfim, cada caso é um caso, acho que simplesmente o "tamanho do banco" e "uma grande tabela" não é fator de decisão ou exclusão. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Aqui usamos o JCR pra armazenar em fs. Sugiro, para fins administrativos que as imagens fiquem em filesystems. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
Com relação a ferramentas, o que você quis dizer? Não entendi. Flavio, Obrigado pelo retorno. Em relação a ferramentas, é sobre a forma de como gravar em file system, sei que existem ferramentas tipo GED (gestão eletronica de documentos) que se propõe a fazer isso, tipo ALFRESCO. Gostaria de conhecer outras... Em 24 de outubro de 2016 09:54, Flávio Silveiraescreveu: > On 24/10/2016 09:50, Luiz Henrique wrote: > >> Pessoal, >> >> Temos uma aplicação jboss que recebemos como "herança", ela armazena >> diversos arquivos de imagens (jpeg,bmp,etc). Essa tabela com os binários >> representa mais que 90% do tamanho total do banco, hoje com 210GB. >> >> Aí vem a pergunta. O que os participantes do grupo acham dessa prática ? >> O que é mais indicado, gravar arquivos em file system ou no próprio banco ? >> Sendo file system vocês tem sugestão de ferramentas ? >> > Bom dia, > > Apesar de me considerar inexperiente para opinar, considero que nesses > casos se deve gravar somente o caminho do arquivo no banco e o arquivo em > si no sistema de arquivos. > > Com relação a ferramentas, o que você quis dizer? Não entendi. > > Espero ter ajudado. > > Atenciosamente, > Flávio Silveira > > > >> Gostaria da opinião dos colegas. Obrigado! >> >> -- >> Atenciosamente, >> >> Luiz Henrique >> >> “A coruja de Minerva alça seu vôo somente com o início do crepúsculo”. >> Friedrich Hegel >> >> >> ___ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Luiz Henrique “A coruja de Minerva alça seu vôo somente com o início do crepúsculo”. Friedrich Hegel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] armazenamento de imagens no Banco x File System
On 24/10/2016 09:50, Luiz Henrique wrote: Pessoal, Temos uma aplicação jboss que recebemos como "herança", ela armazena diversos arquivos de imagens (jpeg,bmp,etc). Essa tabela com os binários representa mais que 90% do tamanho total do banco, hoje com 210GB. Aí vem a pergunta. O que os participantes do grupo acham dessa prática ? O que é mais indicado, gravar arquivos em file system ou no próprio banco ? Sendo file system vocês tem sugestão de ferramentas ? Bom dia, Apesar de me considerar inexperiente para opinar, considero que nesses casos se deve gravar somente o caminho do arquivo no banco e o arquivo em si no sistema de arquivos. Com relação a ferramentas, o que você quis dizer? Não entendi. Espero ter ajudado. Atenciosamente, Flávio Silveira Gostaria da opinião dos colegas. Obrigado! -- Atenciosamente, Luiz Henrique “A coruja de Minerva alça seu vôo somente com o início do crepúsculo”. Friedrich Hegel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] armazenamento de imagens no Banco x File System
Pessoal, Temos uma aplicação jboss que recebemos como "herança", ela armazena diversos arquivos de imagens (jpeg,bmp,etc). Essa tabela com os binários representa mais que 90% do tamanho total do banco, hoje com 210GB. Aí vem a pergunta. O que os participantes do grupo acham dessa prática ? O que é mais indicado, gravar arquivos em file system ou no próprio banco ? Sendo file system vocês tem sugestão de ferramentas ? Gostaria da opinião dos colegas. Obrigado! -- Atenciosamente, Luiz Henrique “A coruja de Minerva alça seu vôo somente com o início do crepúsculo”. Friedrich Hegel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral