43867


cassandraというno sql DBを勉強しています。  
cassandraで過去の時間を指定してその時点での内容のテーブルを取得したいと思っています。  
cassandraでそのようなことは可能でしょうか？  
cassandraでできない場合にはたとえば他のDBならできる等の代替案はありますでしょうか？  
よろしくお願いします。


CC BY-SA 4.0
2018-05-07T05:07:16.267
43831
2018-05-08T08:43:38.143
18637
question
database
cassandra 過去の時点のテーブルを取得したい


cassandra にそのような機能があるとは、聞いたことがないです。また、 cassandra は eventual consistency
の世界で生きているデータベースで、それにおいて歴データを取り扱うことに、意義を見出すのは少し難しそうです。

cassandra を使うのであれば、ロジカルな cassandra データの pk たちの末尾に、inserted_time のようなpk
を追記して、insert 時にはこの inserted_time に現在時刻を入れておいて、後はロジックで頑張る、というのが解になりそうです。

ある特定時点のデータの状態を取得できるデータベースは、名称としては Temporal Database
と呼ばれるそうです。調べてみると、いくつかこの機能を実装するデータベースがあるようで、具体的に一つあげると

  * [mariadb の system versioned table](https://mariadb.com/kb/en/library/system-versioned-tables/)

などが使えそうです。


CC BY-SA 4.0
2018-05-08T08:43:38.143
43867
2018-05-08T08:43:38.143
754
43831
answer