Jak Twitter wykorzystuje Apache Cassandra do zasilania swojej platformy mediów społecznościowych
Opublikowany: 2022-11-17Twitter to platforma społecznościowa, która umożliwia użytkownikom wysyłanie i odczytywanie krótkich wiadomości zwanych „tweetami”. Istnieje od 2006 roku i od tego czasu stał się jedną z najpopularniejszych platform mediów społecznościowych. Podczas gdy Twitter korzysta z niektórych systemów zarządzania relacyjnymi bazami danych (RDBMS) dla niektórych części swojej infrastruktury, korzysta przede wszystkim z bazy danych NoSQL o nazwie Apache Cassandra. Cassandra została zaprojektowana do obsługi dużych ilości danych z wysoką dostępnością i wydajnością. Twitter używa Cassandry z kilku powodów. Po pierwsze, jest bardzo skalowalny. Twitter może z łatwością dodawać więcej węzłów Cassandra w miarę wzrostu bazy użytkowników. Po drugie, Cassandra jest wysoce dostępna. Nawet jeśli jeden węzeł Cassandry ulegnie awarii, inne mogą przejąć luz. Wreszcie Cassandra jest szybka. Jest to ważne w przypadku platformy mediów społecznościowych, gdzie użytkownicy oczekują aktualizacji w czasie rzeczywistym. Tak więc, chociaż Twitter korzysta z niektórych relacyjnych baz danych, jego podstawową bazą danych jest NoSQL. Pozwala to Twitterowi na szybkie skalowanie i zapewnianie użytkownikom szybkiego i niezawodnego działania.
Kevin Weil, dyrektor ds. rozwoju produktów na Twitterze, wyjaśnia, w jaki sposób firma korzysta z NoSQL w filmie opublikowanym na początku tego roku. Każdego dnia użytkownicy Twittera generują około 12 petabajtów danych, co odpowiada około 4 petabajtom rocznie. Hadoop wraz z własnym projektem open source o nazwie FlockDB służy do analizy danych społecznościowych i analizy danych. Twitter gromadzi i wykorzystuje wszystkie gromadzone informacje w celu dostarczania odpowiednich treści. Według Weila ten SlideShare to świetne miejsce, aby dowiedzieć się więcej o tym, jak Twitter analizuje wykresy społecznościowe. Twitter wciąż eksperymentuje z wykorzystaniem Cassandry, otwartej bazy danych NoSQL Facebooka, jako usługi.
MySQL był głównym magazynem danych Twittera od samego początku, ponieważ warstwa trwałości rozrosła się do dużej liczby klastrów. Twitter ma spore wdrożenie MySQL od samego początku. Istnieją tysiące klastrów MySQL z milionami węzłów i obsługiwane są zapytania na sekundę.
Google Cloud udostępnia dwa rodzaje usług baz danych NoSQL: Cloud Firestore, która jest bazą danych zorientowaną na dokumenty, oraz Cloud Object Storage, która jest systemem przechowywania danych. Jest prosty w użyciu i optymalizuje się pod kątem małych dokumentów, dzięki czemu idealnie nadaje się do aplikacji mobilnych. Bazy danych dokumentów, które można łatwo skalować, dobrze działają i są łatwe w użyciu w Cloud Datastore .
Technologia NoSQL napędza aplikację mobilną Ryanair, najbardziej ruchliwej linii lotniczej na świecie, która obsługuje ponad 3 miliony użytkowników miesięcznie. Przez ostatnie osiem lat Marriott używał NoSQL do obsługi swojego systemu rezerwacji, który generuje 38 miliardów dolarów przychodów. Oprócz własnego systemu zarządzania treścią, Presto, z którego korzysta wydawca gazet nr 1 w USA, The Chronicle of Higher Education, korzysta z NoSQL.
PostgreSQL i Cassandra to dwa systemy baz danych zaplecza Instagrama.
Z jakiego rodzaju bazy danych korzysta Twitter?

