Twitter が Apache Cassandra を使用してソーシャル メディア プラットフォームを強化する方法

公開: 2022-11-17

Twitter は、ユーザーが「つぶやき」と呼ばれる短いメッセージを送受信できるソーシャル ネットワーキング プラットフォームです。 2006 年から存在し、それ以来、最も人気のあるソーシャル メディア プラットフォームの 1 つになりました。 Twitter はインフラストラクチャの特定の部分にいくつかのリレーショナル データベース管理システム (RDBMS) を使用していますが、主に Apache Cassandra と呼ばれる NoSQL データベースを使用しています。 Cassandra は、高可用性とパフォーマンスで大量のデータを処理するように設計されています。 Twitter が Cassandra を使用する理由はいくつかあります。 まず、非常にスケーラブルです。 Twitter は、ユーザー ベースが拡大するにつれて、Cassandra ノードを簡単に追加できます。 2 つ目は、Cassandra の可用性が高いことです。 Cassandra ノードの 1 つがダウンしても、他のノードがスラックを取り戻すことができます。 最後に、Cassandra は高速です。 これは、ユーザーがリアルタイムの更新を期待するソーシャル メディア プラットフォームにとって重要です。 したがって、Twitter はいくつかのリレーショナル データベースを使用していますが、プライマリ データベースは NoSQL です。 これにより、Twitter は迅速にスケーリングし、ユーザーに高速で信頼性の高いエクスペリエンスを提供できます。

Twitter の製品開発担当ディレクターである Kevin Weil は、今年初めに投稿されたビデオで、同社が NoSQL をどのように使用しているかを説明しています。 毎日、Twitter ユーザーは約 12 ペタバイトのデータを生成します。これは、年間約 4 ペタバイトに相当します。 Hadoop は、FlockDB と呼ばれる独自のオープンソース プロジェクトと共に、ソーシャル データの分析とデータの分析に使用されます。 Twitter は、関連するコンテンツを提供するために、収集したすべての情報を収集および使用します。 Weil 氏によると、この SlideShare は、Twitter がソーシャル グラフをどのように分析しているかを学ぶのに最適な場所です。 Twitter は、Facebook のオープンソース NoSQL データベースである Cassandra をサービスとして使用する実験を続けています。

永続層が多数のクラスターに成長したため、MySQL は当初から Twitter の主要なデータ ストアでした。 Twitter は、当初から大規模な MySQL を展開しています。 数百万のノードを持つ数千の MySQL クラスターがあり、1 秒あたりのクエリが処理されます。

Google Cloud は、ドキュメント指向データベースである Cloud Firestore とデータ ストレージ システムである Cloud Object Storage の 2 種類の NoSQL データベース サービスを提供します。 使い方が簡単で、小さなドキュメント用に最適化されているため、モバイル アプリケーションに最適です。 Cloud Datastoreで簡単にスケーリングでき、パフォーマンスが高く、使いやすいドキュメント データベース。

NoSQL テクノロジは、月間 300 万人以上のユーザーにサービスを提供する世界で最も忙しい航空会社である Ryanair のモバイル アプリを支えています。 過去 8 年間、Marriott は NoSQL を使用して予約システムを実行しており、380 億ドルの収益を上げています。 Presto は独自のコンテンツ管理システムに加えて、No.1 の米国の新聞社である The Chronicle of Higher Education で使用されており、NoSQL を使用しています。

PostgreSQL と Cassandra は、Instagram のバックエンド データベース システムの 2 つです。

Twitter はどのような種類のデータベースを使用していますか?

画像クレジット: sqlnethub.com

Twitter はリレーショナル データベースを使用してツイートを保存します。 このデータベースは一連のテーブルにデータを格納するように設計されており、各テーブルにはツイートの特定の側面に関する情報が含まれています。 たとえば、ユーザー情報用のテーブル、ツイート自体用のテーブル、ユーザー間の関係用のテーブルがあります。

リクエストを特定のサーバーにルーティングするようにリクエストするなど、一部のサービスでこの情報の一部が必要になる場合がありますが、必須ではありません。 リクエストをルーティングしたい場合、ツイートのタイムスタンプを知る必要はありません。
それにもかかわらず、データはストレージに残り、処理されます。 情報を削除または匿名化する必要はありません。 政府が私たちのデータにアクセスすることはできませんが、あなたに関する情報を収集するために使用することはできます。
この情報の保存と処理の結果として、いくつかのプライバシーの問題が存在します。 また、そもそも政府があなたの動きや活動を追跡することもできます. さらに、政府があなたの同意なしにあなたの個人情報にアクセスすることを許可します。
ツイートのテキストは保存されません。 このアカウントの名前とタイムスタンプのみが保持されます。 ツイートの内容は保存されません。
あなたのツイートには、保存できるデータは含まれていません。
画像をアップロードするときに、アカウント名とタイムスタンプのみが保存されます。

