云原生多模數據庫 Lindorm使用容量型云存儲作為冷數據存儲介質。開通冷存儲功能后,需要配置數據庫中的表或者列簇,本文介紹配置冷存儲的方法。
背景信息
冷存儲功能僅支持云原生多模數據庫 Lindorm引擎版本為2.1.8及以上。Lindorm支持在表級別設置存儲屬性,可以將整個表或某個列簇的Storage設為冷存儲。如果設置為冷存儲,那么這個表或某個列簇的數據都會存儲在容量型云存儲中,并不會占用該實例的默認存儲空間。
容量型云存儲的性能說明,請參見容量型云存儲讀取性能說明。
配置冷存儲
配置數據庫中的表或者列簇為冷存儲的方法有兩種:
通過HBase Shell設置冷存儲。在設置前,需要已下載和配置Shell,具體操作請參見通過Lindorm Shell訪問寬表引擎。
創建表格時執行以下語句設置冷存儲。
create 'coldTable', {NAME => 'f', STORAGE_POLICY => 'COLD'}
如果表格已經創建,可以通過修改表中列簇的屬性來設置冷存儲的列簇。
重要如果這個列簇中已經有數據,那么只有在major compaction之后,數據才會進入到冷存儲。
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'COLD'}
如果您需要將表重新設置為熱存儲請執行以下語句。
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'DEFAULT'}
通過HBase Java API設置冷存儲。在設置前,需要已安裝和配置SDK,具體操作請參見基于HBase Java API的應用開發。
創建表格時執行以下語句設置冷存儲。
Admin admin = connection.getAdmin(); HTableDescriptor descriptor = new HTableDescriptor(TableName.valueOf("coldTable")); HColumnDescriptor cf = new HColumnDescriptor("f"); cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD); descriptor.addFamily(cf); admin.createTable(descriptor);
如果表格已經創建,可以通過修改表中列簇的屬性來設置冷存儲的列簇。
重要如果這個列簇中已經有數據,那么只有在major compaction之后,數據才會進入到冷存儲。
Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("coldTable"); HTableDescriptor descriptor = admin.getTableDescriptor(tableName); HColumnDescriptor cf = descriptor.getFamily("f".getBytes()); // 設置表的存儲類型為冷存儲 cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD); admin.modifyTable(tableName, descriptor);
如果您需要將表重新設置為熱存儲請執行以下語句。
Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("coldTable"); HTableDescriptor descriptor = admin.getTableDescriptor(tableName); HColumnDescriptor cf = descriptor.getFamily("f".getBytes()); // 設置表的存儲類型為默認存儲,默認存儲為熱存儲 cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_DEFAULT); admin.modifyTable(tableName, descriptor);
文檔內容是否對您有幫助?