Dataset

@AggregateRoot(lifecycle = [], ownership = Ownership.TENANT)
@Description(value = "A wide table over the catalog's sources: its definition, its versions and where each is published")
class Dataset(state: DatasetState)

A wide table over the catalog's sources (-2), named as its queries read it, <context>.<name>: an analyst drafts and revises its definition, which the catalog checks against its sources as they are each time (DatasetBinder), and publishes it, each version compiled into its own view (DatasetCompiler) which the publication creates in the warehouse; queries read the current version until the dataset is switched back to another or retired, whose views are dropped once the retention ends.

Constructors

Link copied to clipboard
constructor(state: DatasetState)

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Compiles the published definition again after a source changed (-2). The same compilation changes nothing (or clears a revision it needed). Another one is published as the next version only when its contract holds: the view gives the same columns, by name and type, as the published one, and it takes no new approval, so only its masking or its rendering differs. Anything else (a definition that no longer compiles, columns that would change, a new approval) marks the dataset as needing revision; the published version goes on serving while its view still gives the columns it was published with, and is refused otherwise.

Link copied to clipboard
Link copied to clipboard

Replaces the definition and title, checked as a draft's are. A dataset that needs revision says, from then on, what is wrong with the revised definition rather than with the one it replaced: none of it once the revision compiles, which a publication then serves.

Link copied to clipboard