/** * {@inheritDoc} */ @Override public Partition get_partition(final String dbName, final String tblName, final List<String> partVals) throws TException { return requestWrapper("get_partition", new Object[]{dbName, tblName, partVals}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); return hiveConverters.metacatToHivePartition(getPartitionDtoByName(tableDto, partName), tableDto); }); }
/** * {@inheritDoc} */ @Override public void rename_partition(final String dbName, final String tblName, final List<String> partVals, final Partition newPart) throws TException { requestWrapper("rename_partition", new Object[]{dbName, tblName, partVals}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); final PartitionsSaveRequestDto partitionsSaveRequestDto = new PartitionsSaveRequestDto(); final PartitionDto partitionDto = hiveConverters.hiveToMetacatPartition(tableDto, newPart); partitionsSaveRequestDto.setPartitions(Lists.newArrayList(partitionDto)); partitionsSaveRequestDto.setPartitionIdsForDeletes(Lists.newArrayList(partName)); partV1.savePartitions(catalogName, dbName, tblName, partitionsSaveRequestDto); return null; }); }
/** * {@inheritDoc} */ @Override public Database get_database(final String name) throws TException { return requestWrapper("get_database", new Object[]{name}, () -> { final String databaseName = normalizeIdentifier(name); final DatabaseDto dto = v1.getDatabase(catalogName, databaseName, true, false); return hiveConverters.metacatToHiveDatabase(dto); }); }
private Partition getPartitionByName(final String dbName, final String tblName, final String partName ) throws TException { final TableDto tableDto = getTableDto(dbName, tblName); return hiveConverters.metacatToHivePartition(getPartitionDtoByName(tableDto, partName), tableDto); }
/** * {@inheritDoc} */ @Override public void create_table_with_environment_context( final Table tbl, @Nullable final EnvironmentContext environmentContext ) throws TException { requestWrapper("create_table_with_environment_context", new Object[]{tbl, environmentContext}, () -> { final String dbname = normalizeIdentifier(tbl.getDbName()); final String tblName = normalizeIdentifier(tbl.getTableName()); final QualifiedName name = QualifiedName.ofTable(catalogName, dbname, tblName); final TableDto dto = hiveConverters.hiveToMetacatTable(name, tbl); v1.createTable(catalogName, dbname, tblName, dto); return null; }); }
/** * {@inheritDoc} */ @Override public Table get_table(final String dbname, final String tblName) throws TException { return requestWrapper("get_table", new Object[]{dbname, tblName}, () -> { final String databaseName = normalizeIdentifier(dbname); final String tableName = normalizeIdentifier(tblName); final TableDto dto = v1.getTable(catalogName, databaseName, tableName, true, true, true); return hiveConverters.metacatToHiveTable(dto); }); }
private List<Partition> addPartitionsCore(final String dbName, final String tblName, final List<Partition> parts, final boolean ifNotExists) throws TException { log.debug("Ignoring {} since metacat save partitions will do an update if it already exists", ifNotExists); final TableDto tableDto = v1.getTable(catalogName, dbName, tblName, true, false, false); final List<String> partitionKeys = tableDto.getPartition_keys(); if (partitionKeys == null || partitionKeys.isEmpty()) { throw new MetaException("Unable to add partition to unpartitioned table: " + tableDto.getName()); } final PartitionsSaveRequestDto partitionsSaveRequestDto = new PartitionsSaveRequestDto(); final List<PartitionDto> converted = Lists.newArrayListWithCapacity(parts.size()); for (Partition partition : parts) { converted.add(hiveConverters.hiveToMetacatPartition(tableDto, partition)); } partitionsSaveRequestDto.setPartitions(converted); partV1.savePartitions(catalogName, dbName, tblName, partitionsSaveRequestDto); return parts; }
/** * {@inheritDoc} */ @Override public boolean drop_partition_with_environment_context( final String dbName, final String tblName, final List<String> partVals, final boolean deleteData, @Nullable final EnvironmentContext environmentContext ) throws TException { return requestWrapper("drop_partition_with_environment_context", new Object[]{dbName, tblName, partVals, deleteData, environmentContext}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); final QualifiedName partitionName = getPartitionDtoByName(tableDto, partName).getName(); if (deleteData) { log.warn("Ignoring command to delete data for {}/{}/{}/{}", catalogName, tableDto.getName().getDatabaseName(), tableDto.getName().getTableName(), partitionName.getPartitionName()); } partV1.deletePartitions( catalogName, tableDto.getName().getDatabaseName(), tableDto.getName().getTableName(), ImmutableList.of(partitionName.getPartitionName())); return true; }); }
private Partition getPartitionByName(final String dbName, final String tblName, final String partName ) throws TException { final TableDto tableDto = getTableDto(dbName, tblName); return hiveConverters.metacatToHivePartition(getPartitionDtoByName(tableDto, partName), tableDto); }
/** * {@inheritDoc} */ @Override public void create_table_with_environment_context( final Table tbl, @Nullable final EnvironmentContext environmentContext ) throws TException { requestWrapper("create_table_with_environment_context", new Object[]{tbl, environmentContext}, () -> { final String dbname = normalizeIdentifier(tbl.getDbName()); final String tblName = normalizeIdentifier(tbl.getTableName()); final QualifiedName name = QualifiedName.ofTable(catalogName, dbname, tblName); final TableDto dto = hiveConverters.hiveToMetacatTable(name, tbl); v1.createTable(catalogName, dbname, tblName, dto); return null; }); }
/** * {@inheritDoc} */ @Override public Table get_table(final String dbname, final String tblName) throws TException { return requestWrapper("get_table", new Object[]{dbname, tblName}, () -> { final String databaseName = normalizeIdentifier(dbname); final String tableName = normalizeIdentifier(tblName); final TableDto dto = v1.getTable(catalogName, databaseName, tableName, true, true, true); return hiveConverters.metacatToHiveTable(dto); }); }
private List<Partition> addPartitionsCore(final String dbName, final String tblName, final List<Partition> parts, final boolean ifNotExists) throws TException { log.debug("Ignoring {} since metacat save partitions will do an update if it already exists", ifNotExists); final TableDto tableDto = v1.getTable(catalogName, dbName, tblName, true, false, false); final List<String> partitionKeys = tableDto.getPartition_keys(); if (partitionKeys == null || partitionKeys.isEmpty()) { throw new MetaException("Unable to add partition to unpartitioned table: " + tableDto.getName()); } final PartitionsSaveRequestDto partitionsSaveRequestDto = new PartitionsSaveRequestDto(); final List<PartitionDto> converted = Lists.newArrayListWithCapacity(parts.size()); for (Partition partition : parts) { converted.add(hiveConverters.hiveToMetacatPartition(tableDto, partition)); } partitionsSaveRequestDto.setPartitions(converted); partV1.savePartitions(catalogName, dbName, tblName, partitionsSaveRequestDto); return parts; }
/** * {@inheritDoc} */ @Override public boolean drop_partition_with_environment_context( final String dbName, final String tblName, final List<String> partVals, final boolean deleteData, @Nullable final EnvironmentContext environmentContext ) throws TException { return requestWrapper("drop_partition_with_environment_context", new Object[]{dbName, tblName, partVals, deleteData, environmentContext}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); final QualifiedName partitionName = getPartitionDtoByName(tableDto, partName).getName(); if (deleteData) { log.warn("Ignoring command to delete data for {}/{}/{}/{}", catalogName, tableDto.getName().getDatabaseName(), tableDto.getName().getTableName(), partitionName.getPartitionName()); } partV1.deletePartitions( catalogName, tableDto.getName().getDatabaseName(), tableDto.getName().getTableName(), ImmutableList.of(partitionName.getPartitionName())); return true; }); }
/** * {@inheritDoc} */ @Override public Partition get_partition(final String dbName, final String tblName, final List<String> partVals) throws TException { return requestWrapper("get_partition", new Object[]{dbName, tblName, partVals}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); return hiveConverters.metacatToHivePartition(getPartitionDtoByName(tableDto, partName), tableDto); }); }
private List<Partition> getPartitionsByFilter(final String dbName, final String tblName, @Nullable final String filter, final short maxParts) { final String databaseName = normalizeIdentifier(dbName); final String tableName = normalizeIdentifier(tblName); final TableDto tableDto = v1.getTable(catalogName, databaseName, tableName, true, false, false); final Integer maxValues = maxParts > 0 ? Short.toUnsignedInt(maxParts) : null; final GetPartitionsRequestDto dto = new GetPartitionsRequestDto(filter, null, true, false); final List<PartitionDto> metacatPartitions = partV1.getPartitionsForRequest(catalogName, dbName, tblName, null, null, null, maxValues, false, dto); final List<Partition> result = Lists.newArrayListWithCapacity(metacatPartitions.size()); for (PartitionDto partition : metacatPartitions) { result.add(hiveConverters.metacatToHivePartition(partition, tableDto)); } return result; }
/** * {@inheritDoc} */ @Override public void rename_partition(final String dbName, final String tblName, final List<String> partVals, final Partition newPart) throws TException { requestWrapper("rename_partition", new Object[]{dbName, tblName, partVals}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); final PartitionsSaveRequestDto partitionsSaveRequestDto = new PartitionsSaveRequestDto(); final PartitionDto partitionDto = hiveConverters.hiveToMetacatPartition(tableDto, newPart); partitionsSaveRequestDto.setPartitions(Lists.newArrayList(partitionDto)); partitionsSaveRequestDto.setPartitionIdsForDeletes(Lists.newArrayList(partName)); partV1.savePartitions(catalogName, dbName, tblName, partitionsSaveRequestDto); return null; }); }
/** * {@inheritDoc} */ @Override public void alter_table_with_environment_context( final String dbname, final String tblName, final Table newTbl, @Nullable final EnvironmentContext environmentContext ) throws TException { requestWrapper("alter_table_with_environment_context", new Object[]{dbname, tblName, newTbl, environmentContext}, () -> { final String databaseName = normalizeIdentifier(dbname); final String tableName = normalizeIdentifier(tblName); final QualifiedName oldName = QualifiedName.ofTable(catalogName, databaseName, tableName); final QualifiedName newName = QualifiedName .ofTable(catalogName, newTbl.getDbName(), newTbl.getTableName()); final TableDto dto = hiveConverters.hiveToMetacatTable(newName, newTbl); if (!oldName.equals(newName)) { v1.renameTable(catalogName, oldName.getDatabaseName(), oldName.getTableName(), newName.getTableName()); } v1.updateTable(catalogName, dbname, newName.getTableName(), dto); return null; }); }
/** * {@inheritDoc} */ @Override public Database get_database(final String name) throws TException { return requestWrapper("get_database", new Object[]{name}, () -> { final String databaseName = normalizeIdentifier(name); final DatabaseDto dto = v1.getDatabase(catalogName, databaseName, true, false); return hiveConverters.metacatToHiveDatabase(dto); }); }
/** * {@inheritDoc} */ @Override public Partition append_partition_with_environment_context( final String dbName, final String tblName, final List<String> partVals, @Nullable final EnvironmentContext environmentContext ) throws TException { return requestWrapper("append_partition_by_name_with_environment_context", new Object[]{dbName, tblName, partVals}, () -> { final TableDto tableDto = getTableDto(dbName, tblName); final String partName = hiveConverters.getNameFromPartVals(tableDto, partVals); appendPartitionsCore(dbName, tblName, partName); return hiveConverters.metacatToHivePartition(getPartitionDtoByName(tableDto, partName), tableDto); }); }
private List<Partition> getPartitionsByFilter(final String dbName, final String tblName, @Nullable final String filter, final short maxParts) { final String databaseName = normalizeIdentifier(dbName); final String tableName = normalizeIdentifier(tblName); final TableDto tableDto = v1.getTable(catalogName, databaseName, tableName, true, false, false); final Integer maxValues = maxParts > 0 ? Short.toUnsignedInt(maxParts) : null; final GetPartitionsRequestDto dto = new GetPartitionsRequestDto(filter, null, true, false); final List<PartitionDto> metacatPartitions = partV1.getPartitionsForRequest(catalogName, dbName, tblName, null, null, null, maxValues, false, dto); final List<Partition> result = Lists.newArrayListWithCapacity(metacatPartitions.size()); for (PartitionDto partition : metacatPartitions) { result.add(hiveConverters.metacatToHivePartition(partition, tableDto)); } return result; }