Como o Twitter usa o Apache Cassandra para alimentar sua plataforma de mídia social
Publicados: 2022-11-17O Twitter é uma plataforma de rede social que permite aos usuários enviar e ler mensagens curtas chamadas “tweets”. Existe desde 2006 e desde então se tornou uma das plataformas de mídia social mais populares. Embora o Twitter use alguns sistemas de gerenciamento de banco de dados relacional (RDBMS) para certas partes de sua infraestrutura, ele usa principalmente um banco de dados NoSQL chamado Apache Cassandra. O Cassandra foi projetado para lidar com grandes quantidades de dados com alta disponibilidade e desempenho. O Twitter usa o Cassandra por vários motivos. Primeiro, é muito escalável. O Twitter pode facilmente adicionar mais nós Cassandra à medida que sua base de usuários cresce. Em segundo lugar, Cassandra é altamente disponível. Mesmo que um nó do Cassandra fique inativo, os outros podem compensar. Finalmente, Cassandra é rápida. Isso é importante para uma plataforma de mídia social em que os usuários esperam atualizações em tempo real. Portanto, embora o Twitter use alguns bancos de dados relacionais, seu banco de dados principal é o NoSQL. Isso permite que o Twitter cresça rapidamente e forneça aos seus usuários uma experiência rápida e confiável.
Kevin Weil, diretor de desenvolvimento de produto do Twitter, fornece uma explicação de como a empresa usa NoSQL em um vídeo postado no início deste ano. Todos os dias, os usuários do Twitter geram aproximadamente 12 petabytes de dados, o que equivale a aproximadamente 4 petabytes por ano. O Hadoop, junto com seu próprio projeto de código aberto chamado FlockDB, é usado para analisar dados sociais e analisar dados. O Twitter coleta e usa todas as informações que coleta para fornecer conteúdo relevante. De acordo com Weil, este SlideShare é um ótimo lugar para aprender mais sobre como o Twitter analisa gráficos sociais. O Twitter ainda está experimentando o uso do Cassandra, o banco de dados NoSQL de código aberto do Facebook, como um serviço.
O MySQL foi o principal armazenamento de dados do Twitter desde o início, pois a camada de persistência cresceu para um grande número de clusters. O Twitter tem uma implantação considerável do MySQL desde o início. Existem milhares de clusters MySQL com milhões de nós e consultas por segundo são atendidas.
O Google Cloud fornece dois tipos de serviços de banco de dados NoSQL: Cloud Firestore, que é um banco de dados orientado a documentos, e Cloud Object Storage, que é um sistema de armazenamento de dados. É simples de usar e otimizado para pequenos documentos, tornando-o ideal para aplicativos móveis. Bancos de dados de documentos que podem ser facilmente dimensionados, têm bom desempenho e são fáceis de usar no Cloud Datastore .
A tecnologia NoSQL alimenta o aplicativo móvel da Ryanair, a companhia aérea mais movimentada do mundo, que atende a mais de 3 milhões de usuários por mês. Nos últimos oito anos, a Marriott usou o NoSQL para administrar seu sistema de reservas, que gera US$ 38 bilhões em receita. Além de seu sistema proprietário de gerenciamento de conteúdo, o Presto, que é usado pela editora de jornais nº 1 dos Estados Unidos, The Chronicle of Higher Education, usa NoSQL.
PostgreSQL e Cassandra são dois dos sistemas de banco de dados de back-end do Instagram.
Que tipo de banco de dados o Twitter usa?
O Twitter usa um banco de dados relacional para armazenar seus tweets. Esse banco de dados é projetado para armazenar dados em uma série de tabelas, com cada tabela contendo informações sobre um aspecto específico dos tweets. Por exemplo, há uma tabela para as informações do usuário, uma tabela para os próprios tweets e uma tabela para os relacionamentos entre os usuários.
Podemos precisar de algumas dessas informações para alguns de nossos serviços, como solicitar que sua solicitação seja roteada para um servidor específico, mas isso não é obrigatório. Se você deseja encaminhar sua solicitação, não precisa saber o carimbo de data/hora do seu tweet.
Apesar disso, os dados permanecem armazenados e processados. Não há necessidade de excluir ou anonimizar as informações. Nossos dados não podem ser acessados pelo governo, mas ainda podem ser usados para coletar informações sobre você.
Existem algumas preocupações com a privacidade como resultado do armazenamento e processamento dessas informações. Também permite que o governo rastreie seus movimentos e atividades em primeiro lugar. Além disso, permite que o governo acesse suas informações pessoais sem o seu consentimento.
Não armazenamos o texto de seus tweets. O nome e o carimbo de data e hora desta conta são as únicas coisas que mantemos. Não armazenamos o conteúdo de seus tweets.
Seus tweets não vêm com nenhum dado que possamos armazenar neles.
Armazenamos apenas o nome da conta e o carimbo de data/hora ao fazer o upload da imagem.
Os benefícios de usar o Mysql
O Twitter usou o MySQL para armazenar tweets no passado. O MySQL pode lidar com um grande número de solicitações devido à sua confiabilidade e natureza consistente. O Facebook emprega o MySQL para armazenar todos os seus dados de mídia social .
O Facebook usa Sql ou Nosql?
Como fornece flexibilidade de modelagem de dados e o MySQL é onipresente quando o FB começou, o SQL foi usado como o banco de dados persistente e o memcache como o cache “lookaside” nos primeiros dias do FB.
Um banco de dados do Facebook armazena os perfis de seus clientes, que representam aproximadamente 23% do total de clientes. Os princípios fundamentais que sustentam a arquitetura globalmente distribuída do Facebook em escala de Internet se aplicam a uma ampla variedade de aplicativos corporativos críticos para os negócios, incluindo SaaS multilocatário, e há lições a serem aprendidas ao entender melhor a evolução do banco de dados no Facebook. A API TAO NoSQL Graph, que é construída em uma versão fragmentada do popular banco de dados de código aberto Mystria , é uma das APIs NoSQL do FB. O TAO particionou os 1000 bancos de dados mestre-escravo MySQL manualmente salgados do FB em milhares de escravos fragmentados. Como resultado, o aplicativo não usa mais o banco de dados para executar transações entre fragmentos e JOINs entre fragmentos. Como resultado, se esse tipo de failover fosse executado, os dados recentes seriam perdidos. Como todos os objetos e associações são armazenados em cache nos mesmos servidores, eles podem ser armazenados no mesmo shard por um período de tempo indefinido.
O grau de colocação de dados foi determinado como uma importante técnica de otimização usada para maximizar o acesso de dados de latência. A comunidade de desenvolvedores abandonou o SQL em favor da API NoSQL personalizada do TAO depois que o FB os forçou a desistir de sua API de consulta SQL. O banco de dados Spanner do Google, criado há mais de uma década, foi criado como parte do banco de dados TAO do FB. O modelo de dados do Spanner, em oposição a um gráfico social, era mais uma carga de trabalho tradicional de acesso aleatório para OLTP. A segunda geração de bancos de dados distribuídos é construída em escalabilidade massiva e distribuição global de dados como parte da camada de banco de dados. O Spanner usa o consenso distribuído por estilhaço para garantir que cada estilhaço (e não apenas cada instância) permaneça altamente disponível no caso de um serviço com falha. Apesar de a configuração do cluster do aplicativo ter sido alterada, ele permanece operacional.
Os dados relevantes para a região local continuarão a ser classificados no topo da lista devido a recursos como particionamento geográfico em nível de tabela e em nível de linha. Um gerenciador de transações distribuídas é usado em uma transação multi-shard para gerenciar o processo 2-Phase Commit, bem como as distorções do relógio em cada nó. Usamos o TAO como uma medida de corte de custos no FB, permitindo-nos manter nosso investimento no MySQL fragmentado. O Google optou por seguir um caminho diferente com o Spanner, um banco de dados completamente novo com recursos de dimensionamento horizontal, recursos de replicação geográfica contínuos e facilidade de falha de infraestrutura.
Existem inúmeras razões para os bancos de dados NoSQL ganharem popularidade. O sistema usa uma abordagem diferente para armazenamento de dados que é mais eficiente ao lidar com um grande volume de dados.
Os bancos de dados NoSQL são usados por várias empresas conhecidas, incluindo Amazon, Netflix, Microsoft, Snapchat e Dropbox. Escolher um banco de dados NoSQL foi uma das melhores decisões que eles já tomaram porque seus aplicativos lidam com muitos dados.
Como resultado, os bancos de dados NoSQL fornecem maior flexibilidade em como as empresas podem armazenar dados. Como resultado, há melhor organização e acesso aos dados. Além disso, os bancos de dados NoSQL têm a vantagem de serem mais rápidos no processamento de grandes quantidades de dados.
Faz todo o sentido para as empresas que precisam armazenar uma grande quantidade de dados considerar os bancos de dados NoSQL. Como resultado de sua abordagem exclusiva de processamento de dados, eles são capazes de lidar com dados em uma velocidade maior e com mais eficiência.
O Twitter usa banco de dados gráfico
O Twitter mantém dados primários, como gráficos de interesse, cronogramas e dados do usuário no MySql. O Twitter tem centenas de esquemas e milhares de nós que atendem a milhões de consultas por segundo em seu maior cluster. Um serviço flocdb é usado na computação gráfica.
O uso de bancos de dados de gráficos , sua aplicação aos dados do COVID-19 e a linguagem de escolha para gráficos são discutidos. Após o bate-papo, você pode ler seus insights aqui. Participe de nosso bate-papo no Twitter às 13:00 EST de hoje, intitulado The State of Graph Databases in 2020. Apresentaremos várias perguntas que serão usadas para facilitar a discussão. Bancos de dados gráficos mostraram ser muito úteis no passado. Devido à sua capacidade de conectar dados, lidar com grandes quantidades de dados e ter um desempenho admirável, ele é exigido por todas as organizações com mentalidade analítica. Eles se distinguem pelo fato de poderem ser usados para conectar dados de várias fontes, em vez de bancos de dados.
Os usuários agora podem usar esses gráficos para se beneficiar de funções específicas encontradas em um banco de dados de gráficos durante a análise de dados. Muitos novos usuários podem ser apresentados ao #knowledgegraph como o primeiro caso de uso porque muitas empresas exigem #analytics de uma ampla variedade de fontes de dados estruturados e não estruturados. Quando se trata de #NLP e combinando sua saída com várias fontes, #graphdb é a melhor solução. O COVID-19 será discutido com mais profundidade no GraphDB Q2. # O GraphDB pode ser muito útil no segundo trimestre como uma solução de rastreamento de contatos. Como resultado, os dados são injustos para grandes organizações na forma como as informações são Localizáveis, Acessíveis, Interoperáveis e Reutilizáveis. RDF* é um grafo de propriedade.
Não há dúvida de que há confusão. Federação é um tópico intrigante agora. Esses dados devem ser inseridos no arquivo #graphdbs. Se você modelar corretamente, não precisa necessariamente usar RDF*. Usar a ciência de dados gráficos para conectar e correlacionar conjuntos de dados diferentes é uma excelente maneira de fazer isso. Não há diferença significativa entre RDF* e GLP hoje. Os fornecedores habilitados para RDF normalmente oferecem suporte a propriedades rotuladas, permitindo que algoritmos de gráfico e outras funções analíticas sejam completamente invisíveis por RDFs anteriores.
Devo usar rdf ou sparcl entre meu PC e aplicativos móveis? Na verdade, não é ciência do foguete gerar propriedade de RDF, mas ML poderia potencialmente gerar triplos de propriedades no #GraphDB @stevesarfield gráfico DBMS. Quando você olha para uma ontologia, você a está modelando e ela o segue até a cama. Além disso, nossos editores começaram a interagir com o marketplace do GraphDB. Nosso objetivo é reunir uma lista abrangente dos melhores produtos disponíveis para os consumidores. Um gráfico de conhecimento pode ser criado com o GraphDB combinando dados estruturados e não estruturados, permitindo que seja usado como uma ferramenta para análise. Muitos usuários acharão que este é o início de sua jornada para os bancos de dados gráficos no futuro.
Por muito tempo, o FOSS foi o código-fonte para projetos de código aberto, mas pode estar voltando à tona no futuro. # GraphDB pode ser a melhor maneira de organizar todos os componentes díspares em um ecossistema #IoT à medida que amadurecem em organizações e ecossistemas. As empresas de cartão de crédito usam o GraphDB para detectar padrões suspeitos de atividade. Quando você precisa combinar esquemas imperfeitos com outras fontes imperfeitas, usar #GraphDB pode ser uma boa opção. Fique em contato uns com os outros e fique saudável também. A solução de banco de dados GOLAP da Cambridge Semantics, AnzoGraphDB, fornece contexto e significado em grande escala em um banco de dados de gráficos MPP (Massively Parallel Processing) na memória. Uma consulta de travessia de gráfico pode ser dimensionada para atender às demandas de armazenamento e análise de dados complexos e também pode lidar com grandes faixas de agregação de dados. Experimente o AnzoGraphDB gratuitamente para ver se ele pode ajudá-lo a gerenciar melhor sua vasta coleção de dados.
Como os gigantes da mídia social usam bancos de dados gráficos para melhorar suas plataformas
O MySQL, um sistema de gerenciamento de banco de dados, foi originalmente usado para armazenar dados do Twitter. Mudamos de uma instância de banco de dados pequena para uma instância de banco de dados grande e, em seguida, de uma instância de banco de dados grande para outra. O banco de dados do Twitter foi usado para armazenar todas as informações do usuário, permitindo que ele se tornasse uma das empresas de mídia social mais poderosas . A empresa conseguiu melhorar sua plataforma analisando o comportamento do usuário e acompanhando seu progresso. O mecanismo de busca do Instagram foi inicialmente alimentado pelo Elasticsearch, um mecanismo de busca com reconhecimento de gráficos sociais construído pelo Facebook, mas acabou sendo substituído pelo Unicorn. Além de usar um banco de dados gráfico para rastrear como os usuários interagem, o Instagram o usa para rastrear como os usuários estão relacionados. O Instagram pode melhorar a experiência do usuário e fornecer conteúdo mais relevante analisando dados de mídia social. Bancos de dados e análises de gráficos são usados pelo Facebook, Instagram e Twitter para obter uma melhor compreensão de como seus usuários interagem uns com os outros e para construir plataformas melhores.