‘AtlasClientV2#partialUpdateEntityByGuid’ method is used to partially update the entity.
Example
atlasClient.partialUpdateEntityByGuid(guid, 99999, "a");
Find the below working application.
Create atlas-application.properties file under src/main/resources folder.
atlas-application.properties
atlas.client.readTimeoutMSecs=30000 atlas.client.connectTimeoutMSecs=30000
Define PartialUpdateEntity class.
PartialUpdateEntity.java
package com.sample.app.entity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.apache.atlas.AtlasClientV2;
import org.apache.atlas.AtlasServiceException;
import org.apache.atlas.model.instance.AtlasEntity;
import org.apache.atlas.model.instance.EntityMutationResponse;
import org.apache.atlas.model.typedef.AtlasEntityDef;
import org.apache.atlas.model.typedef.AtlasStructDef.AtlasAttributeDef;
import org.apache.atlas.model.typedef.AtlasTypesDef;
public class PartialUpdateEntity {
private static final String TYPE_NAME = "DemoType15";
private static void createType(AtlasClientV2 atlasClient) throws AtlasServiceException {
AtlasAttributeDef attributeDef1 = new AtlasAttributeDef();
attributeDef1.setName("a");
attributeDef1.setTypeName("int");
attributeDef1.setCardinality(AtlasAttributeDef.Cardinality.SINGLE);
attributeDef1.setIsIndexable(true);
attributeDef1.setIsUnique(false);
AtlasAttributeDef attributeDef2 = new AtlasAttributeDef();
attributeDef2.setName("b");
attributeDef2.setTypeName("int");
attributeDef2.setCardinality(AtlasAttributeDef.Cardinality.SINGLE);
attributeDef2.setIsIndexable(true);
attributeDef2.setIsUnique(false);
AtlasEntityDef atlasEntityDef = new AtlasEntityDef();
atlasEntityDef.setName(TYPE_NAME);
atlasEntityDef.setCreatedBy("Krishna");
atlasEntityDef.setUpdatedBy("krishna");
atlasEntityDef.setDescription("Represent a laptoo specification");
atlasEntityDef.setAttributeDefs(Arrays.asList(attributeDef1, attributeDef2));
Set<String> superTypes = new HashSet<>();
superTypes.add("DataSet");
atlasEntityDef.setSuperTypes(superTypes);
AtlasTypesDef atlasTypesDef = new AtlasTypesDef();
atlasTypesDef.getEntityDefs().add(atlasEntityDef);
atlasClient.createAtlasTypeDefs(atlasTypesDef);
}
private static String createEntity(AtlasClientV2 atlasClient) throws AtlasServiceException {
AtlasEntity atlasEntity = new AtlasEntity();
atlasEntity.setTypeName(TYPE_NAME);
atlasEntity.setAttribute("a", 10);
atlasEntity.setAttribute("b", 20);
// Following are the mandatory attributes
atlasEntity.setAttribute("qualifiedName", "PartialUpdateEntity_DEMO2");
atlasEntity.setAttribute("name", "PartialUpdateEntity_DEMO2");
AtlasEntity.AtlasEntityWithExtInfo atlasEntityWithExtInfo = new AtlasEntity.AtlasEntityWithExtInfo();
atlasEntityWithExtInfo.setEntity(atlasEntity);
EntityMutationResponse response = atlasClient.createEntity(atlasEntityWithExtInfo);
return response.getCreatedEntities().get(0).getGuid();
}
public static void main(String[] args) throws AtlasServiceException, IOException {
AtlasClientV2 atlasClient = new AtlasClientV2(new String[] { "http://localhost:21000" },
new String[] { "admin", "admin" });
createType(atlasClient);
String guid = createEntity(atlasClient);
System.out.println(
"Please enter any input to update the entities. Before this, you can go and validate the created entities of type "
+ TYPE_NAME);
readInput();
atlasClient.partialUpdateEntityByGuid(guid, 99999, "a");
}
private static void readInput() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
}
}
Run above application, you will see below message in console.
Query for the type ‘DemoType15’ and navigate to the entity ‘PartialUpdateEntity_DEMO2’.
Go back to java application console and type something to proceed with patch update.
Reload the entity in Atlas UI, you will see that the attribute ‘a’ is updated with the value 99999.
No comments:
Post a Comment