私たちはCassandraを使用して、「ユーザーのクリック」、「ユーザーのログイン」などの分析テーブルを格納しています。データモデルは、アプリケーションが常にパーティションキーでクエリを実行するように設計されていますしかし、時には、「過去6ヶ月間に1人のユーザーあたりの平均ログイン数はどうでしたか」といったようなアドホックな分析を行う必要があります。 Spark SQLを使用しています。Spark SQLはCassandraセカンダリインデックスを使用しますか?
私の理解では、Spark SQLは基本的にCassandraのすべての行を繰り返し実行し、SQLクエリの条件を各行に適用し、一致しないものを破棄して一致するものを返します最後に必要な集約などを適用する)。私がCassandraカラム(例えば 'ログイン時間')にセカンダリインデックスを作成し、Spark SQLで「select * from logins where logintime> '2016-05-17'」というようなことをしてSQLを起動すると、セカンダリインデックスを使用してCassandraにフィルタリングするか、それともすべての行を繰り返し処理しますか?インデックス付きの述語をプッシュダウンするために、どの列にインデックスがあるかを手動で設定する必要がある設定がありますか?
ああ、純粋なSparkSQLは私が逃したビットでした。おそらくこれはSparkのHiveThriftServer for SparkSQLで動作しますか? – Matt