私はclouderaを使って展開したapache hbase(バージョン1.0.0)とphoenix(バージョン4.6)を使用しています。クエリによるグループの集計は遅いので、特定のhbaseテーブルのブロックキャッシュを無効にする方法を試してみたいと思います。私はいくつかのアプローチを試みましたが、成功することはできませんでした。ブロックキャッシュがhbaseシェルで有効/無効になっているかどうかを確認しています - 'my_table'コマンドを記述してください。でも、上記の二つのステップの後に0 HBaseブロックキャッシュを無効にする
alter 'myTable', CONFIGURATION => {NAME => 'myColumnFamily', BLOCKCACHE => 'false'}
にClouderaのコンソールから
- がセット 'hfile.block.cache.size' プロパティ、私は記述でBLOCKCACHE => 'true' を取得しますコマンド出力
COLUMN FAMILIES DESCRIPTION {NAME => '0', DATA_BLOCK_ENCODING => 'FAST_DIFF', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '1', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
何が問題になる可能性がありますか?助言がありますか?
ありがとうございます。
理論的には、ブロックキャッシュを集約に対して有効にし、クエリでグループ化することは理にかなっていますか?それが完全なテーブルスキャンにつながると仮定すると、ブロックキャッシュが有効になっているとパフォーマンスが低下すると思います。 - SELECT SUM(UNIT_SOLD)、SUM(TOTAL_SALES)FROM TRANSACTIONS GROUP BY COUNTRYのようなロールアップクエリを考えてみましょう。どう思いますか? –