public GenericDeleter(EntityDefinition ed) { this(ed.getTable(), ed.getColumnFamily()); }
public GenericDeleter(EntityDefinition ed) { this(ed.getTable(), ed.getColumnFamily()); }
private void createTable(EntityDefinition entityDefinition) throws IOException { String tableName = entityDefinition.getTable(); if (admin.tableExists(tableName)) { LOG.info("Table {} already exists", tableName); } else { HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName)); // Adding column families to table descriptor HColumnDescriptor columnDescriptor = new HColumnDescriptor(entityDefinition.getColumnFamily()); columnDescriptor.setBloomFilterType(BloomType.ROW); //columnDescriptor.setCompressionType(Compression.Algorithm.SNAPPY); columnDescriptor.setMaxVersions(DEFAULT_MAX_VERSIONS); tableDescriptor.addFamily(columnDescriptor); // Execute the table through admin admin.createTable(tableDescriptor); LOG.info("Successfully create Table {}", tableName); } } }
private void createTable(EntityDefinition entityDefinition) throws IOException { String tableName = entityDefinition.getTable(); if (admin.tableExists(tableName)) { LOG.info("Table {} already exists", tableName); } else { HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName)); // Adding column families to table descriptor HColumnDescriptor columnDescriptor = new HColumnDescriptor(entityDefinition.getColumnFamily()); columnDescriptor.setBloomFilterType(BloomType.ROW); //columnDescriptor.setCompressionType(Compression.Algorithm.SNAPPY); columnDescriptor.setMaxVersions(DEFAULT_MAX_VERSIONS); tableDescriptor.addFamily(columnDescriptor); // Execute the table through admin admin.createTable(tableDescriptor); LOG.info("Successfully create Table {}", tableName); } } }
@Override public void open() throws IOException { if (isOpen) { return; // silently return } try { tbl = EagleConfigFactory.load().getHTable(ed.getTable()); } catch (RuntimeException ex) { throw new IOException(ex); } final byte[] family = ed.getColumnFamily().getBytes(); List<Get> gets = new ArrayList<>(this.rowkeys.size()); for (byte[] rowkey : rowkeys) { Get get = new Get(rowkey); get.addFamily(family); if (qualifiers != null) { for (byte[] qualifier : qualifiers) { get.addColumn(family, qualifier); } } gets.add(get); } entityResult = tbl.get(gets); isOpen = true; }
@Override public void open() throws IOException { if (isOpen) return; // silently return try { tbl = EagleConfigFactory.load().getHTable(ed.getTable()); } catch (RuntimeException ex) { throw new IOException(ex); } final byte[] family = ed.getColumnFamily().getBytes(); List<Get> gets = new ArrayList<>(this.rowkeys.size()); for(byte[] rowkey:rowkeys) { Get get = new Get(rowkey); get.addFamily(family); if(qualifiers != null) { for(byte[] qualifier: qualifiers){ get.addColumn(family,qualifier); } } gets.add(get); } entityResult = tbl.get(gets); isOpen = true; }
@Override public ModifyResult<String> deleteByID(List<String> ids, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { GenericDeleter deleter = new GenericDeleter(entityDefinition.getTable(), entityDefinition.getColumnFamily()); deleter.deleteByEncodedRowkeys(ids); result.setIdentifiers(ids); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); result.setSuccess(false); throw new IOException(ex); } audit.auditOperation(AUDIT_EVENT_DELETE, null, ids, entityDefinition); // added for jira: EAGLE-47 result.setSuccess(true); return result; }
private List<Scan> buildScans() { final ArrayList<Scan> result = new ArrayList<Scan>(indexRowkeys.size()); for (byte[] rowkey : indexRowkeys) { Scan s = new Scan(); s.setStartRow(rowkey); // In rowkey the tag key/value is sorted by the hash code of the key, so MAX_TAG_VALUE_BYTES is // enough as the end key final byte[] stopRowkey = ByteUtil.concat(rowkey, MAX_TAG_VALUE_BYTES); s.setStopRow(stopRowkey); // TODO the # of cached rows should be minimum of (pagesize and 100) int cs = EagleConfigFactory.load().getHBaseClientScanCacheSize(); s.setCaching(cs); // TODO not optimized for all applications s.setCacheBlocks(true); // scan specified columnfamily for all qualifiers s.addFamily(indexDef.getEntityDefinition().getColumnFamily().getBytes()); result.add(s); } return result; }
@Override public <E extends TaggedLogAPIEntity> ModifyResult<String> delete(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try { GenericDeleter deleter = new GenericDeleter(entityDefinition.getTable(), entityDefinition.getColumnFamily()); List<String> keys = deleter.delete(entities); result.setIdentifiers(keys); result.setSize(keys.size()); } catch (Exception ex) { LOG.error(ex.getMessage(), ex); result.setSuccess(false); throw new IOException(ex); } audit.auditOperation(AUDIT_EVENT_DELETE, entities, null, entityDefinition); // added for jira: EAGLE-47 result.setSuccess(true); return result; }
private List<Scan> buildScans() { final ArrayList<Scan> result = new ArrayList<Scan>(indexRowkeys.size()); for (byte[] rowkey : indexRowkeys) { Scan s = new Scan(); s.setStartRow(rowkey); // In rowkey the tag key/value is sorted by the hash code of the key, so MAX_TAG_VALUE_BYTES is enough as the end key final byte[] stopRowkey = ByteUtil.concat(rowkey, MAX_TAG_VALUE_BYTES); s.setStopRow(stopRowkey); // TODO the # of cached rows should be minimum of (pagesize and 100) int cs = EagleConfigFactory.load().getHBaseClientScanCacheSize(); s.setCaching(cs); // TODO not optimized for all applications s.setCacheBlocks(true); // scan specified columnfamily for all qualifiers s.addFamily(indexDef.getEntityDefinition().getColumnFamily().getBytes()); result.add(s); } return result; }
/** * TODO: * * @param ids * @param entityDefinition * @return * @throws IOException */ @Override public ModifyResult<String> deleteByID(List<String> ids, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try{ GenericDeleter deleter = new GenericDeleter(entityDefinition.getTable(), entityDefinition.getColumnFamily()); deleter.deleteByEncodedRowkeys(ids); result.setIdentifiers(ids); }catch(Exception ex){ LOG.error(ex.getMessage(),ex); result.setSuccess(false); throw new IOException(ex); } audit.auditOperation(AUDIT_EVENT_DELETE, null, ids, entityDefinition); // added for jira: EAGLE-47 result.setSuccess(true); return result; }
/** * @param entities * @param entityDefinition * @param <E> * * @return ModifyResult * * @throws IOException */ @Override public <E extends TaggedLogAPIEntity> ModifyResult<String> delete(List<E> entities, EntityDefinition entityDefinition) throws IOException { ModifyResult<String> result = new ModifyResult<String>(); try{ GenericDeleter deleter = new GenericDeleter(entityDefinition.getTable(), entityDefinition.getColumnFamily()); result.setIdentifiers(deleter.delete(entities)); }catch(Exception ex){ LOG.error(ex.getMessage(),ex); result.setSuccess(false); throw new IOException(ex); } audit.auditOperation(AUDIT_EVENT_DELETE, entities, null, entityDefinition); // added for jira: EAGLE-47 result.setSuccess(true); return result; }
@BeforeClass public static void createTable() throws IllegalAccessException, InstantiationException, IOException { EntityDefinition ed = EntityDefinitionManager .getEntityDefinitionByEntityClass(TestLogAPIEntity.class); hbase.createTable(ed.getTable(), ed.getColumnFamily()); }
@BeforeClass public static void setUp() throws IOException, IllegalAccessException, InstantiationException, IllegalDataStorageTypeException { entityDefinition = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestTimeSeriesAPIEntity.class); hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily()); }
@BeforeClass public static void createTable() throws IOException, IllegalAccessException, InstantiationException { EntityDefinition entityDefinition = EntityDefinitionManager .getEntityDefinitionByEntityClass(TestLogAPIEntity.class); hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily()); }
public void setEntityDefinition(EntityDefinition ed) { this.entityClass = ed.getEntityClass(); this.table = ed.getTable(); this.columnFamily = ed.getColumnFamily(); this.prefix = ed.getPrefix(); this.service = ed.getService(); this.partitions = ed.getPartitions(); this.displayNameMap = ed.getDisplayNameMap(); this.qualifierGetterMap = ed.getQualifierGetterMap(); this.qualifierNameMap = ed.getQualifierNameMap(); this.isTimeSeries = ed.isTimeSeries(); this.metricDefinition = ed.metricDefinition; this.indexes = ed.getIndexes(); }
public void setEntityDefinition(EntityDefinition ed){ this.entityClass = ed.getEntityClass(); this.table = ed.getTable(); this.columnFamily = ed.getColumnFamily(); this.prefix = ed.getPrefix(); this.service = ed.getService(); this.partitions = ed.getPartitions(); this.displayNameMap = ed.getDisplayNameMap(); this.qualifierGetterMap = ed.getQualifierGetterMap(); this.qualifierNameMap = ed.getQualifierNameMap(); this.isTimeSeries = ed.isTimeSeries(); this.metricDefinition = ed.metricDefinition; this.indexes = ed.getIndexes(); }
@Before public void setUp() throws IllegalAccessException, InstantiationException, IOException { EntityDefinition entityDefinition = EntityDefinitionManager .getEntityDefinitionByEntityClass(TestLogAPIEntity.class); hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily()); EntityDefinitionManager.registerEntity(TestLogAPIEntity.class); try { ed = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class); ed.setTimeSeries(true); } catch (InstantiationException | IllegalAccessException e) { Assert.fail(e.getMessage()); } }
@BeforeClass public static void initialize() throws IllegalAccessException, InstantiationException, IOException, IllegalDataStorageTypeException { entityDefinition = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestTimeSeriesAPIEntity.class); entityDefinition.setTags(new String[] {"cluster", "datacenter", "random"});; hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily()); storage = DataStorageManager.getDataStorageByEagleConfig(); storage.init(); }
/** * Just compiling passed is ok */ //@Test @SuppressWarnings("unused") public void testCreate() throws IOException, EagleServiceClientException, IllegalAccessException, InstantiationException { EntityDefinition entityDefinition = EntityDefinitionManager.getEntityDefinitionByEntityClass(GenericMetricEntity.class); hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily()); client = new EagleServiceClientImpl("localhost", EagleConfigFactory.load().getServicePort()); List<GenericMetricEntity> metricEntityList = new ArrayList<GenericMetricEntity>(); GenericServiceAPIResponseEntity<String> unTypedResponse = client.create(metricEntityList); GenericServiceAPIResponseEntity<String> weakTypedResponse = client.create(metricEntityList,GenericMetricEntity.GENERIC_METRIC_SERVICE); GenericServiceAPIResponseEntity<String> strongTypedResponse = client.create(metricEntityList,GenericMetricEntity.class); GenericServiceAPIResponseEntity<GenericMetricEntity> weakTypedSearchResponse = client.search("").send(); if(weakTypedSearchResponse!=null) { Class<GenericMetricEntity> typedClazz = weakTypedSearchResponse.getType(); List<GenericMetricEntity> typedEntities = weakTypedSearchResponse.getObj(); } }