/** * {@inheritDoc} */ @Override public TableDto hiveToMetacatTable(final QualifiedName name, final Table table) { final TableDto dto = new TableDto(); dto.setSerde(toStorageDto(table.getSd(), table.getOwner())); dto.setAudit(new AuditDto()); dto.setName(name); if (table.isSetCreateTime()) { dto.getAudit().setCreatedDate(epochSecondsToDate(table.getCreateTime())); } dto.setMetadata(table.getParameters()); final List<FieldSchema> nonPartitionColumns = table.getSd().getCols(); final List<FieldSchema> partitionColumns = table.getPartitionKeys(); final List<FieldDto> allFields = Lists.newArrayListWithCapacity(nonPartitionColumns.size() + partitionColumns.size()); nonPartitionColumns.stream() .map(field -> this.hiveToMetacatField(field, false)) .forEachOrdered(allFields::add); partitionColumns.stream() .map(field -> this.hiveToMetacatField(field, true)) .forEachOrdered(allFields::add); dto.setFields(allFields); dto.setView(new ViewDto(table.getViewOriginalText(), table.getViewExpandedText())); return dto; }
/** * {@inheritDoc} */ @Override public TableDto hiveToMetacatTable(final QualifiedName name, final Table table) { final TableDto dto = new TableDto(); dto.setSerde(toStorageDto(table.getSd(), table.getOwner())); dto.setAudit(new AuditDto()); dto.setName(name); if (table.isSetCreateTime()) { dto.getAudit().setCreatedDate(epochSecondsToDate(table.getCreateTime())); } dto.setMetadata(table.getParameters()); final List<FieldSchema> nonPartitionColumns = table.getSd().getCols(); final List<FieldSchema> partitionColumns = table.getPartitionKeys(); final List<FieldDto> allFields = Lists.newArrayListWithCapacity(nonPartitionColumns.size() + partitionColumns.size()); nonPartitionColumns.stream() .map(field -> this.hiveToMetacatField(field, false)) .forEachOrdered(allFields::add); partitionColumns.stream() .map(field -> this.hiveToMetacatField(field, true)) .forEachOrdered(allFields::add); dto.setFields(allFields); dto.setView(new ViewDto(table.getViewOriginalText(), table.getViewExpandedText())); return dto; }
/** * {@inheritDoc} */ @Override public PartitionDto hiveToMetacatPartition(final TableDto tableDto, final Partition partition) { final QualifiedName tableName = tableDto.getName(); final QualifiedName partitionName = QualifiedName.ofPartition(tableName.getCatalogName(), tableName.getDatabaseName(), tableName.getTableName(), getNameFromPartVals(tableDto, partition.getValues())); final PartitionDto result = new PartitionDto(); String owner = ""; if (tableDto.getSerde() != null) { owner = tableDto.getSerde().getOwner(); } //not setting Serde to view if (null == tableDto.getView() || Strings.isNullOrEmpty(tableDto.getView().getViewOriginalText())) { result.setSerde(toStorageDto(partition.getSd(), owner)); } result.setMetadata(partition.getParameters()); final AuditDto auditDto = new AuditDto(); auditDto.setCreatedDate(epochSecondsToDate(partition.getCreateTime())); auditDto.setLastModifiedDate(epochSecondsToDate(partition.getLastAccessTime())); result.setAudit(auditDto); result.setName(partitionName); return result; }
/** * {@inheritDoc} */ @Override public PartitionDto hiveToMetacatPartition(final TableDto tableDto, final Partition partition) { final QualifiedName tableName = tableDto.getName(); final QualifiedName partitionName = QualifiedName.ofPartition(tableName.getCatalogName(), tableName.getDatabaseName(), tableName.getTableName(), getNameFromPartVals(tableDto, partition.getValues())); final PartitionDto result = new PartitionDto(); String owner = ""; if (tableDto.getSerde() != null) { owner = tableDto.getSerde().getOwner(); } //not setting Serde to view if (null == tableDto.getView() || Strings.isNullOrEmpty(tableDto.getView().getViewOriginalText())) { result.setSerde(toStorageDto(partition.getSd(), owner)); } result.setMetadata(partition.getParameters()); final AuditDto auditDto = new AuditDto(); auditDto.setCreatedDate(epochSecondsToDate(partition.getCreateTime())); auditDto.setLastModifiedDate(epochSecondsToDate(partition.getLastAccessTime())); result.setAudit(auditDto); result.setName(partitionName); return result; }