mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-03 23:28:11 +00:00
50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# What is a snapshot?
|
|
|
|
A metadata snapshot models the current state of one or multiple metadata [aspects](aspect.md) associated with a particular [entity](entity.md).
|
|
Each entity type is expected to have:
|
|
|
|
1. An entity-specific aspect (e.g. `CorpGroupAspect` from below), which is a `typeref` containing a union of all possible metadata aspects for the entity.
|
|
2. An entity-specific snapshot (e.g. `CorpGroupSnapshot` from below), which contains an array (aspects) of entity-specific aspects.
|
|
|
|
```
|
|
namespace com.linkedin.metadata.aspect
|
|
|
|
import com.linkedin.group.Membership
|
|
import com.linkedin.group.SomeOtherMetadata
|
|
|
|
/**
|
|
* A union of all supported metadata aspects for a group
|
|
*/
|
|
typeref CorpGroupAspect = union[Membership, SomeOtherMetadata]
|
|
```
|
|
|
|
```
|
|
namespace com.linkedin.metadata.snapshot
|
|
|
|
import com.linkedin.common.CorpGroupUrn
|
|
import com.linkedin.metadata.aspect.CorpGroupAspect
|
|
|
|
/**
|
|
* A metadata snapshot for a specific Group entity.
|
|
*/
|
|
record CorpGroupSnapshot {
|
|
|
|
/** URN for the entity the metadata snapshot is associated with */
|
|
urn: CorpGroupUrn
|
|
|
|
/** The list of metadata aspects associated with the group */
|
|
aspects: array[CorpGroupAspect]
|
|
}
|
|
```
|
|
|
|
The generic `Snapshot` typeref contains a union of all entity-specific snapshots and can therefore be used to represent the state of any metadata aspect for all supported entity types.
|
|
|
|
```
|
|
namespace com.linkedin.metadata.snapshot
|
|
|
|
/**
|
|
* A union of all supported metadata snapshot types.
|
|
*/
|
|
typeref Snapshot = union[DatasetSnapshot, CorpGroupSnapshot, CorpUserSnapshot]
|
|
```
|