Twitter używa relacyjnej bazy danych do przechowywania swoich tweetów. Ta baza danych jest przeznaczona do przechowywania danych w serii tabel, z których każda zawiera informacje o określonym aspekcie tweetów. Na przykład istnieje tabela zawierająca informacje o użytkowniku, tabela zawierająca same tweety oraz tabela zawierająca relacje między użytkownikami.
Niektóre z tych informacji mogą być nam potrzebne do niektórych naszych usług, na przykład żądania skierowania żądania do określonego serwera, ale nie jest to wymagane. Jeśli chcesz skierować swoje żądanie, nie musisz znać znacznika czasu swojego tweeta.
Mimo to dane pozostają przechowywane i przetwarzane. Nie ma potrzeby usuwania ani anonimizowania informacji. Rząd nie ma dostępu do naszych danych, ale nadal można je wykorzystać do zebrania informacji o Tobie.
W wyniku przechowywania i przetwarzania tych informacji istnieją pewne obawy dotyczące prywatności. Pozwala także rządowi przede wszystkim śledzić twoje ruchy i działania. Ponadto umożliwia rządowi dostęp do twoich danych osobowych bez twojej zgody.
Nie przechowujemy tekstu Twoich tweetów. Nazwa i sygnatura czasowa tego konta to jedyne dane, które przechowujemy. Nie przechowujemy treści Twoich tweetów.
Twoje tweety nie zawierają żadnych danych, które moglibyśmy na nich przechowywać.
Przechowujemy tylko nazwę konta i znacznik czasu podczas przesyłania obrazu.
Korzyści z używania Mysql
Twitter używał MySQL do przechowywania tweetów w przeszłości. MySQL może obsłużyć dużą liczbę żądań ze względu na swoją niezawodność i spójność. Facebook wykorzystuje MySQL do przechowywania wszystkich swoich danych z mediów społecznościowych .
Czy Facebook używa Sql czy Nosql?

Ponieważ zapewnia elastyczność modelowania danych, a MySQL jest wszechobecny po uruchomieniu FB, SQL był używany jako trwała baza danych, a memcache jako „podręczna” pamięć podręczna we wczesnych dniach FB.
Baza danych Facebooka przechowuje profile swoich klientów, którzy stanowią około 23% wszystkich klientów. Fundamentalne zasady leżące u podstaw internetowej, globalnie rozproszonej architektury Facebooka mają zastosowanie do szerokiej gamy aplikacji korporacyjnych o znaczeniu krytycznym dla biznesu, w tym SaaS dla wielu dzierżawców, a lepsze zrozumienie ewolucji baz danych na Facebooku pozwala wyciągnąć wnioski. Interfejs API TAO NoSQL Graph, który jest zbudowany na podzielonej na fragmenty wersji popularnej bazy danych Mystria o otwartym kodzie źródłowym , jest jednym z interfejsów API NoSQL FB. TAO podzieliło 1000 starszych, ręcznie solonych baz danych MySQL master-slave FB na tysiące podzielonych na fragmenty niewolników. W rezultacie aplikacja nie używa już bazy danych do wykonywania transakcji cross-shard i cross-shard JOIN. W rezultacie, jeśli wykonano tego typu przełączenie awaryjne, ostatnie dane zostałyby utracone. Ponieważ wszystkie obiekty i powiązania są przechowywane w pamięci podręcznej na tych samych serwerach, mogą być przechowywane w tym samym fragmencie przez czas nieokreślony.
Ustalono, że stopień kolokacji danych jest ważną techniką optymalizacyjną wykorzystywaną do maksymalizacji opóźnień w dostępie do danych. Społeczność programistów porzuciła SQL na rzecz niestandardowego interfejsu API NoSQL TAO po tym, jak FB zmusił ich do rezygnacji z interfejsu API zapytań SQL. Baza danych Spanner firmy Google, stworzona ponad dekadę temu, powstała jako część bazy danych TAO firmy FB. Model danych Spannera, w przeciwieństwie do wykresu społecznościowego, był bardziej tradycyjnym obciążeniem o dostępie swobodnym dla OLTP. Druga generacja rozproszonych baz danych opiera się na ogromnej skalowalności i globalnej dystrybucji danych w ramach warstwy bazy danych. Spanner wykorzystuje konsensus rozproszony na fragment, aby zapewnić, że każdy fragment (a nie tylko każda instancja) pozostanie wysoce dostępny w przypadku awarii usługi. Pomimo tego, że konfiguracja klastra aplikacji została zmieniona, nadal działa.

