Multi source data aggregation
In a multi-source scenario, Hermes can aggregate entries providing from multiple sources as if they were providing from one, and optionally enforce aggregation constraints to ensure data consistency.
Let’s take a use case, with a university data set where Hermes should manage user accounts. Employees and students data are stored on two separate data sources. Hermes will be able to merge the two datasources in one virtual Users
, but must ensure that primary keys doesn’t collide.
Here we got two distinct data sources for a same data type.
classDiagram direction BT Users <|-- Users_employee Users <|-- Users_students class Users{ user_id login mail merge_constraints() s.user_id mustNotExist in e.user_id } class Users_students{ s.user_id s.login s.mail } class Users_employee{ e.user_id e.login e.mail }
In this scenario, entries in Users_students
that have a user_id
that exist in Users_employee
will be silently ignored.
But entries in Users_employee
that have a user_id
that exist in Users_students
will still be processed.
For more details, please see pkey_merge_constraint and merge_constraints in hermes-server configuration.