Support Questions

Find answers, ask questions, and share your expertise

QualifiedName vs guid

avatar

If qualifiedName is constructed properly, they are pretty much the same as guid. Why does Atlas then need APIs to search on guid in addition to the attribute based search on qualifiedName? is this not redundant?

1 ACCEPTED SOLUTION

avatar
Expert Contributor

Your question is valid. In most cases the ways of 'knowing' existence of entity are redundant.

In general, GUIDs are assigned to entities when they are created, this remains unchanged through the lifetime of the entity.

In case of entity creation via hooks:

  • The incoming entities will not have GUIDs as they are yet to be created, however qualified name is available as it is required attribute for entities. This is used to detect existence of entities.

Qualified name has potential for change in the this scenario:

  • Entities are moved across cluster as part of synchronization using Export & Import APIs. The GUID main same but qualified name can change to reflect the correct location of the entity. E.g. Database entity within cluster with name cl1 will have entities whose name is db@cl1. Importing this entity into a cluster with name cl2 should change the qualified name to db@cl2. This way the imported entities reflect their new home, whereas with guid it is possible to know that the same entity exists across clusters. Please take a look here in transforms.

Hope this helps.

View solution in original post

1 REPLY 1

avatar
Expert Contributor

Your question is valid. In most cases the ways of 'knowing' existence of entity are redundant.

In general, GUIDs are assigned to entities when they are created, this remains unchanged through the lifetime of the entity.

In case of entity creation via hooks:

  • The incoming entities will not have GUIDs as they are yet to be created, however qualified name is available as it is required attribute for entities. This is used to detect existence of entities.

Qualified name has potential for change in the this scenario:

  • Entities are moved across cluster as part of synchronization using Export & Import APIs. The GUID main same but qualified name can change to reflect the correct location of the entity. E.g. Database entity within cluster with name cl1 will have entities whose name is db@cl1. Importing this entity into a cluster with name cl2 should change the qualified name to db@cl2. This way the imported entities reflect their new home, whereas with guid it is possible to know that the same entity exists across clusters. Please take a look here in transforms.

Hope this helps.