/** * {@inheritDoc} */ @Override public void update(final QualifiedName name, final CreateCatalogDto createCatalogDto) { final MetacatRequestContext metacatRequestContext = MetacatContextManager.getContext(); eventBus.post(new MetacatUpdateDatabasePreEvent(name, metacatRequestContext, this)); connectorManager.getCatalogConfigs(name.getCatalogName()); userMetadataService.saveMetadata(metacatRequestContext.getUserName(), createCatalogDto, true); eventBus.post(new MetacatUpdateDatabasePostEvent(name, metacatRequestContext, this)); } }
/** * {@inheritDoc} */ @Override public void saveMetadata(final QualifiedName name, final ObjectNode definitionMetadata, final ObjectNode dataMetadata) { validate(name); final Optional<TableDto> tableDtoOptional = get(name, GetTableServiceParameters.builder().includeInfo(true) .disableOnReadMetadataIntercetor(true) .includeDefinitionMetadata(false) .includeDataMetadata(false) .build()); if (tableDtoOptional.isPresent()) { final MetacatRequestContext metacatRequestContext = MetacatContextManager.getContext(); final TableDto tableDto = tableDtoOptional.get(); tableDto.setDefinitionMetadata(definitionMetadata); //override the previous one tableDto.setDataMetadata(dataMetadata); log.info("Saving user metadata for table {}", name); userMetadataService.saveMetadata(metacatRequestContext.getUserName(), tableDto, true); tag(name, tableDto.getDefinitionMetadata()); } }
userMetadataService.saveMetadata(metacatRequestContext.getUserName(), partitionDtos, true); final long duration = registry.clock().wallTime() - start; log.info("Time taken to save user metadata for table {} is {} ms", name, duration);
/** * Optimization for metadata only updates. * * @param metacatRequestContext request context * @param dto savePartition dto * @param name qualified name * @param partitionDtos partition dtos * @return empty save partition response dto */ private PartitionsSaveResponseDto savePartitionMetadataOnly( final MetacatRequestContext metacatRequestContext, final PartitionsSaveRequestDto dto, final QualifiedName name, final List<PartitionDto> partitionDtos) { registry.distributionSummary( this.partitionMetadataOnlyAddDistSummary.withTags(name.parts())).record(partitionDtos.size()); eventBus.post( new MetacatSaveTablePartitionMetadataOnlyPreEvent(name, metacatRequestContext, this, dto)); // Save metadata log.info("Saving metadata only for partitions for {}", name); userMetadataService.saveMetadata(metacatRequestContext.getUserName(), partitionDtos, true); eventBus.post( new MetacatSaveTablePartitionMetadataOnlyPostEvent( name, metacatRequestContext, this, partitionDtos, new PartitionsSaveResponseDto())); //empty saveResponseDto is returned for optimization purpose //since client (squirrel) only checks the response code return converterUtil.toPartitionsSaveResponseDto(new PartitionsSaveResponse()); }
log.info("Saving user metadata for table {}", name); final long start = registry.clock().wallTime(); userMetadataService.saveMetadata(metacatRequestContext.getUserName(), tableDto, true); final long duration = registry.clock().wallTime() - start; log.info("Time taken to save user metadata for table {} is {} ms", name, duration);
log.info("Saving user metadata for table {}", name); final long start = registry.clock().wallTime(); userMetadataService.saveMetadata(metacatRequestContext.getUserName(), tableDto, true); final long duration = registry.clock().wallTime() - start; log.info("Time taken to save user metadata for table {} is {} ms", name, duration);