@Override protected int execute(TableManager tableManager) throws InterruptedException, IOException { byte[][] splitKeys = createDescriptor.getSplitKeys(); int numRegions = splitKeys != null ? splitKeys.length + 1 : 1; System.out.printf("Creating table '%s' with %d region%s...\n", createDescriptor.getName(), numRegions, numRegions == 1 ? "" : "s"); tableManager.createTable(createDescriptor); System.out.printf("Table '%s' in repository '%s' created\n", createDescriptor.getName(), repositoryName); return 0; }
@Override protected int execute(TableManager tableManager) throws Exception { List<RepositoryTable> tables = tableManager.getTables(); System.out.printf("Listing tables in repository '%s'\n", repositoryName); if (tables.isEmpty()) { System.out.println("No repository tables found"); } else { System.out.printf("Number of tables: %d\n", tables.size()); for (RepositoryTable table : tables) { System.out.println(" " + table.getName()); } } return 0; }
@Override protected int execute(TableManager tableManager) throws Exception { System.out.printf("Dropping table '%s'...\n", tableName); tableManager.dropTable(tableName); System.out.printf("Table '%s' in repository '%s' dropped\n", tableName, repositoryName); return 0; }
public void setupRepository(String repositoryName) throws Exception { if (repositoryManagerSetup) { return; } setupTypeManager(); if (!repositoryModel.repositoryExistsAndActive(repositoryName)) { repositoryModel.create(repositoryName); repositoryModel.waitUntilRepositoryInState(repositoryName, RepositoryDefinition.RepositoryLifecycleState .ACTIVE, 100000); } blobStoreAccessFactory = createBlobAccess(); blobManager = new BlobManagerImpl(hbaseTableFactory, blobStoreAccessFactory, false); RecordFactory recordFactory = new RecordFactoryImpl(); repositoryManager = new HBaseRepositoryManager(typeManager, idGenerator, recordFactory, hbaseTableFactory, blobManager, hadoopConf, repositoryModel) { @Override protected Repository createRepository(RepoTableKey key) throws InterruptedException, RepositoryException { HBaseRepository repository = (HBaseRepository)super.createRepository(key); repository.setRecordUpdateHooks(recordUpdateHooks); return repository; } }; sepModel = new SepModelImpl(new ZooKeeperItfAdapter(zk), hadoopConf); eventPublisherManager = new LilyEventPublisherManager(hbaseTableFactory); tableManager = new TableManagerImpl(repositoryName, hadoopConf, hbaseTableFactory); if (!tableManager.tableExists(Table.RECORD.name)) { tableManager.createTable(Table.RECORD.name); } repositoryManagerSetup = true; }
@Override public boolean tableExists(String repositoryName, String name) throws AvroInterruptedException, AvroIOException, AvroRepositoryException { try { TableManager tableMgr = repositoryManager.getRepository(repositoryName).getTableManager(); return tableMgr.tableExists(name); } catch (InterruptedException e) { throw converter.convert(e); } catch (IOException e) { throw converter.convert(e); } catch (RepositoryException e) { throw converter.convert(e); } } }
@Override public List<String> getTables(String repositoryName) throws AvroInterruptedException, AvroIOException, AvroRepositoryException { try { TableManager tableMgr = repositoryManager.getRepository(repositoryName).getTableManager(); List<String> tables = new ArrayList<String>(); for (RepositoryTable table : tableMgr.getTables()) { tables.add(table.getName()); } return tables; } catch (InterruptedException e) { throw converter.convert(e); } catch (IOException e) { throw converter.convert(e); } catch (RepositoryException e) { throw converter.convert(e); } }
@Override public Object createTable(String repository, AvroTableCreateDescriptor tableCreateDescriptor) throws AvroInterruptedException, AvroIOException, AvroRepositoryException { try { TableManager tableMgr = repositoryManager.getRepository(repository).getTableManager(); tableMgr.createTable(converter.convert(tableCreateDescriptor)); return null; } catch (InterruptedException e) { throw converter.convert(e); } catch (IOException e) { throw converter.convert(e); } catch (RepositoryException e) { throw converter.convert(e); } }
@Override public Object dropTable(String repositoryName, String name) throws AvroInterruptedException, AvroIOException, AvroRepositoryException { try { TableManager tableMgr = repositoryManager.getRepository(repositoryName).getTableManager(); tableMgr.dropTable(name); return null; } catch (InterruptedException e) { throw converter.convert(e); } catch (IOException e) { throw converter.convert(e); } catch (RepositoryException e) { throw converter.convert(e); } }
private Result getBlobUsage(byte[] blobKey, SchemaId recordId, SchemaId fieldId) throws FieldTypeNotFoundException, TypeException, InterruptedException, IOException, RepositoryException { FieldTypeImpl fieldType = (FieldTypeImpl)typeManager.getFieldTypeById(fieldId); ValueType valueType = fieldType.getValueType(); Get get = new Get(recordId.getBytes()); get.addColumn(RecordCf.DATA.bytes, fieldType.getQualifier()); byte[] valueToCompare = Bytes.toBytes(valueType.getNestingLevel()); valueToCompare = Bytes.add(valueToCompare, blobKey); WritableByteArrayComparable valueComparator = new ContainsValueComparator(valueToCompare); Filter filter = new SingleColumnValueFilter(RecordCf.DATA.bytes, fieldType.getQualifier(), CompareOp.EQUAL, valueComparator); get.setFilter(filter); for (RepositoryTable repoTable : tableManager.getTables()) { HTableInterface recordTable = LilyHBaseSchema.getRecordTable(tableFactory, repoTable.getRepositoryName(), repoTable.getName()); Result result = recordTable.get(get); if (result != null && !result.isEmpty()) { return result; } } return null; } }