Dane odnoszące się do regionu lokalnego będą nadal umieszczane na szczycie listy ze względu na takie funkcje, jak partycjonowanie geograficzne na poziomie tabeli i wiersza. Rozproszony menedżer transakcji jest używany w transakcjach obejmujących wiele fragmentów do zarządzania procesem zatwierdzania 2-fazowego, a także przesunięciami zegara w każdym węźle. Użyliśmy TAO jako środka do cięcia kosztów w FB, co pozwoliło nam utrzymać naszą inwestycję w podzielony MySQL. Firma Google zdecydowała się pójść inną drogą, wprowadzając Spanner, zupełnie nową bazę danych z możliwościami skalowania w poziomie, bezproblemową replikacją geograficzną i łatwością awarii infrastruktury.
Istnieje wiele powodów, dla których bazy danych NoSQL zyskują na popularności. System wykorzystuje inne podejście do przechowywania danych, które jest bardziej wydajne w przypadku dużej ilości danych.
Bazy danych NoSQL są używane przez wiele znanych firm, w tym Amazon, Netflix, Microsoft, Snapchat i Dropbox. Wybór bazy danych NoSQL był jedną z najlepszych decyzji, jakie kiedykolwiek podjęli, ponieważ ich aplikacje przetwarzają dużo danych.
W rezultacie bazy danych NoSQL zapewniają większą elastyczność w sposobie przechowywania danych przez firmy. W efekcie następuje lepsza organizacja i dostęp do danych. Ponadto bazy danych NoSQL mają tę zaletę, że są szybsze pod względem przetwarzania dużych ilości danych.
Rozważenie baz danych NoSQL ma sens dla firm, które muszą przechowywać dużą ilość danych. Dzięki unikalnemu podejściu do przetwarzania danych są w stanie przetwarzać dane z większą szybkością i wydajniej.
Czy Twitter korzysta z bazy danych wykresów

