Apache Cassandra (NoSQL de Gente Grande e que Paga Muito Bem) // Dicionário do Programador
Vložit
- čas přidán 25. 08. 2024
- 🏆 𝗨𝗦𝗘 𝗛𝗢𝗝𝗘 𝗢 𝗖𝗔𝗦𝗦𝗔𝗡𝗗𝗥𝗔 → codft.me/astradb
A Stack Overflow mostra que o 3º maior salário para profissionais de banco de dados é para quem trabalha com o Apache Cassandra.
O Apache Cassandra é um banco de dados distribuído NoSQL que resolve as dores de lidar com grandes quantidades de dados. Com sua arquitetura distribuída, alta escalabilidade e tolerância a falhas, o Cassandra é uma escolha popular para empresas que precisam lidar com grandes volumes de dados em tempo real. Ele é amplamente utilizado em empresas de tecnologia, finanças e provedores de serviços em nuvem, incluindo gigantes como Apple, Netflix, eBay, Twitter, entre outras.
Algumas aplicações populares do Cassandra incluem a análise de dados em tempo real, gerenciamento de conteúdo, IoT (Internet das Coisas), aplicações financeiras e de comércio eletrônico. Se você é um desenvolvedor de software que trabalha com grandes quantidades de dados, aprender sobre o Apache Cassandra pode ser uma vantagem significativa para você e sua equipe. Neste vídeo, vamos explorar todas as vantagens, recursos e funcionalidades que o Cassandra tem a oferecer, para ajudá-lo a entender como essa ferramenta pode ser usada em seus próprios projetos, assim como é utilizada por grandes empresas de tecnologia e outras indústrias.
🎓 𝗔𝗣𝗥𝗘𝗡𝗗𝗔 𝗦𝗢𝗕𝗥𝗘 𝗖𝗔𝗦𝗦𝗔𝗡𝗗𝗥𝗔 𝗡𝗔 @DataStaxDevs
codft.me/datas...
🎙️ Compilado Podcast
→ CZcams: codft.me/canal...
→ Spotify: codft.me/compi...
→ Newsletter: compilado.codi...
🔗 Mais links do Código Fonte TV
→ codigofonte.tv
#NoSQL #ApacheCassandra #Database
As canetas mostram que é um ambiente sem muitas pessoas. Se tivesse mais alguém além dos dois teria, no máximo, uma em cada bolso. O resto já teria sumido.
Jkkkkkk
Isso se que as canetas ainda escrevem kkkkkk
KKKKKKKKKKK
É só uma canetinha pô tá ok?
Bingo! Todas as canetas estão completamente secas. kkkk
Uma vez eu testei cassandra usando UDP, e o que foi aquilo a performance era nivel nano não mili mas nano segundos entre request's, isso mesmo replicando dados 5 vezes e reenviando 3x para ter certeza, mas afinal né, Cassandra mantido pela Apache, o que falar na fundação mais inovadora e responsável que já existiu, o portifolio dos caras é lendario, uns verdadeiros mitos do mundo da programação, a internet inteira funciona em cima dos produtos do gigante que é a Apache. Eu realmente tiro o chapéu para esses caras 👌
Rapaz... é um trem gigantesco! Quando que a gente imaginou que chegaríamos a esse volume de dados?!
Na ApacheCon 2022, na palestra do time da Apple responsável pelo Cassandra, eles disseram que há mais de 300 mil instâncias de Cassandra armazenando centenas de petabytes de dados e executando milhões de queries por segundo. É realmente impressionante.
Esse vídeo foi pesado! Sempre quis saber mais sobre o famoso Cassandra, sempre mencionado nos TOP NoSQL, porém meio nebuloso de entender. Não é a toa que o vídeo deu 16min. Parabéns demais, CDF TV! E obrigado!
O vídeo tá ótimo...já pode diminuir a quantidade de caneta no bolso do jaleco pessoal!
Muito obrigado Emanuel! As canetas sempre fazem sucesso.
Sem canetas eles não ficam hahaha
Deixem as canetas. Virou marca registrada do canal. 😊
Conhecendo a partir deste vídeo, definitivamente é uma potência de banco. Já vai entrar na fila dos conhecimentos a se adquirir em breve.
Estou surpreso por não conhecer o cassandra antes deste vídeo, vou logo atras das certificações, quero muito testar isso em um cenário real.
Eu precisei criar um modelo de visão computacional para contar a quantidade de canetas no jaleco de Gabriel kkkkkk. Amo vocês casal!
Imagina a memória desse servidor para lidar com mais de 10 PB de dados! Dicionário do programador é bom demais! Sempre atualizado!
Na verdade, como os dados estão distribuídos em diversos servidores no Cluster, não é necessária muita memória.
@@smatiolii Show de bola ter respondido! Entretanto nem sempre estão distribuídos, muitos servidores com pouca memória não implica que não é necessária muita memória, somando todos os pentes de memória da bastante memória! Fazenda de Cluster á vantagem quando você já tem os servidores executando outra tarefa e vai apenas colocar mais uma tarefa para os servidores executarem, entretanto se é um serviço novo, o cliente insiste em não usar nuvem ( normalmente começa a usar a nuvem para ter ideia de quanto fica a parcela da brincadeira ), faz questão da posse física dos dados, e você precisa desenhar toda a solução de hardware e software distribuir em vários servidores pode ser um custo que simplesmente não é possível pagar, mesmo um servidor custando milhões! Na nuvem a medida que os dados crescem a brincadeira pode ficar tão cara a ponto de valer a pena manter o servidor físico, a vantagem da nuvem, você sempre terá acesso as últimas configurações, mais top, mas dependendo da organização que você trabalha, eles podem não se importar em utilizar um servidor de 2015 com hds SCSI ( os atuais são Serial Attached SCSI - SAS ). Parece loucura, mas com altos impostos muitas organizações não conseguem manter os serviços numa AWS da vida!
@@pombo404 Sim, mas veja bem, o princípio do Cassandra é ser distribuído para ter alta disponibilidade. Então por isso a recomendação são três réplicas de dados e, no mínimo, três nós (em ambiente produtivo, né). Quando digo que não é necessária muita memória é que, como a modelagem organiza os dados fisicamente em disco, os dados em si não demandam memória (até há um cache, mas não é muito relevante neste contexto). Quanto à viabilidade financeira, sim, o Cassandra era meio proibitivo para empresas não gigantes, pois em geral atende aplicações muito críticas e com muitos dados. Com o Astra ficou mais simples para empresas menores terem as vantagens do Cassandra sem os custos de gerenciamento e máquinas.
Quando fiquei sabendo que era feito em Java, já pensei que iria dar ruim usar ele. A pouco li o case do Discord que passou justamente pelo que imaginei. A solução deles para substituir o Cassandra foi ScyllaDB que é escrito em C++. Qualquer coisa feita em Java sofre com memória e pausas do GC. Na verdade o GC é o maior problema de várias linguagens, mas só é percebido com o tempo, sempre fica uma memória residual que fica crescendo até explodir. Muitos adotam a estratégia de reiniciar a aplicação em intervalos de tempo, kkkk.
Bem colocado. Eu como programador Java já passei por isso, em escalabilidade por demanda a gente precisa "aquecer o servidor" para ter mais performance graças ao JIT (claro isso vem mudando com o JDK 17 e o crescimento do AoT). Mesmo depois de aquecido acontece esse cenario que você falou da memória residual e ter que reiniciar, sem contar tempos que fica em menor performance pelo GC estar fazendo a limpa, mas faz parte.
Mas ainda assim é sim possível fazer otimizações na JVM, além de usar alguns GC's mais parrudos que não deixam memória residual e que rodam em processo a parte do servidor o que não interrompe um pedaço do servidor para ficar limpando memória, que é o trabalho de um ZGC da vida. Mas ainda assim fazer isso da um trabalho considerável, em alguns casos (quase todos) vale a pena, pois é mais barato custear esse trabalho do que ter que criar seu próprio serviço, é o que empresas como mercado livre que usam elasticsearch feito em Java fazem, além das empresas faladas no vídeo que usam o cassandra, isso sem falar no portfólio da apache, a internet, ou melhor, o mundo funciona graças ao portfólio da fundação apache, a maioria desses produtos que mantém a internet funcionando são feitos em Java, Struts, Lucene, Maven, Tomcat, Kafka, Hadoop, as grandes plataformas os usam porque usando essas técnicas conseguem sim gastar menos performando essas aplicações em Java do que construindo suas próprias em Rust ou C++ da vida. E como eu disse com técnicas como essas conseguimos chegar ou até ultrapassar em questões de performance softwares feitos em Rust ou C++, mas é claro, quando aparece algum maluco que resolve fazer essas coisas em C++, é claro, cai entre nós, vamos partir da facilidade e usar no caso que nos trás mais facilidade e performance. Mas na maioria dos casos não vamos ter isso, e Java como cresceu, assim como o JS, ambos tem seus defeitos e não deveriam estar sendo usados em muitos casos onde estão sendo usados, mas eles cresceram como ferramentas e agora empresas investem pesado para ter diminuir ou capar esses defeitos, que é o caso que expliquei, até porque ninguém gosta de construir software tendo que lidar com gerenciamento de memória, todos preferem programar em alto nível e usar linguagens que tem uma gama bem sólida de estruturas de dados como o Collections Framework.
E mesmo assim o ScyllaDB que você mencionou não necessariamente é mais rápido que cassandra por ser em C++, mas sim na maioria das vezes por ter aquela parada de índices em RAM de forma nativa. Mas enfim... esse é só minha opinião de um desenvolvedor qualquer sobre o assunto. Em resumo ScyllaDB não é necessariamente rápido que cassandra por ser em C++, e os problemas que você mencionou por conta de uma linguagem como Java e os GC's já são problemas resolvidos.
Com o Java 17 o problema do GC vai ser praticamente resolvido. Isto está previsto para na versão 5.0.
@@smatiolii pse, eu vi no canal do yt do próprio Java, vamos ver né, recentemente li um post que estorou lá no medium onde os caras tavam metendo pau no Java sem nem entender o que é o Java, claro eu não sou seguidor e nem fico defendendo Java na internet, mas e conheço sim os defeitos do Java mas nem por isso fico tentando os esconder, mas vejo muita desinformação por parte das pessoas um dos principais argumentos no post era: "Java não tem nenhuma evolução significativa", parece que não ouviram falar do AoT que se não me engano começou no JDK 9 e tá firme e forte agora no 17, e sem falar nessa nova geração do GC, que provavelmente vai bater de frente com os GC do golang
@@guilhermeluis7688 ótimo texto👏
@@guilhermeluis7688 Sim, concordo. Eu trabalho na DataStax e conheço os devs que estão trabalhando no Cassandra 5.0 e que estão justamente validando o funcionamento com o Java 17. Este time afirma que o impacto do GC foi completamente minimizado. E, como você disse, o Java segue evoluindo e este é o motivo do Cassandra ser desenvolvido em Java ( e não em C++, como o Scylla). A evolução da solução como um todo é muito mais acelerada, por que temos os ganhos de performance do Java, uma comunidade muito maior de desenvolvedores e mais recursos integrados de maneira mais simples.
Mais um projeto bem sólido em Java ;)
Video muito bom! (e com muitas canetas)
Bom e velho apache 👏👏👏
Eu estou desenvolvendo um projeto, acho que vou estudar esse Apache Cassandra aí para ver se rola implementar o banco com ele
Não recomendo, aprenda porque é interessante e contribui na caixota de conhecimento. Mas não vale a pena, cassandra só vale a pena se você é um unicórnio ou projeto que lida com escalabilidade de multi-cluster
Testa o Astra, que é o Cassandra sem a dificuldade do Cassandra.
Muito bom!
Não tem como ignorar o charme da Cassandra.
No começo do vídeo quando vcs comentaram em nós e tabelas lembrei-me quando estudei DHT(distributed hash table) e P2P. Parece terem semelhanças. Onde é usado uma tabela de roteamento em uma rede virtual.
Cassandra é BIZARRAMENTE performática, meu Deus!!
Muito bom.
O número de caneta nos bolsos deve ser uma alusão à capacidade infinita de armazenamento do Cassandra! Acertei?!
Confesso que ficou difícil prestar atenção no conteúdo nos primeiros minutos de vídeo... Tava esperando o bolso rasgar! 🤣
Eu sou teu fã número um código Fonte
se eu disser que entendi tudo de primeira estarei mentindo kkkk
obrigado pelo vídeo!
Seria legal também um video sobre Kotlin KMM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Aposto que tem uma mensagem subliminar na ordem das canetas.
Deve ser um numero binario ou algo do tipo O.o
Muito poderoso
alguêm sabe quando vai sair a pesquisa salarial de 2022?
Estamos trabalhando ao máximo para apresentar os resultados na próxima semana!
Cassandra me lembra Sai de Baixo. kkkkkkk
Mas afinal das contas, o retorno dos dados dele vem como? Estruturado igual a tabela de um Oracle ou semi-estruturado como o retorno de um MongoDB?
Ele retorna como uma tabela
@@odseverus valeu!
Esse vídeo é um oferecimento de DataStax e canetas Bic. 😁😉
Um tapa na cara de quem fala que o Java é lento! Kkkkkkkkkk
Sem dúvida!
E não só isso. Com Java a evolução da solução é mais acelerada e a possibilidade de integração com outras soluções é muito mais simples.
Onde valeria a pena usar o Cassandra ao invés do MongoDB?
Se tem (ou terá) alto volume e muitas transações por segundo, o Cassandra escala e tem mais performance. Se o modelo de dados precisa ser flexível, aí o Mongo é mais indicado.
Sempre. Cassandra é boa demais.
Olha essa quantidade de canetas no bolso 😂😂😂😂
Vi um vídeo de vcs que nele vcs comentaram de alguns livros que vcs não recomendam ler pra quem tá iniciando, estudo programação já tem um tempo, mas até hj não li nenhum livro nem nada do tipo, costumo estudar por meio de cursos mesmos, os livros ensinam alguma coisa que não tem nos cursos ou o que?
Costumar ensinar de forma melhor e mais didatica a fundação, justamente o que vc dificilmente encontra ou até encontra mas mau explicado na internet, é a parte de ciencias da computação mesmo, coisas como estruturas de dados que é um assunto que leva um programador a outro nivel, mas também existem outros que valem muito a pena, clean code que te ensine a fazer código limpo, clean archteture que ensina as principais arquiteturas de software, the pragmatic programmer que ensina a ser um programador mais proativo, the mitical man month que ensina a como lidar e trabalhar em equipes em projetos complexos, design patterns que ensina o básico sobre padrões de projeto e ajuda a entender o porque você ve a maioria dos programadores fazendo as coisas das mesmas forma ou de forma parecida, domain driven design que ensina a como criar e projetar projetos, introduction to algorithms que ajuda a criar coisas realmente complexas e inovadores que dificilmente outras pessoas conseguem, extreme programming explained que ensina o porque tanto "frun-frun" na programação não funciona e que design nasce do código e não o contrario por isso não é póssivel pensar no software antes de contruir, mas enfim... esses são só os mais principais e que eu recomendo, eles ajudam você a dar saltos maiores e evoluir mais rápido na carreira.
Muitos cursos, principalmente os daquela plataforma que começa com "U", são bem rasos/não ensinam bem. Se você for muito iniciante e estiver ainda aprendendo lógica, loops, tipos, etc, talvez qualquer curso acrescente conhecimento. Se você estiver avançando para assuntos um pouquinho mais complexos como estrutura de dados, desenvolvimento de APIs, aprendizado de máquina, etc, aí você tem que ter muito cuidado com onde você escolhe estudar. É muito fácil entrar no tutorial hell e acabar com mais de 20 cursos comprados, mais de metade deles ser muito ruins e você não terminar nenhum.
Minha recomendação é: procure sempre primeiro a qualidade e pense mil vezes antes de gastar qualquer dinheiro se você ainda não está ganhando (muito) dinheiro para estudar o que você está estudando.
Você pode baixar livros de graça na internet. Por exemplo o livro de Algoritmos do Thomas Cormen ensina muito bem algoritmos e estrutura de dados. Só ir lendo e eu aprendia muito mais do que nas minhas aulas de mestrado com um professor phd em Computação. Tenha fé nos livros. Mas também tem que ter em mente se você é o público alvo dele, pode ter livros que realmente sejam muito complexos.
Você pode e deve fazer cursos também, mas, novamente, escolha com muito cuidado. As melhores plataformas, para mim, são a edx e Coursera. Os cursos dessas duas plataformas tem um estilo muito próximo dos das matérias que já peguei na universidade que estudo e eles realmente testam seu conhecimento para lhe dar o certificado (na plataforma que começa com "U", se você quiser basta clicar nos quadradinhos dizendo que assistiu os vídeos que você recebe o certificado). E tem algo legal nessas plataformas, apesar de 100% pagas, você pode cursar de graça e também tem a opção de receber auxílio financeiro (o certificado sai de graça no Coursera e com 90% de desconto na edx).
Além disso, escolha muito bem o que você estuda. Não entre em muitos cursos, não faça cursos de muitas coisas diferentes ao mesmo tempo. Talvez 2 ou 3 por vez já seja muito. Complete o último curso antes de ir para o próximo.
O bom é intercalar um pouquinho dos dois, ex.: fazer um curso de estrutura de dados do Coursera enquanto lê o livro do Thomas Cormen no tempo livre.
@@guilhermeluis7688 entendi, valeu pela explicação vou procurar esse livro para ler a plataforma que começa com U, ela é boa mas tem que tomar cuidado, lá fiz 1 cursos de programação que não era raso, já a coursera já ouvi falar que é boa, vou dar uma olhada
Assaltaram a Bic?
kkkkk
@@Oculterous o cara ri de si mesmo kkkkkk
As canetas querem dizer alguma coisa? Talvez binário? kkkk
Essa muié é pescoçuda.