use of com.google.api.services.dataplex.v1.CloudDataplex.Projects.Locations.Lakes.Zones in project DataflowTemplates by GoogleCloudPlatform.
the class DefaultDataplexClient method getEntities.
@Override
public ImmutableList<GoogleCloudDataplexV1Entity> getEntities(List<String> entityNames) throws IOException {
Entities entities = client.projects().locations().lakes().zones().entities();
ImmutableList.Builder<GoogleCloudDataplexV1Entity> result = ImmutableList.builder();
for (String entityName : entityNames) {
result.add(entities.get(entityName).setView(GetEntityRequestEntityView.FULL.name()).execute());
}
return result.build();
}
use of com.google.api.services.dataplex.v1.CloudDataplex.Projects.Locations.Lakes.Zones in project DataflowTemplates by GoogleCloudPlatform.
the class DefaultDataplexClient method getEntitiesUnderAssetStream.
/**
* Gets a stream of all entities under {@code assetName}.
*/
private Stream<GoogleCloudDataplexV1Entity> getEntitiesUnderAssetStream(String assetName) throws IOException {
Entities entities = client.projects().locations().lakes().zones().entities();
String zoneName = getZoneFromAsset(assetName);
GoogleCloudDataplexV1ListEntitiesResponse response = entities.list(zoneName).execute();
Stream<GoogleCloudDataplexV1Entity> result = getEntitiesUnderAssetForPage(response, assetName);
// the result of the list is paginated with the default page size being 10
while (response.getNextPageToken() != null) {
response = entities.list(zoneName).setPageToken(response.getNextPageToken()).execute();
result = Stream.concat(result, getEntitiesUnderAssetForPage(response, assetName));
}
return result;
}
use of com.google.api.services.dataplex.v1.CloudDataplex.Projects.Locations.Lakes.Zones in project DataflowTemplates by GoogleCloudPlatform.
the class DefaultDataplexClient method createPartitions.
/**
* Handles creation of partitions. Each partition is logged after being created.
*/
private void createPartitions(ImmutableMap<String, ImmutableList<PartitionMetadata>> entityNameToPartition) throws IOException {
for (Map.Entry<String, ImmutableList<PartitionMetadata>> entry : entityNameToPartition.entrySet()) {
ImmutableList<GoogleCloudDataplexV1Partition> partitions = entry.getValue().stream().map(PartitionMetadata::toDataplexPartition).collect(toImmutableList());
for (GoogleCloudDataplexV1Partition partition : partitions) {
GoogleCloudDataplexV1Partition result = client.projects().locations().lakes().zones().entities().partitions().create(entry.getKey(), partition).execute();
LOG.info("Created partition '{}' under entity '{}'", result.getName(), entry.getKey());
}
}
}
use of com.google.api.services.dataplex.v1.CloudDataplex.Projects.Locations.Lakes.Zones in project DataflowTemplates by GoogleCloudPlatform.
the class DefaultDataplexClient method getPartitions.
@Override
public ImmutableList<GoogleCloudDataplexV1Partition> getPartitions(String entityName) throws IOException {
ImmutableList.Builder<GoogleCloudDataplexV1Partition> result = ImmutableList.builder();
Partitions partitions = client.projects().locations().lakes().zones().entities().partitions();
GoogleCloudDataplexV1ListPartitionsResponse response = partitions.list(entityName).execute();
if (response.getPartitions() == null) {
return ImmutableList.of();
}
result.addAll(response.getPartitions());
// the result of the list is paginated with the default page size being 10
while (response.getNextPageToken() != null) {
response = partitions.list(entityName).setPageToken(response.getNextPageToken()).execute();
result.addAll(response.getPartitions());
}
return result.build();
}
use of com.google.api.services.dataplex.v1.CloudDataplex.Projects.Locations.Lakes.Zones in project DataflowTemplates by GoogleCloudPlatform.
the class DefaultDataplexClient method updateEntitiesUnderAsset.
/**
* Handles just updating of entities. Each entity is logged after updating.
*/
private Map<EntityMetadata, GoogleCloudDataplexV1Entity> updateEntitiesUnderAsset(String assetName, Map<EntityMetadata, GoogleCloudDataplexV1Entity> metadataToEntity) throws IOException {
Map<EntityMetadata, GoogleCloudDataplexV1Entity> updatedMetadataToEntity = new HashMap<>();
for (Map.Entry<EntityMetadata, GoogleCloudDataplexV1Entity> entry : metadataToEntity.entrySet()) {
EntityMetadata metadata = entry.getKey();
GoogleCloudDataplexV1Entity existing = entry.getValue();
metadata.updateDataplexEntity(existing);
GoogleCloudDataplexV1Entity updated = client.projects().locations().lakes().zones().entities().update(existing.getName(), existing.setAsset(assetName)).execute();
LOG.info("Updated entity with name '{}' that points to data path '{}'", updated.getName(), metadata.dataPath());
updatedMetadataToEntity.put(metadata, updated);
}
return updatedMetadataToEntity;
}
Aggregations