Para reduzir custos de armazenamento de dados acessados com pouca frequência — como leituras arquivadas de sensores IoT, registros históricos de pedidos ou logs de auditoria de aplicações — atribua cold storage a uma tabela ou família de colunas no LindormTable. Os dados atribuídos ao cold storage são movidos para o Capacity storage e deixam de consumir a cota de armazenamento padrão da instância. Este tópico explica como configurar o cold storage usando o Lindorm Shell ou a ApsaraDB for HBase API for Java.
Limites
O cold storage exige LindormTable V2.1.8 ou posterior.
Ative o cold storage na instância do Lindorm antes de configurá-lo em uma tabela ou família de colunas.
Para limites de IOPS de leitura aplicáveis ao Capacity storage, consulte Limites de IOPS de leitura do Capacity storage.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância do Lindorm com cold storage ativado e LindormTable V2.1.8 ou posterior
Lindorm Shell configurado (para o método via Lindorm Shell) — consulte Usar o Lindorm Shell para conectar-se ao LindormTable
ApsaraDB for HBase SDK for Java configurado (para o método via Java) — consulte Usar a ApsaraDB for HBase API for Java para desenvolver aplicações
Configure cold storage usando o Lindorm Shell
Crie uma tabela com cold storage
Ao criar uma tabela, defina STORAGE_POLICY como COLD na família de colunas:
create 'coldTable', {NAME => 'f', STORAGE_POLICY => 'COLD'}
Alterar uma família de colunas existente para cold storage
Execute alter para atualizar a política de armazenamento de uma família de colunas existente:
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'COLD'}
Se a família de colunas já contiver dados, o arquivamento no cold storage ocorrerá somente após a conclusão de uma major compaction.
Reverter para hot storage
Para reverter uma família de colunas para o nível padrão de hot storage:
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'DEFAULT'}
Configure cold storage usando a ApsaraDB for HBase API for Java
Crie uma tabela com cold storage
Defina STORAGE_POLICY como AliHBaseConstants.STORAGETYPE_COLD no descritor da família de colunas antes de chamar createTable:
Admin admin = connection.getAdmin();
HTableDescriptor descriptor = new HTableDescriptor(TableName.valueOf("coldTable"));
HColumnDescriptor cf = new HColumnDescriptor("f");
// Set the storage type of the column family to cold storage.
cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD);
descriptor.addFamily(cf);
admin.createTable(descriptor);
Alterar uma família de colunas existente para cold storage
Recupere o descritor da tabela, atualize a política de armazenamento da família de colunas e chame modifyTable:
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("coldTable");
HTableDescriptor descriptor = admin.getTableDescriptor(tableName);
HColumnDescriptor cf = descriptor.getFamily("f".getBytes());
// Set the storage type of the column family to cold storage.
cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD);
admin.modifyTable(tableName, descriptor);
Se a família de colunas já contiver dados, o arquivamento no cold storage ocorrerá somente após a conclusão de uma major compaction.
Reverter para hot storage
Defina STORAGE_POLICY como AliHBaseConstants.STORAGETYPE_DEFAULT para reverter a família de colunas para hot storage:
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("coldTable");
HTableDescriptor descriptor = admin.getTableDescriptor(tableName);
HColumnDescriptor cf = descriptor.getFamily("f".getBytes());
// Set the storage type of the column family to hot storage (default).
cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_DEFAULT);
admin.modifyTable(tableName, descriptor);