Amazon Keyspacesを利用して、Apache Cassandraを試してみたので、そのメモです。
AWSで使用するNoSQLの定番といえばDynamoDBですが、ベンダーロックインされてしまうことを鑑み、OSSのNoSQLを試そうと思ったのがきっかけです。
Cassandraであれば、Azure Cosmos DBなどでもサポートされているため、マルチクラウドで対応できる、きっと。
チュートリアル
最初にAmazon Keyspacesのコンソールから利用開始すると、以下のチュートリアルが表示されます。このチュートリアルに沿うだけで、テーブル作成からデータのINSERTまでの一連の流れがわかります。
データのクエリを試す
クエリは、CQL(Cassandra Query Language)を使用します。SQLに似た構文でクエリできるので、DynamoDBよりとっつきやすいイメージです。
しかし、NoSQLなので、プライマリキー以外でwhereで絞り込もうとすると、エラーが発生します。
ALLOW FILTERING
をつけることで結果が出ますが、全件検索になってしまう(DynamoDBでいうところのScan相当)ため、あまりやりたくないことは確かです。
また、Dynamo DB同様、データの並び替えは期待できなさそうです。order by で並び変えようとすると、プライマリキーをEQかINで指定するように言われ、プライマリキーをINで指定して再度クエリを実行しましたが、想定の結果にはなりませんでした。
DynamoDBであれば、インデックスを用いて無理やりやることもできますが、Keyspacesではインデックスを貼ることはできないようです。(本家Cassandraであればインデックスも貼れそうでした)
感想
趣味レベルではおとなしくDynamoDBか普通のRDBを使ったほうがよさそうと思ったので、これ以上の深追いはしませんでしたが、ここまでの情報で参考になる方もいらっしゃればと思い投稿しました。なにかの参考になれば幸いです。