質問: cassandraというno sql DBを勉強しています。 cassandraで過去の時間を指定してその時点での内容のテーブルを取得したいと思っています。 cassandraでそのようなことは可能でしょうか? cassandraでできない場合にはたとえば他のDBならできる等の代替案はありますでしょうか? よろしくお願いします。
回答: cassandra にそのような機能があるとは、聞いたことがないです。また、 cassandra は eventual consistency の世界で生きているデータベースで、それにおいて歴データを取り扱うことに、意義を見出すのは少し難しそうです。 cassandra を使うのであれば、ロジカルな cassandra データの pk たちの末尾に、inserted_time のようなpk を追記して、insert 時にはこの inserted_time に現在時刻を入れておいて、後はロジックで頑張る、というのが解になりそうです。 ある特定時点のデータの状態を取得できるデータベースは、名称としては Temporal Database と呼ばれるそうです。調べてみると、いくつかこの機能を実装するデータベースがあるようで、具体的に一つあげると * mariadb の system versioned table などが使えそうです。