/** * Save all databases to index it in elastic search. * * @param catalogName catalog name * @param dtos database dtos * @return future */ private ListenableFuture<Void> indexDatabaseDtos(final QualifiedName catalogName, final List<DatabaseDto> dtos) { return esService.submit(() -> { final List<ElasticSearchDoc> docs = dtos.stream() .filter(dto -> dto != null) .map(dto -> new ElasticSearchDoc(dto.getName().toString(), dto, "admin", false, refreshMarkerText)) .collect(Collectors.toList()); log.info("Saving databases for catalog: {}", catalogName); elasticSearchUtil.save(ElasticSearchDoc.Type.database.name(), docs); return null; }); }
.map(databaseDto -> { final List<QualifiedName> tableNames = databaseDto.getTables().stream() .map(s -> QualifiedName.ofTable(databaseDto.getName().getCatalogName(), databaseDto.getName().getDatabaseName(), s)) .collect(Collectors.toList()); log.info("Full refresh of database {} for tables({}): {}", databaseDto.getName(), databaseDto.getTables().size(), databaseDto.getTables()); return processTables(databaseDto.getName(), tableNames); }).filter(NOT_NULL).collect(Collectors.toList()); processDatabaseFutures.add(processDatabaseFuture);
/** * Subscriber. * * @param event event */ @EventListener public void metacatDeleteDatabasePostEventHandler(final MetacatDeleteDatabasePostEvent event) { log.debug("Received DeleteDatabaseEvent {}", event); this.databaseDeleteEventsDelayTimer .record(System.currentTimeMillis() - event.getRequestContext().getTimestamp(), TimeUnit.MILLISECONDS); this.databaseDeleteTimer.record(() -> { final DatabaseDto dto = event.getDatabase(); es.softDelete(ElasticSearchDoc.Type.database.name(), dto.getName().toString(), event.getRequestContext()); }); }
/** * Subscriber. * * @param event event */ @EventListener public void metacatCreateDatabasePostEventHandler(final MetacatCreateDatabasePostEvent event) { log.debug("Received CreateDatabaseEvent {}", event); this.databaseCreateEventsDelayTimer .record(System.currentTimeMillis() - event.getRequestContext().getTimestamp(), TimeUnit.MILLISECONDS); this.databaseCreateTimer.record(() -> { final DatabaseDto dto = event.getDatabase(); final ElasticSearchDoc doc = new ElasticSearchDoc(dto.getName().toString(), dto, event.getRequestContext().getUserName(), false); es.save(ElasticSearchDoc.Type.database.name(), doc.getId(), doc); }); }
/** * {@inheritDoc} */ @Override @SuppressWarnings("unchecked") public Database metacatToHiveDatabase(final DatabaseDto dto) { final Database database = new Database(); String name = ""; String description = ""; final QualifiedName databaseName = dto.getName(); if (databaseName != null) { name = databaseName.getDatabaseName(); // Since this is required setting it to the same as the DB name for now description = databaseName.getDatabaseName(); } database.setName(name); database.setDescription(description); String dbUri = dto.getUri(); if (Strings.isNullOrEmpty(dbUri)) { dbUri = ""; } database.setLocationUri(dbUri); Map<String, String> metadata = dto.getMetadata(); if (metadata == null) { metadata = Collections.EMPTY_MAP; } database.setParameters(metadata); return database; }
@Override @SuppressWarnings("unchecked") public Database metacatToHiveDatabase(final DatabaseDto dto) { final Database database = new Database(); String name = ""; String description = ""; final QualifiedName databaseName = dto.getName(); if (databaseName != null) { name = databaseName.getDatabaseName(); // Since this is required setting it to the same as the DB name for now description = databaseName.getDatabaseName(); } database.setName(name); database.setDescription(description); String dbUri = dto.getUri(); if (Strings.isNullOrEmpty(dbUri)) { dbUri = ""; } database.setLocationUri(dbUri); Map<String, String> metadata = dto.getMetadata(); if (metadata == null) { metadata = Collections.EMPTY_MAP; } database.setParameters(metadata); return database; }
/** * {@inheritDoc} */ @Override @SuppressWarnings("unchecked") public Database metacatToHiveDatabase(final DatabaseDto dto) { final Database database = new Database(); String name = ""; String description = ""; final QualifiedName databaseName = dto.getName(); if (databaseName != null) { name = databaseName.getDatabaseName(); // Since this is required setting it to the same as the DB name for now description = databaseName.getDatabaseName(); } database.setName(name); database.setDescription(description); String dbUri = dto.getUri(); if (Strings.isNullOrEmpty(dbUri)) { dbUri = ""; } database.setLocationUri(dbUri); Map<String, String> metadata = dto.getMetadata(); if (metadata == null) { metadata = Collections.EMPTY_MAP; } database.setParameters(metadata); return database; }