1
resposta

[Dúvida] Como decidir melhor forma de armazenar e tratar dados

Minha grade duvida,

Tenho algumas tabelas que estão separadas em várias arquivos alguns exemplo

  1. Pessoa Fisicas
  2. RGs
  3. Telefones
  4. Emails

e somente a de pessoa fisica por exemplo tem 20gb e em média 227 milhões de linha e em outras tabelas como RG tem menos e emails e telefones tem mais, a chave de ligação sempre é o campo CPF_HASH, o problema que vejo é que um elasticsearch é muito caro para rodar isto fora que é uma ferramenta paga. Estou usando o mongoDB como pipeline mas usar ele como produção para disponibilizar a cliente ele se torna mais caro até que o elasticsearch pelo fato de precisar utilizar ele em cluster que necessita de diversos servidores se não me engano precisa de um config-server e um outro já de saida.

Mas queria ver quais seriam melhores formas de trabalhar com isso ?

Por exemplo na hora de cruzar esses dados eu gero uma tabela resultante onde cada registro/documento vai ter tudo sobre aquele CPF.

1 resposta

Olá, Luis, tudo bem?

Desculpe a demora em te responder!

A escolha da melhor solução para lidar com seus dados depende de vários fatores, incluindo o tipo de dados, a frequência de acesso, a necessidade de escalabilidade, entre outros.

Por se tratar de dados relacionais, onde as tabelas estão ligadas por uma chave, no seu caso, o CPF_HASH, você pode utilizar o PostgreSQL e MySQL são exemplos de bancos de dados relacionais que são gratuitos e podem lidar com grandes volumes de dados.

No entanto, se a velocidade de acesso e a escalabilidade forem uma grande preocupação, você pode considerar um banco de dados NoSQL. Embora o MongoDB seja uma opção, existem outras alternativas gratuitas, como o Apache Cassandra e o CouchDB, que também são altamente escaláveis e podem lidar com grandes volumes de dados.

No que diz respeito ao cruzamento de dados, uma prática comum é criar uma tabela de junção (ou tabela de associação) que contém chaves estrangeiras que referenciam o CPF_HASH nas outras tabelas. Isso pode facilitar as consultas e melhorar o desempenho.

Por exemplo, você pode ter uma tabela chamada "DadosPessoais", que contém todas as informações sobre um CPF específico, com colunas como CPF_HASH, RG, Telefone, E-mail, etc. Quando você precisa cruzar os dados, pode simplesmente consultar esta tabela.

Lembre-se, no entanto, que cada caso é único. Portanto, é importante experimentar diferentes abordagens e ver o que funciona melhor para o seu caso específico.

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!