Build a Table

Metadata is a guidance rather than a rule.

There are multiple ways to build a table, each result in the same thing, metadata. Although the match rules and the user input screens in Custodian require metadata in the form of a table and columns, the matching system treats it more as a guidance rather than an essential. As such it is actually possible to store more information in a record (document) representing a master data entity such as product, customer etc than is mentioned in the metadata. This somewhat future proofs the situation enabling you to be able to load data that is essentially invisible to the end user, but can be carried forward to the systems downstream of EntityStream Custodian.

Considerations in your Model

Additionally as metadata in can be based upon the source data or based upon a golden record type model, and depending on your approach to Master Data and how you will deploy the system then this will direct you to one approach or the other.

Generally speaking if you require to author (as in originate data) data from Custodian then you will want to choose a golden record type model, if not and you are looking to link together records from many systems into a global cross reference then you will want to define the models closer to that of the source system.

Golden Record ModelSource Model
Single Model Representing all SystemsOne Table per data source per system
Merging, Linking or EID possibleLinking or EID possible
One set of Concept MappingsOne Concept Mapping per Source
Suitable for Full Authoring of new DataAuthoring Suitable for Maintenance only
Harder to keep in line with all systemsSimpler to maintain, add new sources etc
Integration requirements are heavy (M:1)Less Integration Needed (1:1)

The approach you take is completely up to you, but often it is harder to change strategy later on, so a modicum of thought at the start is preferred.

Creating a Table and its Columns.

Use the Data Model tool to create a table definition, use the drop down button on the top right to do this, once you have created your table and at least 1 column then you can save the table definition using the blue button at the bottom right.

Add a table using the menu options, once you have given the table a name at the prompt, it will be checked to ensure that you have not created one of this name before and then allow you to create columns. Please note that it is possible to create two tables of the same name IF they are in different Domains (contexts), this is by design, but it can cause some confusion to the end user as the descriptive name for the table will be the same unless you change the table display name under the settings. The display name is highlighted for you.

If you expand the table properties using the down chevron, then the following options as displayed:

Display NameUser friendly table name, you can use all characters
Icon URLlocally or publicly accessible image file (icon size 16×16) or image class names such as ‘fa fa-hand’
Audited TableCheckbox to store timestamped changes for each document in table.
Date and Time format of Source (ie uuuu-MM-dd’T’HH:mm:ss[.SSS]XXX)If the table contains dates and you want to convert them to proper dates for storage, then this pattern needs to be set
Represents Internal DataNo longer used
Documented as Master Data TableDoes this table have significance, it causes the dashboard to show the statistics for this table.
Use for Relationship Payload ONLYIf this table represents a relationship table to store attributes for a hierarchy, then this option should be chosen, if it is chosen then the sub option will be available: “Restricted Relationships to one Table”. Restricted relationship table can only store relationships to-from the same table type ie Person-Person. Unrestricted allow any relationships between table types such as company-person.
Maximum number of records to compare #When matching, this option be used to prevent over-matching within the table. 1000 records would be a potential 500,000 comparisons and this number prevents too many calculations for scoring when the data is very “matchy”
Maximum number of records to compare %Again when matching, this %age will prevent over-matching on smaller data sets where the numeric value above would be less effective.
Published TableNot currently used (reserved for future)

Special Attention should be paid to the “Documented as a Master Table” and, “Use for Relationship Payload ONLY”.

Once the table has been created you must add at least 1 column, you can either choose to use the add column option which will simply create a new column, but you will need to over type the values for name and display name. A more efficient way to create columns is to use the paste text option:

You may now enter the column names into the window as a comma separated list, please be careful with spaces, spaces will be used too, so a good example is:

Brand ID,Brand Name,Brand Name (Short),Definition,Comment 

You may also enter a json object:

{"Brand ID":"text", "Brand Name":"text", "Definition Date": "date"}

The column properties are changeable using the right hand side of the screen, their meaning is:

Column NameThe physical name of the column
Display NameThe user friendly name to use in the search, authoring, etc
Primary KeyDoes this column represent a primary key
Position in LabelEach record needs a label field, this position of the column in the label enables you to define a concatenated label
Validation PatternREGEX (regular expression) to validate and reject/suspend the data
Display TypeText
List (array)
Structure (ie nested item)
Date Time
Each other Table will also appear to enable you to pick a table from any domain as a foreign key reference.
Display PageThe page on the search and edit screen to place this field
Merge ActionThe action to take when contructing a golden record incorporating this field.
Use Latest
Use Earliest
Use Longest
Default ValueThe default value to use when no value is supplied by the source/user
Auto Generated SequenceIf the field needs to be populated with a sequence then this option can be chosen.

Once a column is created, you can also create a sub column provided the column was defined as a Structure. This will enable you to create nested recprd structures. Also a list of items can be created to represent an array of items.

You will need to ensure that one primary key field is chosen and at least one label field is defined before saving the table.