Open Metadata Archive¶
An open metadata archive is a portable collection of open metadata type definitions and instances. It can be loaded each time a metadata access server starts up or added to a running metadata access server.
The open metadata archive has two types:
- A content pack containing reusable definitions that are generally useful. They may come from the Egeria community or third parties.
- A metadata export containing an export of metadata from a repository. They are used to transfer metadata between repositories that are not connected to the same cohort.
Structure of an Open Metadata Archive¶
The logical structure of an open metadata archive is as follows:
Example of the header from the Cloud Information Model archive
{
"class":"OpenMetadataArchive",
"archiveProperties":
{
"class":"OpenMetadataArchiveProperties",
"archiveGUID":"9dc75637-92a7-4926-b47b-a3d407546f89",
"archiveName":"Cloud Information Model (CIM) glossary and concept model",
"archiveDescription":"Data types for commerce focused cloud applications.",
"archiveType":"CONTENT_PACK",
"originatorName":"The Cloud Information Model",
"originatorLicense":"Apache 2.0",
"creationDate":1570383385107,
"dependsOnArchives":["bce3b0a0-662a-4f87-b8dc-844078a11a6e"]
},
"archiveTypeStore":{},
"archiveInstanceStore":{}
}
Instances are linked together as follows:
- Entities are stored as
EntityDetail
structures. - Relationships are stored as
Relationship
structures and link to their entities through the embeddedEntityProxy
structure. - The entities will include their classifications; however, for classifications that are attached to entities that are not included in the archive, they are stored in an
ClassificationEntityExtension
structure.
Typically, open metadata archives are encoded in JSON format and stored in a file; however, both the format and storage method can be changed by changing the open metadata archive connector.
What happens when the archive is loaded into the server¶
Open metadata archives are introduced into the server through the admin services either:
- provided as part of the contents of the server's configuration document, or
- through the operational command that added the archive directly into the running server's repository.
The archive is passed to the repository services' operational services, which in turn passes it on to the archive manager. Type information is passed to the repository content manager.
Both the types and instances are passed to the local repository (if there is one).
The archive loads in the following order:
- Attribute Type Definitions (
AttributeTypeDef
s) from the type store, throughverifyAttributeTypeDef()
and thenaddAttributeTypeDef()
:- PrimitiveDefs
- CollectionDefs
- EnumDefs
- New Type Definitions (
TypeDef
s) from the type store, throughverifyTypeDef()
andaddTypeDef()
calls to the local repository:- EntityDefs
- RelationshipDefs
- ClassificationDefs
- Updates to types (
TypeDefPatch
es) - Instances, as reference copies:
- Entities
- Relationships
- Classifications
Cohort propagation
If the server is connected to the cohort, the new content is sent as notifications to the rest of the cohort.
Further information
- Configuring a server to load an archive on start up
- Adding an archive to a running server
- Metadata Archiving describes all of the features of Egeria that use the Open Metadata Archives.
- The open metadata archive connector is the connector used to read and write open metadata archives.