Member since
08-15-2019
1
Post
0
Kudos Received
0
Solutions
08-15-2019
12:35 PM
Hi everyone, I am just recently working with Atlas and already stuck with something. I created a custom typedef called 'Table' with this structure: {
"superTypes" : [],
"category" : "ENTITY",
"name" : "Table",
"description" : "a type definition for an existing table from BigQuery",
"typeVersion" : "1.0",
"attributeDefs" :[
{
"name" : "dataset_name",
"typeName" : "string",
"isOptional" : False,
"cardinality" : "SINGLE",
"valuesMinCount" : 1,
"valuesMaxCount" : 1,
"isUnique" : False,
"isIndexable" : True
}
,{
"name" : "schema",
"typeName" : "array<Column>",
"isOptional" : True,
"cardinality" : "SINGLE",
"valuesMinCount" : 1,
"valuesMaxCount" : 1,
"isUnique" : False,
"isIndexable" : True
}
]
} And then I have created some entities with the typeName 'Table'. The problem is that I forgot one required attribute inside the 'Table' typedef and want to add it. The first solution I thought of was deleting the 'Table' typedef and creating a new one. But unfortunately it returned with this response: {"errorCode":"ATLAS-409-00-002","errorMessage":"Given type Table has references"} I assumed that this is because I have entities that refers to my 'Table' type. I tried deleting all the 'Table' entities with the Atlas API and tried deleting the 'Table' typedef again, but it still returned the same error code shown above. I found on some other forum that I need to hard delete the entities, but the API only provides soft delete. So how do I hard delete? The second solution was to use the update endpoint to insert the new attribute, but it did not work and returned: {"errorCode":"ATLAS-400-00-00C","errorMessage":"Table.name : can not add mandatory attribute"} I assume that this is because the attribute I tried to add is set to "isOptional: False" and there are existing entities. So now I'm stuck with no idea how to handle this. For the moment, I'll create a new type and continue my work but hopefully someone can help me solve this. I appreciate anyone that can provide me with the best way to handle this. Thank you! (P.S. If you need it, the attribute that I'm trying to add is this: {
"name" : "name",
"typeName" : "string",
"isOptional" : False,
"cardinality" : "SINGLE",
"valuesMinCount" : 1,
"valuesMaxCount" : 1,
"isUnique" : False,
"isIndexable" : True
} ) (P.P.S. I am using Python to access the API)
... View more
Labels: