Cassandra: The Definitive Guideの8章と9章を読んだ
の続編
13章はPerformance Tuning
15章はMigrating and Integrating
仕事だと監視系は委託するので、これにて読みたいところは全部読み切りました
・統計情報を出す
全体のREAD,WRITEのLATENCYがわかる
nodetool proxyhistograms
テーブルごとのレイテンシ情報
nodetool tablehistograms hotel available_rooms_by_hotel_date #keyspace_name table_nameの順番で角
・トレース
TRACING ON
をしてからクエリを実行すると詳細情報が取れる
TRACING OFF
で元に戻せる
・キャッシュについての前提
RowキャッシュはReadが重い時のみ
キャッシュの量はheapを超えないようにする
Keyに対するRowのサイズを考える
・Keyキャッシュ
Keyキャッシュはメモリを多く消費せずにパフォーマンスを向上できる
Keyキャッシュが有効化どうかの調べ方
cqlsh:reservation> DESCRIBE hotel.hotel; #以下を確認 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
・Rowキャッシュ
Keyだけでなくよく使うRowのデータすべてをキャッシュすることで速度向上を図る
ただし、メモリはかなり食う
そして、設定を間違えるとむしろパフォーマンスが落ちるので注意
rows_per_partitionで何行キャッシュするか指定する
cqlsh:reservation> DESCRIBE hotel.hotel; #以下を確認 AND caching = {'keys': 'ALL', 'rows_per_partition': '200'}
・Cassandraに移行を考える時
データのボリュームや複雑なクエリでパフォーマンスが悪い
スケールしたい
可用性を高めたい
ライセンス料金が高い
複雑なクエリやStored procedureによりメンテナンスコストが高い
・RDBMSからの移行方法
間接的移行
リバースエンジニアリングしてコンセプトモデルを作る
ワークフローを確認してアクセスパターンを洗い出す
直接的移行
RDBMSから直接Cassandraに移行する
移行時はセカンダリインデックスよりも非正規化する方がオススメ
・UDF
User Definied Functionの略
CREATE FUNCTIONで関数を定義できる
・エキスポートとインポート
COPYコマンドでファイルを出力できる
COPY hotel.hotel TO 'hotel.csv' WITH HEADER = TRUE;
以下でリストア
COPY hotel.hotel FROM 'hotel.csv' WITH HEADER = true ;
こうして最後まで読みました
Cassandraの本だったらこの本がベストかなと思います
Cassandraを使うようになったらぜひどうぞ
関連記事:
- Cassandra: The Definitive Guideの7章を読んだ
- Cassandra: The Definitive Guideの5章を読んだ
- Cassandra: The Definitive Guideの8章と9章を読んだ