Mysql を使用する利点

Twitter は過去に MySQL を使用してツイートを保存していました。 MySQL は、その信頼性と一貫した性質により、多数のリクエストを処理できます。 Facebook は、MySQL を使用してすべてのソーシャル メディア データを保存しています。

Facebook は Sql または Nosql を使用しますか?

画像クレジット: phoenixnap.com

MySQL はデータ モデリングの柔軟性を提供し、FB の開始時にはどこにでもあるため、SQL は永続データベースとして使用され、memcache は FB の初期の「ルックアサイド」キャッシュとして使用されました。

Facebook データベースには、全顧客の約 23% を占める顧客のプロファイルが保存されています。 Facebook のインターネット規模でグローバルに分散されたアーキテクチャを支える基本的な原則は、マルチテナント SaaS を含む、ビジネスに不可欠な幅広いエンタープライズ アプリケーションに適用されます。Facebook でのデータベースの進化をよりよく理解することから学ぶべき教訓があります。 TAO NoSQL Graph API は、人気のあるオープン ソース データベース Mystriaのシャード バージョンに基づいて構築されており、FB の NoSQL API の 1 つです。 TAO は FB の古い 1000 の手動でソルト化された MySQL マスター/スレーブ データベースを数千のシャード スレーブに分割しました。 その結果、アプリケーションはデータベースを使用してクロスシャード トランザクションとクロスシャード JOIN を実行しなくなりました。 その結果、このタイプのフェイルオーバーが実行された場合、最近のデータが失われます。 すべてのオブジェクトと関連付けは同じサーバーにキャッシュされるため、同じシャードに無期限に保存できます。

データ コロケーションの程度は、レイテンシ データ アクセスを最大化するために使用される重要な最適化手法であると判断されました。 開発者コミュニティは、FB が彼らに SQL クエリ API をあきらめさせた後、TAO のカスタム NoSQL API を支持して SQL を放棄しました。 10 年以上前に作成された Google の Spanner データベースは、FB の TAO データベースの一部として作成されました。 ソーシャル グラフとは対照的に、Spanner のデータ モデルは、OLTP の従来のランダム アクセス ワークロードに近いものでした。 第 2 世代の分散データベースは、データベース レイヤーの一部として、大規模なスケーラビリティとグローバル データ分散に基づいて構築されています。 Spanner は、シャードごとの分散コンセンサスを使用して、サービスに障害が発生した場合でも各シャード (各インスタンスだけでなく) の高可用性を維持します。 アプリケーションのクラスター構成が変更されたという事実にもかかわらず、アプリケーションは引き続き動作します。

テーブル レベルおよび行レベルのジオ パーティショニングなどの機能により、ローカル リージョンに関連するデータは引き続きリストの上位にランク付けされます。 分散トランザクション マネージャーは、マルチシャード トランザクションで使用され、2 フェーズ コミット プロセスと各ノードのクロック スキューを管理します。 FB ではコスト削減策として TAO を使用し、シャード化された MySQL への投資を維持することができました。 Google は、水平方向のスケーリング機能、シームレスな geo レプリケーション機能、およびインフラストラクチャ障害の容易さを備えたまったく新しいデータベースである Spanner で別の道を選択しました。

NoSQL データベースが人気を博する理由は数多くあります。 システムは、大量のデータを処理する場合により効率的なデータ ストレージに別のアプローチを使用します。
NoSQL データベースは、Amazon、Netflix、Microsoft、Snapchat、Dropbox など、多くの有名企業で使用されています。 NoSQL データベースの選択は、アプリケーションが大量のデータを処理するため、これまでに下した最良の決定の 1 つです。
その結果、NoSQL データベースは、企業がデータを保存する方法に大きな柔軟性をもたらします。 その結果、組織化とデータ アクセスが向上します。 さらに、NoSQL データベースには、大量のデータの処理に関して高速であるという利点があります。
大量のデータを保存する必要がある企業にとって、NoSQL データベースを検討することは理にかなっています。 データ処理に対する独自のアプローチの結果、データをより高速かつ効率的に処理できます。


Twitterはグラフデータベースを使用していますか

画像クレジット: metricool.com

Twitter は、関心グラフ、タイムライン、ユーザー データなどの主要なデータを MySql に保持します。 Twitter には数百のスキーマと数千のノードがあり、最大のクラスターで毎秒数百万のクエリを処理します。 flockdb サービスは、グラフ コンピューティングで使用されます。

