contextualizando o apach Cassandra é um banco de dados no sequel criado para não ter limite de armazenamento ter altíssima performance de escrita e leitura de dados até mesmo centenas de milhares de operações por segundo e ainda por cima ser uma solução muito confiável aquela que nunca cai não é à toa que esse banco de dados ficou tão Popular sendo utilizado em projetos e empresas como Uber Spotify Walmart IBM Netflix disco de Instagram e eBay para conhecer mais a fundo a paste Cassandra incluindo o seu funcionamento ecossistema códigos de exemplo e até para saber como realizar
treinamentos gratuitos e retirar um certificado oficial Fica aqui com a gente nesse [Música] vídeo eu sou Vanessa e esse é Gabriel nós somos os responsáveis aqui pelo Canal código fonte TV onde através dos vídeos semanais nós simplificamos o mundo da PR ação colocamos a mão no código e até tomamos aquele cafezinho bem fresquinho batendo um papo com você sobre tudo que permeia a nossa profissão e mercado de trabalho aqui nesse dicionário do programador trouxemos o Apache Cassandra ou só Cassandra pros íntimos que é um exemplo incrível do Poder da Inovação e da tecnologia ele foi
criado inicialmente por desenvolvedores do Facebook lá em 2007 construído especificamente para resolver um difícil problema relacionado às pesquisas na caixa de entrada de mensagens como lidar com grandes volumes de dados com muitas leituras e gravações aleatórias simultâneas feitas por usuários ao redor do mundo o Cassandra foi disponibilizado pra comunidade open source em 2009 e já em 2010 foi eleito top level Project pela apach software foundation ele vem sendo evoluído desde então por desenvolvedores de empresas como Apple Netflix LinkedIn Twitter e daa STX E por falar em Dea STX temos o prazer de ter ela aqui
nesse vídeo com a gente com como parceira E que nos ajudou na criação desse conteúdo olha não poderíamos trazer ninguém melhor ela é uma das maiores contribuidoras do apach Cassandra tanto no projeto principal open source quanto na criação de ferramentas para seu ecossistema ao longo do vídeo Vamos citar algumas delas Deixaremos também aqui na descrição do vídeo o link pro site da deira stex onde é possível realizar Treinamentos e obter certificações oficiais do Cassandra dissemos que o Cassandra não deve ter limite de armazenamento deve ter altíssima performance de escrita e leitura de dados além de
ser confiável e nunca cair é muita coisa né como é que a gente resolve todos esses desafios eu te digo Gabriel para se tornar altamente resiliente um cluster Cassandra é completamente distribuído rodando em dezenas ou milhares de máquinas chamadas nós simultaneamente para atender as aplicações esta distribuição faz com que a aplicação seja tolerante a falhas de hardware ou software a distribuição também permite descentralizar o operação não há um único ponto de falha e mesmo se houver falhas nas máquinas e as máquinas falham com uma certa frequência os dados estão sempre disponíveis sem contar que qualquer
nó do cluster consegue resolver qualquer requisição o que também permite escalar o ambiente ou seja se precisar armazenar mais dados Acrescente mais nós simples assim mas para isso funcionar o Cassandra tem uma arquitetura que organiza os dados da seguinte forma o keyspace que é como um container de dados semelhante a um esquema que contém várias tabelas ele define como um conjunto de dados é replicado por data center contendo o fator de replicação que define quantas réplicas dos dados existirão e qual será a estratégia de replicação dos dados podendo até replicá-los indiferente data center uma dica
a boa prática determina que sempre Devem haver três cópias dos dados distribuídas pelo cluster a tabela que também pode ser chamada de colum Family e que define o tipo de esquema Por uma coleção de partições as tabelas contêm partições que contém linhas que contém colunas elas conseguem adicionar novas colunas de forma flexível sem tempo de inatividade do banco a partição define a parte obrigatória da chave primária que todas as linhas no candra devem ter para identificar um nó em um cluster onde a linha é armazenada por exemplo todas as consultas fornecem a chave de partição
no resultado a linha que contém uma coleção de colunas identificadas por uma chave primária única composta Pela chave de partição e opcionalmente outras Chaves de cluster e por fim a coluna que é um único dado com um tipo que pertence a uma linha agora como manipular tudo isso através do cql ou Cassandra query language que é muito parecido com o SQL que eu aposto que você já conhece com ele é possível organizar dados dentro de um cluster de nós do Cassandra nós podemos criar e atualizar o esquema do banco de dados e também acessar os
dados por se tratar de um banco no sequel as queres do Cassandra são bem mais simples que os dos bancos relacionais já que todos os dados devem ser gravados de maneira a otimizar a sua utilização pelas aplicações o objeto principal são as tabelas que mal comparando se parecem com as tabelas dos bancos relacionais mas possuem uma lógica de particionamento de dados que permite o alto desempenho nas operações entender o particionamento dos dados é fundamental para ter um projeto escalável e de alta performance A modelagem dos dados já deve ser feita levando em conta o funcionamento
do Cassandra por exemplo é provável que se tenha uma tabela para cada consulta sendo assim não devemos levar em conta a normalização dos dados que seria feita em um banco relacional o apach k Sandra funciona em diversas plataformas através do Linux tendo versões para as principais distribuições como o bun Cent os e o Red Hat Enterprise e Linux além do Debian e sus calma fica tranquilo que também é possível utilizar o docker para executar o Cassandra em outros sistemas a instalação normalmente é feita de três maneiras através da imagem docker do arquivo binário tarball ou
pela instalação de pacote RPM ou iun que tá um código de exemplo com o cql para clarear vossas mentes Ah agora sim código vamos supor que estamos hum desenvolvendo uma aplicação que armazena todas as temperaturas coletadas por um sensor teríamos o seguinte código é parecido com skq né a principal diferença é na definição da primary Key ela determina como os dados serão divididos e distribuídos ao redor do cluster é como se cada partição fosse um arquivo com três cópias gravadas em máquinas diferentes para ter alta disponibilidade lembra nesse exemplo para cada combinação de sensory date
será criada uma partição por isso esses dois Campos estão entre parênteses dentro da primary Key os campos que estão dentro da primary Key mas da segunda posição em diante são os campos de agrupamento ou iação Além de determinarem A unicidade dos registros eles também determinam a ordem dos registros na partição nesse caso os dados serão ordenados pelo timestamp de maneira decrescente quer saber como seria uma consulta nós te mostramos criamos um select que traz as informações de sensor date e time stamp quando o sensor for igual a s001 e date igual a 1eo de Janeiro
de 2023 com o limite de cinco Esse comando select vai retornar os cinco registos mais recentes ou seja até a ordem de retorno dos dados é determinada junto à definição da tabela isso torna a linguagem mais simples e eficiente e mesmo se esse sensor gerar milhares de registros por dia ainda assim buscar esses dados será muito rápido os comandos de escrita de dados como insert update e delete são bem parecidos com do SQL dá só uma espiadinha nesse código nele estamos criando um novo keyspace chamado my Key Space com uma estratégia de replicação simples o
simple strat e um fator de replicação um criamos uma nova tabela chamada users com os campos user ID name e-mail e aid o user ID foi definido como um chave primária Lembrando que a chave é uma combinação de colunas que são usadas para indexar e recuperar os dados de forma eficiente no caçando o comando insert não tem mistério inserte into identificando a tabela users e os campos depois os valores começando com o user ID que é do tipo uuid um identificador único Universal o nome Vanessa e as informações corretíssima com o e-mail Vanessa @gmail.com e
a idade de 25 anos fiquei impressionado com Vanessa @gmail.com é Tá super correto assim como a idade mas um ponto interessante é que inserts e updates tem o mesmo resultado no Cassandra mesmo que um registro alvo de um update não exista ele será criado isso se deve ao foco que o Cassandra tem na performance e é parte do seu diferencial pois ele não lê dados no momento da escrita que é justamente o que os outros bancos fazem ao invés disso O Cassandra simplesmente grava o novo valor pro registro não importando se ele estava lá antes
ao evitar essas leituras o Cassandra ganha muita performance na gravação dos dados vamos falar de ecossistema o ecossistema do apach Cassandra é bem robusto composto por várias ferramentas bibliotecas e serviços que complementam o banco de dados e fornecem recursos adicionais alguns dos componentes mais importantes incluem Client drivers que são bibliotecas que permitem que aplicativos se comuniquem com Cassandra executando operações de leitura e gravação existem Drivers para diversas linguagens como Java Python csharp c+ mais go e Rust cluster Manager que são ferramentas de gerenciamento de cluster que simplificam a implantação gerenciamento e monitoramento de clusters Cassandra
a própria data STX oferece o data STX Ops Center que é uma solução de gerenciamento e monitoramento visual fácil de de usar para clusters data stacks enterprise com ele é possível provisionar monitorar fazer backup restauração e gerenciar os clusters dse com pouco ou nenhum conhecimento técnico falando no dat STX enterprise ele é uma versão comercial do apach Cassandra que inclui recursos adicionais como segurança análise de dados em tempo real e recursos de gerenciamento de dados ainda é possível integrar o candra com outras ferramentas como o apach Spark que é uma plataforma de computação distribuída que
pode pode ser usada com o Apache Cassandra para análise de dados em larga escala o Apache Cica também já é conhecido aqui do canal e o Apache pulsar que são plataformas de processamento de streaming que podem ser integrada ao Cassandra para processar fluxos de dados em tempo real o data STX Astra auxilia os desenvolvedores e empresas que possuem aplicações nativas em nuvem com alta escala e foco em tempo real ele é uma stack de dados como serviço construída ao redor do Cassandra totalmente seress e gerenciado viu né só ferramenta legal né no Astra provisionar um
cluster Leva cerca de 5 minutos ainda é possível escolher qual nuvem e região criar o banco de dados E aí é só desenvolver a aplicação todas as características do Cassandra estão disponíveis no Astra autod disponibilidade escalabilidade operação multicloud e multium apis automáticas e gratuitas segurança de acesso e automação via terra forme por isso nós trouxemos a Dea stex como parceira aqui nesse vídeo o Astra tem a ainda uma solução de stream integrada compatível com Kafka e o rbt MQ para que a integração entre mensageria filas e o banco de dados seja realizada sem código tudo
para que o desenvolvedor se concentre somente no seu código uma outra maneira de interagir com os dados do Cassandra e através das apis automáticas geradas pelo Stargate um projeto open source irmão do Cassandra esse componente permite que os dados de qualquer tabela sejam acessados por api rest Graphic e o grpc sem a necessidade de construção de qualquer código ele também permite armazenar documentos Jason no Cassandra que em breve será compatível com o mongus assim nós deves podemos consumir um serviço de dados através de requisições uma abordagem mais moderna do que se conectar a um banco
de dados e interagir através de queries isso acaba acelerando o desenvolvimento removendo dependências de drivers e simplificando a arquitetura mas atenção apesar do do Cassandra ser um banco de dados Big Data ele não é voltado para Analytics normalmente ele vai estar mais perto das aplicações mas perto de onde os eventos surgem precisam ser registrados e disponibilizados à aplicações em contato com o usuário no entanto é comum replicar os dados para data legs em tempo real através de um mecanismo chamado Change data capture ou mesmo através de Jobs que leem seus dados periodicamente o apach Spark
é muito utilizado nesse caso nos casos de de uso o Cassandra surpreende no segmento financeiro ele é muito utilizado devido a sua performance e confiabilidade como por exemplo a Apple e o Apple pay a empresa já afirmou que operava mais de 75.000 nós do Cassandra armazenando mais de 10 petab de dados a Netflix que contribui muito com o código do Cassandra também armazena todo o histórico de conteúdos que assistimos por lá ela executa 30 milhões de operações por segundo em seu seu cluster único mais ativo e 98% dos dados de streaming são armazenados no Cassandra
abriu o app da Netflix já tá ali em contato com Cassandra o Uber usa o Cassandra em sua plataforma de machine learning os modelos que precisam de acesso aos dados online e com baixa latência como uma venda e entrega em andamento no Uber eats acessam a essas informações no Cassandra e assim reagem em tempo real aos eventos tomando decisões automatizadas podemos também citar exemplos como aplicativos de bancos para encontrar rapidamente os movimentos realizados em uma conta bancária de maneira ordenada em meio a bilhões de movimentações registradas no banco de dados para disponibilizar um extrato bancário
pro cliente ou uma loja virtual onde o Cassandra é muito utilizado como origem de catálogo de produtos com seus milhões de itens variações e características para permitir a geração das páginas em alta velocidade ou ainda carrinho de compras Esse é o tendão de Aqueles né e recomendações de produtos que T que ser servidas rapidamente e em alta escala não podemos deixar de citar os projetos em IOT que envolvem registros de dados gerados por sensores industriais e de veículos por exemplo aqui em 2023 quando lançamos esse vídeo o Cassandra está na versão 4.1 lançada no final
de 2022 essa versão permite executar o Cassandra através de kubernets que é Um Desafio enorme pensando em bancos de dados e aplicações stateful ainda para 2023 está previsto o lançamento da versão 5 que teve contribuições da Apple Netflix e da data stex E terá outras novidades como transações ACD novos índices e métodos de compactação mascaramento de dados e novas funções na linguagem cql essas novas funcionalidades permitirão uma melhor integração com soluções de Inteligência Artificial e machine learning é sempre muito bom ver as ferramentas sendo aprimoradas e acompanhando as necessidad do mercado e você deve fazer
o mesmo para aprofundar seus conhecimentos no apach Cassandra nossa dica é que você crie uma conta gratuita no Astra você vai ganhar créditos para utilizar a solução praticar e desenvolver seus projetos e confere também não deixa de conferir o canal da da STX developers lá você encontra vários workshops mostrando todo o desenvolvimento de aplicações com diferentes linguagens e casos de uso além do da stex Academy com conteúdo bem detalhado sobre todas as características e funcionalidades das Ferramentas que citamos no Academy você também pode obter a sua certificação para te incentivar vamos te apresentar esse gráfico
aqui você pode verificar que o apach Cassandra está entre os três melhores salários do mundo entre os bancos de dados segundo a develer Survey 2022 da stack overflow Agora eu tenho certeza que nós te convencemos a estudar mais todos os links estão aqui na descrição do vídeo aproveitamos para deixar o nosso super Obrigado à equipe da Daily stex que enriqueceu demais esse conteúdo Esperamos que esse vídeo tenha aberto um novo caminho de conhecimento para você não deixa de dar o like e se inscrever aqui no código Font TV nós vamos ficando por aqui e te
vemos depois da vinheta tchau tchau aliás é assim tchau tau se você ainda é novato em banco de dados no vale a pena então conferir esse tema no dicionário do programador vai lá o vídeo tá logo aqui do ladinho nós estamos de saída porque tá na hora de tomar aquele cafezinho não Gabriel partiu tá tô com fome tchau tchau