Support Questions
Find answers, ask questions, and share your expertise

How to delete (or hide) unused DataSet reference from Processor inputs/outputs

Hello,

Atlas version = 0.8-incubating

I'm developing an application which creates a custom Process entity that has inputs and outputs for other DataSet entities that the process interact with. It works fine for adding new relationships, however, I couldn't find a proper way to remove entries in inputs/outputs array of a Process entity once it has been created.

I tried to resend the entity after I removed entries in those arrays via Atlas REST API, but to no avail so far.

So I dug in Atlas source code and found EntityGraphMapper.removeUnusedArrayEntries delegates delete action to deleteHandler and if it returns false, it adds the unused edge back into the list.

The deleteHandler uses SoftDeleteHandlerV1 by default which always return false.

https://github.com/apache/incubator-atlas/blob/master/repository/src/main/java/org/apache/atlas/repo...

https://github.com/apache/incubator-atlas/blob/master/repository/src/main/java/org/apache/atlas/repo...
So, I added following property to atlas-application.properties:
atlas.DeleteHandlerV1.impl=org.apache.atlas.repository.store.graph.v1.HardDeleteHandlerV1
Then I was able to remove unused entries from inputs/outputs array. It works but I wonder if it is the right way to remove entries from an array. Is there any other way to hide those Soft DELETED edges on Atlas UI?
Any advice would be appreciated!
1 REPLY 1

Cloudera Employee

There has been a feature introduced in the Apache Atlas-2.1.0 version which addresses this issue. Please find the Jira link : https://issues.apache.org/jira/browse/ATLAS-3477

'