ivory defines a specification for how to store feature data and provides a set of tools for querying it. It does not provide any tooling for producing feature data in the first place. All ivory commands run as MapReduce jobs so it assumed that feature data is maintained on HDFS.
Fact Sets: A fact set is a single directory containing multiple facts, where a fact defines:
* The entity the feature value is associated with;
* An attribute specifying which feature;
* The value itself;
* The time from which the feature value is valid.
Feature store: A feature store is comprised of one or more fact sets, which is represented by a text file containing an ordered list of references to fact sets.
Dictionary: All features are identified by their name and namespace. In the example fact above, the feature is widgets:inbound.count.1W where widgets is the namespace and inbound.count.1W is the name. With Ivory we must also associate with any namespace-name feature identifier the metadata.
Queries: Ivory supports two types of queries: snapshots and chords.
Data Generation: Ivory supports generating random dictionaries and fact sets which can be used for testing.