Twitterバックエンドがプロトコルバッファーに切り替え
ユーザーのツイートのメインコピーはMySQLおよびCassandraデータベースに保存されますが、同社は分析および追加のソフトウェアアプリケーションに使用できる追加のストレージもHadoopに展開します。
このシステムからの情報は、Hadoop独自のSQLに似たクエリ言語であるJava MapReduceまたはPigを使用して要求できます。 現時点では、検索システムはすでにこのバックエンドに転送されており、他のアプリケーションも将来登場する予定です。
Twitterプログラマーは、XML、CSV、JSONなどの一般的なテクノロジーを拒否したため、バックエンドデータを保存する形式として、Googleが開発した比較的未知の
プロトコルバッファー形式(Habrで既に
説明しました)を選択しました。 実装の技術的な詳細は、火曜日のHadoopWorldカンファレンスでTwitterによって
発表されました。
毎日、12 TBの新しいデータがTwitterデータベースに追加されます。 このようなボリュームでは、適切な形式を選択することが重要です。 プロトコルバッファ、Hadoop、および関連技術の組み合わせにより、この問題に対処します。
各ツイートは、データベース内の17個のフィールドで構成され、そのうち6個には少なくとも1つのサブフィールドがあります。 将来、Twitterは他のサブフィールドを追加する予定です。 将来、ストレージシステムは
、10億人のユーザーからの1兆ツイートに耐え、効果的に機能するはず
です 。
ユーザーコンテンツに加えて、内部ログ(システムで発生する80種類を超える操作)からのサービス情報も受信し、データベースに保存します。 このデータのほとんどは、無料の
Scribeテクノロジー(Facebookが開発)を使用して集約されます。
XMLに対するプロトコルバッファの利点は、大量のデータで明らかになりつつあります。 Twitterの開発者によると、1兆個のXMLツイートには1つではなく約10ペタバイトかかることがあります。 JSONは、多くの冗長な情報も保存します。 それとは反対に、データがカンマだけで区切られているCSV。 余分なものはありませんが、サブフィールドを構成することは困難です。
プロトコルバッファにはこれらの欠点はありません。 さらに、データ構造を再構築するプロセスを自動化します。
プロトコルバッファチュートリアルで述べたように、データ構造化メソッドを一度定義すれば十分です。その後、特別に生成されたコードを使用して、さまざまなストリームおよび異なる言語で構造化データを簡単に読み書きできます。
Source: https://habr.com/ru/post/J106169/
All Articles