银行有非常多的用户,四大银行拥有数10亿的用户。要保存的数据量可想而知。如果说有的数据,都同等对待,为了保证使用数据的性能,采用的是高性能存储,这将是一笔不小的资源浪费。实际上,超过一定时间的数据,数据访问的频率要低得多。例如:用户查询5年前的转账记录、要比查询1年类的转账记录频率要低得多。
所以,为了能够更好地利用资源,需要对数据进行分层。也就是不同时间范围的数据,放在不同的层(冷热温)中。 5.1 存储分层策略 按照以下配置,在HDFS的source目录中创建以下几个文件夹:
文件夹路径 存储策略 说明
/source/bank/transfer/log_lte1y DISK 存储一年以内采集的数据 /source/bank/transfer/log_gt1y ARCHIVE 存储1年以上的数据
5.2 测试
hdfs dfs -mkdir -p /source/bank/transfer/log_lte1y
hdfs dfs -mkdir -p /source/bank/transfer/log_gt1y
hdfs storagepolicies -setStoragePolicy -path /source/bank/transfer/log_lte1y -policy HOT
hdfs storagepolicies -setStoragePolicy -path /source/bank/transfer/log_gt1y -policy COLD
hdfs storagepolicies -getStoragePolicy -path /source/bank/transfer/log_lte1y
hdfs storagepolicies -getStoragePolicy -path /source/bank/transfer/log_gt1y
rz
hdfs dfs -put /root/bank_record.csv
/source/bank/transfer/log_lte1y/bank_record_2020_9.csv
hdfs dfs -put /root/bank_record.csv
/source/bank/transfer/log_gt1y/bank_record_2015_9.csv
hdfs dfs -mv /source/bank/transfer/log_lte1y/bank_record_2020_9.csv
/source/bank/transfer/log_gt1y/bank_record_2020_9.csv