14

クッキー、ページ訪問、広告閲覧、広告クリックなど、Cassandraに保存されているさまざまなWebサイトからの多くのユーザーインタラクションデータがあり、レポートを作成したいと考えています。現在のCassandraスキーマは、基本的なレポートとクエリをサポートしています。ただし、通常は大規模な列ファミリ(数百万の行を含む)での結合を含む大規模なクエリも作成したいと思います。

これに最適なアプローチは何ですか?1つの可能性は、mySQLなどのリレーショナルデータベースにデータを抽出し、そこでデータマイニングを実行することです。別の方法として、ハイブまたはピッグでHadoopを使用して、この目的でマップリデュースクエリを実行することもできますか?私は後者の経験がまったくないことを認めなければなりません。

誰かが一方と他方でパフォーマンスの違いを経験したことがありますか?ライブのCassandra本番インスタンスまたはバックアップコピーでmapreduceクエリを実行して、クエリの負荷が書き込みパフォーマンスに影響を与えないようにしますか?

4

2 に答える 2

13

私の経験では、Cassandraは、データへのリアルタイムアクセス、高速ランダム読み取り、および一般的に大量のトラフィック負荷を処理する必要があるプロセスに適しています。ただし、複雑な分析を開始すると、Cassandraクラスターの可用性が著しく低下する可能性があります。一般に、私が見たところ、Cassandraクラスターをそのままにしておくことが最善の利益になります。そうしないと、可用性が低下し始めます。

分析プラットフォームが必要なようです。オフラインのデータウェアハウスシステムで使用するために、Cassandraからレポートデータをエクスポートすることを強くお勧めします。

余裕があれば、実際のデータウェアハウスがあれば、複数のテーブルで複雑な結合を使用して複雑なクエリを実行できます。これらのデータウェアハウスシステムは、レポート作成に広く使用されています。これが私の意見の主要なプレーヤーのリストです。

  • Netezza
  • Aster / TerraData
  • Vertica

最近勢いを増しているのはAmazonRedshiftですが、現在ベータ版ですが、手に入れることができれば、価格がはるかに魅力的な堅実な分析プラットフォームのように見えるので、これを試してみることができます上記のソリューションよりも。

Hadoop MapReduce / Hive / Pigを使用するなどの代替手段も興味深いものですが、Hadoopテクノロジーに代わるものではない可能性があります。SQLのバックグラウンドがある場合は、Hiveをお勧めします。これは、実行していることを非常に理解しやすく、簡単にスケーリングできるためです。実際には、Apache MahoutのようにHadoopと統合されたライブラリがすでにあり、Hadoopクラスターでデータマイニングを実行できます。これを試して、ニーズに合うかどうかを確認する必要があります。

アイデアを与えるために、これまでうまく機能してきた私が使用したアプローチは、Hiveで結果を事前に集計し、Netezzaなどのデータウェアハウスでレポート自体を生成して複雑な結合を計算することです。

于 2013-01-26T01:07:28.710 に答える
8

開示:私はDataStaxのエンジニアです。

Charlesの提案に加えて、CassandraとHadoop、Hive、Pig、およびMahoutとの優れた統合を提供するDataStax Enterprise (DSE)を調べることをお勧めします。

Charlesが述べたように、パフォーマンスに大きな影響を与える可能性があるため、リアルタイムアプリケーションのニーズを処理しているCassandraノードに対して直接分析を実行することは望ましくありません。これを回避するために、DSEでは、複数の仮想「データセンター」(NetworkToplogyStrategyという用語の意味で)を使用して、クラスターの一部を厳密に分析に充てることができます。Hadoopジョブの一部として実行されるクエリは、これらのノードにのみ影響を与え、基本的に通常のCassandraノードには影響を与えません。さらに、パフォーマンスのニーズに基づいて、クラスターの各部分を個別にスケールアップまたはスケールダウンできます。

DSEアプローチにはいくつかの利点があります。1つは、データを処理する前にETLを実行する必要がないことです。Cassandraの通常のレプリケーションメカニズムは、分析専用のノードを最新の状態に保ちます。次に、外部のHadoopクラスターは必要ありません。DSEには、CFS(CassandraFS)と呼ばれるHDFSのドロップイン置換が含まれているため、Hadoopジョブからのすべてのソースデータ、中間結果、および最終結果をCassandraクラスターに格納できます。

于 2013-01-28T05:09:28.720 に答える