グラフ データベースの使用、COVID-19 データへの適用、グラフに選択する言語について説明します。 チャットに続いて、ここで彼らの洞察を読むことができます. 2020 年のグラフ データベースの状態というタイトルの本日午後 1:00 EST のツイート チャットに参加してください。議論を促進するために使用されるいくつかの質問を提示します。 グラフ データベースは、これまで非常に有用であることが示されてきました。 データを接続し、大量のデータを処理し、優れたパフォーマンスを発揮できるため、分析を重視するすべての組織で必要とされています。 それらは、データベースではなく複数のソースからのデータを接続するために使用できるという事実によって区別されます。

ユーザーは、これらのグラフを使用して、データ分析中にグラフ データベースにある特定の機能を利用できるようになりました。 多くの企業が幅広い構造化および非構造化データ ソースから #analytics を必要とするため、多くの新しいユーザーは最初のユース ケースとして #knowledgegraph を紹介される可能性があります。 #NLP とその出力をさまざまなソースと組み合わせる場合、#graphdb が最適なソリューションです。 COVID-19 については、GraphDB Q2 で詳しく説明します。 # GraphDB は、接触追跡ソリューションとして第 2 四半期に多く使用される可能性があります。 その結果、情報が検索可能、アクセス可能、相互運用可能、および再利用可能であるという点で、大規模な組織にとってデータは公平ではありません。 RDF* はプロパティ グラフです。

戸惑いがあるのは間違いありません。 フェデレーションは現在興味深いトピックです。 このデータは #graphdbs ファイルに取り込む必要があります。 正しくモデル化すれば、必ずしも RDF* を使用する必要はありません。 グラフ データ サイエンスを使用して、異種のデータ セットを関連付けて関連付けることは、そのための優れた方法です。 現在、RDF* と LPG の間に大きな違いはありません。 RDF 対応のベンダーは通常、ラベル付きプロパティをサポートしており、グラフ アルゴやその他の分析関数を以前の RDF では完全に見えなくすることができます。

PC アプリとモバイル アプリの間で rdf または spacl を使用する必要がありますか? 実際、RDF からプロパティを生成することはロケット科学ではありませんが、ML は #GraphDB @stevesarfield グラフ DBMS のプロパティからトリプルを生成する可能性があります。 オントロジーを見るとき、あなたはそれをモデル化しているのです。 さらに、私たちの編集者は GraphDB のマーケットプレイスと対話し始めました。 私たちの目標は、消費者が入手できる最高の製品の包括的なリストをまとめることです。 ナレッジグラフは、構造化データと非構造化データを組み合わせて GraphDB で作成でき、分析用のツールとして使用できます。 多くのユーザーは、これが将来のグラフ データベースへの旅の始まりであることに気付くでしょう。

長い間、FOSS はオープンソース プロジェクトの頼りになるソースでしたが、将来再び注目されるようになるかもしれません。 # GraphDB は、組織やエコシステムで成熟するにつれて #IoT エコシステム内のすべての異種コンポーネントを整理するための最良の方法かもしれません. クレジット カード会社は、GraphDB を使用して疑わしいアクティビティ パターンを検出します。 不完全なスキーマを他の不完全なソースと組み合わせる必要がある場合は、#GraphDB を使用することをお勧めします。 お互いに連絡を取り合い、健康を保ちましょう。 Cambridge Semantics の GOLAP データベース ソリューションである AnzoGraphDB は、インメモリ超並列処理 (MPP) グラフ データベースで大規模なコンテキストと意味を提供します。 グラフ トラバーサル クエリは、複雑なデータ ウェアハウジングと分析の要求を満たすようにスケーリングでき、大量のデータ集約も処理できます。 AnzoGraphDB を無料で試して、膨大なデータ コレクションをより適切に管理できるかどうかを確認してください。

ソーシャル メディアの巨人がグラフ データベースを使用してプラットフォームを改善する方法

データベース管理システムである MySQL は、もともと Twitter のデータを格納するために使用されていました。 小規模なデータベース インスタンスから大規模なデータベース インスタンスに移行し、その後、大規模なデータベース インスタンスから別のインスタンスに移行しました。 Twitter のデータベースは、すべてのユーザー情報を保存するために使用され、最も強力なソーシャル メディア企業の 1 つになりました。 同社は、ユーザーの行動を分析し、進捗状況を追跡することで、プラットフォームを改善することができました。 Instagram 検索エンジンは当初、Facebook によって構築されたソーシャル グラフ対応検索エンジンである Elasticsearch を利用していましたが、最終的には Unicorn に置き換えられました。 グラフ データベースを使用してユーザーのやり取りを追跡するだけでなく、Instagram はそれを使用してユーザーがどのように関連しているかを追跡します。 Instagram は、ソーシャル メディア データを分析することで、ユーザー エクスペリエンスを向上させ、より関連性の高いコンテンツを提供できます。 グラフ データベースと分析は、Facebook、Instagram、および Twitter で使用されており、ユーザーが互いにどのようにやり取りしているかをよりよく理解し、より優れたプラットフォームを構築しています。