workersSFA、CRM製品を開発するエンジニアのブログこの広告は、90日以上更新していないブログに表示しています。エンジニアリングこんにちは。Jildinのハゲタカです。ハゲタカといいつつ髪の毛はもさもさです。皆さんはCassandraはご存知ですか?今流行りのNoSQLの一種です。慣れてしまうと使い勝手もよく、割とイケている子なのですがいかんせんロゴがキモいのが玉に瑕(たまにきず)です。今日はそんなCassandraについて記事を書きたいと思います。CassandraはReadかWriteしかないRDBに慣れ親しんだ開発者の多くがこの仕様に殺されるところを見て来ました。それはそれは酷い死に方でした...。CassandraにはReadとWriteの概念しかないのです。いうことかというと「INSERT」「UPDATE」「DELETE」がぜ〜んぶ同じなんです。存在しているキーに対してUPDATEをかけるだけでなく、存在しないキーにUPDATEをかけることだってできちゃうんです。ちなみにDELETEはただの論理削除なので、こいつも結局データをWriteしているだけなんですよね。CassandraにはRollbackなんてものはないここもRDBマンの墓場になりやすいところです。Cassandraにはrollback機能なんてものはないのです。大量データを順次INSERTしていくバッチ処理の途中で処理がコケたら、そこまでのデータが保存されてしまうということです。Cassandraには不整合データが生まれやすいのです。ここで潔癖症のくせに不整合データの処理は全てDB任せだったRDBマン達は次々に息絶えて行くことになります。※RDBと違いCassandraはデータ取得時(Readのタイミング)でデータの整合性を保とうとします(KeyでValをつるので)CassandraマンはViewから作れRDBに慣れ親しんだ方々は、往々にしてDBの設計をしてから順次ビューを作り込んで行く開発スタイルの方が多かったのではないかと思います。Cassandraでは逆です。ビューを作ってからDBを作るべきなんです。DBにテストデータを入れることができないからですね!っていうか開発途中にCassandraに不整合データが入ろうものであればそのデータを消すのに一苦労です。データを削除しても論理削除なんでどんどんCassandraは太って行くんですよ。太った目ん玉なんて嫌でしょう。Viewから作って行くとCassandraでは失敗のリスクが激減するので、CassandraマンはViewからつくりましょう。※論理削除されたデータはCompactionという処理が走るまで物理削除されません。Compactionは再起動した際に走るわけではないのでデータを消すのが面倒なのですが、それはまた別の記事でまとめます。Cassandraを使いこなした無料アプリcorp.jildin.comJildinはmariadbとCassandraのハイブリッドで動いています。両者の特性を理解して、適材適所の配置をすることで、今までになかった爆速でのデータ処理が可能になるのがNoSQLとRDBのハイブリッドの魅力です。12:00NoSQLのCassandraを使うときの注意点Tweet広告を非表示にする関連記事2017-04-15Cassandraでサービスを運用していく中で困ったこと/苦労していることこんにちは。Javaエンジニアとして働く君たちへどうも。最近まじでハゲてきたんじゃないかと不...2017-03-24JPARepositoryでparamを渡しつつPageを使う方法こんにちは。Jildinのハゲタカです。pagehttp://corp.jildin.comはてなブログをはじめよう!jildinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。