Twitter przechowuje podstawowe dane, takie jak wykresy zainteresowań, osie czasu i dane użytkowników w MySql. Twitter ma setki schematów i tysiące węzłów, które obsługują miliony zapytań na sekundę w największym klastrze. Usługa flockdb jest używana w obliczeniach grafów.
Omówiono wykorzystanie baz danych wykresów , ich zastosowanie do danych COVID-19 oraz wybrany język wykresów. Po czacie możesz przeczytać ich spostrzeżenia tutaj. Weź udział w naszym czacie tweetowym dzisiaj o 13:00 czasu wschodniego, zatytułowanym The State of Graph Databases in 2020. Przedstawimy kilka pytań, które posłużą do ułatwienia dyskusji. W przeszłości wykazano, że bazy danych grafów są bardzo przydatne. Ze względu na jego zdolność do łączenia danych, obsługi ogromnych ilości danych i godnego podziwu działania, jest wymagany przez wszystkie organizacje o analitycznym nastawieniu. Wyróżniają się tym, że mogą służyć do łączenia danych z wielu źródeł, a nie z baz danych.
Użytkownicy mogą teraz korzystać z tych wykresów, aby korzystać z określonych funkcji, które znajdują się w bazie danych wykresów podczas analizy danych. Wielu nowych użytkowników może zostać wprowadzonych do #knowledgegraph jako pierwszego przypadku użycia, ponieważ wiele firm wymaga #analityki z szerokiego zakresu ustrukturyzowanych i nieustrukturyzowanych źródeł danych. Jeśli chodzi o #NLP i łączenie jego wyjścia z różnymi źródłami, najlepszym rozwiązaniem jest #graphdb. COVID-19 zostanie omówiony bardziej szczegółowo w drugim kwartale GraphDB. # GraphDB może znaleźć wiele zastosowań w drugim kwartale jako rozwiązanie do śledzenia kontaktów. W rezultacie dane są NIESPRAWIEDLIWE dla dużych organizacji, ponieważ informacje można znaleźć, uzyskać dostęp, interoperacyjność i można je ponownie wykorzystać. RDF* to wykres właściwości.
Nie ma wątpliwości, że panuje zamieszanie. Federacja to obecnie intrygujący temat. Te dane muszą zostać pozyskane do pliku #graphdbs. Jeśli modelujesz go poprawnie, niekoniecznie musisz używać RDF*. Doskonałym sposobem na to jest wykorzystanie nauki o danych grafowych do łączenia i korelowania różnych zestawów danych. Obecnie nie ma znaczącej różnicy między RDF* a LPG. Dostawcy obsługujący RDF zazwyczaj obsługują właściwości etykietowane, dzięki czemu algorytmy grafów i inne funkcje analityczne są całkowicie niewidoczne dla poprzednich wersji RDF.
Czy powinienem używać rdf lub sparcl między moim komputerem a aplikacjami mobilnymi? W rzeczywistości generowanie właściwości z RDF nie jest nauką rakietową, ale ML może potencjalnie generować trójki z właściwości w #GraphDB @stevesarfield graph DBMS. Kiedy patrzysz na ontologię, modelujesz ją, a ona podąża za tobą do łóżka. Ponadto nasi redaktorzy rozpoczęli interakcję z rynkiem GraphDB. Naszym celem jest stworzenie obszernej listy najlepszych produktów dostępnych dla konsumentów. Wykres wiedzy można utworzyć za pomocą GraphDB, łącząc ustrukturyzowane i nieustrukturyzowane dane, co pozwala na wykorzystanie go jako narzędzia analitycznego. Wielu użytkowników uzna to za początek swojej podróży do grafowych baz danych w przyszłości.
Przez długi czas firma FOSS była głównym źródłem projektów typu open source, ale w przyszłości może ponownie wysunąć się na pierwszy plan. # GraphDB może być najlepszym sposobem na uporządkowanie wszystkich odmiennych komponentów w ekosystemie #IoT, gdy dojrzewają w organizacjach i ekosystemach. Firmy obsługujące karty kredytowe używają GraphDB do wykrywania podejrzanych wzorców aktywności. Kiedy musisz połączyć niedoskonałe schematy z innymi niedoskonałymi źródłami, dobrym rozwiązaniem może być użycie #GraphDB. Pozostańcie ze sobą w kontakcie i bądźcie zdrowi. Rozwiązanie bazodanowe GOLAP firmy Cambridge Semantics, AnzoGraphDB, zapewnia kontekst i znaczenie na masową skalę w bazie danych grafów przetwarzanej masowo równolegle (MPP) w pamięci. Zapytanie przemierzające graf można skalować, aby sprostać wymaganiom złożonej hurtowni danych i analiz, a także może obsłużyć duże obszary agregacji danych. Wypróbuj bezpłatnie AnzoGraphDB, aby sprawdzić, czy może pomóc Ci lepiej zarządzać ogromną kolekcją danych.
Jak giganci mediów społecznościowych wykorzystują bazy danych wykresów do ulepszania swoich platform
MySQL, system zarządzania bazą danych, był pierwotnie używany do przechowywania danych Twittera. Przeszliśmy z małej instancji bazy danych do dużej instancji bazy danych, a następnie z jednej dużej instancji bazy danych do drugiej. Baza danych Twittera została wykorzystana do przechowywania wszystkich informacji o użytkownikach, dzięki czemu stała się jedną z najpotężniejszych firm mediów społecznościowych . Firma była w stanie ulepszyć swoją platformę, analizując zachowania użytkowników i śledząc ich postępy. Wyszukiwarka na Instagramie była początkowo obsługiwana przez Elasticsearch, wyszukiwarkę obsługującą wykresy społecznościowe zbudowaną przez Facebooka, ale ostatecznie została zastąpiona przez Unicorn. Oprócz korzystania z bazy danych wykresów do śledzenia interakcji użytkowników, Instagram używa jej do śledzenia powiązań użytkowników. Instagram może poprawić wrażenia użytkownika i dostarczać bardziej odpowiednie treści, analizując dane z mediów społecznościowych. Bazy danych wykresów i analizy są wykorzystywane przez Facebook, Instagram i Twitter, aby lepiej zrozumieć, w jaki sposób ich użytkownicy wchodzą ze sobą w interakcje i budować lepsze platformy.