From efb55fdc7f822be5dc045be04b73ba9fa36069cd Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 17:07:03 +0200 Subject: [PATCH 1/6] Add metrics spec 0.1.0 and model2data.metrics A metrics file, `.metrics.yml` beside the model, says what the model's numbers mean: simple metrics (a column aggregated), row counts, ratios of totals and derived metrics (arithmetic over metrics), with filters that reach other tables through many-to-one foreign keys along exactly one path, and nulls as in SQL. Every `measure` column of the model also implies a metric, named as the studio's semantic export names it. - model2data/spec/metrics/: the normative README and JSON Schema, versioned on its own (0.1.0), and a coffee_webshop example that conforms against the example model (which now marks total_amount and quantity as measures). - model2data.metrics: the reader (the model spec's YAML profile, its Issue type and schema messages), the checks within the file and against the model, one resolved semantic representation (entities, relationships, dimensions, measures, metrics with their join paths and time), known values computed on DuckDB with the SQL the dbt tests run, a singular dbt test per metric, and an Apache Ossie 0.1.1 export with a lossiness report. The generator never reads a metrics file. Co-Authored-By: Claude Opus 5.5 --- model2data/metrics/__init__.py | 100 +++ model2data/metrics/check.py | 566 +++++++++++++ model2data/metrics/columns.py | 66 ++ model2data/metrics/dbt.py | 86 ++ model2data/metrics/expression.py | 209 +++++ model2data/metrics/graph.py | 151 ++++ model2data/metrics/infer.py | 113 +++ model2data/metrics/ossie.py | 310 +++++++ model2data/metrics/reader.py | 243 ++++++ model2data/metrics/semantic.py | 336 ++++++++ model2data/metrics/sql.py | 270 +++++++ model2data/metrics/types.py | 163 ++++ model2data/metrics/values.py | 284 +++++++ model2data/spec/PUBLISHING.md | 25 +- model2data/spec/README.md | 7 +- .../spec/examples/coffee_webshop.metrics.yml | 58 ++ .../examples/coffee_webshop.model2data.yml | 2 + model2data/spec/metrics/README.md | 308 +++++++ model2data/spec/metrics/metrics.schema.json | 177 ++++ .../metrics/ecommerce_training.metrics.yml | 66 ++ tests/fixtures/metrics/shop.metrics.yml | 40 + tests/fixtures/metrics/shop.model2data.yml | 75 ++ tests/fixtures/ossie/LICENSE | 175 ++++ tests/fixtures/ossie/NOTICE | 2 + tests/fixtures/ossie/VENDORED.md | 10 + tests/fixtures/ossie/osi-schema.json | 344 ++++++++ tests/test_metrics_expression.py | 76 ++ tests/test_metrics_ossie.py | 235 ++++++ tests/test_metrics_reader.py | 753 ++++++++++++++++++ tests/test_metrics_semantic.py | 441 ++++++++++ tests/test_metrics_spec.py | 165 ++++ tests/test_metrics_values.py | 286 +++++++ 32 files changed, 6139 insertions(+), 3 deletions(-) create mode 100644 model2data/metrics/__init__.py create mode 100644 model2data/metrics/check.py create mode 100644 model2data/metrics/columns.py create mode 100644 model2data/metrics/dbt.py create mode 100644 model2data/metrics/expression.py create mode 100644 model2data/metrics/graph.py create mode 100644 model2data/metrics/infer.py create mode 100644 model2data/metrics/ossie.py create mode 100644 model2data/metrics/reader.py create mode 100644 model2data/metrics/semantic.py create mode 100644 model2data/metrics/sql.py create mode 100644 model2data/metrics/types.py create mode 100644 model2data/metrics/values.py create mode 100644 model2data/spec/examples/coffee_webshop.metrics.yml create mode 100644 model2data/spec/metrics/README.md create mode 100644 model2data/spec/metrics/metrics.schema.json create mode 100644 tests/fixtures/metrics/ecommerce_training.metrics.yml create mode 100644 tests/fixtures/metrics/shop.metrics.yml create mode 100644 tests/fixtures/metrics/shop.model2data.yml create mode 100644 tests/fixtures/ossie/LICENSE create mode 100644 tests/fixtures/ossie/NOTICE create mode 100644 tests/fixtures/ossie/VENDORED.md create mode 100644 tests/fixtures/ossie/osi-schema.json create mode 100644 tests/test_metrics_expression.py create mode 100644 tests/test_metrics_ossie.py create mode 100644 tests/test_metrics_reader.py create mode 100644 tests/test_metrics_semantic.py create mode 100644 tests/test_metrics_spec.py create mode 100644 tests/test_metrics_values.py diff --git a/model2data/metrics/__init__.py b/model2data/metrics/__init__.py new file mode 100644 index 0000000..446f218 --- /dev/null +++ b/model2data/metrics/__init__.py @@ -0,0 +1,100 @@ +"""Metrics next to the model: metrics spec 0.1.0, read, checked, resolved, computed and exported. + +A metrics file is `.metrics.yml` beside `.model2data.yml`, as +`model2data/spec/metrics/README.md` and `metrics.schema.json` define it. The +generator never reads it: a model generates the same data with or without one. + + >>> from model2data.model import load as load_model + >>> from model2data import metrics + >>> model = load_model("coffee_webshop.model2data.yml") + >>> found = metrics.load("coffee_webshop.metrics.yml", model) # MetricsError on errors + >>> semantic = metrics.resolve(model, found) # entities, relationships, dimensions, metrics + >>> values = metrics.known_values(semantic, frames) # over a run's generated tables + >>> export = metrics.to_ossie(semantic) # Apache Ossie 0.1.1 + >>> export.to_yaml(), export.lossiness + +`resolve(model)` with no metrics file gives the metrics the model implies on +its own: one per `measure` column, and a row count per fact. +""" + +from model2data.metrics.check import SCHEMA_URL, SPEC_VERSION, check_against, check_document +from model2data.metrics.dbt import metric_test_sql, write_metric_tests +from model2data.metrics.expression import ExpressionError +from model2data.metrics.expression import parse as parse_expression +from model2data.metrics.graph import Graph, Join +from model2data.metrics.infer import inferred_metrics +from model2data.metrics.ossie import OSSIE_VERSION, Loss, OssieExport, to_ossie +from model2data.metrics.reader import ( + MetricsError, + from_dict, + is_metrics_file, + load, + metrics_stem, + sibling_model, + validate, +) +from model2data.metrics.semantic import ( + Dimension, + Entity, + Measure, + Relationship, + ResolvedMetric, + SemanticModel, + resolve, +) +from model2data.metrics.types import ( + AGGREGATIONS, + FORMATS, + OPERATORS, + Condition, + DimensionOverride, + Metric, + Metrics, + Ratio, + Where, +) +from model2data.metrics.values import KnownValue, KnownValues, known_values + +__all__ = [ + "AGGREGATIONS", + "FORMATS", + "OPERATORS", + "OSSIE_VERSION", + "SCHEMA_URL", + "SPEC_VERSION", + "Condition", + "Dimension", + "DimensionOverride", + "Entity", + "ExpressionError", + "Graph", + "Join", + "KnownValue", + "KnownValues", + "Loss", + "Measure", + "Metric", + "Metrics", + "MetricsError", + "OssieExport", + "Ratio", + "Relationship", + "ResolvedMetric", + "SemanticModel", + "Where", + "check_against", + "check_document", + "from_dict", + "inferred_metrics", + "is_metrics_file", + "known_values", + "load", + "metric_test_sql", + "metrics_stem", + "parse_expression", + "resolve", + "sibling_model", + "to_ossie", + "validate", + "write_metric_tests", +] diff --git a/model2data/metrics/check.py b/model2data/metrics/check.py new file mode 100644 index 0000000..6d9cf4e --- /dev/null +++ b/model2data/metrics/check.py @@ -0,0 +1,566 @@ +"""Does a metrics file conform: the schema, the checks within the file, then against its model. + +`check_document(document)` is what a reader can say from the file alone: the +schema, the version, each metric having exactly one kind, every `expression` +parsing, and no metric depending on itself. `check_against(metrics, model)` +is the rest, which needs the model: every table and column named exists, every +aggregation fits its column, every filter value fits its column and every +filter and time column is reachable along exactly one path. Both return every +issue they find, each with the document path of the value at fault, like the +model's own checks (`model2data.model.validate`), whose schema messages they +reuse. +""" + +from __future__ import annotations + +import difflib +import json +from collections.abc import Mapping +from datetime import date, datetime +from functools import lru_cache +from importlib import resources +from typing import Any, Optional + +import jsonschema +from jsonschema.exceptions import ValidationError + +from model2data.metrics import expression as expr +from model2data.metrics.columns import ( + ColumnKind, + column_kind, + find_column, + is_numeric, + is_temporal, +) +from model2data.metrics.graph import Graph, describe +from model2data.metrics.infer import aggregation_of, inferred_metrics +from model2data.metrics.types import ( + ANY_KIND_AGGREGATIONS, + KIND_KEYS, + ORDER_OPERATORS, + Condition, + Metric, + Metrics, + Where, +) +from model2data.model.errors import Issue, PathPart, format_path +from model2data.model.types import Column, Model +from model2data.model.validate import _describe, _schema_issues, _show + +SPEC_VERSION = "0.1.0" +# The minor versions this reader implements. +READS = ("0.1",) +SCHEMA_URL = ( + f"https://www.jbanalytica.com/model2data/spec/metrics/{SPEC_VERSION}/metrics.schema.json" +) + +_PATTERN_WORDS = { + "metricName": "must be a metric name: a lower-case letter, then lower-case letters, " + "digits and underscores", + "columnPath": "must name a column as `table.column` or `schema.table.column`", + "tableKey": "must name a table as `table` or `schema.table`", +} + + +@lru_cache(maxsize=1) +def schema() -> dict[str, Any]: + """The packaged, normative JSON Schema of the metrics spec.""" + text = ( + resources.files("model2data") + .joinpath("spec/metrics/metrics.schema.json") + .read_text("utf-8") + ) + return json.loads(text) + + +@lru_cache(maxsize=1) +def _validator() -> Any: + return jsonschema.Draft202012Validator(schema()) + + +def _mapping(value: Any) -> Mapping: + return value if isinstance(value, Mapping) else {} + + +# --------------------------------------------------------------------------- +# The file alone +# --------------------------------------------------------------------------- +def check_document(document: Any) -> list[Issue]: + """Every way `document` (a parsed YAML or JSON value) fails to conform on its own.""" + if not isinstance(document, Mapping): + return [ + Issue("", f"a metrics file is a mapping at the top level, not {_describe(document)}") + ] + issues = _version_issues(document) + for error in _validator().iter_errors(document): + path = list(error.absolute_path) + if error.validator == "oneOf" and len(path) == 2 and path[0] == "metrics": + continue # said better by _kind_issues + issues.extend(_schema_error(error)) + metrics = _mapping(document.get("metrics")) + for name, metric in metrics.items(): + if isinstance(metric, Mapping): + issues.extend(_kind_issues(str(name), metric)) + issues.extend(_expression_issues(str(name), metric)) + issues.extend(_cycle_issues(metrics)) + return list(dict.fromkeys(issues)) + + +def _schema_error(error: ValidationError) -> list[Issue]: + if error.validator == "pattern": + for name, words in _PATTERN_WORDS.items(): + if schema()["$defs"][name]["pattern"] == error.validator_value: + where = format_path(error.absolute_path) + if error.relative_schema_path and "propertyNames" in error.relative_schema_path: + return [Issue(where, f"{_show(error.instance)} {words}")] + return [Issue(where, f"{words} (got {_show(error.instance)})")] + return _schema_issues(error) + + +def _version_issues(document: Mapping) -> list[Issue]: + version = document.get("model2data-metrics") + if not isinstance(version, str): + return [] # missing, or not a string: the schema says so + parts = version.split(".") + if len(parts) == 3 and all(part.isdigit() for part in parts): + if ".".join(parts[:2]) in READS: + return [] + return [ + Issue( + "model2data-metrics", + f"the file is written against metrics spec {version}, and this reader " + f"implements metrics spec {SPEC_VERSION} (0.1.x). Upgrade model2data to read it.", + ) + ] + return [] + + +def _kind_issues(name: str, metric: Mapping) -> list[Issue]: + where = f"metrics.{name}" + given = [key for key in KIND_KEYS if key in metric] + if not given: + return [ + Issue( + where, + "a metric needs one of `measure` (a column), `count` (a table's rows), " + "`ratio` or `expression`", + ) + ] + if len(given) > 1: + both = " and ".join(f"`{key}`" for key in given) + return [Issue(where, f"a metric is of one kind, but {both} are both given: keep one")] + kind = KIND_KEYS[given[0]] + issues = [] + if "agg" in metric and kind != "simple": + issues.append( + Issue(f"{where}.agg", "`agg` says how a `measure` aggregates; this metric has none") + ) + if kind in ("ratio", "derived"): + for key in ("time", "where"): + if key in metric: + issues.append( + Issue( + f"{where}.{key}", + f"`{key}` is for a metric with `measure` or `count`: a " + f"{'ratio' if kind == 'ratio' else 'derived metric'} is " + f"{'dated' if key == 'time' else 'filtered'} through the metrics it uses", + ) + ) + return issues + + +def _expression_issues(name: str, metric: Mapping) -> list[Issue]: + text = metric.get("expression") + if not isinstance(text, str) or not text: + return [] + try: + node = expr.parse(text) + except expr.ExpressionError as error: + return [Issue(f"metrics.{name}.expression", str(error))] + if not expr.names(node): + return [ + Issue( + f"metrics.{name}.expression", + "the expression uses no metric: a derived metric is arithmetic over metrics", + ) + ] + return [] + + +def dependencies(metric: Mapping) -> list[str]: + """The metrics a metric (as written in the file) is computed from.""" + ratio = metric.get("ratio") + if isinstance(ratio, Mapping): + return [ + value + for value in (ratio.get("numerator"), ratio.get("denominator")) + if isinstance(value, str) + ] + text = metric.get("expression") + if isinstance(text, str): + try: + return expr.names(expr.parse(text)) + except expr.ExpressionError: + return [] + return [] + + +def _cycle_issues(metrics: Mapping) -> list[Issue]: + """A metric that depends on itself, directly or through others: one issue per cycle.""" + graph = { + str(name): [dep for dep in dependencies(metric) if dep in metrics] + for name, metric in metrics.items() + if isinstance(metric, Mapping) + } + issues: list[Issue] = [] + reported: set[frozenset[str]] = set() + state: dict[str, int] = {} + + def visit(name: str, stack: list[str]) -> None: + state[name] = 1 + for dep in graph.get(name, []): + if state.get(dep) == 1: + cycle = [*stack[stack.index(dep) :], dep] + members = frozenset(cycle) + if members not in reported: + reported.add(members) + issues.append( + Issue( + f"metrics.{cycle[0]}", + "metrics depend on each other in a cycle: " + " -> ".join(cycle), + ) + ) + elif state.get(dep) is None: + visit(dep, [*stack, dep]) + state[name] = 2 + + for name in graph: + if state.get(name) is None: + visit(name, [name]) + return issues + + +# --------------------------------------------------------------------------- +# Against the model +# --------------------------------------------------------------------------- +def all_metrics(metrics: Metrics, model: Optional[Model]) -> dict[str, Metric]: + """The file's metrics and, with `infer`, the model's: explicit ones first, in file + order, then the inferred ones they do not replace, in model order.""" + out = dict(metrics.metrics) + if metrics.infer and model is not None: + for name, metric in inferred_metrics(model).items(): + out.setdefault(name, metric) + return out + + +def check_references(metrics: Metrics, known: Mapping[str, Metric]) -> list[Issue]: + """Every ratio and expression names metrics that exist.""" + issues = [] + for name, metric in metrics.metrics.items(): + if metric.ratio is not None: + for part in ("numerator", "denominator"): + target = getattr(metric.ratio, part) + if target not in known: + issues.append( + Issue(f"metrics.{name}.ratio.{part}", _unknown_metric(target, known)) + ) + elif metric.expression is not None: + for target in expr.names(expr.parse(metric.expression)): + if target not in known: + issues.append( + Issue(f"metrics.{name}.expression", _unknown_metric(target, known)) + ) + return issues + + +def _unknown_metric(name: str, known: Mapping[str, Metric]) -> str: + return f"there is no metric {name!r}{_did_you_mean(name, list(known))}" + + +def _did_you_mean(name: str, options: list[str]) -> str: + close = difflib.get_close_matches(name, options, n=1) + return f" (did you mean {close[0]!r}?)" if close else "" + + +def check_against( + metrics: Metrics, model: Model, *, model_name: Optional[str] = None +) -> list[Issue]: + """Every way `metrics` does not fit `model`: errors and warnings. + + `model_name` is the name the model goes by when it has no `name` of its own + (the CLI passes the file's stem). + """ + return _ModelChecks(metrics, model, model_name).run() + + +class _ModelChecks: + def __init__(self, metrics: Metrics, model: Model, model_name: Optional[str]): + self.metrics = metrics + self.model = model + self.model_name = model.name or model_name + self.graph = Graph(model) + self.issues: list[Issue] = [] + + def error(self, path: list[PathPart], message: str) -> None: + self.issues.append(Issue(format_path(path), message)) + + def warn(self, path: list[PathPart], message: str) -> None: + self.issues.append(Issue(format_path(path), message, severity="warning")) + + def run(self) -> list[Issue]: + if self.model_name is not None and self.metrics.model != self.model_name: + self.error( + ["model"], + f"the metrics are for model {self.metrics.model!r}, and the model is " + f"{self.model_name!r}", + ) + known = all_metrics(self.metrics, self.model) + self.issues.extend(check_references(self.metrics, known)) + for name, metric in self.metrics.metrics.items(): + self._metric(name, metric) + for column in self.metrics.dimensions: + self._column(["dimensions", column], column) + return self.issues + + # -- tables and columns -------------------------------------------------- + def _table(self, path: list[PathPart], key: str) -> bool: + if key in self.model.tables: + return True + self.error( + path, f"the model has no table {key!r}{_did_you_mean(key, list(self.model.tables))}" + ) + return False + + def _column(self, path: list[PathPart], column_path: str) -> Optional[Column]: + table_key, column = find_column(self.model, column_path) + if table_key is None: + key = column_path.rpartition(".")[0] + self.error( + path, + f"the model has no table {key!r}{_did_you_mean(key, list(self.model.tables))}", + ) + return None + if column is None: + name = column_path.rpartition(".")[2] + options = list(self.model.tables[table_key].columns) + self.error( + path, f"table {table_key!r} has no column {name!r}{_did_you_mean(name, options)}" + ) + return None + return column + + def _reach(self, path: list[PathPart], start: str, column_path: str, what: str) -> None: + target = column_path.rpartition(".")[0] + paths = self.graph.paths(start, target) + if not paths: + self.error( + path, + f"{what} {column_path} cannot be reached from {start}: a column has to be on " + f"the metric's table, or on one its foreign keys lead to (many-to-one)", + ) + elif len(paths) > 1: + self.error( + path, + f"{what} {column_path} is reached from {start} along two paths, so which " + f"{target} it means is unclear: {describe(paths[0])}; or {describe(paths[1])}", + ) + + # -- one metric ------------------------------------------------------------ + def _metric(self, name: str, metric: Metric) -> None: + base = ["metrics", name] + table: Optional[str] = None + if metric.kind == "simple" and metric.measure is not None: + column = self._column([*base, "measure"], metric.measure) + if column is not None: + table = metric.measure.rpartition(".")[0] + self._aggregation(base, metric, column) + elif metric.kind == "count" and metric.count is not None: + if self._table([*base, "count"], metric.count): + table = metric.count + if table is None: + return + if metric.time is not None: + column = self._column([*base, "time"], metric.time) + if column is not None: + if not is_temporal(column_kind(self.model, column)): + self.error( + [*base, "time"], + f"{metric.time} is {column.type}, not a date or timestamp column", + ) + else: + self._reach([*base, "time"], table, metric.time, "time column") + elif self.graph.first_time_column(table) is None: + self.warn( + base, + f"no date or timestamp column on {table}, or on a table it reaches, dates this " + "metric: it has a total but no value per month. Set `time` to date it", + ) + if metric.where is not None: + self._where([*base, "where"], table, metric.where) + + def _aggregation(self, base: list[PathPart], metric: Metric, column: Column) -> None: + assert metric.measure is not None + kind = column_kind(self.model, column) + if metric.agg is None: + implied = aggregation_of(column.measure) + if implied is None: + self.error( + [*base, "measure"], + f"{metric.measure} has no `measure` in the model, so say how it " + "aggregates with `agg` (sum, average, min, max, median, count, " + "count_distinct)", + ) + return + if metric.agg not in ANY_KIND_AGGREGATIONS and not is_numeric(kind): + self.error( + [*base, "agg"], + f"{metric.agg} needs a numeric column, and {metric.measure} is " + f"{column.type}: count and count_distinct apply to any column", + ) + + # -- filters ---------------------------------------------------------------- + def _where(self, path: list[PathPart], table: str, where: Where) -> None: + for term in where.terms: + if isinstance(term, Where): + group = "any" if term.any else "all" + for index, alternative in enumerate(term.terms): + assert isinstance(alternative, Where) + self._where([*path, group, index], table, alternative) + else: + self._condition(path, table, term) + + def _condition(self, path: list[PathPart], table: str, condition: Condition) -> None: + where = [*path, condition.column] + column = self._column(where, condition.column) + if column is None: + return + self._reach(where, table, condition.column, "filter column") + kind = column_kind(self.model, column) + for operator, operand in condition.operators.items(): + at = [*where, operator] if condition.written == "operators" else where + if operator in ORDER_OPERATORS and not (is_numeric(kind) or is_temporal(kind)): + self.error( + at, + f"`{operator}` compares by order, and {condition.column} is " + f"{'an enum' if kind == 'enum' else kind}: list the values it may hold " + "with `in` instead", + ) + continue + if operator == "is_null": + if operand is True and _never_null(column): + self.warn( + at, + f"can never match: {condition.column} is never null in the generated data", + ) + continue + values = operand if isinstance(operand, list) else [operand] + ok = True + for index, value in enumerate(values): + message = _value_problem(self.model, column, kind, value) + if message is not None: + ok = False + value_at = [*at, index] if isinstance(operand, list) else at + self.error(value_at, message) + if operator == "between" and ok and len(values) == 2: + low, high = (_comparable(kind, value) for value in values) + if low is not None and high is not None and low > high: + self.warn( + at, f"can never match: {_show(values[0])} is above {_show(values[1])}" + ) + continue + if ok and is_numeric(kind): + self._never_matches(at, condition.column, column, operator, operand) + + def _never_matches( + self, at: list[PathPart], name: str, column: Column, operator: str, operand: Any + ) -> None: + low, high = column.generate.get("min"), column.generate.get("max") + low = low if _number(low) else None + high = high if _number(high) else None + if low is None and high is None: + return + bounds = ( + f"between {low} and {high}" + if low is not None and high is not None + else (f"at least {low}" if low is not None else f"at most {high}") + ) + + def outside(value: Any) -> bool: + return (low is not None and value < low) or (high is not None and value > high) + + never = False + if operator == "eq": + never = outside(operand) + elif operator == "in": + never = all(outside(value) for value in operand) + elif operator == "gt": + never = high is not None and operand >= high + elif operator == "gte": + never = high is not None and operand > high + elif operator == "lt": + never = low is not None and operand <= low + elif operator == "lte": + never = low is not None and operand < low + elif operator == "between": + never = (high is not None and operand[0] > high) or ( + low is not None and operand[1] < low + ) + if never: + self.warn(at, f"can never match: {name} is generated {bounds}") + + +def _number(value: Any) -> bool: + return isinstance(value, (int, float)) and not isinstance(value, bool) + + +def _never_null(column: Column) -> bool: + return column.pk or column.not_null + + +def _parse_temporal(kind: ColumnKind, value: str) -> Optional[datetime]: + """`value` as an ISO 8601 date (or, for a timestamp column, timestamp), else None.""" + try: + if kind == "date" or len(value) == 10: + if len(value) != 10: + return None + day = date.fromisoformat(value) + return datetime(day.year, day.month, day.day) + parsed = datetime.fromisoformat(value) + except ValueError: + return None + return parsed if parsed.tzinfo is None else None + + +def _comparable(kind: ColumnKind, value: Any) -> Any: + if is_temporal(kind) and isinstance(value, str): + return _parse_temporal(kind, value) + return value if _number(value) else None + + +def _value_problem(model: Model, column: Column, kind: ColumnKind, value: Any) -> Optional[str]: + """Why `value` cannot be a value of `column`, or None when it can.""" + if kind == "enum": + enum = model.enum_for(column.type) + assert enum is not None + text = str(value) if isinstance(value, int) and not isinstance(value, bool) else value + if isinstance(text, str) and text in enum.members: + return None + members = ", ".join(enum.members) + hint = _did_you_mean(text, enum.members) if isinstance(text, str) else "" + return f"{_show(value)} is not a member of {column.type} ({members}){hint}" + if kind == "boolean": + return None if isinstance(value, bool) else f"must be true or false, not {_show(value)}" + if is_numeric(kind): + if not _number(value): + return f"must be a number, as {column.type} is numeric, not {_describe(value)}" + if kind == "integer" and isinstance(value, float) and not value.is_integer(): + return f"must be a whole number, as {column.type} is an integer type (got {value!r})" + return None + if is_temporal(kind): + if isinstance(value, str) and _parse_temporal(kind, value) is not None: + return None + shape = "YYYY-MM-DD" if kind == "date" else "YYYY-MM-DD or YYYY-MM-DD HH:MM:SS" + return f"must be an ISO 8601 {kind} as a string, {shape} (got {_show(value)})" + if not isinstance(value, str): + return f"must be text, as {column.type} is a text column: quote it (got {_show(value)})" + return None diff --git a/model2data/metrics/columns.py b/model2data/metrics/columns.py new file mode 100644 index 0000000..bcb5933 --- /dev/null +++ b/model2data/metrics/columns.py @@ -0,0 +1,66 @@ +"""What kind of values a model's column holds, as the metrics spec reads it. + +The kinds are the model spec's ("Generation hints"), answered by +`model2data.generate.kinds` so the two specs can never disagree: an enum is an +enum whatever its name contains, and is never numeric, boolean or temporal. +Within numeric, an integer and a decimal are told apart because they are cast +differently in SQL; within temporal, a date and a timestamp, for the same +reason. +""" + +from __future__ import annotations + +from typing import Literal, Optional + +from model2data.generate import kinds +from model2data.model.types import Column, Model + +ColumnKind = Literal["enum", "boolean", "integer", "decimal", "date", "timestamp", "text"] + + +def column_kind(model: Model, column: Column) -> ColumnKind: + if model.enum_for(column.type) is not None: + return "enum" + if kinds.is_boolean_type(column.type): + return "boolean" + if kinds.is_integer_type(column.type): + return "integer" + if kinds.is_decimal_type(column.type): + return "decimal" + temporal = kinds.temporal_kind(column.type) + if temporal is not None: + return temporal + return "text" + + +def is_numeric(kind: ColumnKind) -> bool: + return kind in ("integer", "decimal") + + +def is_temporal(kind: ColumnKind) -> bool: + return kind in ("date", "timestamp") + + +def find_column(model: Model, path: str) -> tuple[Optional[str], Optional[Column]]: + """`(table key, column)` a column path names; the column is None when the table has + no such column, and both are None when no table matches.""" + table_key, _, name = path.rpartition(".") + table = model.tables.get(table_key) + if table is None: + return None, None + return table_key, table.columns.get(name) + + +# The SQL type each kind is read as, in the known values and in the dbt tests. +# DuckDB and Postgres both read every one of them. A decimal is an exact +# decimal rather than a double, so a sum is the same whatever order the rows are +# added in -- which is what keeps a known value byte-identical run after run. +SQL_TYPES: dict[str, str] = { + "enum": "varchar", + "text": "varchar", + "boolean": "boolean", + "integer": "bigint", + "decimal": "decimal(38, 9)", + "date": "date", + "timestamp": "timestamp", +} diff --git a/model2data/metrics/dbt.py b/model2data/metrics/dbt.py new file mode 100644 index 0000000..9b15396 --- /dev/null +++ b/model2data/metrics/dbt.py @@ -0,0 +1,86 @@ +"""One singular dbt test per metric: its value over the project's models is its known value. + +`write_metric_tests` writes `data-tests/metrics/metric_.sql` into a +generated project (`data-tests` is the project's `test-paths`). Each test +computes the metric over the staging models (`stg_`), with the same SQL +the known values were computed with (`model2data.metrics.sql`), and returns a +row -- failing -- unless the result is within the tolerance of the value in +`metric_values.json`. So `dbt build` proves that the metric's logic, run by +the warehouse over the project's own models, gives the number the run says +it should. + +The tolerance is `0.000001 + 0.000000001 * |known value|`: the known value is +rounded to 6 decimal places, and a warehouse may add a column of doubles in +another order than DuckDB did. A known value of null passes only when the +metric is null too. +""" + +from __future__ import annotations + +from decimal import Decimal +from pathlib import Path +from typing import Optional + +from model2data.metrics.semantic import SemanticModel +from model2data.metrics.sql import scalar +from model2data.metrics.values import KnownValues, Number + +ABSOLUTE_TOLERANCE = Decimal("0.000001") +RELATIVE_TOLERANCE = Decimal("0.000000001") +TEST_DIRECTORY = Path("data-tests") / "metrics" + + +def tolerance(value: Number) -> Decimal: + return ABSOLUTE_TOLERANCE + RELATIVE_TOLERANCE * abs(Decimal(value)) + + +def _number(value: Number) -> str: + return format(Decimal(value), "f") + + +def metric_test_sql(semantic: SemanticModel, name: str, expected: Optional[Number]) -> str: + """The singular test for metric `name`, given its known value.""" + metric = semantic.metrics[name] + + def relation(table: str) -> str: + return f"{{{{ ref('stg_{semantic.entities[table].name}') }}}}" + + value_sql = scalar(semantic, name, relation).replace("\n", "\n ") + label = metric.label.replace("\n", " ") + if expected is None: + header = ( + f"-- model2data metric `{name}` ({label}): its known value in metric_values.json is\n" + "-- null (no row to aggregate, or a division by zero), so it must be null here too.\n" + ) + check = "value is not null" + else: + slack = tolerance(expected) + header = ( + f"-- model2data metric `{name}` ({label}): its value over the staging models must be\n" + f"-- its known value in metric_values.json, {_number(expected)}, within " + f"{_number(slack)}.\n" + ) + check = f"value is null or abs(value - {_number(expected)}) > {_number(slack)}" + return ( + f"{header}" + "with actual as (\n" + f" select {value_sql} as value\n" + ")\n" + "select value as actual_value\n" + "from actual\n" + f"where {check}\n" + ) + + +def write_metric_tests(dest: Path, semantic: SemanticModel, values: KnownValues) -> list[Path]: + """One test per metric under `dest/data-tests/metrics/`, in metric order; the paths.""" + directory = dest / TEST_DIRECTORY + directory.mkdir(parents=True, exist_ok=True) + written = [] + for name in semantic.metrics: + path = directory / f"metric_{name}.sql" + path.write_text( + metric_test_sql(semantic, name, values.values[name].value), encoding="utf-8" + ) + written.append(path) + return written diff --git a/model2data/metrics/expression.py b/model2data/metrics/expression.py new file mode 100644 index 0000000..e8688c7 --- /dev/null +++ b/model2data/metrics/expression.py @@ -0,0 +1,209 @@ +"""A derived metric's `expression`: arithmetic over metric names and numbers. + +This is the one place the metrics spec encodes something in a string, so it is +kept as small as a grammar can be and read with a parser of its own, never +`eval`: + + expression := term (("+" | "-") term)* + term := factor (("*" | "/") factor)* + factor := ("+" | "-") factor | NUMBER | NAME | "(" expression ")" + NAME := [a-z][a-z0-9_]* a metric + NUMBER := [0-9]+ ("." [0-9]+)? + +Whitespace between tokens is ignored. Operators keep the usual precedence and +associate to the left (`a - b - c` is `(a - b) - c`). Division by zero is +null, as a ratio's is, and so is any arithmetic with a null in it. +""" + +from __future__ import annotations + +import re +from collections.abc import Callable, Mapping +from dataclasses import dataclass +from decimal import Decimal, InvalidOperation +from typing import Optional, Union + +_TOKEN = re.compile( + r"\s*(?:(?P[0-9]+(?:\.[0-9]+)?)|(?P[a-z][a-z0-9_]*)|(?P[-+*/()]))" +) + + +class ExpressionError(ValueError): + """An expression that does not parse; the message says where.""" + + +@dataclass(frozen=True) +class Number: + value: Decimal + + +@dataclass(frozen=True) +class Name: + name: str + + +@dataclass(frozen=True) +class Negate: + operand: Node + + +@dataclass(frozen=True) +class BinaryOp: + op: str + left: Node + right: Node + + +Node = Union[Number, Name, Negate, BinaryOp] + + +def _tokens(text: str) -> list[tuple[str, str, int]]: + """`(kind, text, position)` for each token; position is 1-based, for messages.""" + out: list[tuple[str, str, int]] = [] + position = 0 + while position < len(text): + if text[position:].strip() == "": + break + match = _TOKEN.match(text, position) + if match is None or match.end() == position: + offset = len(text[position:]) - len(text[position:].lstrip()) + char = text[position + offset] + raise ExpressionError( + f"unexpected {char!r} at character {position + offset + 1}: an expression " + "holds metric names, numbers, + - * / and parentheses" + ) + kind = match.lastgroup or "op" + out.append((kind, match.group(kind), match.start(kind) + 1)) + position = match.end() + return out + + +class _Parser: + def __init__(self, text: str): + self.tokens = _tokens(text) + self.index = 0 + + def peek(self) -> Optional[tuple[str, str, int]]: + return self.tokens[self.index] if self.index < len(self.tokens) else None + + def take(self) -> tuple[str, str, int]: + token = self.tokens[self.index] + self.index += 1 + return token + + def expression(self) -> Node: + node = self.term() + while (token := self.peek()) is not None and token[1] in ("+", "-"): + self.take() + node = BinaryOp(token[1], node, self.term()) + return node + + def term(self) -> Node: + node = self.factor() + while (token := self.peek()) is not None and token[1] in ("*", "/"): + self.take() + node = BinaryOp(token[1], node, self.factor()) + return node + + def factor(self) -> Node: + token = self.peek() + if token is None: + raise ExpressionError("the expression ends where a metric name or number should be") + kind, text, position = self.take() + if text in ("+", "-"): + operand = self.factor() + return Negate(operand) if text == "-" else operand + if kind == "number": + return Number(Decimal(text)) + if kind == "name": + return Name(text) + if text == "(": + node = self.expression() + closing = self.peek() + if closing is None or closing[1] != ")": + raise ExpressionError(f"the parenthesis at character {position} is never closed") + self.take() + return node + raise ExpressionError( + f"unexpected {text!r} at character {position}: a metric name or number goes here" + ) + + +def parse(text: str) -> Node: + """The expression's tree, or `ExpressionError` saying what is wrong and where.""" + parser = _Parser(text) + if not parser.tokens: + raise ExpressionError("the expression is empty") + node = parser.expression() + rest = parser.peek() + if rest is not None: + raise ExpressionError( + f"unexpected {rest[1]!r} at character {rest[2]}: an operator goes between " + "two metric names or numbers" + ) + return node + + +def names(node: Node) -> list[str]: + """The metric names an expression uses, each once, in the order they appear.""" + found: dict[str, None] = {} + + def walk(current: Node) -> None: + if isinstance(current, Name): + found[current.name] = None + elif isinstance(current, Negate): + walk(current.operand) + elif isinstance(current, BinaryOp): + walk(current.left) + walk(current.right) + + walk(node) + return list(found) + + +def evaluate(node: Node, values: Mapping[str, Optional[Decimal]]) -> Optional[Decimal]: + """The expression's value given each metric's, with SQL's nulls: null in, null out, + and division by zero is null.""" + if isinstance(node, Number): + return node.value + if isinstance(node, Name): + return values[node.name] + if isinstance(node, Negate): + operand = evaluate(node.operand, values) + return None if operand is None else -operand + left = evaluate(node.left, values) + right = evaluate(node.right, values) + if left is None or right is None: + return None + if node.op == "+": + return left + right + if node.op == "-": + return left - right + if node.op == "*": + return left * right + if right == 0: + return None + try: + return left / right + except InvalidOperation: # pragma: no cover - 0/0 is caught above + return None + + +def to_sql(node: Node, render_name: Callable[[str], str]) -> str: + """The expression as SQL, each metric name replaced by `render_name(name)`. + + Every operation is parenthesised, so the SQL means what the tree means + whatever the reader's precedence rules, and a division divides by + `nullif(..., 0)`, so dividing by zero is null rather than an error. + """ + if isinstance(node, Number): + return format(node.value, "f") + if isinstance(node, Name): + return render_name(node.name) + if isinstance(node, Negate): + return f"(-{to_sql(node.operand, render_name)})" + left = to_sql(node.left, render_name) + right = to_sql(node.right, render_name) + if node.op == "/": + return f"({left} / nullif({right}, 0))" + return f"({left} {node.op} {right})" diff --git a/model2data/metrics/graph.py b/model2data/metrics/graph.py new file mode 100644 index 0000000..586445d --- /dev/null +++ b/model2data/metrics/graph.py @@ -0,0 +1,151 @@ +"""How a metric's table reaches the columns its filters and time name: many-to-one joins. + +A metric is aggregated over the rows of one table. A filter or a time column on +another table is reached by following foreign keys from child to parent -- +`order_items.order_id -> orders.id -> orders.customer_id -> customers.id` -- +because each step joins a row to at most one parent row, so joining never +duplicates the rows being aggregated. Going the other way (parent to children) +would, so it is never taken. + +A table is reachable when exactly one path of such steps leads to it. Two +paths (`orders.billed_to` and `orders.shipped_to` both to `customers`) leave it +unclear which customer a filter means, which the metrics spec makes an error +rather than a guess. +""" + +from __future__ import annotations + +from collections import deque +from dataclasses import dataclass + +from model2data.generate import kinds +from model2data.model.types import Model + +Path = tuple["Join", ...] + + +@dataclass(frozen=True) +class Join: + """One many-to-one step: rows of `child` to the row of `parent` their key names.""" + + child: str + child_columns: tuple[str, ...] + parent: str + parent_columns: tuple[str, ...] + + def __str__(self) -> str: + left = ", ".join(f"{self.child}.{column}" for column in self.child_columns) + right = ", ".join(f"{self.parent}.{column}" for column in self.parent_columns) + return f"{left} -> {right}" + + +def describe(path: Path) -> str: + """A path as `orders.customer_id -> customers.id`, steps joined by `, then `.""" + return ", then ".join(str(step) for step in path) if path else "the table itself" + + +class Graph: + """The many-to-one steps of a model, child to parent, in document order. + + A column's `references` comes before the table's `foreign_keys`, columns in + document order, so the first path found is the one a reader of the model + would find first. + """ + + def __init__(self, model: Model): + self.model = model + self.steps: dict[str, list[Join]] = {key: [] for key in model.tables} + for key, table in model.tables.items(): + for name, column in table.columns.items(): + if column.references is not None and column.references.table in model.tables: + self.steps[key].append( + Join( + key, + (name,), + column.references.table, + (column.references.column,), + ) + ) + for fk in table.foreign_keys: + if fk.references in model.tables: + self.steps[key].append( + Join(key, tuple(fk.columns), fk.references, tuple(fk.to_columns)) + ) + + def _reaching(self, target: str) -> set[str]: + """Every table with a path to `target`, `target` included.""" + parents_of: dict[str, list[str]] = {} + for steps in self.steps.values(): + for step in steps: + parents_of.setdefault(step.parent, []).append(step.child) + seen = {target} + queue = deque([target]) + while queue: + for child in parents_of.get(queue.popleft(), []): + if child not in seen: + seen.add(child) + queue.append(child) + return seen + + def paths(self, start: str, target: str, limit: int = 2) -> list[Path]: + """Up to `limit` paths from `start` to `target`, each visiting a table once. + + The empty path when they are the same table. Only tables that can reach + `target` are entered, so the search never wanders, and it stops at + `limit` (two is enough to know a path is not the only one). + """ + if start == target: + return [()] + reaching = self._reaching(target) + if start not in reaching: + return [] + found: list[Path] = [] + + def walk(table: str, path: list[Join], visited: set[str]) -> None: + for step in self.steps.get(table, []): + if len(found) >= limit: + return + if step.parent in visited or step.parent not in reaching: + continue + if step.parent == target: + found.append((*path, step)) + continue + walk(step.parent, [*path, step], visited | {step.parent}) + + walk(start, [], {start}) + return found + + def first_time_column(self, start: str) -> tuple[str, Path] | None: + """`(column path, join path)` of the default time of a metric on `start`. + + The table's own first date or timestamp column; else, nearest first and + in document order, the first date or timestamp column of a table it + reaches along exactly one path. None when there is no such column. + """ + own = self.temporal_columns(start) + if own: + return f"{start}.{own[0]}", () + seen = {start} + queue = deque([start]) + while queue: + table = queue.popleft() + for step in self.steps.get(table, []): + if step.parent in seen: + continue + seen.add(step.parent) + queue.append(step.parent) + columns = self.temporal_columns(step.parent) + if not columns: + continue + paths = self.paths(start, step.parent) + if len(paths) == 1: + return f"{step.parent}.{columns[0]}", paths[0] + return None + + def temporal_columns(self, table: str) -> list[str]: + """The date and timestamp columns of `table`, in document order.""" + found = [] + for name, column in self.model.tables[table].columns.items(): + if self.model.enum_for(column.type) is None and kinds.is_temporal_type(column.type): + found.append(name) + return found diff --git a/model2data/metrics/infer.py b/model2data/metrics/infer.py new file mode 100644 index 0000000..231e5c9 --- /dev/null +++ b/model2data/metrics/infer.py @@ -0,0 +1,113 @@ +"""The metrics a model implies on its own, without a metrics file. + +They are named the way model2data studio's semantic-layer export names its +metrics (`api/modelling/semantic.py` there), so the studio can move onto this +module without renaming a metric anyone already uses: + +- one simple metric for each column with a `measure`, named + `
_`, with `_` appended when it is not `sum` + (`orders_total_amount`, `order_items_unit_price_average`); +- one row count for each fact, named `
_count`. A fact is a table whose + `role` is `fact`, or which has no `role` and at least one measure; the + studio's classifier decides the second case from the data too, which the + engine does not have here, and a table with a measure is the case it decides + as a fact. + +A name is made of lower-case letters, digits and single underscores, starts +with a letter (else `c_` is put in front) and is at least two characters; a +name already handed out gets `_2`, `_3`. Columns with `measure: false`, or no +`measure`, imply nothing: the studio also infers measures for facts from the +data, which the engine leaves to the metrics file. +""" + +from __future__ import annotations + +import re + +from model2data.metrics.types import Metric +from model2data.model.types import Model + +_AGG_WORDS = { + "sum": "Sum", + "average": "Average", + "min": "Smallest", + "max": "Largest", + "median": "Median", + "count": "Count", + "count_distinct": "Distinct count", +} + + +def metric_name(text: str) -> str: + """`text` as a metric name: lower case, digits and single underscores, starting with a + letter, at least two characters, not ending in an underscore.""" + name = re.sub(r"_+", "_", re.sub(r"[^a-z0-9_]+", "_", text.lower())).strip("_") + if not name or not name[0].isalpha(): + name = f"c_{name}" if name else "unnamed" + return name if len(name) >= 2 else f"{name}_x" + + +class _Names: + """Names handed out once each, the second taker of a name getting `_2`.""" + + def __init__(self) -> None: + self.taken: set[str] = set() + + def take(self, text: str) -> str: + base = metric_name(text) + name, suffix = base, 1 + while name in self.taken: + suffix += 1 + name = f"{base}_{suffix}" + self.taken.add(name) + return name + + +def _label(text: str) -> str: + words = text.replace("_", " ").strip() + return words[:1].upper() + words[1:] + + +def aggregation_of(measure: object) -> str | None: + """How a column's `measure` aggregates: `True` is `sum`; None when it is no measure.""" + if measure is True: + return "sum" + if isinstance(measure, str): + return measure + return None + + +def inferred_metrics(model: Model) -> dict[str, Metric]: + """Every metric the model implies, by name, tables and columns in document order.""" + names = _Names() + out: dict[str, Metric] = {} + for key, table in model.tables.items(): + measured = False + for column_name, column in table.columns.items(): + aggregation = aggregation_of(column.measure) + if aggregation is None: + continue + measured = True + suffix = "" if aggregation == "sum" else f"_{aggregation}" + name = names.take(f"{key}_{column_name}{suffix}") + label = f"{_label(key)} {column_name.replace('_', ' ')}" + if aggregation != "sum": + label += f" ({_AGG_WORDS[aggregation].lower()})" + out[name] = Metric( + kind="simple", + measure=f"{key}.{column_name}", + agg=aggregation, + label=label, + description=f"{_AGG_WORDS[aggregation]} of {key}.{column_name}.", + inferred=True, + ) + if table.role == "fact" or (table.role is None and measured): + name = names.take(f"{key}_count") + out[name] = Metric( + kind="count", + count=key, + label=f"{_label(key)} count", + description=f"Rows of {key}.", + inferred=True, + ) + return out diff --git a/model2data/metrics/ossie.py b/model2data/metrics/ossie.py new file mode 100644 index 0000000..66b2398 --- /dev/null +++ b/model2data/metrics/ossie.py @@ -0,0 +1,310 @@ +"""A semantic model as an Apache Ossie (Open Semantic Interchange) 0.1.1 document. + +Ossie 0.1.1 is read from github.com/apache/ossie at the `osi-0.1.1-rc1` tag +(`core-spec/spec.md` and `osi-schema.json`; its `version.txt` says 0.1.1): no +final 0.1.1 tag exists yet. 0.2.0 is an unreleased draft that changes the +format, so this module does not write it. The mapping: + +| model2data | Ossie 0.1.1 | +|---|---| +| the model | one `semantic_model`, named after it, with its description | +| a table | a `dataset` named by its dbt name; `source` the staging model the generated dbt project builds (`staging.stg_` by default) | +| its primary key, `unique` columns and `unique` keys | `primary_key`, `unique_keys` | +| a column | a `field` whose expression is the column; a dimension gets `dimension: {is_time: ...}` and its label | +| a foreign key | a `relationship` from the many side to the one side, `from_columns` paired with `to_columns` | +| a metric | a model-level `metric` with one `ANSI_SQL` expression over `dataset.field` | +| `description`, `ai_context` | `description`, `ai_context` (a string) | + +A metric's filter becomes `CASE WHEN THEN END` inside its +aggregate, a ratio `() / NULLIF(, 0)`, a derived +metric its expression with each input written out in full, and a row count +`COUNT()`, so the expression names the dataset whose rows it +counts. + +What Ossie 0.1.1 has no place for -- a metric's `label`, `format` and time +column, a table's `role` and `grain`, an enum's members, a one-to-one +relationship -- is carried in a `custom_extensions` entry of vendor `COMMON`, +whose `data` is a JSON object under the key `model2data`, and listed in the +export's lossiness report, as is anything a reader could take another way (a +filter that reaches its table through another, since Ossie leaves the join +path to the reader, or a row count of a table without a one-column key). +""" + +from __future__ import annotations + +import json +import textwrap +from collections.abc import Callable +from dataclasses import dataclass, field +from typing import Any, Optional + +import yaml + +from model2data.metrics.semantic import Entity, SemanticModel +from model2data.metrics.sql import ansi, identifier + +OSSIE_VERSION = "0.1.1" + + +def default_source(entity: Entity) -> str: + """The relation a dataset reads: the staging model of the generated dbt project.""" + return f"staging.stg_{entity.name}" + + +@dataclass(frozen=True) +class Loss: + """Something the export could not say in Ossie 0.1.1 itself. + + `subject` is what it is about (`metric revenue`, `dataset orders`, `field + orders.status`), `item` which part (`label`, `time`, ...), and `reason` what + happened to it. + """ + + subject: str + item: str + reason: str + + def __str__(self) -> str: + return f"{self.subject}: {self.item}: {self.reason}" + + +@dataclass +class OssieExport: + document: dict[str, Any] + lossiness: list[Loss] = field(default_factory=list) + + def to_yaml(self) -> str: + """The document as YAML, the lossiness report as comments above it.""" + name = self.document["semantic_model"][0]["name"] + lines = [ + f"# Apache Ossie (Open Semantic Interchange) {OSSIE_VERSION}: the semantic model of " + f"{name},", + "# written by model2data from the model and its metrics.", + ] + if self.lossiness: + lines.append("#") + lines.append("# Not expressible in Ossie 0.1.1 itself (see custom_extensions):") + for loss in self.lossiness: + lines.extend( + textwrap.wrap( + str(loss), + width=100, + initial_indent="# - ", + subsequent_indent="# ", + break_on_hyphens=False, + ) + ) + body = yaml.dump( + self.document, + Dumper=_Dumper, + sort_keys=False, + allow_unicode=True, + default_flow_style=False, + # One line per expression, however long: a folded SQL expression is + # valid YAML but hard to read and to diff. + width=1_000_000, + ) + return "\n".join(lines) + "\n" + body + + +class _Quoted(str): + """A string written double-quoted: the version, which must read back as text.""" + + +class _Dumper(yaml.SafeDumper): + pass + + +def _quoted(dumper: yaml.SafeDumper, value: _Quoted) -> yaml.Node: + return dumper.represent_scalar("tag:yaml.org,2002:str", str(value), style='"') + + +def _flow_list(dumper: yaml.SafeDumper, value: _FlowList) -> yaml.Node: + return dumper.represent_sequence("tag:yaml.org,2002:seq", list(value), flow_style=True) + + +class _FlowList(list): + """A key's columns, written `[a, b]` as the Ossie examples write them.""" + + +_Dumper.add_representer(_Quoted, _quoted) +_Dumper.add_representer(_FlowList, _flow_list) + + +def _expression(text: str) -> dict[str, Any]: + return {"dialects": [{"dialect": "ANSI_SQL", "expression": text}]} + + +def _extension(data: dict[str, Any]) -> list[dict[str, str]]: + return [ + { + "vendor_name": "COMMON", + "data": json.dumps({"model2data": data}, ensure_ascii=False), + } + ] + + +def to_ossie( + semantic: SemanticModel, *, source: Optional[Callable[[Entity], str]] = None +) -> OssieExport: + """The Ossie 0.1.1 document of `semantic`, and what it could not express. + + `source` names the relation each dataset reads; by default the staging model + of the dbt project `model2data generate` writes, `staging.stg_`. + """ + source = source or default_source + losses: list[Loss] = [] + model: dict[str, Any] = {"name": semantic.name} + if semantic.description: + model["description"] = semantic.description.strip() + enum_fields: list[str] = [] + model["datasets"] = [ + _dataset(semantic, entity, source, losses, enum_fields) + for entity in semantic.entities.values() + ] + if enum_fields: + losses.append( + Loss( + f"{'field' if len(enum_fields) == 1 else 'fields'} {', '.join(enum_fields)}", + "values", + "Ossie fields have no list of allowed values; the enum's members are carried " + "in custom_extensions", + ) + ) + relationships = [] + for relationship in semantic.relationships: + entry: dict[str, Any] = { + "name": relationship.name, + "from": semantic.entities[relationship.from_table].name, + "to": semantic.entities[relationship.to_table].name, + "from_columns": _FlowList(relationship.from_columns), + "to_columns": _FlowList(relationship.to_columns), + } + if relationship.one_to_one: + entry["custom_extensions"] = _extension({"one_to_one": True}) + losses.append( + Loss( + f"relationship {relationship.name}", + "one_to_one", + "Ossie relationships are many-to-one; that it is one-to-one is in " + "custom_extensions", + ) + ) + relationships.append(entry) + if relationships: + model["relationships"] = relationships + carried: dict[str, list[str]] = {} + metrics = [_metric(semantic, name, losses, carried) for name in semantic.metrics] + if metrics: + model["metrics"] = metrics + for item, reason in _CARRIED.items(): + if carried.get(item): + subject = "metric" if len(carried[item]) == 1 else "metrics" + losses.append( + Loss( + f"{subject} {', '.join(carried[item])}", + item, + f"{reason}; carried in custom_extensions", + ) + ) + document = {"version": _Quoted(OSSIE_VERSION), "semantic_model": [model]} + return OssieExport(document, losses) + + +def _dataset( + semantic: SemanticModel, + entity: Entity, + source: Callable[[Entity], str], + losses: list[Loss], + enum_fields: list[str], +) -> dict[str, Any]: + table = semantic.model.tables[entity.table] + dataset: dict[str, Any] = {"name": entity.name, "source": source(entity)} + if entity.primary_key: + dataset["primary_key"] = _FlowList(entity.primary_key) + if entity.unique_keys: + dataset["unique_keys"] = [_FlowList(key) for key in entity.unique_keys] + if entity.description: + dataset["description"] = entity.description.strip() + dimensions = {d.column: d for d in semantic.dimensions if d.table == entity.table} + fields = [] + for name, column in table.columns.items(): + item: dict[str, Any] = {"name": name, "expression": _expression(identifier(name))} + dimension = dimensions.get(name) + if dimension is not None: + item["dimension"] = {"is_time": dimension.kind == "time"} + item["label"] = dimension.label + description = dimension.description if dimension is not None else column.description + if description: + item["description"] = description.strip() + if dimension is not None and dimension.members is not None: + item["custom_extensions"] = _extension({"values": list(dimension.members)}) + enum_fields.append(f"{entity.name}.{name}") + fields.append(item) + if fields: + dataset["fields"] = fields + extra: dict[str, Any] = {} + if entity.role: + extra["role"] = entity.role + if entity.grain: + extra["grain"] = list(entity.grain) + if extra: + dataset["custom_extensions"] = _extension(extra) + losses.append( + Loss( + f"dataset {entity.name}", + " and ".join(extra), + "Ossie datasets have no " + " or ".join(extra) + "; carried in custom_extensions", + ) + ) + return dataset + + +def _metric( + semantic: SemanticModel, name: str, losses: list[Loss], carried: dict[str, list[str]] +) -> dict[str, Any]: + metric = semantic.metrics[name] + entry: dict[str, Any] = {"name": name, "expression": _expression(ansi(semantic, name))} + if metric.description: + entry["description"] = metric.description.strip() + if metric.ai_context: + entry["ai_context"] = metric.ai_context.strip() + extra: dict[str, Any] = {"label": metric.label} + if metric.format: + extra["format"] = metric.format + if metric.time: + extra["time"] = metric.time + for item in extra: + carried.setdefault(item, []).append(name) + subject = f"metric {name}" + for table, path in metric.joins.items(): + if len(path) > 1: + via = ", ".join(semantic.entities[step.parent].name for step in path[:-1]) + losses.append( + Loss( + subject, + "join path", + f"reaches {semantic.entities[table].name} through {via}; Ossie leaves the " + "join path to the reader, which finds it from the relationships", + ) + ) + if metric.kind == "count" and metric.table is not None: + if len(semantic.entities[metric.table].primary_key) != 1: + losses.append( + Loss( + subject, + "row count", + f"{semantic.entities[metric.table].name} has no one-column primary key, so " + "COUNT(*) names no dataset: a reader cannot tell whose rows it counts", + ) + ) + entry["custom_extensions"] = _extension(extra) + return entry + + +# What an Ossie metric has no place for, as the lossiness report says it. +_CARRIED = { + "label": "Ossie metrics have no label", + "format": "Ossie metrics have no format (`percent` is a fraction: 0.6 is shown as 60%)", + "time": "Ossie metrics name no time dimension (the column is marked is_time on its dataset)", +} diff --git a/model2data/metrics/reader.py b/model2data/metrics/reader.py new file mode 100644 index 0000000..e11ffc2 --- /dev/null +++ b/model2data/metrics/reader.py @@ -0,0 +1,243 @@ +"""Reading a metrics file from a file or from text, and checking it against its model.""" + +from __future__ import annotations + +import copy +import json +import os +from collections.abc import Mapping, Sequence +from pathlib import Path +from typing import Any, Optional, Union + +from model2data.metrics.check import ( + all_metrics, + check_against, + check_document, + check_references, +) +from model2data.metrics.types import ( + KIND_KEYS, + Condition, + DimensionOverride, + Metric, + Metrics, + Ratio, + Where, +) +from model2data.model._yaml import locate_issues, parse_yaml +from model2data.model.errors import Issue, ModelError +from model2data.model.reader import read_text +from model2data.model.types import Model + +Source = Union[str, "os.PathLike[str]"] + +# The suffixes a metrics file is recognised by, beside `.model2data.yml`. +SUFFIXES = (".metrics.yml", ".metrics.yaml", ".metrics.json") + + +class MetricsError(ModelError): + """A metrics file that does not conform, with every issue found in it. + + A `ModelError`, so code that reports a model's issues reports these the same way. + """ + + def __init__(self, issues: Sequence[Issue], warnings: Sequence[Issue] = ()): + super().__init__(issues, warnings) + count = len(self.issues) + heading = "1 issue" if count == 1 else f"{count} issues" + lines = "\n".join(f" - {issue}" for issue in self.issues) + ValueError.__init__(self, f"The metrics file has {heading}:\n{lines}") + + +def is_metrics_file(path: Union[str, Path]) -> bool: + """Whether a file's name says it is a metrics file (`*.metrics.yml`, `.yaml`, `.json`).""" + return str(path).lower().endswith(SUFFIXES) + + +def metrics_stem(path: Path) -> str: + """`coffee.metrics.yml` -> `coffee`.""" + name = path.name + for suffix in SUFFIXES: + if name.lower().endswith(suffix): + return name[: -len(suffix)] + return path.stem + + +def sibling_model(path: Path) -> Optional[Path]: + """The model beside a metrics file, by stem: `coffee.model2data.yml` (or `.yaml`, + `.json`, or `coffee.dbml`) next to `coffee.metrics.yml`; None when there is none.""" + stem = metrics_stem(path) + for suffix in (".model2data.yml", ".model2data.yaml", ".model2data.json", ".dbml"): + candidate = path.with_name(stem + suffix) + if candidate.is_file(): + return candidate + return None + + +def _as_path(source: Source) -> Optional[Path]: + if isinstance(source, os.PathLike): + return Path(source) + if "\n" in source or len(source) > 4096: + return None + path = Path(source) + if path.suffix.lower() in (".yml", ".yaml", ".json") and path.is_file(): + return path + return None + + +def _parse(source: Source) -> tuple[str, Any]: + path = _as_path(source) + try: + if path is not None: + text = read_text(path) + is_json = path.suffix.lower() == ".json" + else: + text = str(source) + is_json = text.lstrip().startswith("{") + if is_json: + try: + return text, json.loads(text) + except json.JSONDecodeError as error: + raise ModelError( + [Issue("", f"not valid JSON: {error.msg} (column {error.colno})", error.lineno)] + ) from None + return text, parse_yaml(text) + except ModelError as error: + raise MetricsError(error.issues) from None + + +def load( + source: Source, + model: Optional[Model] = None, + *, + model_name: Optional[str] = None, +) -> Metrics: + """Read a metrics file from a file, or the text of one, and check it conforms. + + `source` is a path (`coffee.metrics.yml`, `.json`) or the document's text, + YAML under the model spec's YAML profile, or JSON. With `model`, the file is + also checked against it: every table and column it names, every filter and + time path. `model_name` is the name a model without `name` goes by. Raises + `MetricsError` listing every error; the warnings of a file that conforms are + on the returned `Metrics.warnings`. + """ + text, document = _parse(source) + return from_dict(document, model, model_name=model_name, text=text) + + +def from_dict( + document: Any, + model: Optional[Model] = None, + *, + model_name: Optional[str] = None, + text: Optional[str] = None, +) -> Metrics: + """The metrics a parsed document describes, as `load` reads them; `text`, when given, + is the document's source, and puts a line on each issue.""" + issues = check_document(document) + metrics: Optional[Metrics] = None + if not any(issue.is_error for issue in issues): + metrics = _build(document) + if model is not None: + issues += check_against(metrics, model, model_name=model_name) + elif not metrics.infer: + issues += check_references(metrics, all_metrics(metrics, None)) + if text is not None: + issues = locate_issues(text, issues) + errors = [issue for issue in issues if issue.is_error] + warnings = [issue for issue in issues if not issue.is_error] + if errors or metrics is None: + raise MetricsError(errors, warnings) + metrics.warnings = warnings + return metrics + + +def validate( + source: Source, model: Optional[Model] = None, *, model_name: Optional[str] = None +) -> list[Issue]: + """Every issue in a metrics file, errors and warnings; no errors means it conforms.""" + try: + metrics = load(source, model, model_name=model_name) + except ModelError as error: + return [*error.issues, *error.warnings] + return list(metrics.warnings) + + +# --------------------------------------------------------------------------- +# Building the typed value from a document that passed `check_document` +# --------------------------------------------------------------------------- +def _extensions(mapping: Mapping) -> dict[str, Any]: + return { + key: copy.deepcopy(value) + for key, value in mapping.items() + if isinstance(key, str) and key.startswith("x-") + } + + +def _build(document: Mapping) -> Metrics: + return Metrics( + version=document["model2data-metrics"], + model=document["model"], + metrics={name: _metric(metric) for name, metric in (document.get("metrics") or {}).items()}, + dimensions={ + path: _dimension(value) for path, value in (document.get("dimensions") or {}).items() + }, + infer=document.get("infer", True), + extensions=_extensions(document), + ) + + +def _metric(data: Mapping) -> Metric: + key = next(key for key in KIND_KEYS if key in data) + ratio = data.get("ratio") + return Metric( + kind=KIND_KEYS[key], # type: ignore[arg-type] + measure=data.get("measure"), + agg=data.get("agg"), + count=data.get("count"), + ratio=Ratio(ratio["numerator"], ratio["denominator"], _extensions(ratio)) + if ratio is not None + else None, + expression=data.get("expression"), + label=data.get("label"), + description=data.get("description"), + format=data.get("format"), + ai_context=data.get("ai_context"), + time=data.get("time"), + where=_where(data["where"]) if "where" in data else None, + extensions=_extensions(data), + ) + + +def _where(data: Mapping, any_: bool = False) -> Where: + terms: list[Union[Condition, Where]] = [] + for key, value in data.items(): + if key in ("any", "all"): + terms.append(Where([_where(item) for item in value], any=key == "any")) + elif "." in key: + terms.append(_condition(key, value)) + return Where(terms, any=any_, extensions=_extensions(data)) + + +def _condition(column: str, value: Any) -> Condition: + if isinstance(value, list): + return Condition(column, {"in": list(value)}, written="list") + if isinstance(value, Mapping): + operators = { + key: list(item) if isinstance(item, list) else item + for key, item in value.items() + if not key.startswith("x-") + } + return Condition(column, operators, extensions=_extensions(value)) + return Condition(column, {"eq": value}, written="value") + + +def _dimension(value: Any) -> DimensionOverride: + if isinstance(value, bool): + return DimensionOverride(offered=value) + return DimensionOverride( + offered=True, + label=value.get("label"), + description=value.get("description"), + extensions=_extensions(value), + ) diff --git a/model2data/metrics/semantic.py b/model2data/metrics/semantic.py new file mode 100644 index 0000000..80f4634 --- /dev/null +++ b/model2data/metrics/semantic.py @@ -0,0 +1,336 @@ +"""One semantic representation of a model and its metrics, which every exporter reads. + +`resolve(model, metrics)` turns a model and its metrics file (or none: then +the metrics are the ones the model implies) into a `SemanticModel`: + +- **entities**, one per table: its keys, grain, role and description, and the + dbt name its seed and staging model go by (`stg_`); +- **relationships**, one per foreign key: many side to one side, the columns + paired in order; +- **dimensions**: by default every enum, boolean, date and timestamp column + that is not a key, a foreign key or a measure (dates and timestamps are + time dimensions whether keyed or not); `dimensions:` in the metrics file + adds a column (`true`, or a label) or takes one away (`false`); +- **measures**: every column with a `measure`, and how it aggregates; +- **metrics**: the file's metrics and the inferred ones it does not replace, + each resolved -- the table it aggregates, the aggregation, the join path to + every table its filter and time column are on, and its time column, the + default one filled in. + +The known values (`model2data.metrics.values`), the dbt tests +(`model2data.metrics.dbt`) and the Ossie export (`model2data.metrics.ossie`) +all read this and nothing else, so they cannot disagree about what a metric +is. model2data studio's semantic-layer export is meant to move onto it too. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Literal, Optional + +from model2data.dbt.naming import dbt_identifier +from model2data.metrics import expression as expr +from model2data.metrics.check import all_metrics, check_against +from model2data.metrics.columns import ColumnKind, column_kind, find_column, is_temporal +from model2data.metrics.graph import Graph, Join, Path +from model2data.metrics.infer import _label, _Names, aggregation_of +from model2data.metrics.reader import MetricsError +from model2data.metrics.types import Metric, Metrics, Where +from model2data.model.types import Model + + +@dataclass(frozen=True) +class Entity: + """A table as a business entity. `name` is its dbt name (`stg_` in the project).""" + + table: str + name: str + primary_key: tuple[str, ...] + unique_keys: tuple[tuple[str, ...], ...] + grain: Optional[tuple[str, ...]] + role: Optional[str] + description: Optional[str] + + +@dataclass(frozen=True) +class Relationship: + """A foreign key: rows of `from_table` (the many side) to one row of `to_table`.""" + + name: str + from_table: str + from_columns: tuple[str, ...] + to_table: str + to_columns: tuple[str, ...] + one_to_one: bool = False + + +@dataclass(frozen=True) +class Dimension: + """A column to group or filter by: `time` for a date or timestamp, else `categorical`.""" + + table: str + column: str + kind: Literal["categorical", "time"] + data_kind: ColumnKind + label: str + description: Optional[str] = None + members: Optional[tuple[str, ...]] = None + + @property + def path(self) -> str: + return f"{self.table}.{self.column}" + + +@dataclass(frozen=True) +class Measure: + table: str + column: str + agg: str + + +@dataclass +class ResolvedMetric: + """A metric with everything a consumer needs to compute it. + + For `simple` and `count`: `table` is aggregated -- `agg` over `column`, or + `count` over its rows -- after joining, along `joins`, every table its + `where` or `time` is on (by table key; the metric's own table is not in + it). `time` is the column path it is dated by, None for none. For `ratio` + and `derived`: `inputs` are the metrics it is computed from, `ratio` or + `node` how. + """ + + name: str + kind: Literal["simple", "count", "ratio", "derived"] + label: str + description: Optional[str] = None + format: Optional[str] = None + ai_context: Optional[str] = None + inferred: bool = False + table: Optional[str] = None + column: Optional[str] = None + column_kind: Optional[ColumnKind] = None + agg: Optional[str] = None + where: Optional[Where] = None + time: Optional[str] = None + time_kind: Optional[ColumnKind] = None + joins: dict[str, Path] = field(default_factory=dict) + inputs: tuple[str, ...] = () + numerator: Optional[str] = None + denominator: Optional[str] = None + node: Optional[expr.Node] = None + expression: Optional[str] = None + + +@dataclass +class SemanticModel: + name: str + description: Optional[str] + entities: dict[str, Entity] + relationships: list[Relationship] + dimensions: list[Dimension] + measures: list[Measure] + metrics: dict[str, ResolvedMetric] + model: Model = field(repr=False, compare=False) + + def simple_inputs(self, name: str) -> list[str]: + """The simple metrics and row counts `name` is computed from, itself if it is one, + each once, in the order they are first used.""" + found: dict[str, None] = {} + + def walk(current: str) -> None: + metric = self.metrics[current] + if metric.kind in ("simple", "count"): + found[current] = None + for dep in metric.inputs: + walk(dep) + + walk(name) + return list(found) + + +def resolve( + model: Model, metrics: Optional[Metrics] = None, *, model_name: Optional[str] = None +) -> SemanticModel: + """The semantic model of `model` and `metrics` (None: the inferred metrics only). + + `metrics` should be what `load(..., model)` returned; one that does not fit + the model raises `MetricsError`. + """ + if metrics is None: + metrics = Metrics(model=model.name or model_name or "model") + else: + issues = check_against(metrics, model, model_name=model_name) + errors = [issue for issue in issues if issue.is_error] + if errors: + raise MetricsError(errors) + graph = Graph(model) + return SemanticModel( + name=model.name or model_name or metrics.model, + description=model.description, + entities=_entities(model), + relationships=_relationships(graph), + dimensions=_dimensions(model, metrics), + measures=[ + Measure(key, name, agg) + for key, table in model.tables.items() + for name, column in table.columns.items() + if (agg := aggregation_of(column.measure)) is not None + ], + metrics={ + name: _resolve_metric(model, graph, name, metric) + for name, metric in all_metrics(metrics, model).items() + }, + model=model, + ) + + +def _entities(model: Model) -> dict[str, Entity]: + out = {} + for key, table in model.tables.items(): + unique: list[tuple[str, ...]] = [ + (name,) for name, column in table.columns.items() if column.unique + ] + unique += [tuple(k.columns) for k in table.keys if k.kind == "unique"] + out[key] = Entity( + table=key, + name=dbt_identifier(key), + primary_key=tuple(table.primary_key()), + unique_keys=tuple(unique), + grain=tuple(table.grain) if table.grain else None, + role=table.role, + description=table.description, + ) + return out + + +def _relationships(graph: Graph) -> list[Relationship]: + names = _Names() + out = [] + for steps in graph.steps.values(): + for step in steps: + out.append( + Relationship( + name=names.take( + f"{dbt_identifier(step.child)}_{'_'.join(step.child_columns)}" + f"_to_{dbt_identifier(step.parent)}" + ), + from_table=step.child, + from_columns=step.child_columns, + to_table=step.parent, + to_columns=step.parent_columns, + one_to_one=_one_to_one(graph.model, step), + ) + ) + return out + + +def _one_to_one(model: Model, step: Join) -> bool: + table = model.tables[step.child] + if len(step.child_columns) == 1: + reference = table.columns[step.child_columns[0]].references + if reference is not None and reference.table == step.parent: + return reference.one_to_one + return any( + fk.one_to_one + for fk in table.foreign_keys + if tuple(fk.columns) == step.child_columns and fk.references == step.parent + ) + + +def _dimensions(model: Model, metrics: Metrics) -> list[Dimension]: + out = [] + for key, table in model.tables.items(): + keyed = set(table.primary_key()) + for k in table.keys: + keyed.update(k.columns) + for fk in table.foreign_keys: + keyed.update(fk.columns) + for name, column in table.columns.items(): + kind = column_kind(model, column) + override = metrics.dimensions.get(f"{key}.{name}") + if override is not None and not override.offered: + continue + temporal = is_temporal(kind) + default = temporal or ( + kind in ("enum", "boolean") + and not ( + name in keyed + or column.pk + or column.unique + or column.references is not None + or column.measure not in (None, False) + ) + ) + if not default and override is None: + continue + enum = model.enum_for(column.type) + out.append( + Dimension( + table=key, + column=name, + kind="time" if temporal else "categorical", + data_kind=kind, + label=(override.label if override and override.label else None) or _label(name), + description=(override.description if override else None) or column.description, + members=tuple(enum.members) if enum is not None else None, + ) + ) + return out + + +def _resolve_metric(model: Model, graph: Graph, name: str, metric: Metric) -> ResolvedMetric: + out = ResolvedMetric( + name=name, + kind=metric.kind, + label=metric.label or _label(name), + description=metric.description, + format=metric.format, + ai_context=metric.ai_context, + inferred=metric.inferred, + ) + if metric.kind == "ratio": + assert metric.ratio is not None + out.numerator, out.denominator = metric.ratio.numerator, metric.ratio.denominator + out.inputs = tuple(dict.fromkeys((out.numerator, out.denominator))) + return out + if metric.kind == "derived": + assert metric.expression is not None + out.node = expr.parse(metric.expression) + out.expression = metric.expression + out.inputs = tuple(expr.names(out.node)) + return out + if metric.kind == "simple": + assert metric.measure is not None + table_key, column = find_column(model, metric.measure) + assert table_key is not None and column is not None + out.table = table_key + out.column = metric.measure.rpartition(".")[2] + out.column_kind = column_kind(model, column) + out.agg = metric.agg or aggregation_of(column.measure) + else: + assert metric.count is not None + out.table = metric.count + out.agg = "count" + out.where = metric.where + joined: list[str] = [] + if metric.time is not None: + out.time = metric.time + joined.append(metric.time.rpartition(".")[0]) + else: + found = graph.first_time_column(out.table) + if found is not None: + out.time = found[0] + joined.append(found[0].rpartition(".")[0]) + if out.time is not None: + time_table, time_column = find_column(model, out.time) + assert time_table is not None and time_column is not None + out.time_kind = column_kind(model, time_column) + if metric.where is not None: + joined.extend( + condition.column.rpartition(".")[0] for condition in metric.where.conditions() + ) + for table in joined: + if table != out.table and table not in out.joins: + out.joins[table] = graph.paths(out.table, table, limit=1)[0] + return out diff --git a/model2data/metrics/sql.py b/model2data/metrics/sql.py new file mode 100644 index 0000000..fb02103 --- /dev/null +++ b/model2data/metrics/sql.py @@ -0,0 +1,270 @@ +"""A resolved metric as SQL: one way of writing it for every place it is computed. + +Two dialects of the same thing: + +- **warehouse SQL** (`query`, `scalar`), which the known values run on DuckDB + and the generated dbt tests run on DuckDB or Postgres. It reads relations a + caller names (a DuckDB table, a dbt `ref()`), joins the tables a metric's + filter and time are on along their many-to-one path with `left join` (a row + whose parent is missing stays, and fails any filter on the parent, as a null + does), and casts every column it reads to the type its kind is read as + (`model2data.metrics.columns.SQL_TYPES`), so the answer does not depend on + how a CSV loader guessed the column's type. +- **ANSI SQL for Ossie** (`ansi`), over `dataset.field` names, with no joins: + an Ossie consumer joins along the relationships the document declares. + +A filter on a simple metric goes inside its aggregate, `sum(case when +then end)`, so rows that fail it count as nulls: `sum`, `avg` and +the rest skip them, and an aggregate over no rows at all is null (a count is +0). Conditions follow SQL's three-valued logic, which is exactly the spec's +null rule: a null fails every condition but `is_null: true`. +""" + +from __future__ import annotations + +import re +from collections.abc import Callable +from decimal import Decimal +from typing import Any + +from model2data.metrics import expression as expr +from model2data.metrics.columns import SQL_TYPES, ColumnKind, column_kind, find_column +from model2data.metrics.semantic import ResolvedMetric, SemanticModel +from model2data.metrics.types import Condition, Where + +Relation = Callable[[str], str] + +_BARE = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$") + + +def quote(name: str) -> str: + """An identifier, double-quoted the ANSI way (a `"` inside doubled).""" + return '"' + name.replace('"', '""') + '"' + + +def identifier(name: str) -> str: + """A name as an SQL identifier: bare when it can be, else double-quoted.""" + return name if _BARE.match(name) else quote(name) + + +def _text(value: str) -> str: + return "'" + value.replace("'", "''") + "'" + + +def literal(value: Any, kind: ColumnKind, upper: bool = False) -> str: + """A filter value as an SQL literal of the column's kind.""" + if isinstance(value, bool): + text = "true" if value else "false" + return text.upper() if upper else text + if kind in ("date", "timestamp"): + word = "date" if kind == "date" else "timestamp" + return f"{word.upper() if upper else word} {_text(str(value))}" + if kind in ("integer", "decimal"): + if isinstance(value, float): + return format(Decimal(repr(value)), "f") + return str(value) + return _text(str(value)) + + +def _kw(word: str, upper: bool) -> str: + return word.upper() if upper else word + + +def condition_sql(condition: Condition, column: str, kind: ColumnKind, upper: bool = False) -> str: + """Every operator of `condition` on `column` (SQL text), all of them holding.""" + k = lambda word: _kw(word, upper) # noqa: E731 + lit = lambda value: literal(value, kind, upper) # noqa: E731 + parts = [] + for operator, operand in condition.operators.items(): + if operator == "eq": + parts.append(f"{column} = {lit(operand)}") + elif operator == "ne": + parts.append(f"{column} <> {lit(operand)}") + elif operator in ("in", "not_in"): + values = ", ".join(lit(value) for value in operand) + word = k("in") if operator == "in" else f"{k('not')} {k('in')}" + parts.append(f"{column} {word} ({values})") + elif operator in ("gt", "gte", "lt", "lte"): + sign = {"gt": ">", "gte": ">=", "lt": "<", "lte": "<="}[operator] + parts.append(f"{column} {sign} {lit(operand)}") + elif operator == "between": + parts.append(f"{column} {k('between')} {lit(operand[0])} {k('and')} {lit(operand[1])}") + else: # is_null + parts.append( + f"{column} {k('is')} {k('null') if operand else k('not') + ' ' + k('null')}" + ) + return parts[0] if len(parts) == 1 else "(" + f" {k('and')} ".join(parts) + ")" + + +ColumnOf = Callable[[str], tuple[str, ColumnKind]] + + +def where_sql(where: Where, column_of: ColumnOf, upper: bool = False) -> str: + """A filter as one SQL condition. `column_of(path)` is `(SQL for the column, its kind)`.""" + parts = [] + for term in where.terms: + if isinstance(term, Where): + joiner = f" {_kw('or' if term.any else 'and', upper)} " + alternatives = [ + where_sql(alt, column_of, upper) for alt in term.terms if isinstance(alt, Where) + ] + parts.append( + alternatives[0] if len(alternatives) == 1 else "(" + joiner.join(alternatives) + ")" + ) + else: + column, kind = column_of(term.column) + parts.append(condition_sql(term, column, kind, upper)) + return parts[0] if len(parts) == 1 else "(" + f" {_kw('and', upper)} ".join(parts) + ")" + + +def aggregate_sql( + metric: ResolvedMetric, value: str | None, condition: str | None, upper: bool = False +) -> str: + """The aggregate of a simple metric (`value` is its column's SQL) or a row count + (`value` None), with `condition` inside it when it has a filter.""" + k = lambda word: _kw(word, upper) # noqa: E731 + if metric.kind == "count": + if condition is None: + return f"{k('count')}(*)" + return f"{k('count')}({k('case')} {k('when')} {condition} {k('then')} 1 {k('end')})" + assert value is not None and metric.agg is not None + inner = ( + value + if condition is None + else (f"{k('case')} {k('when')} {condition} {k('then')} {value} {k('end')}") + ) + if metric.agg == "sum": + return f"{k('sum')}({inner})" + if metric.agg == "average": + return f"{k('avg')}({inner})" + if metric.agg in ("min", "max"): + return f"{k(metric.agg)}({inner})" + if metric.agg == "median": + return f"{k('percentile_cont')}(0.5) {k('within')} {k('group')} ({k('order')} {k('by')} {inner})" + if metric.agg == "count": + return f"{k('count')}({inner})" + return f"{k('count')}({k('distinct')} {inner})" + + +# --------------------------------------------------------------------------- +# Warehouse SQL +# --------------------------------------------------------------------------- +def _cast(alias: str, column: str, kind: ColumnKind) -> str: + return f"cast({alias}.{quote(column)} as {SQL_TYPES[kind]})" + + +class _From: + """The `from` and `join` clauses of a simple metric, and the alias of each table in them.""" + + def __init__(self, metric: ResolvedMetric, relation: Relation): + assert metric.table is not None + self.lines = [f"from {relation(metric.table)} as t0"] + self.alias = {metric.table: "t0"} + by_prefix: dict[tuple, str] = {(): "t0"} + for table, path in metric.joins.items(): + for length in range(1, len(path) + 1): + prefix = path[:length] + if prefix in by_prefix: + continue + alias = f"t{len(by_prefix)}" + previous = by_prefix[path[: length - 1]] + step = path[length - 1] + on = " and ".join( + f"cast({previous}.{quote(child)} as varchar) = cast({alias}.{quote(parent)} as varchar)" + for child, parent in zip(step.child_columns, step.parent_columns, strict=True) + ) + self.lines.append(f"left join {relation(step.parent)} as {alias} on {on}") + by_prefix[prefix] = alias + self.alias[table] = by_prefix[path] + + +def _parts( + semantic: SemanticModel, metric: ResolvedMetric, relation: Relation +) -> tuple[str, _From]: + clauses = _From(metric, relation) + + def column_of(path: str) -> tuple[str, ColumnKind]: + table, column = find_column(semantic.model, path) + assert table is not None and column is not None + kind = column_kind(semantic.model, column) + return _cast(clauses.alias[table], path.rpartition(".")[2], kind), kind + + condition = where_sql(metric.where, column_of) if metric.where is not None else None + value = None + if metric.kind == "simple": + assert metric.column is not None and metric.column_kind is not None + value = _cast("t0", metric.column, metric.column_kind) + return aggregate_sql(metric, value, condition), clauses + + +def query(semantic: SemanticModel, name: str, relation: Relation, *, by_month: bool = False) -> str: + """A simple metric or row count as a query: one row with its `value`, or, `by_month`, a + row per calendar month of its time column (`month` the month's first day).""" + metric = semantic.metrics[name] + aggregate, clauses = _parts(semantic, metric, relation) + joins = "\n".join(clauses.lines) + if not by_month: + return f"select {aggregate} as value\n{joins}" + assert metric.time is not None + table, column = metric.time.rpartition(".")[0], metric.time.rpartition(".")[2] + month = f"cast(date_trunc('month', cast({clauses.alias[table]}.{quote(column)} as timestamp)) as date)" + return f"select {month} as month, {aggregate} as value\n{joins}\ngroup by 1\norder by 1" + + +def scalar(semantic: SemanticModel, name: str, relation: Relation) -> str: + """Any metric as one scalar SQL expression: a simple one as a subquery, a ratio or a + derived one composed from its inputs' subqueries.""" + metric = semantic.metrics[name] + if metric.kind in ("simple", "count"): + indented = query(semantic, name, relation).replace("\n", "\n ") + return f"(\n {indented}\n)" + if metric.kind == "ratio": + assert metric.numerator is not None and metric.denominator is not None + numerator = scalar(semantic, metric.numerator, relation) + denominator = scalar(semantic, metric.denominator, relation) + return f"({numerator} / nullif({denominator}, 0))" + assert metric.node is not None + return expr.to_sql(metric.node, lambda dep: scalar(semantic, dep, relation)) + + +# --------------------------------------------------------------------------- +# ANSI SQL over dataset.field, for Ossie +# --------------------------------------------------------------------------- +def field_ref(semantic: SemanticModel, path: str) -> str: + """`orders.total_amount` as Ossie names it: the dataset (the table's dbt name), a dot, + the field (the column), each quoted only when it has to be.""" + table, column = path.rpartition(".")[0], path.rpartition(".")[2] + return f"{identifier(semantic.entities[table].name)}.{identifier(column)}" + + +def ansi(semantic: SemanticModel, name: str) -> str: + """A metric as one ANSI SQL aggregate expression over `dataset.field` names, its inputs + written out in full when it is a ratio or derived.""" + metric = semantic.metrics[name] + if metric.kind == "ratio": + assert metric.numerator is not None and metric.denominator is not None + return f"({ansi(semantic, metric.numerator)}) / NULLIF({ansi(semantic, metric.denominator)}, 0)" + if metric.kind == "derived": + assert metric.node is not None + text = expr.to_sql(metric.node, lambda dep: ansi(semantic, dep)) + return text.replace("nullif(", "NULLIF(") + + def column_of(path: str) -> tuple[str, ColumnKind]: + _, column = find_column(semantic.model, path) + assert column is not None + return field_ref(semantic, path), column_kind(semantic.model, column) + + condition = where_sql(metric.where, column_of, upper=True) if metric.where is not None else None + value = None + if metric.kind == "simple": + assert metric.table is not None and metric.column is not None + value = field_ref(semantic, f"{metric.table}.{metric.column}") + elif metric.table is not None: + # COUNT(*) names no dataset, so a reader could not tell whose rows it counts: + # a one-column primary key, never null, counts the same rows and says whose. + entity = semantic.entities[metric.table] + if len(entity.primary_key) == 1: + key = field_ref(semantic, f"{metric.table}.{entity.primary_key[0]}") + inner = key if condition is None else f"CASE WHEN {condition} THEN {key} END" + return f"COUNT({inner})" + return aggregate_sql(metric, value, condition, upper=True) diff --git a/model2data/metrics/types.py b/model2data/metrics/types.py new file mode 100644 index 0000000..422a771 --- /dev/null +++ b/model2data/metrics/types.py @@ -0,0 +1,163 @@ +"""A metrics file as typed values: what a `.metrics.yml` document says, read. + +These are the file's own words, before they meet the model: a column is still +the `table.column` path the file wrote, and a ratio still names its inputs. +`model2data.metrics.semantic` resolves them against a model (which table a +filter joins through, which column dates a metric) and adds the metrics the +model implies on its own. + +Like the model's types, every class is a plain, comparable dataclass, and the +`x-*` keys of the document, at any level, are kept in `extensions`. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + +if TYPE_CHECKING: + from model2data.model.errors import Issue + +# The aggregations the model spec's `measure` names, in its order. +AGGREGATIONS: tuple[str, ...] = ( + "sum", + "average", + "min", + "max", + "median", + "count", + "count_distinct", +) +# The two that apply to a column of any kind; the rest need a numeric one. +ANY_KIND_AGGREGATIONS: tuple[str, ...] = ("count", "count_distinct") +FORMATS: tuple[str, ...] = ("number", "currency", "percent") +# Each operator of a condition, in the order a condition is written out. +OPERATORS: tuple[str, ...] = ( + "eq", + "ne", + "in", + "not_in", + "gt", + "gte", + "lt", + "lte", + "between", + "is_null", +) +# The operators that compare by order, which a text, enum or boolean column has none of. +ORDER_OPERATORS: tuple[str, ...] = ("gt", "gte", "lt", "lte", "between") +# A metric's kind, by the one key that says it. +KIND_KEYS: dict[str, str] = { + "measure": "simple", + "count": "count", + "ratio": "ratio", + "expression": "derived", +} + +MetricKind = Literal["simple", "count", "ratio", "derived"] +Value = Union[str, int, float, bool] + + +@dataclass +class Condition: + """What one column must hold: every operator in `operators` must hold at once. + + A scalar in the file reads as `{eq: value}` and a list as `{in: [...]}`, so + `operators` always maps an operator of `OPERATORS` to its operand: a value, + a list of values (`in`, `not_in`, and `[low, high]` for `between`), or true + or false for `is_null`. + """ + + column: str + operators: dict[str, Any] + # How the file wrote it: a lone value (`eq`), a list (`in`), or operators. + written: Literal["value", "list", "operators"] = "operators" + extensions: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class Where: + """A filter: every term must hold (or, with `any`, one of them). + + A term is a `Condition`, or a group: the `any` or `all` key of the file, a + `Where` whose terms are the filters listed under it, each a `Where` itself. + `any=True` on the group means one of them must hold, `any=False` (`all`) + that every one must. Terms are in document order. + """ + + terms: list[Union[Condition, Where]] = field(default_factory=list) + any: bool = False + extensions: dict[str, Any] = field(default_factory=dict) + + def conditions(self) -> list[Condition]: + """Every condition in the filter, nested ones included, in document order.""" + found: list[Condition] = [] + for term in self.terms: + found.extend(term.conditions() if isinstance(term, Where) else [term]) + return found + + +@dataclass +class Ratio: + numerator: str + denominator: str + extensions: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class Metric: + """One metric. `kind` says which of `measure`, `count`, `ratio` and `expression` is set. + + - `simple`: `measure` is a column path, aggregated by `agg`, or, without + it, by the column's own `measure` in the model. + - `count`: `count` is a table key; the metric counts its rows. + - `ratio`: the numerator metric's total over the denominator's. + - `derived`: `expression` is arithmetic over metric names and numbers. + + `time` and `where` are for the first two only: a ratio or a derived metric + is filtered and dated through its inputs. `inferred` is True for a metric + the model implies (a `measure` column) rather than one the file wrote. + """ + + kind: MetricKind + measure: Optional[str] = None + agg: Optional[str] = None + count: Optional[str] = None + ratio: Optional[Ratio] = None + expression: Optional[str] = None + label: Optional[str] = None + description: Optional[str] = None + format: Optional[str] = None + ai_context: Optional[str] = None + time: Optional[str] = None + where: Optional[Where] = None + inferred: bool = False + extensions: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class DimensionOverride: + """`dimensions:` for one column: offered (with a label or description) or never.""" + + offered: bool = True + label: Optional[str] = None + description: Optional[str] = None + extensions: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class Metrics: + """A metrics file: the model it is for, its metrics and dimension overrides. + + `infer` (default True) adds a metric for every `measure` column of the + model; a metric of the same name here replaces the inferred one. + """ + + model: str + metrics: dict[str, Metric] = field(default_factory=dict) + dimensions: dict[str, DimensionOverride] = field(default_factory=dict) + infer: bool = True + version: str = "0.1.0" + extensions: dict[str, Any] = field(default_factory=dict) + # What the reader pointed out in a file that conforms. Not part of the value. + warnings: list[Issue] = field(default_factory=list, compare=False, repr=False) diff --git a/model2data/metrics/values.py b/model2data/metrics/values.py new file mode 100644 index 0000000..d1813ea --- /dev/null +++ b/model2data/metrics/values.py @@ -0,0 +1,284 @@ +"""The known value of every metric over a run's generated tables. + +A run knows its data, so it knows what each metric comes to: `known_values` +computes them over the frames the run wrote as seeds, overall and per calendar +month of the metric's time column. The generated dbt project then tests that +its own models give the same numbers (`model2data.metrics.dbt`), and anyone +building a semantic layer over the data can check theirs against them. + +How the values are computed: + +- Each table is read the way its seed is: the frame is written as CSV, exactly + as the seed file is, and read back as text, an empty field and `null` (in + any case) being null as dbt's seed loader reads them. Each column a metric + touches is then cast to the SQL type of its kind, in the same SQL the dbt + tests run (`model2data.metrics.sql`). DuckDB runs it, on one thread. +- Simple metrics and row counts are SQL aggregates. A ratio is its + numerator's total over its denominator's, null when the denominator is null + or zero; a derived metric is its expression over its inputs' totals, with + nulls in giving null out and division by zero giving null. Both are computed + from their inputs' values in decimal arithmetic. +- `by_month` holds a value for each calendar month (`YYYY-MM`) in which a row + of the metric's table has a time; rows with no time count only in the + total. A month in which a filter keeps no row has the value of an aggregate + over no rows: 0 for a count, null for anything else. A ratio or derived + metric has `by_month` when every metric it is computed from has a time, + each input taken in its own months. +- Values are rounded once, at the end: counts, and the sum, minimum and + maximum of an integer column, are exact integers; everything else is + rounded to 6 decimal places, half to even, and written without trailing + zeros. The same frames give the same JSON, byte for byte. +""" + +from __future__ import annotations + +import io +import json +from collections.abc import Mapping +from dataclasses import dataclass, field +from decimal import ROUND_HALF_EVEN, Context, Decimal, localcontext +from typing import Any, Optional, Union + +import pandas as pd + +from model2data.metrics import expression as expr +from model2data.metrics.check import SPEC_VERSION +from model2data.metrics.semantic import ResolvedMetric, SemanticModel +from model2data.metrics.sql import query, quote + +Number = Union[int, Decimal] +_PLACES = Decimal("0.000001") +ROUNDING = ( + "counts, and sums, minimums and maximums of integer columns, are exact; every other " + "value is rounded to 6 decimal places, half to even" +) + + +@dataclass +class KnownValue: + """One metric's value over the run's data, and per month when it has a time.""" + + name: str + kind: str + label: str + value: Optional[Number] + time: Optional[str] = None + by_month: Optional[dict[str, Optional[Number]]] = None + + +@dataclass +class KnownValues: + model: str + values: dict[str, KnownValue] = field(default_factory=dict) + seed: Optional[int] = None + as_of: Optional[str] = None + + def to_json(self) -> str: + """`metric_values.json`: stable text, keys in a fixed order, two-space indent.""" + document: dict[str, Any] = { + "model2data-metrics": SPEC_VERSION, + "model": self.model, + } + if self.seed is not None or self.as_of is not None: + document["run"] = { + key: value + for key, value in (("seed", self.seed), ("as_of", self.as_of)) + if value is not None + } + document["rounding"] = ROUNDING + metrics: dict[str, Any] = {} + for name, known in self.values.items(): + entry: dict[str, Any] = {"kind": known.kind, "label": known.label, "value": known.value} + if known.time is not None: + entry["time"] = known.time + if known.by_month is not None: + entry["by_month"] = known.by_month + metrics[name] = entry + document["metrics"] = metrics + return _dump(document) + "\n" + + +def _dump(value: Any, indent: int = 0) -> str: + """JSON text with a decimal written as its exact digits (the `json` module has no + way to write a `Decimal` but as a float, which would round it again).""" + pad = " " * (indent + 1) + if isinstance(value, dict): + if not value: + return "{}" + items = [ + f"{pad}{json.dumps(key, ensure_ascii=False)}: {_dump(item, indent + 1)}" + for key, item in value.items() + ] + return "{\n" + ",\n".join(items) + "\n" + " " * indent + "}" + if isinstance(value, Decimal): + return format(value, "f") + return json.dumps(value, ensure_ascii=False) + + +def _rounded(value: Any, exact: bool) -> Optional[Number]: + """A value from DuckDB or the arithmetic, as `known_values` writes it.""" + if value is None: + return None + if exact: + return int(value) + if isinstance(value, float): + value = Decimal(repr(value)) + elif not isinstance(value, Decimal): + value = Decimal(value) + rounded = value.quantize(_PLACES, rounding=ROUND_HALF_EVEN) + if rounded == 0: + return Decimal(0) + normal = rounded.normalize() + # normalize() writes 1200 as 1.2E+3; quantize back to no decimals for those. + return normal if normal.as_tuple().exponent < 0 else normal.quantize(Decimal(1)) # type: ignore[operator] + + +def _exact(metric: ResolvedMetric) -> bool: + if metric.kind == "count" or metric.agg in ("count", "count_distinct"): + return True + return metric.agg in ("sum", "min", "max") and metric.column_kind == "integer" + + +def _empty(metric: ResolvedMetric) -> Optional[Number]: + """The value of a metric over no rows: 0 for a count, null otherwise.""" + return 0 if metric.kind == "count" or metric.agg in ("count", "count_distinct") else None + + +def _as_text(frame: pd.DataFrame) -> pd.DataFrame: + """`frame` as its seed file reads back: every column text, `""` and `null` null.""" + buffer = io.StringIO(frame.to_csv(index=False)) + text = pd.read_csv(buffer, dtype=str, keep_default_na=False, na_values=[], na_filter=False) + return text.apply(lambda column: column.map(_null_or_text)).astype(object) + + +def _null_or_text(value: Any) -> Any: + return None if value == "" or str(value).lower() == "null" else value + + +def known_values( + semantic: SemanticModel, + frames: Mapping[str, pd.DataFrame], + *, + seed: Optional[int] = None, + as_of: Optional[str] = None, +) -> KnownValues: + """Every metric of `semantic` over `frames` (by table key: what the seeds hold).""" + import duckdb + + connection = duckdb.connect(":memory:") + try: + connection.execute("set threads = 1") + names: dict[str, str] = {} + used = { + table + for metric in semantic.metrics.values() + if metric.table is not None + for table in (metric.table, *metric.joins) + } + for index, key in enumerate(table for table in semantic.entities if table in used): + if key not in frames: + raise ValueError(f"no generated rows for table {key!r}, which a metric reads") + names[key] = f"m2d_{index}" + text = _as_text(frames[key]) + connection.register(f"{names[key]}_frame", text) + columns = ", ".join(f"cast({quote(c)} as varchar) as {quote(c)}" for c in text.columns) + connection.execute( + f"create table {names[key]} as select {columns} from {names[key]}_frame" + ) + connection.unregister(f"{names[key]}_frame") + raw: dict[str, tuple[Any, Optional[dict[str, Any]]]] = {} + for name, metric in semantic.metrics.items(): + if metric.kind not in ("simple", "count"): + continue + relation = names.__getitem__ + total = connection.execute(query(semantic, name, relation)).fetchone() + by_month = None + if metric.time is not None: + rows = connection.execute(query(semantic, name, relation, by_month=True)).fetchall() + by_month = { + month.strftime("%Y-%m"): value for month, value in rows if month is not None + } + raw[name] = (total[0] if total else None, by_month) + finally: + connection.close() + return _assemble(semantic, raw, seed=seed, as_of=as_of) + + +def _assemble( + semantic: SemanticModel, + raw: dict[str, tuple[Any, Optional[dict[str, Any]]]], + *, + seed: Optional[int], + as_of: Optional[str], +) -> KnownValues: + out = KnownValues(model=semantic.name, seed=seed, as_of=as_of) + for name, metric in semantic.metrics.items(): + if metric.kind in ("simple", "count"): + total, months = raw[name] + exact = _exact(metric) + value = _rounded(total, exact) + by_month = ( + {month: _rounded(item, exact) for month, item in months.items()} + if months is not None + else None + ) + else: + value, by_month = _composite(semantic, name, raw) + out.values[name] = KnownValue( + name=name, + kind=metric.kind, + label=metric.label, + value=value, + time=metric.time, + by_month=by_month, + ) + return out + + +def _composite( + semantic: SemanticModel, name: str, raw: dict[str, tuple[Any, Optional[dict[str, Any]]]] +) -> tuple[Optional[Number], Optional[dict[str, Optional[Number]]]]: + inputs = semantic.simple_inputs(name) + + def compute(pick: Mapping[str, Any]) -> Optional[Number]: + with localcontext(Context(prec=40)): + result = _evaluate(semantic, name, pick) + return _rounded(result, exact=False) + + total = compute({dep: raw[dep][0] for dep in inputs}) + if not all(raw[dep][1] is not None for dep in inputs): + return total, None + months = sorted({month for dep in inputs for month in (raw[dep][1] or {})}) + by_month = {} + for month in months: + picked = {} + for dep in inputs: + values = raw[dep][1] or {} + picked[dep] = values[month] if month in values else _empty(semantic.metrics[dep]) + by_month[month] = compute(picked) + return total, by_month + + +def _decimal(value: Any) -> Optional[Decimal]: + if value is None: + return None + if isinstance(value, float): + return Decimal(repr(value)) + return Decimal(value) + + +def _evaluate(semantic: SemanticModel, name: str, values: Mapping[str, Any]) -> Optional[Decimal]: + metric = semantic.metrics[name] + if metric.kind in ("simple", "count"): + return _decimal(values[name]) + if metric.kind == "ratio": + assert metric.numerator is not None and metric.denominator is not None + numerator = _evaluate(semantic, metric.numerator, values) + denominator = _evaluate(semantic, metric.denominator, values) + if numerator is None or denominator is None or denominator == 0: + return None + return numerator / denominator + assert metric.node is not None + return expr.evaluate( + metric.node, {dep: _evaluate(semantic, dep, values) for dep in metric.inputs} + ) diff --git a/model2data/spec/PUBLISHING.md b/model2data/spec/PUBLISHING.md index 050abfa..07810fb 100644 --- a/model2data/spec/PUBLISHING.md +++ b/model2data/spec/PUBLISHING.md @@ -22,6 +22,8 @@ On the website (`JB-Analytica/jba-website`), serve this directory's files at the | URL | File | | --- | --- | +| `https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json` | `model2data/spec/metrics/metrics.schema.json` of engine 1.13.0 | +| `https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/README.md` (optional, or render it as a page) | `model2data/spec/metrics/README.md` of engine 1.13.0 | | `https://www.jbanalytica.com/model2data/spec/0.4.0/model.schema.json` | `model2data/spec/model.schema.json` of engine 1.11.0 | | `https://www.jbanalytica.com/model2data/spec/0.4.0/README.md` (optional, or render it as a page) | `model2data/spec/README.md` of engine 1.11.0 | | `https://www.jbanalytica.com/model2data/spec/0.3.0/model.schema.json` | `model2data/spec/model.schema.json` of engine 1.9.0 | @@ -37,7 +39,11 @@ Requirements: Monaco playgrounds) can fetch it. - **`Content-Type: application/schema+json`** (or `application/json`). - Copy the file from the released engine version, not from a branch: the tag that ships each - version (0.2.0: engine 1.8.0; 0.3.0: engine 1.9.0; 0.4.0: engine 1.11.0). + version (0.2.0: engine 1.8.0; 0.3.0: engine 1.9.0; 0.4.0: engine 1.11.0; metrics 0.1.0: + engine 1.13.0). +- The metrics spec is versioned on its own, under `/spec/metrics//`, beside the model + spec's versions; a metrics file's first line points at it the same way: + `# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json`. Check it: @@ -46,7 +52,8 @@ curl -sI https://www.jbanalytica.com/model2data/spec/0.4.0/model.schema.json | g curl -s https://www.jbanalytica.com/model2data/spec/0.4.0/model.schema.json | python -c "import json,sys; print(json.load(sys.stdin)['\$id'])" ``` -The second command must print the URL itself. +The second command must print the URL itself. Check the metrics schema the same way, at +`/model2data/spec/metrics/0.1.0/metrics.schema.json`. ## 2. Register the file pattern with SchemaStore @@ -66,6 +73,20 @@ adding this entry to `src/api/json/catalog.json` (the list is kept alphabetical } ``` +A second entry registers the metrics files: + +```json +{ + "name": "model2data metrics", + "description": "The metrics of a model2data model: simple metrics, row counts, ratios and derived metrics, with filters (metrics spec 0.1.0)", + "fileMatch": ["*.metrics.yml", "*.metrics.yaml"], + "url": "https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json" +} +``` + +(`*.metrics.yml` is a common name; if SchemaStore asks for something narrower, register it +without `fileMatch`, so a file that points at the schema on its first line still validates.) + The schema stays hosted on our site (SchemaStore links to it, it does not copy it), so a new spec version only needs the `url` updated in a follow-up PR (an entry already registered with the 0.3.0 URL moves to 0.4.0, which also reads 0.2 and 0.3 documents), or a `versions` map diff --git a/model2data/spec/README.md b/model2data/spec/README.md index 4dba23b..4736936 100644 --- a/model2data/spec/README.md +++ b/model2data/spec/README.md @@ -54,6 +54,10 @@ a description prose. Nothing is encoded inside a string. The [model2data](https://github.com/JB-Analytica/model2data) engine reads this document and nothing else. DBML, dbt YAML and other formats are read by converting them into it. +What the model's numbers mean -- revenue, orders, average order value -- is written in a second, +optional document beside it, `.metrics.yml`, defined by the [metrics +spec](metrics/README.md) and versioned on its own. The generator never reads it. + ## What is normative This README and `model.schema.json`, including every `description` in the schema. A document @@ -221,7 +225,8 @@ they sit beside `generate`, not in it, because they are about the model rather t model. - `measure` is `true` (a measure, aggregated by `sum`), `false` (not a measure), or how it aggregates: `sum`, `average`, `min`, `max`, `median`, `count`, `count_distinct`. The last two - apply to any column, the rest to numeric ones. + apply to any column, the rest to numeric ones. Each measure also implies a metric, and a + [metrics file](metrics/README.md) adds named, filtered, derived ones. ```yaml orders: diff --git a/model2data/spec/examples/coffee_webshop.metrics.yml b/model2data/spec/examples/coffee_webshop.metrics.yml new file mode 100644 index 0000000..a583523 --- /dev/null +++ b/model2data/spec/examples/coffee_webshop.metrics.yml @@ -0,0 +1,58 @@ +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +model2data-metrics: 0.1.0 +model: coffee_webshop + +metrics: + revenue: + label: Revenue + description: Order value of the orders that were not cancelled or left unpaid. + ai_context: > + What customers paid for. Use it for sales and turnover questions; it leaves out pending + and cancelled orders. + measure: orders.total_amount # summed: the column's own `measure` is true + where: + orders.status: [paid, shipped, delivered] + time: orders.order_date + format: currency + + orders: + label: Orders + measure: orders.id + agg: count_distinct + + order_lines: + label: Order lines + count: order_items # the rows of a table + + average_order_value: + label: Average order value + ratio: {numerator: revenue, denominator: orders} + format: currency + + web_revenue: + label: Web revenue + measure: orders.total_amount + where: + orders.status: [paid, shipped, delivered] + orders.channel: web + + web_share: + label: Web share of revenue + expression: web_revenue / revenue # a fraction: 0.6 shows as 60% + format: percent + + coffee_units_sold: + label: Coffee units sold + description: Bags and capsules on orders that were not cancelled, sold online or in bulk. + measure: order_items.quantity # dated by orders.order_date, through order_id + where: + orders.status: {ne: cancelled} + products.category: [beans, ground, capsules] + customers.phone: {is_null: false} # two steps away: order_items -> orders -> customers + any: + - orders.channel: web + - order_items.quantity: {gte: 3} + +dimensions: + products.name: {label: Product} + customers.email: false diff --git a/model2data/spec/examples/coffee_webshop.model2data.yml b/model2data/spec/examples/coffee_webshop.model2data.yml index ec489c1..e6e2669 100644 --- a/model2data/spec/examples/coffee_webshop.model2data.yml +++ b/model2data/spec/examples/coffee_webshop.model2data.yml @@ -87,6 +87,7 @@ tables: total_amount: type: numeric not_null: true + measure: true generate: min: 10 max: 5000 @@ -106,6 +107,7 @@ tables: quantity: type: int not_null: true + measure: true generate: {min: 1, max: 10} unit_price: type: numeric diff --git a/model2data/spec/metrics/README.md b/model2data/spec/metrics/README.md new file mode 100644 index 0000000..2f8e6f6 --- /dev/null +++ b/model2data/spec/metrics/README.md @@ -0,0 +1,308 @@ +# model2data metrics — spec 0.1.0 + +A metrics file says what a model2data model's numbers mean: revenue, orders, average order value, +each written once, next to the model they are computed from. It is a second, optional document, +`.metrics.yml` beside `.model2data.yml`, versioned on its own. +[`metrics.schema.json`](metrics.schema.json) is its JSON Schema. The model it is for is defined by +the [model spec](../README.md). + +```yaml +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +model2data-metrics: 0.1.0 +model: coffee_webshop # the model's `name` + +metrics: + revenue: + label: Revenue + description: Order value of orders that were not cancelled. + measure: orders.total_amount # aggregated by the column's own `measure`, or by `agg` + where: + orders.status: [paid, shipped, delivered] + time: orders.order_date + format: currency + orders: + measure: orders.id + agg: count_distinct + order_lines: + count: order_items # the rows of a table + average_order_value: + ratio: {numerator: revenue, denominator: orders} + format: currency + web_revenue: + measure: orders.total_amount + where: + orders.status: [paid, shipped, delivered] + orders.channel: web + web_share: + expression: web_revenue / revenue # a fraction: format shows 0.6 as 60% + format: percent + +dimensions: + products.name: {label: Product} + customers.email: false + +infer: true +``` + +A complete example, which conforms against the example model beside it, is +[`../examples/coffee_webshop.metrics.yml`](../examples/coffee_webshop.metrics.yml). + +The model and its generated data do not depend on the metrics file: a generator never reads it, +and a model generates the same rows with or without one. What a metrics file adds is meaning +(names, labels, formats, filters) and, for a consumer that has the data, numbers. + +## What is normative + +This README and `metrics.schema.json`, including every `description` in the schema. A document +**conforms** when, read under the model spec's [YAML profile](../README.md#the-yaml-profile), it +validates against the schema and meets every check under [Checks beyond the +schema](#checks-beyond-the-schema), and, read **against its model**, every check under [Checks +against the model](#checks-against-the-model). Examples are informative. + +A reader reports issues as the model spec does: each with the document path of the value +(`metrics.revenue.where.orders.status`) and a severity, an **error** where the document does not +conform and a **warning** for something it points out in a document that does. + +## Versioning + +The metrics spec is versioned on its own, apart from the model spec, the engine and the studio, +with [semantic versioning](https://semver.org). The version is in the schema's `$id`: + +``` +https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +``` + +A document names the version it is written against in `model2data-metrics:`. A patch release +changes wording only; a minor release adds something optional, and, before 1.0.0, may also make a +valid document invalid or change what one means, and says so. A reader refuses a minor version it +does not implement (from 1.0.0, a major one) rather than guess. + +## The YAML profile, and extensions + +A metrics file is read under the model spec's YAML profile: the YAML 1.2 core schema (`no` is a +string, `2026-01-01` is a string), no duplicate keys, no anchors, aliases, merge keys or tags, +one UTF-8 document. JSON is read as JSON. + +A key beginning `x-` is an extension, allowed at the top level, on a metric, in a `ratio`, in a +`where` (a key with no `.` in it), in a condition's mapping of operators and on a dimension. It +carries no meaning here; a consumer ignores the ones it does not know and keeps them when it +rewrites the document. Every other unknown key makes the document invalid. + +## The document + +### `model` + +The `name` of the model the metrics are for. A model without a `name` goes by the stem of its +file (`coffee_webshop` for `coffee_webshop.model2data.yml`). Read against a model of another +name, the document is in error, not quietly applied to the wrong model. + +### Metrics + +`metrics` maps a **metric name** to a metric. A name is a lower-case letter, then lower-case +letters, digits and underscores (`^[a-z][a-z0-9_]*$`): it is used unquoted in SQL, in file names +and in other semantic layers. Order is significant: consumers list metrics in document order. + +A metric's **kind** comes from exactly one of four keys. None, or more than one, is an error. + +| Key | Kind | The metric is | +|-----|------|---------------| +| `measure: table.column` | simple | the column aggregated: by `agg`, or without it by the column's own `measure` in the model (`true` is `sum`) | +| `count: table` | row count | the number of rows of the table | +| `ratio: {numerator: a, denominator: b}` | ratio | metric `a`'s total divided by metric `b`'s | +| `expression: a - b` | derived | arithmetic over other metrics and numbers | + +The other keys: + +- `agg` (simple only): one of the model spec's seven aggregations, `sum`, `average`, `min`, + `max`, `median`, `count`, `count_distinct`. `count` (the non-null values) and `count_distinct` + apply to a column of any kind; the rest to a numeric one, by the model spec's [kind + rules](../README.md#generation-hints) (an enum is never numeric). Without `agg`, the column's + `measure` decides; a column with no `measure` (or `measure: false`) and no `agg` is an error. +- `label`: the metric's name for people. `description`: what it is, in prose. `ai_context`: + prose for an AI tool, on when to use it and what it is also called. +- `format`: how a value is shown, `number`, `currency` or `percent`. It changes no value. + `percent` expects a **fraction**: a value of 0.6 is shown as 60%, as Lightdash, Looker, Power + BI and Cube format percentages. So a share is written `web_revenue / revenue`, never + `* 100`. A consumer or exporter passes `percent` on as a percent format and does not multiply + the value, and a known value of a `percent` metric is the fraction. +- `time` (simple and row count only): the date or timestamp column the metric is dated by. See + [Time](#time). +- `where` (simple and row count only): a filter. See [Filters](#filters). A ratio or a derived + metric is filtered, and dated, through the metrics it is computed from. + +**A ratio** is a ratio of totals: the numerator's value over the whole of what is being looked at, +divided by the denominator's, never an average of row-level ratios. It is null when the +denominator is zero or null. + +**A derived metric's** `expression` is the one place this spec encodes something in a string, so +its grammar is as small as one can be: + +``` +expression := term (("+" | "-") term)* +term := factor (("*" | "/") factor)* +factor := ("+" | "-") factor | NUMBER | NAME | "(" expression ")" +NAME := [a-z][a-z0-9_]* a metric +NUMBER := [0-9]+ ("." [0-9]+)? +``` + +Whitespace between tokens is ignored; `*` and `/` bind tighter than `+` and `-`, and operators of +one precedence associate to the left. An expression uses at least one metric. It is evaluated over +its metrics' values in decimal arithmetic: any null makes the result null, and so does a division +by zero. A reader parses it; it never evaluates it as code. + +A ratio or an expression may use any metric: one written in the file, or one [inferred from the +model](#inferred-metrics). Metrics that depend on each other in a cycle are an error. + +### Filters + +`where` maps a **column path** (`table.column`, or `schema.table.column`: the last `.` separates +the column) to a **condition**, and every entry must hold. Two keys combine filters: + +- `any: [filter, ...]`: one of the filters holds; +- `all: [filter, ...]`: every one holds (needed inside `any`). + +A column path always contains a `.`, so it never collides with `any`, `all` or an extension. + +A condition is + +- a value: the column equals it (`orders.channel: web`); +- a list of values: the column is one of them (`orders.status: [paid, shipped]`); +- a mapping of operators, every one of which must hold: + +| Operator | Holds when the column | +|----------|------------------------| +| `eq: v` | equals `v` | +| `ne: v` | differs from `v` | +| `in: [v, ...]` | equals one of them | +| `not_in: [v, ...]` | equals none of them | +| `gt`, `gte`, `lt`, `lte: v` | is greater than, at least, less than, at most `v` | +| `between: [a, b]` | is at least `a` and at most `b` | +| `is_null: true` / `false` | is null / is not null | + +**Nulls** behave as in SQL: a null fails every condition except `is_null: true`. So `ne: cancelled` +and `not_in: [cancelled]` leave out the rows with no status as well as the cancelled ones; write +`any: [{orders.status: {ne: cancelled}}, {orders.status: {is_null: true}}]` to keep them. + +A **value** is checked against its column, by the model spec's kinds: + +| The column is | A value is | +|---------------|------------| +| an enum | one of its members (an integer member may be written as a number) | +| boolean | `true` or `false` | +| numeric | a number; a whole one for an integer column | +| a date | an ISO 8601 date string, `"2026-01-01"` | +| a timestamp | an ISO 8601 date or timestamp string, `"2026-01-01 08:30:00"`, with no time zone | +| anything else | text (quote one that YAML would read as a number) | + +The order operators (`gt`, `gte`, `lt`, `lte`, `between`) apply to numeric, date and timestamp +columns only. On an enum, a boolean or text they are an error: an enum's order is not its +members', and text order depends on the warehouse's collation, so a filter on it would not mean +one thing. List the values with `in` instead. + +Not in 0.1.0: `not`, text matching (`like`, prefixes), dates relative to today. + +### Reaching other tables + +A metric aggregates the rows of one table: a simple metric's column's, a row count's table. A +filter column, and its `time`, are on that table or on one it **reaches**: by following foreign +keys from child to parent (`references` and `foreign_keys`, the many side to the one side), +one or more steps. Each step joins a row to at most one parent row, so the rows being aggregated +are never multiplied. A step from parent to child is never taken. + +A column is reachable when **exactly one** such path leads to its table. When two do (`orders` +with both `billed_to` and `shipped_to` referencing `customers`), which one the filter means is +unclear, and it is an error naming both paths. A column no path leads to is an error too. + +A row whose foreign key is null, or names no parent row, reaches no parent: its parent's columns +are null, and fail every condition but `is_null: true`. + +### Time + +A simple metric's or a row count's `time` names the date or timestamp column it is dated by: its +value per month is computed over the rows whose time falls in that month. The column is on the +metric's table or one it reaches, as a filter column is. Without `time`: + +1. the metric's table's first date or timestamp column, in document order; +2. else, nearest first and in document order of the foreign keys, the first date or timestamp + column of a table it reaches along exactly one path (`order_items` is dated by + `orders.order_date`, through `order_id`). + +A metric with neither is valid, and a reader warns: it has a total but no value per month. + +### Dimensions + +The **dimensions** of a model are the columns to group and filter metrics by. By default they are +every date and timestamp column (a time dimension), and every enum and boolean column that is not +a primary key, in a key, `unique`, a foreign key, or a `measure` (a categorical dimension). + +`dimensions` changes that, by column path: + +- `false`: never offered as a dimension (`customers.email: false`); +- `true`: offered, as a time dimension when the column is a date or timestamp, else categorical; +- a mapping: offered, with a `label` and a `description`. + +### Inferred metrics + +With `infer: true` (the default), a model implies metrics on its own, beside the file's: + +- one **simple metric for each column with a `measure`**, aggregated by it, named + `
_`, with `_` appended when it is not `sum` + (`orders_total_amount`, `products_price_average`); +- one **row count for each fact**, named `
_count`: a table whose `role` is `fact`, or which + has no `role` and at least one `measure` column. + +A name is the text lower-cased, with every run of other characters made one `_`, trimmed of `_`; +it starts with a letter (else `c_` is put in front) and has at least two characters (else `_x` is +appended), and a name already taken gets `_2`, `_3`, in document order of tables and columns. An +inferred metric's label is the table and the column in words (`Orders total amount`), with the +aggregation in brackets when it is not `sum`. + +A metric of the same name in the file **replaces** the inferred one. Consumers list the file's +metrics first, in document order, then the inferred ones it did not replace, in model order. +`infer: false` turns inference off: the metrics are only the ones written here. + +A model with no metrics file has the inferred metrics, wherever a consumer exposes metrics. + +These are the names model2data studio's semantic-layer export gave its metrics, so a metric keeps +its name when the studio moves onto this spec. + +## Checks beyond the schema + +A conforming document also meets these, read on its own: + +1. `model2data-metrics` is a version this reader implements (0.1.x). +2. Each metric has exactly one of `measure`, `count`, `ratio` and `expression`; `agg` only with + `measure`; `time` and `where` only with `measure` or `count`. +3. Every `expression` parses by the grammar above and uses at least one metric. +4. No metric depends on itself, directly or through other metrics. + +## Checks against the model + +Read against its model, a conforming document also meets these: + +1. `model` is the model's name. +2. Every column path and table key names a column or table of the model (`measure`, `count`, + `time`, every column of a `where`, every key of `dimensions`). +3. A simple metric's aggregation fits its column (see `agg`); without `agg`, the column has a + `measure`. +4. Every metric a `ratio` or an `expression` names exists, in the file or inferred. +5. `time` is a date or timestamp column. +6. Every filter column and `time` is reachable from the metric's table along exactly one path. +7. Every filter value fits its column, and no order operator is on an enum, boolean or text + column. + +### Warnings + +1. A simple metric or row count of the file has no time: no `time`, and no date or timestamp + column on its table or a table it reaches. +2. A filter can never match, as far as the model's generation hints cheaply tell: + `is_null: true` on a column that is never null (`pk` or `not_null`), a comparison or value + outside a numeric column's `min` and `max`, or a `between` whose low end is above its high end. + +## What a reader computes + +This spec fixes what a metric means. How a consumer computes and publishes metrics is its own +business; the [model2data engine](https://github.com/JB-Analytica/model2data) computes each one's +known value over a generated run (`metric_values.json`), writes a dbt test per metric that checks +the warehouse gets the same number, and exports Apache Ossie 0.1.1 as tagged `osi-0.1.1-rc1` in +apache/ossie (no final 0.1.1 tag exists yet). Its README says how. diff --git a/model2data/spec/metrics/metrics.schema.json b/model2data/spec/metrics/metrics.schema.json new file mode 100644 index 0000000..d46cde4 --- /dev/null +++ b/model2data/spec/metrics/metrics.schema.json @@ -0,0 +1,177 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json", + "title": "model2data metrics 0.1.0", + "description": "The metrics of a model2data model: a `.metrics.yml` file beside `.model2data.yml`. Normative together with README.md in this directory, which says what a document means and the checks a reader makes beyond this schema (against the model, among others).", + "type": "object", + "required": ["model2data-metrics", "model"], + "properties": { + "model2data-metrics": { + "description": "The version of the metrics spec the document is written against. A reader refuses a minor version it does not implement (the spec is before 1.0.0).", + "type": "string", + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" + }, + "model": { + "description": "The `name` of the model the metrics are for. A metrics file read against a model of another name is an error.", + "type": "string", + "minLength": 1 + }, + "metrics": { + "description": "The metrics, by name. Order is significant: consumers list them in document order.", + "type": "object", + "propertyNames": {"$ref": "#/$defs/metricName"}, + "additionalProperties": {"$ref": "#/$defs/metric"} + }, + "dimensions": { + "description": "Which columns are offered as dimensions, beyond the default (every enum, boolean, date and timestamp column that is not a key), by column path. `false`: never offered. `true` or a mapping: offered, with its label and description.", + "type": "object", + "propertyNames": {"$ref": "#/$defs/columnPath"}, + "additionalProperties": {"$ref": "#/$defs/dimension"} + }, + "infer": { + "description": "Whether every `measure` column of the model also yields a metric (default true). false: only the metrics written here.", + "type": "boolean" + } + }, + "patternProperties": {"^x-": {}}, + "additionalProperties": false, + "$defs": { + "metricName": { + "description": "A metric name: a lower-case letter, then lower-case letters, digits and underscores.", + "type": "string", + "pattern": "^[a-z][a-z0-9_]*$" + }, + "columnPath": { + "description": "A column of the model: `table.column`, or `schema.table.column`. The last `.` separates the column.", + "type": "string", + "pattern": "^[^.]+(\\.[^.]+)?\\.[^.]+$" + }, + "tableKey": { + "description": "A table of the model: its name, or `schema.name`.", + "type": "string", + "pattern": "^[^.]+(\\.[^.]+)?$" + }, + "metric": { + "type": "object", + "description": "One metric. Exactly one of `measure` (simple), `count` (a row count), `ratio` and `expression` (derived) says its kind.", + "properties": { + "label": {"type": "string", "description": "The metric's name for people.", "minLength": 1}, + "description": {"type": "string", "description": "What the metric is, in prose."}, + "ai_context": {"type": "string", "description": "Prose for an AI tool: when to use the metric, what it is called, what it is not."}, + "format": { + "description": "How a value is shown. It changes no value: `percent` expects a fraction (0.6 is shown as 60%), and a consumer passes it on as a percent format without multiplying.", + "enum": ["number", "currency", "percent"] + }, + "measure": { + "$ref": "#/$defs/columnPath", + "description": "A simple metric: this column, aggregated by `agg`, or without it by the column's own `measure` in the model (`true` is sum)." + }, + "agg": { + "description": "How a simple metric aggregates its column. `count` and `count_distinct` apply to any column; the rest to numeric ones.", + "enum": ["sum", "average", "min", "max", "median", "count", "count_distinct"] + }, + "count": { + "$ref": "#/$defs/tableKey", + "description": "A row count: the rows of this table (that pass `where`)." + }, + "ratio": { + "description": "The numerator metric's total divided by the denominator metric's: a ratio of totals, null when the denominator is zero or null.", + "type": "object", + "required": ["numerator", "denominator"], + "properties": { + "numerator": {"$ref": "#/$defs/metricName"}, + "denominator": {"$ref": "#/$defs/metricName"} + }, + "patternProperties": {"^x-": {}}, + "additionalProperties": false + }, + "expression": { + "description": "A derived metric: arithmetic over metric names and numbers, with + - * / and parentheses (the grammar is in README.md). Division by zero is null.", + "type": "string", + "minLength": 1 + }, + "time": { + "$ref": "#/$defs/columnPath", + "description": "The date or timestamp column a simple metric or row count is dated by: on its table, or reachable through many-to-one references. Default: the table's first date or timestamp column, else the first one reachable." + }, + "where": {"$ref": "#/$defs/where"} + }, + "patternProperties": {"^x-": {}}, + "additionalProperties": false, + "oneOf": [ + {"required": ["measure"], "not": {"anyOf": [{"required": ["count"]}, {"required": ["ratio"]}, {"required": ["expression"]}]}}, + {"required": ["count"], "not": {"anyOf": [{"required": ["measure"]}, {"required": ["ratio"]}, {"required": ["expression"]}, {"required": ["agg"]}]}}, + {"required": ["ratio"], "not": {"anyOf": [{"required": ["measure"]}, {"required": ["count"]}, {"required": ["expression"]}, {"required": ["agg"]}, {"required": ["time"]}, {"required": ["where"]}]}}, + {"required": ["expression"], "not": {"anyOf": [{"required": ["measure"]}, {"required": ["count"]}, {"required": ["ratio"]}, {"required": ["agg"]}, {"required": ["time"]}, {"required": ["where"]}]}} + ] + }, + "where": { + "description": "A filter on a simple metric or a row count: every entry must hold. A key containing a `.` is a column path and maps to its condition; `any` holds when one of its filters does, `all` when every one does. A column must be on the metric's table or reachable through many-to-one references along exactly one path.", + "type": "object", + "minProperties": 1, + "properties": { + "any": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/where"}}, + "all": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/where"}} + }, + "patternProperties": { + "^x-[^.]*$": {}, + "\\.": {"$ref": "#/$defs/condition"} + }, + "additionalProperties": false + }, + "value": { + "description": "A value a column is compared with: an enum member, true or false for a boolean column, a number for a numeric one, an ISO 8601 date or timestamp string for a date or timestamp one, text for any other.", + "type": ["string", "number", "boolean"] + }, + "values": { + "type": "array", + "minItems": 1, + "items": {"$ref": "#/$defs/value"} + }, + "condition": { + "description": "What a column must hold. A value: equal to it. A list: one of them. A mapping of operators: every one must hold. A null fails every condition but `is_null: true`, as in SQL.", + "oneOf": [ + {"$ref": "#/$defs/value"}, + {"$ref": "#/$defs/values"}, + { + "type": "object", + "minProperties": 1, + "properties": { + "eq": {"$ref": "#/$defs/value"}, + "ne": {"$ref": "#/$defs/value"}, + "in": {"$ref": "#/$defs/values"}, + "not_in": {"$ref": "#/$defs/values"}, + "gt": {"$ref": "#/$defs/value"}, + "gte": {"$ref": "#/$defs/value"}, + "lt": {"$ref": "#/$defs/value"}, + "lte": {"$ref": "#/$defs/value"}, + "between": { + "description": "[low, high], both inclusive.", + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": {"$ref": "#/$defs/value"} + }, + "is_null": {"type": "boolean"} + }, + "patternProperties": {"^x-": {}}, + "additionalProperties": false + } + ] + }, + "dimension": { + "oneOf": [ + {"type": "boolean"}, + { + "type": "object", + "properties": { + "label": {"type": "string", "minLength": 1}, + "description": {"type": "string"} + }, + "patternProperties": {"^x-": {}}, + "additionalProperties": false + } + ] + } + } +} diff --git a/tests/fixtures/metrics/ecommerce_training.metrics.yml b/tests/fixtures/metrics/ecommerce_training.metrics.yml new file mode 100644 index 0000000..d6bcedb --- /dev/null +++ b/tests/fixtures/metrics/ecommerce_training.metrics.yml @@ -0,0 +1,66 @@ +# Every aggregation and operator, over the training model: defects (orphans, nulls, +# invalid enum values, messy text, duplicate keys) and three days of changes. +model2data-metrics: 0.1.0 +model: ecommerce_training + +metrics: + delivered_revenue: + measure: orders.total_amount + agg: sum + where: + orders.status: delivered + open_orders: + count: orders + where: + orders.status: {in: [pending, processing], ne: cancelled} + average_order: + measure: orders.total_amount + agg: average + where: + orders.status: {not_in: [cancelled], is_null: false} + median_order: + measure: orders.total_amount + agg: median + smallest_order: + measure: orders.total_amount + agg: min + where: + orders.total_amount: {between: [100, 4000]} + largest_quantity: + measure: order_items.quantity + agg: max + rows_with_a_status: + measure: orders.status + agg: count + customers_ordering: + measure: orders.customer_id + agg: count_distinct + where: + customers.last_name: {ne: Smith} + items_of_recent_orders: + count: order_items + where: + orders.order_date: {gte: "2025-06-01", lt: "2026-01-01 00:00:00"} + products.price: {gt: 20.5} + any: + - customers.phone: {is_null: true} + - all: + - customers.country: {not_in: [United States]} + - order_items.quantity: {lte: 5} + item_value: + measure: order_items.unit_price + agg: sum + time: orders.updated_at + orders_count: + count: orders + order_items_quantity: + measure: order_items.quantity + agg: sum + per_order: + ratio: {numerator: item_value, denominator: orders_count} + odd_mix: + expression: (item_value - delivered_revenue) / (open_orders - open_orders) + -2 * 1.5 + units_per_order: + expression: order_items_quantity / orders_count + +infer: true diff --git a/tests/fixtures/metrics/shop.metrics.yml b/tests/fixtures/metrics/shop.metrics.yml new file mode 100644 index 0000000..37e5aca --- /dev/null +++ b/tests/fixtures/metrics/shop.metrics.yml @@ -0,0 +1,40 @@ +# Every kind of metric, column and join over shop.model2data.yml, for the dbt tests. +model2data-metrics: 0.1.0 +model: shop + +metrics: + paid_amount: + measure: orders.amount + where: + orders.status: paid + vip_lines: + count: lines + where: + customers.vip: true + customers.joined_on: {gte: "2020-01-01"} + tier_two_qty: + measure: lines.qty + where: + customers.tier: [2] + orders.placed_at: {lt: "2100-01-01 00:00:00"} + visitors_north: + measure: visits.people + agg: sum + where: + any: + - stores.region: {is_null: false} + - slots.capacity: {between: [0, 50]} + median_price: + measure: lines.price + agg: median + distinct_notes: + measure: orders.note + agg: count_distinct + log_max: + measure: logs.level + agg: max + paid_share: + ratio: {numerator: paid_amount, denominator: orders_amount} + format: percent + spread: + expression: (orders_amount - paid_amount) / orders_count diff --git a/tests/fixtures/metrics/shop.model2data.yml b/tests/fixtures/metrics/shop.model2data.yml new file mode 100644 index 0000000..3186834 --- /dev/null +++ b/tests/fixtures/metrics/shop.model2data.yml @@ -0,0 +1,75 @@ +# A small model for the metrics tests: every column kind, a two-step path +# (lines -> orders -> customers), two paths to one table (transfers), a +# composite foreign key (visits -> slots) and a table no metric can date (logs). +model2data: 0.4.0 +name: shop + +enums: + status: [open, paid, cancelled] + level: [1, 2] + +tables: + customers: + columns: + id: {type: bigint, pk: true} + email: {type: email, unique: true} + country: text + vip: boolean + tier: level + joined_on: date + + stores: + columns: + id: {type: bigint, pk: true} + region: text + + orders: + role: fact + columns: + id: {type: bigint, pk: true} + customer_id: {type: bigint, references: customers.id} + store_id: {type: bigint, references: stores.id} + status: status + amount: + type: numeric + not_null: true + measure: true + generate: {min: 10, max: 100} + placed_at: timestamp + note: text + + lines: + columns: + id: {type: bigint, pk: true} + order_id: {type: bigint, not_null: true, references: orders.id} + qty: {type: int, measure: sum} + price: {type: numeric, measure: average} + + transfers: + columns: + id: {type: bigint, pk: true} + sender_id: {type: bigint, references: customers.id} + receiver_id: {type: bigint, references: customers.id} + amount: numeric + + slots: + keys: + - {pk: [store_id, day]} + columns: + store_id: {type: bigint, references: stores.id} + day: date + capacity: int + + visits: + foreign_keys: + - {columns: [store_id, day], references: slots, to_columns: [store_id, day]} + columns: + id: {type: bigint, pk: true} + store_id: bigint + day: date + people: int + + logs: + columns: + id: int + level: int diff --git a/tests/fixtures/ossie/LICENSE b/tests/fixtures/ossie/LICENSE new file mode 100644 index 0000000..67db858 --- /dev/null +++ b/tests/fixtures/ossie/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/tests/fixtures/ossie/NOTICE b/tests/fixtures/ossie/NOTICE new file mode 100644 index 0000000..2deb079 --- /dev/null +++ b/tests/fixtures/ossie/NOTICE @@ -0,0 +1,2 @@ +Open Semantic Interchange +Copyright 2026 - Open Semantic Interchange diff --git a/tests/fixtures/ossie/VENDORED.md b/tests/fixtures/ossie/VENDORED.md new file mode 100644 index 0000000..949e49b --- /dev/null +++ b/tests/fixtures/ossie/VENDORED.md @@ -0,0 +1,10 @@ +# Vendored: the Apache Ossie 0.1.1 JSON Schema + +`osi-schema.json` is `core-spec/osi-schema.json` of [apache/ossie](https://github.com/apache/ossie) +(formerly Open Semantic Interchange) at tag `osi-0.1.1-rc1` (commit +`faf581054dcf7964d5fe0ceae7d6f415c8ce32a5`), whose `version.txt` and `core-spec/spec.md` say +0.1.1. It is copied unchanged. The tests validate every Ossie document model2data exports against +it (`tests/test_metrics_ossie.py`). + +It is licensed under the Apache License, Version 2.0: see `LICENSE` and `NOTICE` beside it, copied +from the same commit. It is test data only and is not shipped in the model2data package. diff --git a/tests/fixtures/ossie/osi-schema.json b/tests/fixtures/ossie/osi-schema.json new file mode 100644 index 0000000..a4a6f92 --- /dev/null +++ b/tests/fixtures/ossie/osi-schema.json @@ -0,0 +1,344 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/open-semantic-interchange/OSI/core-spec/osi-schema.json", + "title": "OSI Core Metadata Specification", + "description": "JSON Schema for validating OSI (Open Semantic Interoperability) semantic model definitions", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "0.1.1", + "description": "OSI specification version" + }, + "dialects": { + "type": "array", + "description": "Supported expression language dialects (enumeration definition)", + "items": { + "$ref": "#/$defs/Dialect" + } + }, + "vendors": { + "type": "array", + "description": "Supported vendors for custom extensions (enumeration definition)", + "items": { + "$ref": "#/$defs/Vendor" + } + }, + "semantic_model": { + "type": "array", + "description": "Collection of semantic model definitions", + "items": { + "$ref": "#/$defs/SemanticModel" + } + } + }, + "required": ["version", "semantic_model"], + "additionalProperties": false, + "$defs": { + "Dialect": { + "type": "string", + "enum": ["ANSI_SQL", "SNOWFLAKE", "MDX", "TABLEAU", "DATABRICKS", "MAQL"], + "description": "Supported SQL and expression language dialects" + }, + "Vendor": { + "type": "string", + "enum": ["COMMON", "SNOWFLAKE", "SALESFORCE", "DBT", "DATABRICKS", "GOODDATA"], + "description": "Supported vendors for custom extensions" + }, + "AIContext": { + "description": "Additional context for AI tools", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "instructions": { + "type": "string", + "description": "Instructions for AI on how to use this entity" + }, + "synonyms": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Alternative names and terms" + }, + "examples": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sample questions or use cases" + } + }, + "additionalProperties": true + } + ] + }, + "CustomExtension": { + "type": "object", + "description": "Vendor-specific attributes for extensibility", + "properties": { + "vendor_name": { + "$ref": "#/$defs/Vendor" + }, + "data": { + "type": "string", + "description": "JSON string containing vendor-specific data" + } + }, + "required": ["vendor_name", "data"], + "additionalProperties": false + }, + "DialectExpression": { + "type": "object", + "description": "Expression in a specific dialect", + "properties": { + "dialect": { + "$ref": "#/$defs/Dialect" + }, + "expression": { + "type": "string", + "description": "SQL or dialect-specific expression" + } + }, + "required": ["dialect", "expression"], + "additionalProperties": false + }, + "Expression": { + "type": "object", + "description": "Expression definition with multi-dialect support", + "properties": { + "dialects": { + "type": "array", + "items": { + "$ref": "#/$defs/DialectExpression" + }, + "minItems": 1 + } + }, + "required": ["dialects"], + "additionalProperties": false + }, + "Dimension": { + "type": "object", + "description": "Dimension metadata", + "properties": { + "is_time": { + "type": "boolean", + "description": "Indicates if this is a time-based dimension for temporal filtering" + } + }, + "additionalProperties": false + }, + "Field": { + "type": "object", + "description": "Row-level attribute for grouping, filtering, and metric expressions", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier for the field within the dataset" + }, + "expression": { + "$ref": "#/$defs/Expression" + }, + "dimension": { + "$ref": "#/$defs/Dimension" + }, + "label": { + "type": "string", + "description": "Label for categorization" + }, + "description": { + "type": "string", + "description": "Human-readable description" + }, + "ai_context": { + "$ref": "#/$defs/AIContext" + }, + "custom_extensions": { + "type": "array", + "items": { + "$ref": "#/$defs/CustomExtension" + } + } + }, + "required": ["name", "expression"], + "additionalProperties": false + }, + "Dataset": { + "type": "object", + "description": "Logical dataset representing a business entity (fact or dimension table)", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier for the dataset" + }, + "source": { + "type": "string", + "description": "Reference to underlying physical table/view (database.schema.table) or query" + }, + "primary_key": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Primary key columns (single or composite)" + }, + "unique_keys": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Array of unique key definitions (each can be single or composite)" + }, + "description": { + "type": "string", + "description": "Human-readable description" + }, + "ai_context": { + "$ref": "#/$defs/AIContext" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/$defs/Field" + } + }, + "custom_extensions": { + "type": "array", + "items": { + "$ref": "#/$defs/CustomExtension" + } + } + }, + "required": ["name", "source"], + "additionalProperties": false + }, + "Relationship": { + "type": "object", + "description": "Foreign key relationship between datasets", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier for the relationship" + }, + "from": { + "type": "string", + "description": "Dataset on the many side of the relationship" + }, + "to": { + "type": "string", + "description": "Dataset on the one side of the relationship" + }, + "from_columns": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "Foreign key columns in the 'from' dataset" + }, + "to_columns": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "Primary/unique key columns in the 'to' dataset" + }, + "ai_context": { + "$ref": "#/$defs/AIContext" + }, + "custom_extensions": { + "type": "array", + "items": { + "$ref": "#/$defs/CustomExtension" + } + } + }, + "required": ["name", "from", "to", "from_columns", "to_columns"], + "additionalProperties": false + }, + "Metric": { + "type": "object", + "description": "Quantitative measure defined on business data", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier for the metric" + }, + "expression": { + "$ref": "#/$defs/Expression" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the metric measures" + }, + "ai_context": { + "$ref": "#/$defs/AIContext" + }, + "custom_extensions": { + "type": "array", + "items": { + "$ref": "#/$defs/CustomExtension" + } + } + }, + "required": ["name", "expression"], + "additionalProperties": false + }, + "SemanticModel": { + "type": "object", + "description": "Top-level container representing a complete semantic model", + "properties": { + "name": { + "type": "string", + "description": "Unique identifier for the semantic model" + }, + "description": { + "type": "string", + "description": "Human-readable description" + }, + "ai_context": { + "$ref": "#/$defs/AIContext" + }, + "datasets": { + "type": "array", + "items": { + "$ref": "#/$defs/Dataset" + }, + "minItems": 1, + "description": "Collection of logical datasets" + }, + "relationships": { + "type": "array", + "items": { + "$ref": "#/$defs/Relationship" + }, + "description": "Defines how datasets are connected" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/$defs/Metric" + }, + "description": "Quantifiable measures spanning datasets" + }, + "custom_extensions": { + "type": "array", + "items": { + "$ref": "#/$defs/CustomExtension" + } + } + }, + "required": ["name", "datasets"], + "additionalProperties": false + } + } +} diff --git a/tests/test_metrics_expression.py b/tests/test_metrics_expression.py new file mode 100644 index 0000000..a82a118 --- /dev/null +++ b/tests/test_metrics_expression.py @@ -0,0 +1,76 @@ +"""A derived metric's expression: the grammar, the arithmetic, the SQL (metrics spec, "Metrics").""" + +from decimal import Decimal + +import pytest + +from model2data.metrics.expression import ( + BinaryOp, + ExpressionError, + Name, + Negate, + Number, + evaluate, + names, + parse, + to_sql, +) + + +def test_precedence_and_left_association(): + assert parse("a - b - c") == BinaryOp("-", BinaryOp("-", Name("a"), Name("b")), Name("c")) + assert parse("a + b * c") == BinaryOp("+", Name("a"), BinaryOp("*", Name("b"), Name("c"))) + assert parse("(a + b) / 2.5") == BinaryOp( + "/", BinaryOp("+", Name("a"), Name("b")), Number(Decimal("2.5")) + ) + + +def test_unary_signs(): + assert parse("-a") == Negate(Name("a")) + assert parse("+a") == Name("a") + assert parse("--a") == Negate(Negate(Name("a"))) + assert parse("a * -2") == BinaryOp("*", Name("a"), Negate(Number(Decimal(2)))) + + +def test_whitespace_is_ignored(): + assert parse(" a\t+\nb ") == parse("a+b") + + +@pytest.mark.parametrize( + "text, message", + [ + ("", "the expression is empty"), + ("a +", "ends where a metric name or number should be"), + ("a b", "unexpected 'b' at character 3"), + ("a)", "unexpected ')' at character 2"), + ("(a", "the parenthesis at character 1 is never closed"), + ("a * )", "unexpected ')' at character 5: a metric name or number goes here"), + ("Revenue", "unexpected 'R' at character 1"), + ("a % b", "unexpected '%' at character 3"), + ("1.", "unexpected '.' at character 2"), + ("a.b", "unexpected '.' at character 2"), + ], +) +def test_what_does_not_parse(text, message): + with pytest.raises(ExpressionError) as raised: + parse(text) + assert message in str(raised.value) + + +def test_names_in_order_once_each(): + assert names(parse("b / (a + b) - -c * 2")) == ["b", "a", "c"] + + +def test_evaluate_in_decimals_with_sql_nulls(): + node = parse("(a - b) / c * 100 + -1") + values = {"a": Decimal(30), "b": Decimal(10), "c": Decimal(40)} + assert evaluate(node, values) == Decimal(49) + assert evaluate(node, {**values, "c": Decimal(0)}) is None + assert evaluate(node, {**values, "a": None}) is None + assert evaluate(parse("-a"), {"a": None}) is None + assert evaluate(parse("a / 3"), {"a": Decimal(1)}) == Decimal(1) / Decimal(3) + + +def test_to_sql_parenthesises_and_never_divides_by_zero(): + sql = to_sql(parse("a - b / c * 2.50 + -d"), lambda name: f"[{name}]") + assert sql == "(([a] - (([b] / nullif([c], 0)) * 2.50)) + (-[d]))" diff --git a/tests/test_metrics_ossie.py b/tests/test_metrics_ossie.py new file mode 100644 index 0000000..41d8a7e --- /dev/null +++ b/tests/test_metrics_ossie.py @@ -0,0 +1,235 @@ +"""The Ossie 0.1.1 export: the mapping, the lossiness report, and the vendored schema. + +`fixtures/ossie/osi-schema.json` is Apache Ossie's own JSON Schema for 0.1.1 +(see `fixtures/ossie/VENDORED.md`); every document exported here validates +against it. +""" + +import json +from pathlib import Path + +import jsonschema +import pytest +import yaml + +from model2data.metrics import OSSIE_VERSION, load, resolve, to_ossie +from model2data.model import load as load_model + +ROOT = Path(__file__).resolve().parent.parent +FIXTURES = ROOT / "tests" / "fixtures" +SPEC = ROOT / "model2data" / "spec" / "examples" +SHOP = load_model(FIXTURES / "metrics" / "shop.model2data.yml") +OSSIE_SCHEMA = json.loads((FIXTURES / "ossie" / "osi-schema.json").read_text(encoding="utf-8")) + + +def _valid(document: dict) -> None: + jsonschema.Draft202012Validator(OSSIE_SCHEMA).validate(document) + + +def _coffee(): + model = load_model(SPEC / "coffee_webshop.model2data.yml") + return resolve(model, load(SPEC / "coffee_webshop.metrics.yml", model)) + + +def test_the_vendored_schema_is_ossie_0_1_1(): + assert OSSIE_SCHEMA["properties"]["version"]["const"] == OSSIE_VERSION == "0.1.1" + jsonschema.Draft202012Validator.check_schema(OSSIE_SCHEMA) + + +@pytest.mark.parametrize( + "model_path", + sorted((ROOT / "examples").glob("*.model2data.yml")) + [SPEC / "coffee_webshop.model2data.yml"], + ids=lambda path: path.name, +) +def test_every_example_model_exports_a_valid_document(model_path): + export = to_ossie(resolve(load_model(model_path))) + _valid(export.document) + # And the YAML reads back as the same document. + assert yaml.safe_load(export.to_yaml()) == json.loads(json.dumps(export.document)) + + +def test_the_coffee_example_exports_a_valid_document(): + export = to_ossie(_coffee()) + _valid(export.document) + _valid(yaml.safe_load(export.to_yaml())) + + +def test_the_semantic_model_and_its_datasets(): + document = to_ossie(_coffee()).document + assert document["version"] == "0.1.1" + (model,) = document["semantic_model"] + assert model["name"] == "coffee_webshop" + assert model["description"].startswith("A Belgian specialty-coffee roaster") + products = next(d for d in model["datasets"] if d["name"] == "products") + assert products["source"] == "staging.stg_products" + assert products["primary_key"] == ["id"] + assert products["unique_keys"] == [["sku"]] + assert products["description"] == "The catalogue: one row per sellable product" + fields = {f["name"]: f for f in products["fields"]} + assert list(fields)[:3] == ["id", "name", "sku"] + assert fields["id"] == { + "name": "id", + "expression": {"dialects": [{"dialect": "ANSI_SQL", "expression": "id"}]}, + } + assert fields["name"]["dimension"] == {"is_time": False} + assert fields["name"]["label"] == "Product" # from the metrics file's dimensions + assert fields["created_at"]["dimension"] == {"is_time": True} + assert json.loads(fields["roast"]["custom_extensions"][0]["data"]) == { + "model2data": {"values": ["light", "medium", "dark"]} + } + customers = next(d for d in model["datasets"] if d["name"] == "customers") + assert "dimension" not in {f["name"]: f for f in customers["fields"]}["email"] + + +def test_relationships_run_from_the_many_side(): + model = to_ossie(_coffee()).document["semantic_model"][0] + assert model["relationships"][0] == { + "name": "orders_customer_id_to_customers", + "from": "orders", + "to": "customers", + "from_columns": ["customer_id"], + "to_columns": ["id"], + } + + +def test_metric_expressions(): + metrics = {m["name"]: m for m in to_ossie(_coffee()).document["semantic_model"][0]["metrics"]} + + def sql(name: str) -> str: + (dialect,) = metrics[name]["expression"]["dialects"] + assert dialect["dialect"] == "ANSI_SQL" + return dialect["expression"] + + revenue = "SUM(CASE WHEN orders.status IN ('paid', 'shipped', 'delivered') THEN orders.total_amount END)" + assert sql("revenue") == revenue + assert sql("orders") == "COUNT(DISTINCT orders.id)" + assert sql("order_lines") == "COUNT(order_items.id)" + assert sql("average_order_value") == f"({revenue}) / NULLIF(COUNT(DISTINCT orders.id), 0)" + assert sql("web_share").startswith("(SUM(CASE WHEN (orders.status IN") + assert "/ NULLIF(SUM(" in sql("web_share") and "100" not in sql("web_share") + assert sql("coffee_units_sold") == ( + "SUM(CASE WHEN (orders.status <> 'cancelled' AND products.category IN ('beans', 'ground', " + "'capsules') AND customers.phone IS NOT NULL AND (orders.channel = 'web' OR " + "order_items.quantity >= 3)) THEN order_items.quantity END)" + ) + assert metrics["revenue"]["description"].startswith("Order value") + assert metrics["revenue"]["ai_context"].startswith("What customers paid for.") + assert json.loads(metrics["revenue"]["custom_extensions"][0]["data"]) == { + "model2data": {"label": "Revenue", "format": "currency", "time": "orders.order_date"} + } + assert metrics["revenue"]["custom_extensions"][0]["vendor_name"] == "COMMON" + + +def test_the_lossiness_report(): + export = to_ossie(_coffee()) + report = {(loss.subject, loss.item) for loss in export.lossiness} + assert ("metric coffee_units_sold", "join path") in report + assert any( + subject.startswith("metrics revenue, orders") and item == "label" + for subject, item in report + ) + assert ("metrics revenue, average_order_value, web_share", "format") in report + web_share = next( + m for m in export.document["semantic_model"][0]["metrics"] if m["name"] == "web_share" + ) + # percent is passed on as the fraction's format, the value never multiplied + assert ( + json.loads(web_share["custom_extensions"][0]["data"])["model2data"]["format"] == "percent" + ) + assert any(item == "time" for _, item in report) + assert any(item == "values" and "products.category" in subject for subject, item in report) + text = export.to_yaml() + assert text.startswith("# Apache Ossie (Open Semantic Interchange) 0.1.1") + assert "# - metric coffee_units_sold: join path: reaches customers through orders" in text + assert 'version: "0.1.1"' in text + + +def test_roles_grain_one_to_one_and_awkward_names(): + model = load_model( + """ +model2data: 0.4.0 +name: odd +tables: + user accounts: + role: dimension + columns: + id: {type: int, pk: true} + Display Name: text + profiles: + columns: + user_id: {type: int, references: {to: user accounts.id, one_to_one: true}} + is_public: boolean + events: + role: fact + grain: [user_id, at] + columns: + user_id: {type: int, references: user accounts.id} + at: timestamp + amount: {type: numeric, measure: true} +""" + ) + export = to_ossie(resolve(model), source=lambda entity: f"db.analytics.{entity.name}") + _valid(export.document) + datasets = {d["name"]: d for d in export.document["semantic_model"][0]["datasets"]} + assert datasets["user_accounts"]["source"] == "db.analytics.user_accounts" + assert datasets["user_accounts"]["fields"][1]["expression"]["dialects"][0]["expression"] == ( + '"Display Name"' + ) + assert json.loads(datasets["events"]["custom_extensions"][0]["data"]) == { + "model2data": {"role": "fact", "grain": ["user_id", "at"]} + } + relationship = export.document["semantic_model"][0]["relationships"][0] + assert json.loads(relationship["custom_extensions"][0]["data"]) == { + "model2data": {"one_to_one": True} + } + subjects = [(loss.subject, loss.item) for loss in export.lossiness] + assert ("dataset user_accounts", "role") in subjects + assert ("dataset events", "role and grain") in subjects + assert ("relationship profiles_user_id_to_user_accounts", "one_to_one") in subjects + # events has no primary key: its row count cannot name whose rows it counts + metrics_out = {m["name"]: m for m in export.document["semantic_model"][0]["metrics"]} + assert metrics_out["events_count"]["expression"]["dialects"][0]["expression"] == "COUNT(*)" + assert ("metric events_count", "row count") in subjects + assert metrics_out["events_amount"]["expression"]["dialects"][0]["expression"] == ( + "SUM(events.amount)" + ) + + +def test_a_filtered_row_count_and_literals_of_every_kind(): + metrics = load( + """ +model2data-metrics: 0.1.0 +model: shop +infer: false +metrics: + m: + count: lines + where: + customers.vip: true + customers.joined_on: {between: ["2025-01-01", "2025-12-31"]} + orders.placed_at: {lt: "2026-01-01 00:00:00"} + orders.note: {in: ["it's"]} + lines.price: {gte: 1.5, lte: 2} + orders.status: {not_in: [cancelled], is_null: false} +""", + SHOP, + ) + export = to_ossie(resolve(SHOP, metrics)) + _valid(export.document) + (metric,) = export.document["semantic_model"][0]["metrics"] + assert metric["expression"]["dialects"][0]["expression"] == ( + "COUNT(CASE WHEN (customers.vip = TRUE AND customers.joined_on BETWEEN DATE '2025-01-01' " + "AND DATE '2025-12-31' AND orders.placed_at < TIMESTAMP '2026-01-01 00:00:00' AND " + "orders.note IN ('it''s') AND (lines.price >= 1.5 AND lines.price <= 2) AND " + "(orders.status NOT IN ('cancelled') AND orders.status IS NOT NULL)) THEN lines.id END)" + ) + + +def test_a_model_without_relationships_or_metrics(): + model = load_model("model2data: 0.4.0\nname: one\ntables:\n t:\n columns:\n id: int\n") + document = to_ossie(resolve(model)).document + _valid(document) + assert "relationships" not in document["semantic_model"][0] + assert "metrics" not in document["semantic_model"][0] + assert to_ossie(resolve(model)).lossiness == [] + assert "Not expressible" not in to_ossie(resolve(model)).to_yaml() diff --git a/tests/test_metrics_reader.py b/tests/test_metrics_reader.py new file mode 100644 index 0000000..7a581b0 --- /dev/null +++ b/tests/test_metrics_reader.py @@ -0,0 +1,753 @@ +"""Reading a metrics file: the YAML profile, the schema, and every check, each with its path. + +Each test names the rule of `model2data/spec/metrics/README.md` it pins. The +model is `fixtures/metrics/shop.model2data.yml`. +""" + +from pathlib import Path +from textwrap import dedent + +import pytest + +from model2data.metrics import ( + Condition, + MetricsError, + Where, + from_dict, + is_metrics_file, + load, + sibling_model, + validate, +) +from model2data.metrics.reader import metrics_stem +from model2data.model import load as load_model + +FIXTURES = Path(__file__).resolve().parent / "fixtures" / "metrics" +SHOP = load_model(FIXTURES / "shop.model2data.yml") +HEAD = "model2data-metrics: 0.1.0\nmodel: shop\n" + + +def _issues(body: str, model=SHOP): + """`(path, message, severity)` of every issue in a document of `HEAD` + `body`.""" + return [(i.path, i.message, i.severity) for i in validate(HEAD + dedent(body), model)] + + +def _errors(body: str, model=SHOP): + return [ + (path, message) for path, message, severity in _issues(body, model) if severity == "error" + ] + + +def _warnings(body: str, model=SHOP): + return [ + (path, message) for path, message, severity in _issues(body, model) if severity == "warning" + ] + + +def _one_error(body: str, model=SHOP) -> tuple[str, str]: + errors = _errors(body, model) + assert len(errors) == 1, errors + return errors[0] + + +# --------------------------------------------------------------------------- +# A file that conforms +# --------------------------------------------------------------------------- +def test_a_file_with_every_kind_reads_into_typed_metrics(): + metrics = load( + HEAD + + dedent( + """ + metrics: + revenue: + label: Revenue + description: Paid orders. + ai_context: Money in. + measure: orders.amount + where: + orders.status: paid + time: orders.placed_at + format: currency + x-owner: finance + orders_n: + count: orders + share: + ratio: {numerator: revenue, denominator: orders_amount, x-note: kept} + format: percent + net: + expression: revenue - 2 + dimensions: + customers.country: {label: Country, description: Where they live} + customers.vip: false + stores.region: true + infer: true + x-team: data + """ + ), + SHOP, + ) + assert list(metrics.metrics) == ["revenue", "orders_n", "share", "net"] + revenue = metrics.metrics["revenue"] + assert revenue.kind == "simple" and revenue.measure == "orders.amount" and revenue.agg is None + assert revenue.where == Where([Condition("orders.status", {"eq": "paid"}, written="value")]) + assert revenue.extensions == {"x-owner": "finance"} + assert metrics.metrics["orders_n"].kind == "count" + share = metrics.metrics["share"] + assert share.kind == "ratio" and share.ratio is not None + assert share.ratio.extensions == {"x-note": "kept"} + assert metrics.metrics["net"].kind == "derived" + assert metrics.dimensions["customers.country"].label == "Country" + assert metrics.dimensions["customers.vip"].offered is False + assert metrics.dimensions["stores.region"].offered is True + assert metrics.extensions == {"x-team": "data"} + assert metrics.warnings == [] + + +def test_the_reference_example_conforms_against_its_model(): + spec = Path(__file__).resolve().parent.parent / "model2data" / "spec" / "examples" + model = load_model(spec / "coffee_webshop.model2data.yml") + metrics = load(spec / "coffee_webshop.metrics.yml", model) + assert metrics.model == "coffee_webshop" + assert metrics.warnings == [] + + +def test_json_reads_as_json(): + text = '{"model2data-metrics": "0.1.0", "model": "shop", "metrics": {"n": {"count": "orders"}}}' + assert load(text, SHOP).metrics["n"].count == "orders" + + +def test_a_file_path_is_read(tmp_path): + path = tmp_path / "shop.metrics.json" + path.write_text('{"model2data-metrics": "0.1.0", "model": "shop"}', encoding="utf-8") + assert load(path).model == "shop" + assert load(str(path)).model == "shop" + + +def test_from_dict_takes_a_parsed_document(): + metrics = from_dict({"model2data-metrics": "0.1.0", "model": "shop", "infer": False}, SHOP) + assert metrics.infer is False and metrics.metrics == {} + + +def test_the_conditions_keep_how_they_were_written(): + metrics = load( + HEAD + + dedent( + """ + metrics: + m: + count: orders + where: + orders.status: [open, paid] + orders.amount: {gte: 20, lt: 50, x-why: range} + any: + - orders.note: {is_null: true} + - all: + - orders.status: paid + - customers.vip: true + """ + ), + SHOP, + ) + where = metrics.metrics["m"].where + assert where is not None + first, second, group = where.terms + assert first == Condition("orders.status", {"in": ["open", "paid"]}, written="list") + assert second == Condition( + "orders.amount", {"gte": 20, "lt": 50}, extensions={"x-why": "range"} + ) + assert isinstance(group, Where) and group.any + assert [c.column for c in where.conditions()] == [ + "orders.status", + "orders.amount", + "orders.note", + "orders.status", + "customers.vip", + ] + + +# --------------------------------------------------------------------------- +# The YAML profile and the version +# --------------------------------------------------------------------------- +@pytest.mark.parametrize( + "text, message", + [ + ("a: &x 1\nb: *x\n", "anchors"), + ("model2data-metrics: 0.1.0\nmodel: shop\nmodel: shop\n", "duplicate key"), + ("{not json", "not valid JSON"), + ("model: [\n", "not valid YAML"), + ("", "empty"), + ], +) +def test_the_yaml_profile_applies(text, message): + with pytest.raises(MetricsError) as raised: + load(text) + assert message in str(raised.value) + assert str(raised.value).startswith("The metrics file has 1 issue") + + +def test_a_list_at_the_top_is_refused(): + assert validate("- a\n") == [validate("- a\n")[0]] + assert "mapping at the top level" in validate("- a\n")[0].message + + +def test_a_minor_version_this_reader_does_not_implement_is_refused(): + issues = validate("model2data-metrics: 0.2.0\nmodel: shop\n") + assert [(i.path, i.is_error) for i in issues] == [("model2data-metrics", True)] + assert "metrics spec 0.2.0" in issues[0].message + + +def test_a_malformed_version_is_the_schemas_to_report(): + issues = validate("model2data-metrics: '1'\nmodel: shop\n") + assert [i.path for i in issues] == ["model2data-metrics"] + issues = validate("model2data-metrics: 1.0\nmodel: shop\n") + assert [i.path for i in issues] == ["model2data-metrics"] + + +def test_a_later_patch_version_reads(): + assert validate("model2data-metrics: 0.1.7\nmodel: shop\n", SHOP) == [] + + +def test_issues_carry_their_line(): + issues = validate(HEAD + "metrics:\n m:\n count: nowhere\n", SHOP) + assert [(i.path, i.line) for i in issues] == [("metrics.m.count", 5)] + + +# --------------------------------------------------------------------------- +# The schema +# --------------------------------------------------------------------------- +def test_required_keys(): + issues = validate("model2data-metrics: 0.1.0\n") + assert [(i.path, i.message) for i in issues] == [("", "`model` is required")] + + +def test_an_unknown_key_is_an_error_and_an_extension_is_not(): + assert _one_error("metrics:\n m: {count: orders, colour: red, x-colour: red}\n") == ( + "metrics.m.colour", + 'unknown key "colour": the keys allowed here are label, description, ai_context, ' + "format, measure, agg, count, ratio, expression, time, where; an extension key " + "starts with x-", + ) + + +@pytest.mark.parametrize( + "body, path, words", + [ + ("metrics:\n Revenue: {count: orders}\n", "metrics", "must be a metric name"), + ("metrics:\n m: {measure: amount, agg: sum}\n", "metrics.m.measure", "must name a column"), + ("metrics:\n m: {count: a.b.c}\n", "metrics.m.count", "must name a table"), + ("metrics:\n m: {count: orders, format: euro}\n", "metrics.m.format", "must be one of"), + ( + "metrics:\n m: {measure: orders.amount, agg: total}\n", + "metrics.m.agg", + "must be one of", + ), + ( + "metrics:\n m: {ratio: {numerator: a}}\n", + "metrics.m.ratio", + "`denominator` is required", + ), + ("metrics:\n m: {count: orders, where: {}}\n", "metrics.m.where", "must not be empty"), + ( + "metrics:\n m: {count: orders, where: {status: paid}}\n", + "metrics.m.where.status", + "unknown key", + ), + ( + "metrics:\n m: {count: orders, where: {orders.status: {like: p}}}\n", + "metrics.m.where.orders.status.like", + "unknown key", + ), + ( + "metrics:\n m: {count: orders, where: {orders.status: null}}\n", + "metrics.m.where.orders.status", + "must be", + ), + ( + "metrics:\n m: {count: orders, where: {orders.amount: {between: [1]}}}\n", + "metrics.m.where.orders.amount.between", + "at least 2", + ), + ( + "metrics:\n m: {count: orders, where: {orders.status: []}}\n", + "metrics.m.where.orders.status", + "", + ), + ( + "metrics:\n m: {count: orders, where: {any: []}}\n", + "metrics.m.where.any", + "must not be empty", + ), + ("dimensions:\n customers.vip: maybe\n", "dimensions.customers.vip", "must be"), + ("dimensions:\n vip: true\n", "dimensions", "must name a column"), + ("infer: yes\n", "infer", "true or false"), + ], +) +def test_schema_errors_say_what_is_wrong_where(body, path, words): + errors = _errors(body) + assert any(p == path and words in m for p, m in errors), errors + + +# --------------------------------------------------------------------------- +# Checks beyond the schema +# --------------------------------------------------------------------------- +def test_a_metric_needs_a_kind(): + assert _one_error("metrics:\n m: {label: M}\n") == ( + "metrics.m", + "a metric needs one of `measure` (a column), `count` (a table's rows), `ratio` or " + "`expression`", + ) + + +def test_a_metric_has_one_kind(): + assert _one_error("metrics:\n m: {count: orders, measure: orders.amount}\n") == ( + "metrics.m", + "a metric is of one kind, but `measure` and `count` are both given: keep one", + ) + + +def test_agg_only_with_measure(): + assert _one_error("metrics:\n m: {count: orders, agg: sum}\n") == ( + "metrics.m.agg", + "`agg` says how a `measure` aggregates; this metric has none", + ) + + +@pytest.mark.parametrize( + "key, value", [("time", "orders.placed_at"), ("where", "{orders.status: paid}")] +) +def test_time_and_where_are_not_for_a_ratio_or_derived_metric(key, value): + path, message = _one_error( + f"metrics:\n m: {{ratio: {{numerator: orders_amount, denominator: orders_count}}, {key}: {value}}}\n" + ) + assert path == f"metrics.m.{key}" and "a ratio is" in message + path, message = _one_error( + f"metrics:\n m: {{expression: orders_amount * 2, {key}: {value}}}\n" + ) + assert path == f"metrics.m.{key}" and "a derived metric is" in message + + +@pytest.mark.parametrize( + "expression, message", + [ + ("revenue +", "the expression ends where a metric name or number should be"), + ("revenue $ 2", "unexpected '$' at character 9"), + ("(revenue", "the parenthesis at character 1 is never closed"), + ("revenue orders", "unexpected 'orders' at character 9"), + ("2 * 3", "the expression uses no metric"), + (" ", "the expression is empty"), + ], +) +def test_an_expression_that_does_not_parse_is_an_error(expression, message): + path, found = _one_error(f'metrics:\n m: {{expression: "{expression}"}}\n', model=None) + assert path == "metrics.m.expression" + assert message in found + + +def test_a_cycle_between_metrics_is_an_error_naming_it(): + errors = _errors( + """ + metrics: + a: {expression: b + 1} + b: {ratio: {numerator: c, denominator: orders_count}} + c: {expression: a * 2} + d: {expression: d} + """, + model=None, + ) + assert errors == [ + ("metrics.a", "metrics depend on each other in a cycle: a -> b -> c -> a"), + ("metrics.d", "metrics depend on each other in a cycle: d -> d"), + ] + + +def test_without_a_model_unknown_metrics_are_reported_only_when_nothing_is_inferred(): + body = "metrics:\n r: {ratio: {numerator: nope, denominator: also_nope}}\n" + assert _errors(body, model=None) == [] + errors = _errors("infer: false\n" + body, model=None) + assert [path for path, _ in errors] == [ + "metrics.r.ratio.numerator", + "metrics.r.ratio.denominator", + ] + + +# --------------------------------------------------------------------------- +# Checks against the model +# --------------------------------------------------------------------------- +def test_the_model_name_must_match(): + issues = validate("model2data-metrics: 0.1.0\nmodel: other\n", SHOP) + assert [(i.path, i.message) for i in issues] == [ + ("model", "the metrics are for model 'other', and the model is 'shop'") + ] + + +def test_a_model_without_a_name_goes_by_the_name_it_is_given(): + nameless = load_model( + (FIXTURES / "shop.model2data.yml").read_text().replace("name: shop\n", "") + ) + assert validate("model2data-metrics: 0.1.0\nmodel: shop\n", nameless, model_name="shop") == [] + assert validate("model2data-metrics: 0.1.0\nmodel: shop\n", nameless, model_name="x") + assert validate("model2data-metrics: 0.1.0\nmodel: shop\n", nameless) == [] + + +@pytest.mark.parametrize( + "body, path, message", + [ + ( + "metrics:\n m: {measure: order.amount, agg: sum}\n", + "metrics.m.measure", + "the model has no table 'order' (did you mean 'orders'?)", + ), + ( + "metrics:\n m: {measure: orders.amout, agg: sum}\n", + "metrics.m.measure", + "table 'orders' has no column 'amout' (did you mean 'amount'?)", + ), + ( + "metrics:\n m: {count: order}\n", + "metrics.m.count", + "the model has no table 'order' (did you mean 'orders'?)", + ), + ( + "metrics:\n m: {count: orders, time: orders.when}\n", + "metrics.m.time", + "table 'orders' has no column 'when'", + ), + ( + "metrics:\n m: {count: orders, where: {orders.state: paid}}\n", + "metrics.m.where.orders.state", + "table 'orders' has no column 'state' (did you mean 'status'?)", + ), + ( + "dimensions:\n customers.nope: true\n", + "dimensions.customers.nope", + "table 'customers' has no column 'nope'", + ), + ( + "dimensions:\n people.vip: true\n", + "dimensions.people.vip", + "the model has no table 'people'", + ), + ], +) +def test_unknown_tables_and_columns(body, path, message): + assert _one_error(body) == (path, message) + + +def test_a_column_without_a_measure_needs_an_agg(): + assert _one_error("metrics:\n m: {measure: orders.status}\n") == ( + "metrics.m.measure", + "orders.status has no `measure` in the model, so say how it aggregates with `agg` " + "(sum, average, min, max, median, count, count_distinct)", + ) + + +@pytest.mark.parametrize("agg", ["sum", "average", "min", "max", "median"]) +def test_a_numeric_aggregation_needs_a_numeric_column(agg): + assert _one_error(f"metrics:\n m: {{measure: orders.status, agg: {agg}}}\n") == ( + "metrics.m.agg", + f"{agg} needs a numeric column, and orders.status is status: count and count_distinct " + "apply to any column", + ) + + +@pytest.mark.parametrize("agg", ["count", "count_distinct"]) +def test_counting_applies_to_any_column(agg): + assert _errors(f"metrics:\n m: {{measure: orders.status, agg: {agg}}}\n") == [] + + +def test_an_enum_named_like_a_number_is_not_numeric(): + assert _one_error("metrics:\n m: {measure: customers.tier, agg: sum}\n")[0] == "metrics.m.agg" + + +def test_unknown_metrics_in_a_ratio_or_expression(): + errors = _errors( + """ + metrics: + r: {ratio: {numerator: revenu, denominator: orders_count}} + d: {expression: r + orders_amont} + """ + ) + assert errors == [ + ("metrics.r.ratio.numerator", "there is no metric 'revenu'"), + ( + "metrics.d.expression", + "there is no metric 'orders_amont' (did you mean 'orders_amount'?)", + ), + ] + + +def test_inferred_metrics_are_known_to_ratios_unless_inference_is_off(): + body = "metrics:\n r: {ratio: {numerator: orders_amount, denominator: orders_count}}\n" + assert _errors(body) == [] + assert [p for p, _ in _errors("infer: false\n" + body)] == [ + "metrics.r.ratio.numerator", + "metrics.r.ratio.denominator", + ] + + +def test_time_must_be_a_date_or_timestamp(): + assert _one_error("metrics:\n m: {count: orders, time: orders.note}\n") == ( + "metrics.m.time", + "orders.note is text, not a date or timestamp column", + ) + + +def test_time_on_a_table_reached_through_a_foreign_key(): + assert _errors("metrics:\n m: {count: lines, time: customers.joined_on}\n") == [] + + +def test_a_column_no_path_reaches_is_an_error(): + assert _one_error("metrics:\n m: {count: customers, where: {orders.status: paid}}\n") == ( + "metrics.m.where.orders.status", + "filter column orders.status cannot be reached from customers: a column has to be on " + "the metric's table, or on one its foreign keys lead to (many-to-one)", + ) + assert _one_error("metrics:\n m: {count: customers, time: orders.placed_at}\n")[0] == ( + "metrics.m.time" + ) + + +def test_two_paths_to_a_table_is_an_error_naming_both(): + assert _one_error("metrics:\n m: {count: transfers, where: {customers.vip: true}}\n") == ( + "metrics.m.where.customers.vip", + "filter column customers.vip is reached from transfers along two paths, so which " + "customers it means is unclear: transfers.sender_id -> customers.id; or " + "transfers.receiver_id -> customers.id", + ) + + +def test_a_composite_foreign_key_is_a_path(): + assert _errors("metrics:\n m: {count: visits, where: {stores.region: north}}\n") == [] + + +@pytest.mark.parametrize( + "column, value, message", + [ + ( + "orders.status", + "payed", + "\"payed\" is not a member of status (open, paid, cancelled) (did you mean 'paid'?)", + ), + ("orders.status", 3, "3 is not a member of status (open, paid, cancelled)"), + ("customers.vip", "yes", 'must be true or false, not "yes"'), + ("orders.amount", "'12'", 'must be a number, as numeric is numeric, not the string "12"'), + ("lines.qty", 1.5, "must be a whole number, as int is an integer type (got 1.5)"), + ( + "customers.joined_on", + "'2026-01-01 08:00'", + 'must be an ISO 8601 date as a string, YYYY-MM-DD (got "2026-01-01 08:00")', + ), + ("customers.joined_on", "'2026-13-01'", "must be an ISO 8601 date"), + ( + "orders.placed_at", + "'yesterday'", + "must be an ISO 8601 timestamp as a string, YYYY-MM-DD or YYYY-MM-DD HH:MM:SS", + ), + ("orders.placed_at", "'2026-01-01T08:00:00+01:00'", "must be an ISO 8601 timestamp"), + ("orders.note", 12, "must be text, as text is a text column: quote it (got 12)"), + ], +) +def test_a_value_must_fit_its_column(column, value, message): + table = column.split(".")[0] + reach = "lines" if table in ("lines", "orders", "customers") else table + path, found = _one_error(f"metrics:\n m: {{count: {reach}, where: {{{column}: {value}}}}}\n") + assert path == f"metrics.m.where.{column}" + assert found.startswith(message) + + +def test_values_that_fit(): + assert ( + _errors( + """ + metrics: + m: + count: lines + where: + customers.tier: [1, "2"] + customers.vip: false + lines.qty: {in: [1, 2.0]} + customers.joined_on: {between: ["2025-01-01", "2025-12-31"]} + orders.placed_at: {gte: "2025-01-01", lt: "2026-01-01 00:00:00"} + orders.note: ["12", "on hold"] + """ + ) + == [] + ) + + +def test_a_bad_value_in_a_list_has_its_index(): + assert _one_error("metrics:\n m: {count: orders, where: {orders.status: [open, gone]}}\n")[ + 0 + ] == ("metrics.m.where.orders.status.1") + assert _one_error( + "metrics:\n m: {count: orders, where: {orders.amount: {between: [1, x]}}}\n" + )[0] == ("metrics.m.where.orders.amount.between.1") + + +@pytest.mark.parametrize( + "column, kind", + [("orders.status", "an enum"), ("customers.vip", "boolean"), ("orders.note", "text")], +) +@pytest.mark.parametrize("operator", ["gt", "gte", "lt", "lte", "between"]) +def test_order_operators_only_on_numbers_and_times(column, kind, operator): + operand = "[a, b]" if operator == "between" else "x" + path, message = _one_error( + f"metrics:\n m: {{count: lines, where: {{{column}: {{{operator}: {operand}}}}}}}\n" + ) + assert path == f"metrics.m.where.{column}.{operator}" + assert message == ( + f"`{operator}` compares by order, and {column} is {kind}: list the values it may hold " + "with `in` instead" + ) + + +def test_nested_filters_report_their_path(): + errors = _errors( + """ + metrics: + m: + count: lines + where: + any: + - orders.status: paid + - all: + - orders.status: gone + - customers.vip: maybe + """ + ) + assert [path for path, _ in errors] == [ + "metrics.m.where.any.1.all.0.orders.status", + "metrics.m.where.any.1.all.1.customers.vip", + ] + + +# --------------------------------------------------------------------------- +# Warnings +# --------------------------------------------------------------------------- +def test_a_metric_with_no_time_warns(): + assert _warnings("metrics:\n m: {measure: logs.level, agg: max}\n") == [ + ( + "metrics.m", + "no date or timestamp column on logs, or on a table it reaches, dates this metric: " + "it has a total but no value per month. Set `time` to date it", + ) + ] + + +def test_a_metric_dated_through_its_parents_does_not_warn(): + assert _warnings("metrics:\n m: {count: lines}\n") == [] + + +@pytest.mark.parametrize( + "condition, operator", + [ + ("{gt: 100}", "gt"), + ("{gte: 100.5}", "gte"), + ("{lt: 10}", "lt"), + ("{lte: 9}", "lte"), + ("{eq: 200}", "eq"), + ("{in: [1, 2]}", "in"), + ("{between: [101, 200]}", "between"), + ("{between: [1, 9]}", "between"), + ], +) +def test_a_comparison_outside_the_generated_range_never_matches(condition, operator): + assert _warnings( + f"metrics:\n m: {{count: orders, where: {{orders.amount: {condition}}}}}\n" + ) == [ + ( + f"metrics.m.where.orders.amount.{operator}", + "can never match: orders.amount is generated between 10 and 100", + ) + ] + + +@pytest.mark.parametrize( + "condition", ["{gte: 100}", "{lte: 10}", "{in: [5, 50]}", "{ne: 500}", "{between: [5, 10]}"] +) +def test_a_comparison_that_can_match_does_not_warn(condition): + assert ( + _warnings(f"metrics:\n m: {{count: orders, where: {{orders.amount: {condition}}}}}\n") + == [] + ) + + +def test_a_one_sided_range_warns_with_its_bound(tmp_path): + text = ( + (FIXTURES / "shop.model2data.yml") + .read_text() + .replace("generate: {min: 10, max: 100}", "generate: {min: 10}") + ) + model = load_model(text) + assert _warnings( + "metrics:\n m: {count: orders, where: {orders.amount: {lt: 5}}}\n", model + ) == [ + ( + "metrics.m.where.orders.amount.lt", + "can never match: orders.amount is generated at least 10", + ) + ] + text = text.replace("generate: {min: 10}", "generate: {max: 100}") + model = load_model(text) + assert _warnings("metrics:\n m: {count: orders, where: {orders.amount: 500}}\n", model) == [ + ("metrics.m.where.orders.amount", "can never match: orders.amount is generated at most 100") + ] + assert _warnings("metrics:\n m: {count: lines, where: {lines.qty: {gt: 1000}}}\n") == [] + + +def test_is_null_on_a_column_that_is_never_null_never_matches(): + assert _warnings( + "metrics:\n m: {count: orders, where: {orders.amount: {is_null: true}, orders.id: {is_null: false}}}\n" + ) == [ + ( + "metrics.m.where.orders.amount.is_null", + "can never match: orders.amount is never null in the generated data", + ) + ] + + +def test_a_between_upside_down_never_matches(): + assert _warnings( + "metrics:\n m: {count: orders, where: {orders.placed_at: {between: ['2026-02-01', '2026-01-01']}}}\n" + ) == [ + ( + "metrics.m.where.orders.placed_at.between", + 'can never match: "2026-02-01" is above "2026-01-01"', + ) + ] + + +def test_load_raises_on_errors_and_keeps_warnings(): + with pytest.raises(MetricsError) as raised: + load(HEAD + "metrics:\n m: {count: logs, where: {logs.id: x}}\n", SHOP) + assert [i.path for i in raised.value.issues] == ["metrics.m.where.logs.id"] + assert [i.path for i in raised.value.warnings] == ["metrics.m"] + metrics = load(HEAD + "metrics:\n m: {count: logs}\n", SHOP) + assert [i.path for i in metrics.warnings] == ["metrics.m"] + + +# --------------------------------------------------------------------------- +# Files +# --------------------------------------------------------------------------- +def test_metrics_files_are_told_by_their_suffix(tmp_path): + assert is_metrics_file("coffee.metrics.yml") and is_metrics_file(Path("a/B.METRICS.JSON")) + assert not is_metrics_file("coffee.model2data.yml") + assert metrics_stem(Path("coffee.metrics.yaml")) == "coffee" + assert metrics_stem(Path("odd.yml")) == "odd" + + +@pytest.mark.parametrize( + "model_name", + ["shop.model2data.yml", "shop.model2data.yaml", "shop.model2data.json", "shop.dbml"], +) +def test_the_sibling_model_is_found_by_stem(tmp_path, model_name): + (tmp_path / model_name).write_text("x") + assert sibling_model(tmp_path / "shop.metrics.yml") == tmp_path / model_name + assert sibling_model(tmp_path / "other.metrics.yml") is None + + +def test_a_file_that_is_not_utf8_is_refused(tmp_path): + path = tmp_path / "shop.metrics.yml" + path.write_bytes(b"model: \xff\n") + with pytest.raises(MetricsError): + load(path) diff --git a/tests/test_metrics_semantic.py b/tests/test_metrics_semantic.py new file mode 100644 index 0000000..48522a9 --- /dev/null +++ b/tests/test_metrics_semantic.py @@ -0,0 +1,441 @@ +"""The semantic model: paths, inferred metrics, dimensions, entities and resolved metrics.""" + +from pathlib import Path + +import pytest + +from model2data.metrics import ( + Graph, + Join, + Metric, + Metrics, + MetricsError, + inferred_metrics, + load, + resolve, +) +from model2data.metrics.graph import describe +from model2data.metrics.infer import metric_name +from model2data.model import load as load_model + +FIXTURES = Path(__file__).resolve().parent / "fixtures" / "metrics" +SHOP = load_model(FIXTURES / "shop.model2data.yml") + + +def _metrics(body: str) -> Metrics: + return load("model2data-metrics: 0.1.0\nmodel: shop\n" + body, SHOP) + + +# --------------------------------------------------------------------------- +# Paths +# --------------------------------------------------------------------------- +def test_paths_follow_foreign_keys_from_child_to_parent(): + graph = Graph(SHOP) + to_orders = Join("lines", ("order_id",), "orders", ("id",)) + to_customers = Join("orders", ("customer_id",), "customers", ("id",)) + assert graph.paths("lines", "customers") == [(to_orders, to_customers)] + assert graph.paths("lines", "lines") == [()] + assert graph.paths("customers", "orders") == [] + assert graph.paths("logs", "orders") == [] + assert describe((to_orders, to_customers)) == ( + "lines.order_id -> orders.id, then orders.customer_id -> customers.id" + ) + assert describe(()) == "the table itself" + + +def test_two_paths_are_found_and_the_search_stops_there(): + graph = Graph(SHOP) + assert len(graph.paths("transfers", "customers")) == 2 + assert len(graph.paths("transfers", "customers", limit=1)) == 1 + + +def test_a_composite_foreign_key_is_one_step(): + assert Graph(SHOP).paths("visits", "stores") == [ + ( + Join("visits", ("store_id", "day"), "slots", ("store_id", "day")), + Join("slots", ("store_id",), "stores", ("id",)), + ) + ] + + +def test_a_cycle_of_references_is_walked_once(): + model = load_model( + """ +model2data: 0.4.0 +tables: + a: + columns: + id: {type: int, pk: true} + b_id: {type: int, references: b.id} + b: + columns: + id: {type: int, pk: true} + a_id: {type: int, references: a.id} + c_id: {type: int, references: c.id} + c: + columns: + id: {type: int, pk: true} + at: date +""" + ) + graph = Graph(model) + assert len(graph.paths("a", "c")) == 1 + assert graph.first_time_column("a") == ("c.at", graph.paths("a", "c")[0]) + + +def test_the_default_time_column(): + graph = Graph(SHOP) + assert graph.first_time_column("orders") == ("orders.placed_at", ()) + # lines has no date: its order's, one step away, before the customer's, two steps away + found = graph.first_time_column("lines") + assert found is not None and found[0] == "orders.placed_at" + # stores, and anything it reaches, has none + assert graph.first_time_column("stores") is None + # transfers reaches customers along two paths, so customers cannot date it + assert graph.first_time_column("transfers") is None + assert graph.temporal_columns("customers") == ["joined_on"] + + +def test_an_enum_named_like_a_date_is_not_a_time(): + model = load_model( + """ +model2data: 0.4.0 +enums: + update_kind: [a, b] +tables: + t: + columns: + id: {type: int, pk: true} + kind: update_kind +""" + ) + assert Graph(model).temporal_columns("t") == [] + + +# --------------------------------------------------------------------------- +# Inferred metrics +# --------------------------------------------------------------------------- +def test_inferred_metrics_are_named_as_the_studio_names_them(): + inferred = inferred_metrics(SHOP) + assert list(inferred) == [ + "orders_amount", + "orders_count", + "lines_qty", + "lines_price_average", + "lines_count", + ] + amount = inferred["orders_amount"] + assert (amount.kind, amount.measure, amount.agg, amount.inferred) == ( + "simple", + "orders.amount", + "sum", + True, + ) + assert amount.label == "Orders amount" + assert amount.description == "Sum of orders.amount." + average = inferred["lines_price_average"] + assert average.label == "Lines price (average)" + assert average.description == "Average of lines.price." + assert inferred["orders_count"] == Metric( + kind="count", + count="orders", + label="Orders count", + description="Rows of orders.", + inferred=True, + ) + + +def test_a_row_count_for_facts_and_tables_with_a_measure_only(): + model = load_model( + """ +model2data: 0.4.0 +tables: + events: + role: fact + columns: + id: {type: int, pk: true} + prices: + role: dimension + columns: + id: {type: int, pk: true} + amount: {type: numeric, measure: max} + plain: + columns: + id: {type: int, pk: true} + off: {type: int, measure: false} +""" + ) + assert list(inferred_metrics(model)) == ["events_count", "prices_amount_max"] + + +@pytest.mark.parametrize( + "text, name", + [ + ("Order Items__Total", "order_items_total"), + ("raw.orders_amount", "raw_orders_amount"), + ("2024_sales", "c_2024_sales"), + ("x", "x_x"), + ("___", "unnamed"), + ("Coût €", "co_t"), + ], +) +def test_metric_names(text, name): + assert metric_name(text) == name + + +def test_a_name_taken_twice_gets_a_number(): + model = load_model( + """ +model2data: 0.4.0 +tables: + a b: + columns: + c: {type: int, measure: true} + a_b: + columns: + c: {type: int, measure: true} +""" + ) + assert list(inferred_metrics(model)) == ["a_b_c", "a_b_count", "a_b_c_2", "a_b_count_2"] + + +def test_an_explicit_metric_replaces_the_inferred_one_and_comes_first(): + semantic = resolve( + SHOP, + _metrics( + "metrics:\n lines_qty: {measure: lines.qty, agg: max}\n extra: {count: stores}\n" + ), + ) + assert list(semantic.metrics) == [ + "lines_qty", + "extra", + "orders_amount", + "orders_count", + "lines_price_average", + "lines_count", + ] + assert semantic.metrics["lines_qty"].agg == "max" + assert semantic.metrics["lines_qty"].inferred is False + + +def test_infer_false_keeps_only_the_files_metrics(): + semantic = resolve(SHOP, _metrics("infer: false\nmetrics:\n n: {count: stores}\n")) + assert list(semantic.metrics) == ["n"] + + +def test_no_metrics_file_means_the_inferred_metrics(): + semantic = resolve(SHOP) + assert list(semantic.metrics) == list(inferred_metrics(SHOP)) + assert semantic.name == "shop" + nameless = load_model("model2data: 0.4.0\ntables:\n t:\n columns:\n id: int\n") + assert resolve(nameless, model_name="stem").name == "stem" + assert resolve(nameless).name == "model" + + +def test_resolve_refuses_metrics_that_do_not_fit_the_model(): + metrics = load("model2data-metrics: 0.1.0\nmodel: shop\nmetrics:\n m: {count: nowhere}\n") + with pytest.raises(MetricsError) as raised: + resolve(SHOP, metrics) + assert [i.path for i in raised.value.issues] == ["metrics.m.count"] + + +# --------------------------------------------------------------------------- +# Resolved metrics +# --------------------------------------------------------------------------- +def test_a_simple_metric_resolves_its_table_aggregation_time_and_joins(): + semantic = resolve( + SHOP, + _metrics( + """ +metrics: + m: + measure: lines.price + where: + customers.vip: true + any: + - orders.status: paid + - lines.qty: {gt: 2} +""" + ), + ) + metric = semantic.metrics["m"] + assert (metric.table, metric.column, metric.column_kind, metric.agg) == ( + "lines", + "price", + "decimal", + "average", + ) + assert metric.time == "orders.placed_at" and metric.time_kind == "timestamp" + assert list(metric.joins) == ["orders", "customers"] + assert len(metric.joins["customers"]) == 2 + assert metric.label == "M" + + +def test_an_explicit_time_and_no_time(): + semantic = resolve( + SHOP, + _metrics( + "metrics:\n a: {count: lines, time: customers.joined_on}\n" + " b: {measure: logs.level, agg: max}\n" + ), + ) + assert semantic.metrics["a"].time == "customers.joined_on" + assert semantic.metrics["a"].time_kind == "date" + assert list(semantic.metrics["a"].joins) == ["customers"] + assert semantic.metrics["b"].time is None and semantic.metrics["b"].joins == {} + + +def test_ratio_and_derived_metrics_know_their_inputs(): + semantic = resolve( + SHOP, + _metrics( + """ +metrics: + r: {ratio: {numerator: orders_amount, denominator: orders_amount}} + d: {expression: r * 100 - lines_qty / r} +""" + ), + ) + assert semantic.metrics["r"].inputs == ("orders_amount",) + assert semantic.metrics["d"].inputs == ("r", "lines_qty") + assert semantic.simple_inputs("d") == ["orders_amount", "lines_qty"] + assert semantic.simple_inputs("orders_amount") == ["orders_amount"] + + +# --------------------------------------------------------------------------- +# Entities, relationships, dimensions, measures +# --------------------------------------------------------------------------- +def test_entities_carry_keys_grain_and_dbt_names(): + model = load_model( + """ +model2data: 0.4.0 +tables: + Order Lines: + role: fact + grain: [order_id, n] + description: One per line + keys: + - {unique: [order_id, n]} + columns: + id: {type: int, pk: true} + order_id: int + n: int + code: {type: text, unique: true} +""" + ) + entity = resolve(model).entities["Order Lines"] + assert entity.name == "order_lines" + assert entity.primary_key == ("id",) + assert entity.unique_keys == (("code",), ("order_id", "n")) + assert entity.grain == ("order_id", "n") + assert (entity.role, entity.description) == ("fact", "One per line") + + +def test_relationships_run_from_the_many_side(): + model = load_model( + """ +model2data: 0.4.0 +tables: + users: + columns: + id: {type: int, pk: true} + profiles: + columns: + user_id: {type: int, references: {to: users.id, one_to_one: true}} + pairs: + keys: + - {pk: [a, b]} + columns: + a: int + b: int + links: + foreign_keys: + - {columns: [x, y], references: pairs, to_columns: [a, b], one_to_one: true} + columns: + x: int + y: int +""" + ) + relationships = resolve(model).relationships + assert [(r.name, r.from_table, r.to_table, r.one_to_one) for r in relationships] == [ + ("profiles_user_id_to_users", "profiles", "users", True), + ("links_x_y_to_pairs", "links", "pairs", True), + ] + assert relationships[1].from_columns == ("x", "y") + assert relationships[1].to_columns == ("a", "b") + + +def test_default_dimensions_and_overrides(): + semantic = resolve( + SHOP, + _metrics( + """ +dimensions: + customers.vip: false + customers.country: {label: Country, description: Where they live} + orders.note: true + orders.status: {label: Order status} +""" + ), + ) + found = {d.path: d for d in semantic.dimensions} + assert list(found) == [ + "customers.country", + "customers.tier", + "customers.joined_on", + "orders.status", + "orders.placed_at", + "orders.note", + "slots.day", + "visits.day", + ] + assert found["customers.country"].label == "Country" + assert found["customers.country"].description == "Where they live" + assert found["customers.country"].kind == "categorical" + assert found["customers.tier"].members == ("1", "2") + assert found["orders.status"].label == "Order status" + assert found["orders.placed_at"].kind == "time" + assert found["customers.joined_on"].label == "Joined on" + + +def test_keys_foreign_keys_and_measures_are_not_categorical_dimensions(): + model = load_model( + """ +model2data: 0.4.0 +enums: + e: [a, b] +tables: + p: + keys: + - {pk: [k, k2]} + columns: + k: e + k2: int + u: {type: e, unique: true} + r: {type: e, references: q.id} + m: {type: boolean, measure: count} + ok: e + q: + keys: + - {pk: [id, id2]} + columns: + id: e + id2: int + w: + foreign_keys: + - {columns: [f, g], references: q, to_columns: [id, id2]} + columns: + f: e + g: int + flag: bool +""" + ) + assert [d.path for d in resolve(model).dimensions] == ["p.ok", "w.flag"] + + +def test_measures_list_every_measure_column(): + assert [(m.table, m.column, m.agg) for m in resolve(SHOP).measures] == [ + ("orders", "amount", "sum"), + ("lines", "qty", "sum"), + ("lines", "price", "average"), + ] diff --git a/tests/test_metrics_spec.py b/tests/test_metrics_spec.py new file mode 100644 index 0000000..f49bc70 --- /dev/null +++ b/tests/test_metrics_spec.py @@ -0,0 +1,165 @@ +"""The metrics spec, its schema and the code that reads it say the same thing. + +`model2data/spec/metrics/metrics.schema.json` and `README.md` are normative; +the reader in `model2data.metrics` implements them. Every list the schema +enumerates (aggregations, formats, operators, kinds) is also a constant in the +code, so this module checks the two against each other rather than trusting +both to be edited together. +""" + +import dataclasses +import json +import re +from pathlib import Path + +import jsonschema +import pytest +import yaml + +from model2data.metrics import ( + AGGREGATIONS, + FORMATS, + OPERATORS, + SCHEMA_URL, + SPEC_VERSION, + Metric, + load, +) +from model2data.metrics.check import schema +from model2data.metrics.infer import metric_name +from model2data.metrics.types import KIND_KEYS, ORDER_OPERATORS +from model2data.model import load as load_model + +SPEC = Path(__file__).resolve().parent.parent / "model2data" / "spec" +SCHEMA = json.loads((SPEC / "metrics" / "metrics.schema.json").read_text(encoding="utf-8")) +README = (SPEC / "metrics" / "README.md").read_text(encoding="utf-8") + + +def test_the_schema_is_a_valid_draft_2020_12_schema(): + jsonschema.Draft202012Validator.check_schema(SCHEMA) + assert schema() == SCHEMA + + +def test_the_schema_id_is_the_url_documents_point_at(): + assert SCHEMA["$id"] == SCHEMA_URL + assert ( + SCHEMA_URL + == f"https://www.jbanalytica.com/model2data/spec/metrics/{SPEC_VERSION}/metrics.schema.json" + ) + example = (SPEC / "examples" / "coffee_webshop.metrics.yml").read_text(encoding="utf-8") + assert example.splitlines()[0] == f"# yaml-language-server: $schema={SCHEMA_URL}" + assert f"model2data-metrics: {SPEC_VERSION}" in example + assert README.startswith(f"# model2data metrics — spec {SPEC_VERSION}") + + +def test_the_example_validates_against_the_schema(): + document = yaml.safe_load((SPEC / "examples" / "coffee_webshop.metrics.yml").read_text()) + jsonschema.Draft202012Validator(SCHEMA).validate(document) + + +def test_the_readme_example_conforms_against_the_example_model(): + block = re.search(r"```yaml\n(.*?)```", README, re.S) + assert block is not None + jsonschema.Draft202012Validator(SCHEMA).validate(yaml.safe_load(block.group(1))) + model = load_model(SPEC / "examples" / "coffee_webshop.model2data.yml") + assert load(block.group(1), model).warnings == [] + + +@pytest.mark.parametrize( + "broken", + [ + {"model": "m"}, + {"model2data-metrics": "0.1", "model": "m"}, + {"model2data-metrics": "0.1.0", "model": "m", "metrics": {"Bad": {"count": "t"}}}, + {"model2data-metrics": "0.1.0", "model": "m", "metrics": {"m": {}}}, + { + "model2data-metrics": "0.1.0", + "model": "m", + "metrics": {"m": {"count": "t", "measure": "t.c"}}, + }, + { + "model2data-metrics": "0.1.0", + "model": "m", + "metrics": {"m": {"count": "t", "agg": "sum"}}, + }, + { + "model2data-metrics": "0.1.0", + "model": "m", + "metrics": {"m": {"expression": "a", "time": "t.c"}}, + }, + { + "model2data-metrics": "0.1.0", + "model": "m", + "metrics": { + "m": {"ratio": {"numerator": "a", "denominator": "b"}, "where": {"t.c": 1}} + }, + }, + { + "model2data-metrics": "0.1.0", + "model": "m", + "metrics": {"m": {"count": "t", "where": {"t.c": {"not": 1}}}}, + }, + {"model2data-metrics": "0.1.0", "model": "m", "dimensions": {"t.c": "yes"}}, + ], +) +def test_the_schema_refuses(broken): + assert list(jsonschema.Draft202012Validator(SCHEMA).iter_errors(broken)) + + +def test_the_aggregations_are_the_model_specs_seven(): + model_schema = json.loads((SPEC / "model.schema.json").read_text(encoding="utf-8")) + measure = model_schema["$defs"]["column"]["properties"]["measure"]["oneOf"][1]["enum"] + assert tuple(measure) == AGGREGATIONS + assert tuple(SCHEMA["$defs"]["metric"]["properties"]["agg"]["enum"]) == AGGREGATIONS + + +def test_formats_operators_and_kinds_match_the_code(): + metric = SCHEMA["$defs"]["metric"] + assert tuple(metric["properties"]["format"]["enum"]) == FORMATS + operators = SCHEMA["$defs"]["condition"]["oneOf"][2]["properties"] + assert tuple(operators) == OPERATORS + assert set(ORDER_OPERATORS) <= set(OPERATORS) + assert [branch["required"][0] for branch in metric["oneOf"]] == list(KIND_KEYS) + for key in ("measure", "count", "ratio", "expression", "time", "where", "agg"): + assert f"`{key}`" in README + + +def test_every_metric_key_is_a_field_of_the_typed_metric(): + keys = set(SCHEMA["$defs"]["metric"]["properties"]) + fields = {f.name for f in dataclasses.fields(Metric)} - {"kind", "inferred", "extensions"} + assert keys == fields + + +def test_inferred_names_and_expression_names_are_metric_names(): + pattern = re.compile(SCHEMA["$defs"]["metricName"]["pattern"]) + for text in ("Order Items", "2024", "x", "__", "raw.orders_total", "Ça va"): + assert pattern.match(metric_name(text)) + assert "[a-z][a-z0-9_]*" in README # the grammar's NAME is the same pattern + + +@pytest.mark.parametrize( + "path, ok", + [ + ("t.c", True), + ("s.t.c", True), + ("c", False), + ("a.b.c.d", False), + (".c", False), + ("t.", False), + ], +) +def test_the_column_path_pattern(path, ok): + assert bool(re.match(SCHEMA["$defs"]["columnPath"]["pattern"], path)) is ok + + +def test_publishing_lists_the_metrics_schema(): + publishing = (SPEC / "PUBLISHING.md").read_text(encoding="utf-8") + assert ( + "https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json" + in publishing + ) + assert "model2data/spec/metrics/metrics.schema.json` of engine 1.13.0" in publishing + + +def test_the_model_spec_links_the_metrics_spec(): + assert "metrics/README.md" in (SPEC / "README.md").read_text(encoding="utf-8") diff --git a/tests/test_metrics_values.py b/tests/test_metrics_values.py new file mode 100644 index 0000000..9bc9223 --- /dev/null +++ b/tests/test_metrics_values.py @@ -0,0 +1,286 @@ +"""Known values: every metric over a run's tables, with SQL's nulls, by hand on a tiny shop. + +The frames below are small enough to check each number on paper; the comment +beside each assertion does. +""" + +from datetime import date +from decimal import Decimal +from pathlib import Path + +import pandas as pd +import pytest + +from model2data.generate.core import generate_data_from_dbml +from model2data.metrics import known_values, load, resolve +from model2data.metrics.values import _rounded +from model2data.model import load as load_model +from model2data.model import to_engine + +FIXTURES = Path(__file__).resolve().parent / "fixtures" / "metrics" +SPEC = Path(__file__).resolve().parent.parent / "model2data" / "spec" / "examples" +SHOP = load_model(FIXTURES / "shop.model2data.yml") + + +def _frames() -> dict[str, pd.DataFrame]: + customers = pd.DataFrame( + { + "id": [1, 2, 3, 4], + "email": ["a@x", "b@x", "c@x", "d@x"], + "country": ["BE", "NL", "", "null"], # the last two read as null, as dbt reads them + "vip": [True, False, None, None], + "tier": ["1", "2", None, "1"], + "joined_on": ["2024-12-03", "2025-01-09", "2025-01-30", None], + } + ) + orders = pd.DataFrame( + { + "id": pd.array([1, 2, 3, 4], dtype="Int64"), + "customer_id": pd.array([1, 2, None, 9], dtype="Int64"), # 9 is an orphan + "store_id": pd.array([None] * 4, dtype="Int64"), + "status": ["paid", "cancelled", None, "open"], + "amount": [10.5, 20.0, 30.0, 40.25], + "placed_at": [ + "2025-01-05 10:00:00", + "2025-01-20 23:59:59", + "2025-02-01 00:00:00", + None, + ], + "note": ["", "rush", None, "null"], + } + ) + lines = pd.DataFrame( + { + "id": pd.array([1, 2, 3, 4, 5], dtype="Int64"), + "order_id": pd.array([1, 1, 2, 3, 4], dtype="Int64"), + "qty": pd.array([2, 3, 1, None, 5], dtype="Int64"), + "price": [1.1, 2.2, None, 4.0, 5.5], + } + ) + logs = pd.DataFrame({"id": [1, 2], "level": [3, 7]}) + empty = { + "stores": pd.DataFrame({"id": [], "region": []}), + "transfers": pd.DataFrame({"id": [], "sender_id": [], "receiver_id": [], "amount": []}), + "slots": pd.DataFrame({"store_id": [], "day": [], "capacity": []}), + "visits": pd.DataFrame({"id": [], "store_id": [], "day": [], "people": []}), + } + return {"customers": customers, "orders": orders, "lines": lines, "logs": logs, **empty} + + +METRICS = """ +model2data-metrics: 0.1.0 +model: shop +metrics: + not_cancelled: {count: orders, where: {orders.status: {ne: cancelled}}} + not_in_cancelled: {count: orders, where: {orders.status: {not_in: [cancelled]}}} + no_status: {count: orders, where: {orders.status: {is_null: true}}} + some_status: {count: orders, where: {orders.status: {is_null: false}}} + vip_qty: {measure: lines.qty, agg: sum, where: {customers.vip: true}} + not_vip_qty: {measure: lines.qty, agg: sum, where: {customers.vip: {ne: true}}} + be_lines: {count: lines, where: {customers.country: [BE]}} + no_country_lines: {count: lines, where: {customers.country: {is_null: true}}} + paid_or_big: {count: lines, where: {any: [{orders.status: paid}, {lines.qty: {gt: 4}}]}} + both: {count: lines, where: {any: [{all: [{orders.status: paid}, {lines.qty: {gte: 3}}]}, {lines.qty: 1}]}} + january: {count: orders, where: {orders.placed_at: {between: ["2025-01-01", "2025-01-20 23:59:59"]}}} + joined_2025: {count: customers, where: {customers.joined_on: {gte: "2025-01-01"}}} + tier_one: {count: customers, where: {customers.tier: 1}} + noted: {count: orders, where: {orders.note: {is_null: false}}} + price_avg: {measure: lines.price, agg: average} + price_median: {measure: lines.price, agg: median} + amount_min: {measure: orders.amount, agg: min} + amount_max: {measure: orders.amount, agg: max} + buyers: {measure: orders.customer_id, agg: count_distinct} + statuses: {measure: orders.status, agg: count} + nothing: {measure: orders.amount, agg: sum, where: {orders.amount: {gt: 99}}} + per_order: {ratio: {numerator: orders_amount, denominator: orders_count}} + zero_division: {expression: orders_amount / (lines_qty - 11)} + third: {expression: no_status / 3} + mixed: {expression: lines_qty + customers_n} + customers_n: {count: customers} + avg_twice: {expression: price_avg * 2} + undated: {measure: logs.level, agg: sum} + with_undated: {expression: undated + orders_count} +""" + + +@pytest.fixture(scope="module") +def values(): + semantic = resolve(SHOP, load(METRICS, SHOP)) + return known_values(semantic, _frames(), seed=3, as_of="2025-03-01").values + + +@pytest.mark.parametrize( + "name, expected", + [ + ("orders_amount", Decimal("100.75")), # 10.5 + 20 + 30 + 40.25 + ("orders_count", 4), + ("lines_qty", 11), # 2 + 3 + 1 + 5, the null skipped + ("lines_count", 5), + ("not_cancelled", 2), # paid and open: the null status fails `ne` + ("not_in_cancelled", 2), + ("no_status", 1), + ("some_status", 3), + ("vip_qty", 5), # lines 1 and 2, of order 1, of customer 1 + ("not_vip_qty", 1), # line 3 (customer 2); a null vip, or no customer, fails `ne` + ("be_lines", 2), + ("no_country_lines", 2), # line 4's order has no customer, line 5's is an orphan + ("paid_or_big", 3), # lines 1 and 2 (paid), line 5 (qty 5) + ("both", 2), # line 2 (paid, 3), line 3 (qty 1) + ("january", 2), # both bounds inclusive + ("joined_2025", 2), + ("tier_one", 2), # an integer member written as a number + ("noted", 1), # "" and "null" read as null, as dbt reads them + ("price_avg", Decimal("3.2")), # (1.1 + 2.2 + 4.0 + 5.5) / 4 + ("price_median", Decimal("3.1")), # between 2.2 and 4.0 + ("amount_min", Decimal("10.5")), + ("amount_max", Decimal("40.25")), + ("buyers", 3), # 1, 2 and the orphan 9 + ("statuses", 3), + ("nothing", None), # a sum over no rows is null + ("per_order", Decimal("25.1875")), # 100.75 / 4 + ("zero_division", None), # 11 - 11 is zero + ("third", Decimal("0.333333")), + ("mixed", 15), # 11 + 4 + ("avg_twice", Decimal("6.4")), + ("undated", 10), + ("with_undated", 14), + ], +) +def test_known_values(values, name, expected): + assert values[name].value == expected + + +def test_values_by_month(values): + # Order 4 has no time: in the total, in no month. + assert values["orders_amount"].by_month == {"2025-01": Decimal("30.5"), "2025-02": 30} + # Lines are dated by their order; February's only line has no qty, so its sum is null. + assert values["lines_qty"].by_month == {"2025-01": 6, "2025-02": None} + assert values["lines_qty"].time == "orders.placed_at" + # A filter that keeps no row in a month: a count is 0. + assert values["not_cancelled"].by_month == {"2025-01": 1, "2025-02": 0} + # A ratio per month is its inputs' per month. + assert values["per_order"].by_month == {"2025-01": Decimal("15.25"), "2025-02": 30} + # Inputs dated differently: each in its own months, a missing count 0, a missing sum null. + assert values["customers_n"].by_month == {"2024-12": 1, "2025-01": 2} + assert values["mixed"].by_month == {"2024-12": None, "2025-01": 8, "2025-02": None} + assert values["third"].by_month == {"2025-01": 0, "2025-02": Decimal("0.333333")} + + +def test_a_metric_without_time_has_no_months(values): + assert values["undated"].by_month is None and values["undated"].time is None + assert values["with_undated"].by_month is None + + +def test_the_json_is_stable_text(): + metrics = load( + "model2data-metrics: 0.1.0\nmodel: shop\ninfer: false\nmetrics:\n" + " revenue: {label: Revenue, measure: orders.amount, agg: sum}\n" + " share: {expression: revenue / 3}\n" + " levels: {measure: logs.level, agg: max}\n", + SHOP, + ) + values = known_values(resolve(SHOP, metrics), _frames(), seed=3, as_of="2025-03-01") + assert values.to_json() == ( + """{ + "model2data-metrics": "0.1.0", + "model": "shop", + "run": { + "seed": 3, + "as_of": "2025-03-01" + }, + "rounding": "counts, and sums, minimums and maximums of integer columns, are exact; every other value is rounded to 6 decimal places, half to even", + "metrics": { + "revenue": { + "kind": "simple", + "label": "Revenue", + "value": 100.75, + "time": "orders.placed_at", + "by_month": { + "2025-01": 30.5, + "2025-02": 30 + } + }, + "share": { + "kind": "derived", + "label": "Share", + "value": 33.583333, + "by_month": { + "2025-01": 10.166667, + "2025-02": 10 + } + }, + "levels": { + "kind": "simple", + "label": "Levels", + "value": 7 + } + } +} +""" + ) + values.seed = values.as_of = None + assert '"run"' not in values.to_json() + + +def test_an_empty_mapping_is_written_as_such(): + from model2data.metrics.values import _dump + + assert _dump({"a": {}}) == '{\n "a": {}\n}' + + +@pytest.mark.parametrize( + "raw, exact, written", + [ + (Decimal("1200.000000000"), False, "1200"), + (Decimal("0.0000004"), False, "0"), + (Decimal("0.0000005"), False, "0"), # half to even + (Decimal("0.0000015"), False, "0.000002"), + (2.675, False, "2.675"), + (1 / 3, False, "0.333333"), + (Decimal("-1.50"), False, "-1.5"), + (7, False, "7"), + (Decimal("12"), True, "12"), + (None, True, "None"), + ], +) +def test_rounding(raw, exact, written): + value = _rounded(raw, exact) + assert (format(value, "f") if isinstance(value, Decimal) else str(value)) == written + + +def test_a_table_a_metric_reads_must_have_rows(): + frames = _frames() + del frames["logs"] + semantic = resolve( + SHOP, load("model2data-metrics: 0.1.0\nmodel: shop\nmetrics:\n l: {count: logs}\n", SHOP) + ) + with pytest.raises(ValueError, match="no generated rows for table 'logs'"): + known_values(semantic, frames) + + +def test_the_reference_example_over_generated_data(): + """Recomputes three of the coffee example's metrics with pandas, by their definitions.""" + model = load_model(SPEC / "coffee_webshop.model2data.yml") + metrics = load(SPEC / "coffee_webshop.metrics.yml", model) + inputs = to_engine(model) + frames = generate_data_from_dbml( + tables=inputs.tables, refs=inputs.refs, base_rows=150, seed=11, as_of=date(2026, 3, 15) + ) + values = known_values(resolve(model, metrics), frames).values + orders = frames["orders"] + kept = orders[orders["status"].isin(["paid", "shipped", "delivered"])] + assert values["revenue"].value == _rounded( + Decimal(str(round(kept["total_amount"].sum(), 6))), False + ) + assert values["orders"].value == orders["id"].nunique() + assert values["order_lines"].value == len(frames["order_items"]) + lines = frames["order_items"].merge( + orders, left_on="order_id", right_on="id", suffixes=("", "_o") + ) + months = pd.to_datetime(lines["order_date"]).dt.strftime("%Y-%m").value_counts().to_dict() + assert values["order_lines"].by_month == dict(sorted(months.items())) + orders_count = values["orders"].value + assert isinstance(orders_count, int) + assert values["average_order_value"].value == _rounded( + Decimal(str(values["revenue"].value)) / orders_count, False + ) From 5d7e27d71c8093338c00071a253288dacfca5347 Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 17:07:11 +0200 Subject: [PATCH 2/6] Metrics on the command line: validate, generate --metrics, metrics list|export - `validate` checks a *.metrics.yml file against the metrics spec and its model: `--model`, else the model beside it with the same stem. - `generate --metrics FILE` adds metric_values.json (each metric's known value over the seeds, overall and by month), a singular dbt test per metric under data-tests/metrics/ and osi/.yml (Apache Ossie 0.1.1), and changes no other file. A sibling metrics file is not picked up on its own, so an unchanged command keeps writing the same files. - `metrics list` and `metrics export --to ossie` work without generating; with no metrics file they use the model's inferred metrics. The determinism suite gains two cases with metrics; every existing hash is unchanged. The dbt cases run `dbt build` on the reference example, a model with every kind of column and join, and the training model with defects over several days, and require every metric test to pass. Co-Authored-By: Claude Opus 5.5 --- model2data/cli.py | 246 ++++++++++++++++++++++++- tests/fixtures/determinism.json | 95 ++++++++++ tests/test_determinism.py | 16 ++ tests/test_metrics_cli.py | 316 ++++++++++++++++++++++++++++++++ tests/test_metrics_dbt.py | 123 +++++++++++++ 5 files changed, 790 insertions(+), 6 deletions(-) create mode 100644 tests/test_metrics_cli.py create mode 100644 tests/test_metrics_dbt.py diff --git a/model2data/cli.py b/model2data/cli.py index c9af042..1f2045b 100644 --- a/model2data/cli.py +++ b/model2data/cli.py @@ -46,6 +46,22 @@ ) from model2data.generate.history import history_tables from model2data.generate.options import TimeProfile +from model2data.metrics import ( + SPEC_VERSION as METRICS_SPEC_VERSION, +) +from model2data.metrics import ( + Metrics, + MetricsError, + is_metrics_file, + known_values, + metrics_stem, + sibling_model, + to_ossie, + write_metric_tests, +) +from model2data.metrics import load as load_metrics +from model2data.metrics import resolve as resolve_metrics +from model2data.metrics import validate as validate_metrics from model2data.model import ( DEFECT_PRESETS, Issue, @@ -198,6 +214,18 @@ def _read_model(file: Path) -> Model: return model +def _read_metrics(file: Path, model: Model, model_file: Path) -> Metrics: + """The metrics in `file`, checked against `model`, or exit 1 listing every issue.""" + try: + found = load_metrics(file, model, model_name=_model_stem(model_file)) + except MetricsError as error: + _print_issues(file, [*error.issues, *error.warnings]) + raise typer.Exit(1) from None + if found.warnings: + _print_issues(file, found.warnings) + return found + + def _print_issues(file: Path, issues: list[Issue], label: Optional[str] = None) -> None: """Errors, then warnings, each with its document path.""" label = label or file.name @@ -428,6 +456,21 @@ def main( "(changelog/TABLE.csv, every row with _day and _op), or 'final' (only the seeds)." ), ), + metrics_file: Optional[Path] = typer.Option( # noqa: B008 + None, + "--metrics", + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + resolve_path=True, + help=( + "The model's metrics file (.metrics.yml). Adds metric_values.json (each\n" + "metric's known value over the generated data), osi/NAME.yml (Apache Ossie 0.1.1)\n" + "and a dbt test per metric (data-tests/metrics/). The data is the same with or\n" + "without it. Not picked up from beside the model: pass it." + ), + ), ): """ Generate synthetic data and a dbt project from a model. @@ -474,6 +517,8 @@ def main( # Read the model (names untouched) # ------------------------- model = _read_model(file) + metrics_file = _given(metrics_file) + metrics_doc = _read_metrics(metrics_file, model, file) if metrics_file is not None else None inputs = to_engine(model) tables, refs = inputs.tables, inputs.refs run = inputs.run @@ -677,6 +722,28 @@ def pick(option: Any, from_run: Any, default: Any) -> Any: write_defects_report(report, dest) write_expected_failures(report, dest) + # ------------------------- + # Metrics: only added files, computed from what the seeds hold + # ------------------------- + metrics_count: Optional[int] = None + if metrics_doc is not None and metrics_file is not None: + typer.echo("📏 Computing each metric's known value and its dbt test...") + semantic = resolve_metrics(model, metrics_doc, model_name=_model_stem(file)) + values = known_values( + semantic, + generated_tables, + seed=seed, + as_of=anchor.isoformat() if anchor is not None else None, + ) + (dest / "metric_values.json").write_text(values.to_json(), encoding="utf-8") + write_metric_tests(dest, semantic, values) + (dest / "osi").mkdir(exist_ok=True) + (dest / "osi" / f"{project_name}.yml").write_text( + to_ossie(semantic).to_yaml(), encoding="utf-8" + ) + shutil.copy(metrics_file, dest / metrics_file.name) + metrics_count = len(semantic.metrics) + # ------------------------- # Summary # ------------------------- @@ -724,6 +791,12 @@ def pick(option: Any, from_run: Any, default: Any) -> Any: for label in duplicate_unique: typer.echo(f" - {label}") + if metrics_count is not None: + typer.echo( + f" Metrics: {metrics_count} (metric_values.json, " + f"osi/{project_name}.yml, data-tests/metrics/)" + ) + if report is not None: _print_defects(report) @@ -820,11 +893,25 @@ def validate_command( require_files: bool = typer.Option( False, "--require-files", help="Exit 1 when no model file was given or matched." ), + model_option: Optional[Path] = typer.Option( # noqa: B008 + None, + "--model", + "-m", + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + help=( + "The model a metrics file (*.metrics.yml) is checked against. Default: the model " + "beside it with the same stem (coffee.model2data.yml for coffee.metrics.yml)." + ), + ), ): """Check that models conform to spec 0.4.0 (or 0.2.x, 0.3.x), printing every issue with its path. - Takes one or more files and/or --glob patterns. Exits 1 when any file has an error; - warnings are printed, and the model conforms. + Takes one or more files and/or --glob patterns. A metrics file (*.metrics.yml) is checked + against metrics spec 0.1.0 and against its model. Exits 1 when any file has an error; + warnings are printed, and the file conforms. """ if output_format not in ("text", "github"): raise typer.BadParameter("must be 'text' or 'github'", param_hint="--format") @@ -837,7 +924,11 @@ def validate_command( failed = 0 for file in targets: - issues = validate(file) + against: Optional[Path] = None + if is_metrics_file(file): + issues, against = _metrics_issues(file, _given(model_option)) + else: + issues = validate(file) if output_format == "github": _print_github_issues(file, issues) else: @@ -845,9 +936,14 @@ def validate_command( if any(issue.is_error for issue in issues): failed += 1 elif output_format == "text": - typer.echo( - f"✅ {file if len(targets) > 1 else file.name} conforms to spec {_spec_of(file)}." - ) + shown = file if len(targets) > 1 else file.name + if is_metrics_file(file): + model_note = f", checked against {against.name}" if against is not None else "" + typer.echo( + f"✅ {shown} conforms to metrics spec {METRICS_SPEC_VERSION}{model_note}." + ) + else: + typer.echo(f"✅ {shown} conforms to spec {_spec_of(file)}.") if len(targets) > 1 or output_format == "github": count = len(targets) checked = f"{count} model file{'s' if count != 1 else ''}" @@ -860,6 +956,32 @@ def validate_command( raise typer.Exit(1) +def _metrics_issues(file: Path, model_option: Optional[Path]) -> tuple[list[Issue], Optional[Path]]: + """A metrics file's issues, checked against `model_option` or the model beside it, and + the model it was checked against (None when there was none to find).""" + model_file = model_option or sibling_model(file) + if model_file is None: + note = Issue( + "", + "no model to check it against: there is no " + f"{metrics_stem(file)}.model2data.yml beside it. Checked on its own; " + "pass --model to check its tables, columns and filters too", + severity="warning", + ) + return [*validate_metrics(file), note], None + try: + model = load(model_file) + except ModelError: + return [ + Issue( + "", + f"its model, {model_file.name}, does not conform: run `model2data validate " + f"{model_file.name}` and fix it first", + ) + ], model_file + return validate_metrics(file, model, model_name=_model_stem(model_file)), model_file + + @app.command("convert") def convert_command( file: Path = typer.Argument( # noqa: B008 @@ -941,3 +1063,115 @@ def guide_command( typer.echo(f"# model2data guide: {reason} -> {topic.value}\n") page = resources.files("model2data").joinpath(f"guide/{topic.value}.md") typer.echo(page.read_text("utf-8"), nl=False) + + +metrics_app = typer.Typer( + help=( + "The model's metrics (metrics spec 0.1.0): list them, or export them without " + "generating. `generate --metrics FILE` computes their known values and dbt tests." + ), + no_args_is_help=True, +) +app.add_typer(metrics_app, name="metrics") + +_METRICS_EXPORTS = ("ossie",) + + +def _metrics_inputs(file: Path, metrics_file: Optional[Path]) -> Any: + """The semantic model of a model file and its metrics file (None: the inferred metrics).""" + model = _read_model(file) + found = _read_metrics(metrics_file, model, file) if metrics_file is not None else None + return resolve_metrics(model, found, model_name=_model_stem(file)) + + +_MODEL_OPTION = typer.Option( + ..., + "--file", + "-f", + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + help="The model: a .model2data.yml / .yaml / .json document, or a .dbml file.", +) +_METRICS_OPTION = typer.Option( + None, + "--metrics", + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + help=( + "The model's metrics file. Without it, the metrics are the ones the model implies: " + "one per `measure` column and a row count per fact." + ), +) + + +@metrics_app.command("list") +def metrics_list_command( + file: Path = _MODEL_OPTION, + metrics_file: Optional[Path] = _METRICS_OPTION, +): + """List every metric: its kind, where it comes from, what it is dated by.""" + semantic = _metrics_inputs(file, _given(metrics_file)) + if not semantic.metrics: + typer.echo("No metrics: the model has no `measure` column and the file adds none.") + return + width = max(len(name) for name in semantic.metrics) + for name, metric in semantic.metrics.items(): + origin = "inferred" if metric.inferred else "file" + if metric.kind == "simple": + what = f"{metric.agg} of {metric.table}.{metric.column}" + elif metric.kind == "count": + what = f"rows of {metric.table}" + elif metric.kind == "ratio": + what = f"{metric.numerator} / {metric.denominator}" + else: + what = str(metric.expression) + filtered = ", filtered" if metric.where is not None else "" + dated = f", by {metric.time}" if metric.time else "" + typer.echo(f"{name:<{width}} {metric.kind:<7} {origin:<8} {what}{filtered}{dated}") + + +@metrics_app.command("export") +def metrics_export_command( + file: Path = _MODEL_OPTION, + metrics_file: Optional[Path] = _METRICS_OPTION, + to: str = typer.Option("ossie", "--to", help="The format: 'ossie' (Apache Ossie 0.1.1, YAML)."), + output: Optional[Path] = typer.Option( # noqa: B008 + None, + "--output", + "-o", + dir_okay=False, + help="Where to write it (default: print it).", + ), + force: bool = typer.Option(False, "--force", help="Overwrite the output file if it exists."), +): + """Export the model's metrics, and the model as a semantic model, without generating data. + + Ossie datasets read the staging models of the dbt project `generate` writes + (staging.stg_
). What Ossie 0.1.1 cannot say is listed at the top of the file, + and carried in custom_extensions. + """ + to = (_given(to) or "ossie").lower() + if to not in _METRICS_EXPORTS: + raise typer.BadParameter( + f"Choose one of: {', '.join(_METRICS_EXPORTS)}.", param_hint="--to" + ) + semantic = _metrics_inputs(file, _given(metrics_file)) + export = to_ossie(semantic) + text = export.to_yaml() + output = _given(output) + if output is None: + typer.echo(text, nl=False) + return + if output.exists() and not _given(force): + typer.echo(f"❌ {output} already exists. Use --force to overwrite it.") + raise typer.Exit(1) + output.write_text(text, encoding="utf-8") + typer.echo(f"✅ Wrote {output} (Apache Ossie 0.1.1, {len(semantic.metrics)} metrics)") + if export.lossiness: + typer.echo("ℹ️ Not expressible in Ossie 0.1.1 itself, carried in custom_extensions:") + for loss in export.lossiness: + typer.echo(f" - {loss}") diff --git a/tests/fixtures/determinism.json b/tests/fixtures/determinism.json index 60a4f53..08866f6 100644 --- a/tests/fixtures/determinism.json +++ b/tests/fixtures/determinism.json @@ -533,6 +533,101 @@ "dbt_det/seeds/raw/product_reviews.csv": "bcc6a29dba1224d32aca2bcdb1e0d83d618dfa8e8168d6c1381b5bb549f6b1d6", "dbt_det/seeds/raw/products.csv": "89a4ff01ab5a53712fc8b47728dd463104a008eb3d31b3fee1b6a95e0d8e1188" }, + "metrics": { + "dbt_det/coffee_webshop.metrics.yml": "16981620dc46a34c01f2c6cfc36644522bf9c5a80defb49206cc2a82eca67c32", + "dbt_det/coffee_webshop.model2data.yml": "ae20f85480b4e5503e2f54ea5a71d24673b8bb5990644c850e51f91c5eddbc4a", + "dbt_det/data-tests/metrics/metric_average_order_value.sql": "d47204215d92b41b5216e61559e5593745d3ab13e0549045a6f9a816a0c1171b", + "dbt_det/data-tests/metrics/metric_coffee_units_sold.sql": "e8f15c7726dcbce43d0e72caca13d537fba8eb93a60e19e1ebbed780ce41ee7b", + "dbt_det/data-tests/metrics/metric_order_items_count.sql": "3d0e8d87ceb9c396106908800b18872c499f9927b634780868271d003df3a415", + "dbt_det/data-tests/metrics/metric_order_items_quantity.sql": "918e178f40d3deb4ccb9bce56adb09ded838e7bdeebe75c219474a1f50037799", + "dbt_det/data-tests/metrics/metric_order_lines.sql": "20bd6bf0823be4a1e62cec088f29ad84273ff9854599125862b7d1783deefc5d", + "dbt_det/data-tests/metrics/metric_orders.sql": "8f0ec4c078bfe0d28a5efb93c9e1763a19f88c2314f0cb6ffb3ab7709d7a1c49", + "dbt_det/data-tests/metrics/metric_orders_count.sql": "628a2ac01a89dbf22c8b83618704b2be1d674b440e23af6aceb4246398b0944d", + "dbt_det/data-tests/metrics/metric_orders_total_amount.sql": "072dcd484960eddac5609721af41e0efca0e6ba1ae2cf1cab3500bf7a212ccd4", + "dbt_det/data-tests/metrics/metric_revenue.sql": "23235c3ffb49ed5a7ee427628ce64921d49034bedbc0da360f1afcde26a4639b", + "dbt_det/data-tests/metrics/metric_web_revenue.sql": "c13c50a47a735df3a275d45b4bcaa7e97f028bbd7dd1451116bf02c83e01eddb", + "dbt_det/data-tests/metrics/metric_web_share.sql": "e6b2d720239105a41b1a75164c2f07f0051aa9e2f21ce2b078526af377abb58a", + "dbt_det/dbt_project.yml": "631ba06ded8db3ebbfa85351d29ef0953dc5b92992235b786a21424e1db3ddda", + "dbt_det/macros/generate_schema_name.sql": "60f37d9f6fc022c0f482c2699a2e1a4dc61207cbb0a7f355788b4c1d43066438", + "dbt_det/macros/model2data_hint_tests.sql": "d0b45f48d4740c22b3881654fc704f48ca08404b8d574f37680c7237ba4b08f8", + "dbt_det/metric_values.json": "37a66e08fbbe5d227a141d6be3efd31be6925b835e67cc95cbfd6b3922ec1316", + "dbt_det/models/staging/stg_customers.sql": "44df48978d6ac653bdf1c8ed58d8884068c066f5131aeb8f4822f8dc4c424b0a", + "dbt_det/models/staging/stg_customers.yml": "02f18d31e87a4bfb8314588180ef3382b8db5e5b5460e4222f6e094e4006582c", + "dbt_det/models/staging/stg_order_items.sql": "d9ffb6428433e8ad821637b07a40f88037201b1ea3ad4d05c06ace185f496b39", + "dbt_det/models/staging/stg_order_items.yml": "2d90adc3a2e3beeddab1b0b8a0140309a1bb5b667337d1e187b2ab40333cd966", + "dbt_det/models/staging/stg_orders.sql": "ce9432edd2e51bd8d6caa6e887268ae57ebad6041881548e140e172fc4420c91", + "dbt_det/models/staging/stg_orders.yml": "5733941fb5c1419091efa5a9044030c4f205be95a2b68413df81fdd220eaa8c7", + "dbt_det/models/staging/stg_product_reviews.sql": "939f77269e38a2b8265ce001e62a8194fd5335d340f97168a67f6915c8881f75", + "dbt_det/models/staging/stg_product_reviews.yml": "62bab917381e2a43ee1067a5cd56119082cb7f7dff10f23a687c2a9345b2a07c", + "dbt_det/models/staging/stg_products.sql": "7455128b10e0357213f26c209913a73df3f417be28ddd9d4dd8681390e7dcdab", + "dbt_det/models/staging/stg_products.yml": "a4c6588fa066b5bb5ac7a9b66db33dd15a77dea40c2688f9520e4ceaf53ab240", + "dbt_det/osi/det.yml": "5d005ea6c0d5af8887e3c43bb9dea9a1be080e94cc6b913253c95e86d7b64dc7", + "dbt_det/profiles.yml": "c40b04badc35b941a8de1079c8d0a298f6446f0d5caf5bd50dbe3797ab2a2255", + "dbt_det/seeds/raw/__seed_config.yml": "8e3df67807677a8ed3e8949f8dd7c7dba6a088d4f5221236a770638802d62105", + "dbt_det/seeds/raw/customers.csv": "f97be9bf40f3f5f3c97eb9697a866733d5118518ed1e48475e3d4363b3febbb4", + "dbt_det/seeds/raw/order_items.csv": "77134c2df8747a7fd348846a2cc7a233f6e0b4a8159204ec86aa7484747837c0", + "dbt_det/seeds/raw/orders.csv": "1b4b057db7bfd59f49182f3effd13ecafa5ff3dba1de0ef766162e2b90b53e6b", + "dbt_det/seeds/raw/product_reviews.csv": "dd0b9a9087b147836358609c315cf2f15a83c9770c225bfee2f26742eab8e48a", + "dbt_det/seeds/raw/products.csv": "980c75d598d2bbb80b768df98c0958789f6720627c94bc542a40e1acac9c8ee5" + }, + "metrics-defects-days": { + "dbt_det/EXPECTED_FAILURES.md": "233eff9d9cd993bd7a2b6621870f8ef315785230eda5e23dca07286b6f68c192", + "dbt_det/data-tests/metrics/metric_average_order.sql": "d80e42fddda755c509ba6b8234fc5a7148439200562b615f7ad672b2f559a9d8", + "dbt_det/data-tests/metrics/metric_customers_ordering.sql": "59e9c3257ec14d3f88ef1f8e12abd01988d46caccccd5357fbac943542e6ee41", + "dbt_det/data-tests/metrics/metric_delivered_revenue.sql": "ba26ce0181f17bc1875d476c6aba9481cb242b1c7d13cf332ade14d05f0cdedf", + "dbt_det/data-tests/metrics/metric_item_value.sql": "a20af11fe63a2be7aa8fd678903fd1b112e47dc7580c4290e204c94c4f49daba", + "dbt_det/data-tests/metrics/metric_items_of_recent_orders.sql": "8278a4996aedd85c53d3872ce84fffafb4dad8dd1f366b1cb5add01803c5b898", + "dbt_det/data-tests/metrics/metric_largest_quantity.sql": "c4bacbc70b08ccacaac62a0e2b88229d10ac57674c40f45c89945bf976ced4e5", + "dbt_det/data-tests/metrics/metric_median_order.sql": "c31f160119f37f0b9da2e1e28fc6e7cfded949c1c9fc52e318ec88cf4d8134bc", + "dbt_det/data-tests/metrics/metric_odd_mix.sql": "1cfaae567a6832ea2ae0991f18ecb3fded0a8fe5896da9f5c0d6478eedebfcab", + "dbt_det/data-tests/metrics/metric_open_orders.sql": "2e17d92acec3359b59999af6038b7b61dfc5f65cf7a5abf97b2c2a235426b13f", + "dbt_det/data-tests/metrics/metric_order_items_quantity.sql": "56203c4e6fb6484b4edd93c71a4b65112988acefd88ced83920523675ed4bb40", + "dbt_det/data-tests/metrics/metric_orders_count.sql": "592476a2c421c58056ad647ca7ad0a777a6642bbedc31bbb853aba9dc34ff396", + "dbt_det/data-tests/metrics/metric_per_order.sql": "441cc6ad7c7c41652bd90be2571caf22c54100b5a16bc133b8ac1b1b5182e530", + "dbt_det/data-tests/metrics/metric_rows_with_a_status.sql": "eaa990b17ba39de81eab1b85412944a609da72da59df8a6cc02f1e348a29d874", + "dbt_det/data-tests/metrics/metric_smallest_order.sql": "19a15f9618e90b2fa00c9fe61e5ba94335ee94b4e43fdb31bef5222db037de57", + "dbt_det/data-tests/metrics/metric_units_per_order.sql": "a2fd7b54c5c331564cf9912c2c6cb331c4249817c0cc3681a7ce8168ceb361db", + "dbt_det/days/customers/day_000.csv": "b0f8a38e0fb85d2a5ebd8ca80d56d9439b5938cbce6b4013bf91c4fb24502552", + "dbt_det/days/customers/day_001.csv": "220e7214482b5ac03b117c6d5c0fa2007f8ce17e1dcc9fc4c253a41df6acaa28", + "dbt_det/days/customers/day_002.csv": "f23b8f5fdc0e9abdb5efd01f6090d5c4f10d99fd47b07e228cd882bffa4c9738", + "dbt_det/days/order_items/day_000.csv": "68fda4e887148c46a19e39d5cc4ce3df20adbc5e846e2406b7fec80ac85d7594", + "dbt_det/days/order_items/day_001.csv": "c745a9e7052352d861d82b57b5a58371f3d026ecb739125deb60a00237e03b18", + "dbt_det/days/order_items/day_002.csv": "d22872e01590564174fbaa5f0f399a67b71a7f365cb3171e58259d8676c5cbf4", + "dbt_det/days/orders/day_000.csv": "a640c05ab85ad9125a030b24cb81932845ea56f0f0561229849c82208ee6a1b4", + "dbt_det/days/orders/day_001.csv": "4340b37b948e5b999c412d9d0542cdacef598bee46cd8f82c407a1759c744d74", + "dbt_det/days/orders/day_002.csv": "5de8d8e169904130aec139b1b65221ecd4c994d640f4e1dee72c332811d7941e", + "dbt_det/days/product_reviews/day_000.csv": "f9f33d24a151c6ff680ce5c4521f87418284a4de045dcb0eacb11fba048b7324", + "dbt_det/days/products/day_000.csv": "9274598e42761eea40a269c36524bc83eab320de4160c2fe0f0a5584fd8aebb3", + "dbt_det/dbt_project.yml": "631ba06ded8db3ebbfa85351d29ef0953dc5b92992235b786a21424e1db3ddda", + "dbt_det/defects_report.json": "02983affaff02f2248b52acc957c9c5f9a1dd3c071d72708b008d7707e39355c", + "dbt_det/ecommerce_training.metrics.yml": "01324c4ec6103dee37f66d254c82d85515e894ccabd13262368814ab2fc9c6c1", + "dbt_det/ecommerce_training.model2data.yml": "ab1cfa8d1b9b9638a4e8767cb02209ab2033beb1bdeff470f4bf0b2e596612ed", + "dbt_det/macros/generate_schema_name.sql": "60f37d9f6fc022c0f482c2699a2e1a4dc61207cbb0a7f355788b4c1d43066438", + "dbt_det/macros/model2data_hint_tests.sql": "d0b45f48d4740c22b3881654fc704f48ca08404b8d574f37680c7237ba4b08f8", + "dbt_det/macros/model2data_history_tests.sql": "f202816bc0a415be7f3a2059bda83233cce37a88004d8c7d6a5fcf24964355ad", + "dbt_det/metric_values.json": "1f52439dfaa03f459e00e3fb6d7c24e6e5cd672b5005353596ac33acc2e25a1f", + "dbt_det/models/staging/stg_customers.sql": "44df48978d6ac653bdf1c8ed58d8884068c066f5131aeb8f4822f8dc4c424b0a", + "dbt_det/models/staging/stg_customers.yml": "55ce32de721f6a366ad5c8c2d3036f7eab2719b6ebe9d7b0bf381afadf58fc6b", + "dbt_det/models/staging/stg_order_items.sql": "d9ffb6428433e8ad821637b07a40f88037201b1ea3ad4d05c06ace185f496b39", + "dbt_det/models/staging/stg_order_items.yml": "2d90adc3a2e3beeddab1b0b8a0140309a1bb5b667337d1e187b2ab40333cd966", + "dbt_det/models/staging/stg_orders.sql": "ce9432edd2e51bd8d6caa6e887268ae57ebad6041881548e140e172fc4420c91", + "dbt_det/models/staging/stg_orders.yml": "fe63c9f2fea411ec373b19a500e90c4e0c0b7352ba2d4591a33cbcf4a138ed7c", + "dbt_det/models/staging/stg_orders_history.sql": "937bea699b5df5da6808580fe3963f432163f3741afc0f71275e5261d81f655b", + "dbt_det/models/staging/stg_orders_history.yml": "b6bc4e53dc5078994b19f94b38371ea27308a452cccf351bfd43b6c489e2152a", + "dbt_det/models/staging/stg_product_reviews.sql": "939f77269e38a2b8265ce001e62a8194fd5335d340f97168a67f6915c8881f75", + "dbt_det/models/staging/stg_product_reviews.yml": "e7692c4d586af9ea57c9afbb421d5424be907fb28f4464bf82f75033b402ef48", + "dbt_det/models/staging/stg_products.sql": "7455128b10e0357213f26c209913a73df3f417be28ddd9d4dd8681390e7dcdab", + "dbt_det/models/staging/stg_products.yml": "56af441c9582505bf71fe86b1a6e79fc83db957b945db4f1a5ab1775aecb4e90", + "dbt_det/osi/det.yml": "638f0692719b23c6fb6d7e55a6cc09661bd3fda8c77eecd1a73c008058c58a31", + "dbt_det/profiles.yml": "c40b04badc35b941a8de1079c8d0a298f6446f0d5caf5bd50dbe3797ab2a2255", + "dbt_det/seeds/raw/__seed_config.yml": "03fbba2c4026678a9eef7cfe48aeaf3391a2919b05b1f67b2744ee0891ff199f", + "dbt_det/seeds/raw/customers.csv": "3443d991581aefaabc9648fd96302c948db616761e0b4137401beae0f7add2db", + "dbt_det/seeds/raw/order_items.csv": "81bcd163cc42c3474dfcf5201634164189bd3ba19c7cb05fce833c80b2d81a55", + "dbt_det/seeds/raw/orders.csv": "0c7f5319bb652bd73a6b89649825377e875c8c166086c299b971ee8d760e375f", + "dbt_det/seeds/raw/orders_history.csv": "755df44c63bbdfa922276db2382e5b9cfb9603e6fc02f5c72552b9aaa14e32e8", + "dbt_det/seeds/raw/product_reviews.csv": "f9f33d24a151c6ff680ce5c4521f87418284a4de045dcb0eacb11fba048b7324", + "dbt_det/seeds/raw/products.csv": "9274598e42761eea40a269c36524bc83eab320de4160c2fe0f0a5584fd8aebb3" + }, "preset-clean": { "dbt_det/EXPECTED_FAILURES.md": "14e2890fcde05b3d20274fb5a531e0f57b92864ccbd54c78ffbe1cea52c68942", "dbt_det/days/customers/day_000.csv": "69f9b44ab0cfdf2f6bca58f63f2be044b749c9f1cc80501a8355c4d3dc915104", diff --git a/tests/test_determinism.py b/tests/test_determinism.py index 9cf26f3..5d067b6 100644 --- a/tests/test_determinism.py +++ b/tests/test_determinism.py @@ -62,6 +62,22 @@ def _case(case_id: str, model: Path, *args: str) -> None: _case("skew", EXAMPLES / "saas_platform.model2data.yml", "--skew", "0.8") _case("incremental-history", FIXTURES / "defects" / "hcol.model2data.yml", "--days", "3") _case("composite-keys", FIXTURES / "composite_only.dbml") +# Metrics add files (known values, Ossie, a dbt test per metric) and change none. +_SPEC = ROOT / "model2data" / "spec" / "examples" +_case( + "metrics", + _SPEC / "coffee_webshop.model2data.yml", + "--metrics", + str(_SPEC / "coffee_webshop.metrics.yml"), +) +_case( + "metrics-defects-days", + _TRAIN, + "--metrics", + str(FIXTURES / "metrics" / "ecommerce_training.metrics.yml"), + "--days", + "2", +) for _locale in ("en_US", "nl_BE", "de_DE", "fr_FR", "ja_JP"): _case(f"locale-{_locale}", _ECOM, "--locale", _locale) diff --git a/tests/test_metrics_cli.py b/tests/test_metrics_cli.py new file mode 100644 index 0000000..ab9eed9 --- /dev/null +++ b/tests/test_metrics_cli.py @@ -0,0 +1,316 @@ +"""The CLI's metrics: `validate` on a metrics file, `generate --metrics`, `metrics list|export`.""" + +import hashlib +import json +import os +import shutil +from pathlib import Path + +import pytest +import yaml +from typer.testing import CliRunner + +from model2data.cli import app +from model2data.cli import main as generate_cli + +ROOT = Path(__file__).resolve().parent.parent +SPEC = ROOT / "model2data" / "spec" / "examples" +FIXTURES = ROOT / "tests" / "fixtures" / "metrics" +COFFEE = SPEC / "coffee_webshop.model2data.yml" +COFFEE_METRICS = SPEC / "coffee_webshop.metrics.yml" +TRAINING = ROOT / "examples" / "ecommerce_training.model2data.yml" +TRAINING_METRICS = FIXTURES / "ecommerce_training.metrics.yml" + +runner = CliRunner() + + +def _invoke(args, cwd: Path): + previous = Path.cwd() + os.chdir(cwd) + try: + return runner.invoke(app, [str(arg) for arg in args]) + finally: + os.chdir(previous) + + +def _hashes(directory: Path) -> dict[str, str]: + return { + path.relative_to(directory).as_posix(): hashlib.sha256(path.read_bytes()).hexdigest() + for path in sorted(directory.rglob("*")) + if path.is_file() + } + + +# --------------------------------------------------------------------------- +# validate +# --------------------------------------------------------------------------- +def test_validate_checks_a_metrics_file_against_the_model_beside_it(tmp_path): + result = _invoke(["validate", COFFEE_METRICS], tmp_path) + assert result.exit_code == 0, result.output + assert ( + "✅ coffee_webshop.metrics.yml conforms to metrics spec 0.1.0, checked against " + "coffee_webshop.model2data.yml." in result.output + ) + + +def test_validate_takes_the_model_from_an_option(tmp_path): + metrics = tmp_path / "mine.metrics.yml" + shutil.copy(COFFEE_METRICS, metrics) + result = _invoke(["validate", metrics, "--model", COFFEE], tmp_path) + assert result.exit_code == 0, result.output + assert "checked against coffee_webshop.model2data.yml" in result.output + + +def test_validate_without_a_model_checks_the_file_alone_and_says_so(tmp_path): + metrics = tmp_path / "lonely.metrics.yml" + metrics.write_text("model2data-metrics: 0.1.0\nmodel: lonely\nmetrics:\n n: {count: t}\n") + result = _invoke(["validate", metrics], tmp_path) + assert result.exit_code == 0, result.output + assert ( + "no model to check it against: there is no lonely.model2data.yml beside it" in result.output + ) + assert "✅ lonely.metrics.yml conforms to metrics spec 0.1.0." in result.output + + +def test_validate_reports_a_metrics_files_errors(tmp_path): + metrics = tmp_path / "coffee_webshop.metrics.yml" + metrics.write_text( + "model2data-metrics: 0.1.0\nmodel: coffee_webshop\nmetrics:\n" + " m: {measure: orders.status, agg: sum}\n" + ) + shutil.copy(COFFEE, tmp_path / COFFEE.name) + result = _invoke(["validate", metrics], tmp_path) + assert result.exit_code == 1 + assert "❌ coffee_webshop.metrics.yml: 1 error" in result.output + assert "metrics.m.agg (line 4): sum needs a numeric column" in result.output + github = _invoke(["validate", metrics, "--format", "github"], tmp_path) + assert "::error file=" in github.output and "line=4" in github.output + + +def test_validate_refuses_a_metrics_file_whose_model_does_not_conform(tmp_path): + (tmp_path / "bad.model2data.yml").write_text("model2data: 0.4.0\ntables: {}\n") + metrics = tmp_path / "bad.metrics.yml" + metrics.write_text("model2data-metrics: 0.1.0\nmodel: bad\n") + result = _invoke(["validate", metrics], tmp_path) + assert result.exit_code == 1 + assert "its model, bad.model2data.yml, does not conform" in result.output + + +def test_validate_mixes_models_and_metrics_files(tmp_path): + result = _invoke(["validate", COFFEE, COFFEE_METRICS], tmp_path) + assert result.exit_code == 0, result.output + assert "conforms to spec 0.2.0" in result.output + assert "conforms to metrics spec 0.1.0" in result.output + assert "✅ 2 model files conform." in result.output + + +# --------------------------------------------------------------------------- +# generate --metrics +# --------------------------------------------------------------------------- +COMMON = ["--seed", "7", "--as-of", "2026-03-15", "--rows", "60", "--name", "shop"] + + +def test_metrics_only_add_files(tmp_path): + plain, with_metrics = tmp_path / "plain", tmp_path / "metrics" + plain.mkdir() + with_metrics.mkdir() + first = _invoke(["generate", "-f", COFFEE, *COMMON], plain) + assert first.exit_code == 0, first.output + second = _invoke(["generate", "-f", COFFEE, *COMMON, "--metrics", COFFEE_METRICS], with_metrics) + assert second.exit_code == 0, second.output + before, after = _hashes(plain), _hashes(with_metrics) + assert {path: after[path] for path in before} == before + added = sorted(set(after) - set(before)) + assert added == sorted( + [ + "dbt_shop/coffee_webshop.metrics.yml", + "dbt_shop/metric_values.json", + "dbt_shop/osi/shop.yml", + *( + f"dbt_shop/data-tests/metrics/metric_{name}.sql" + for name in [ + "revenue", + "orders", + "order_lines", + "average_order_value", + "web_revenue", + "web_share", + "coffee_units_sold", + "orders_total_amount", + "orders_count", + "order_items_quantity", + "order_items_count", + ] + ), + ] + ) + assert "📏 Computing each metric's known value and its dbt test..." in second.output + assert ( + "Metrics: 11 (metric_values.json, osi/shop.yml, data-tests/metrics/)" + in (second.output) + ) + values = json.loads((with_metrics / "dbt_shop" / "metric_values.json").read_text()) + assert values["run"] == {"seed": 7, "as_of": "2026-03-15"} + assert list(values["metrics"])[:2] == ["revenue", "orders"] + ossie = yaml.safe_load((with_metrics / "dbt_shop" / "osi" / "shop.yml").read_text()) + assert ossie["version"] == "0.1.1" + + +def test_generate_with_metrics_twice_writes_the_same_bytes(tmp_path): + runs = [] + for name in ("a", "b"): + (tmp_path / name).mkdir() + result = _invoke( + ["generate", "-f", COFFEE, *COMMON, "--metrics", COFFEE_METRICS], tmp_path / name + ) + assert result.exit_code == 0, result.output + runs.append(_hashes(tmp_path / name)) + assert runs[0] == runs[1] + + +def test_generate_refuses_a_metrics_file_with_errors_before_writing_anything(tmp_path): + metrics = tmp_path / "broken.metrics.yml" + metrics.write_text("model2data-metrics: 0.1.0\nmodel: someone_else\n") + result = _invoke(["generate", "-f", COFFEE, *COMMON, "--metrics", metrics], tmp_path) + assert result.exit_code == 1 + assert "the metrics are for model 'someone_else'" in result.output + assert not (tmp_path / "dbt_shop").exists() + + +def test_generate_prints_a_metrics_files_warnings(tmp_path): + metrics = tmp_path / "w.metrics.yml" + metrics.write_text( + "model2data-metrics: 0.1.0\nmodel: coffee_webshop\n" + "metrics:\n big: {count: orders, where: {orders.total_amount: {gt: 9000}}}\n" + ) + result = _invoke(["generate", "-f", COFFEE, *COMMON, "--metrics", metrics], tmp_path) + assert result.exit_code == 0, result.output + assert "⚠️ w.metrics.yml: 1 warning" in result.output + assert "can never match" in result.output + + +def test_generate_as_a_function_with_days_and_defects(tmp_path, monkeypatch): + monkeypatch.chdir(tmp_path) + generate_cli( + file=TRAINING, + rows=40, + seed=5, + name="training", + force=True, + days=2, + metrics_file=TRAINING_METRICS, + ) + project = tmp_path / "dbt_training" + values = json.loads((project / "metric_values.json").read_text()) + assert values["run"] == {"seed": 5, "as_of": "2026-01-01"} + assert (project / "data-tests" / "metrics" / "metric_odd_mix.sql").exists() + assert values["metrics"]["odd_mix"]["value"] is None + + +def test_generate_with_no_metrics_in_the_file_still_says_so(tmp_path): + metrics = tmp_path / "none.metrics.yml" + metrics.write_text("model2data-metrics: 0.1.0\nmodel: coffee_webshop\ninfer: false\n") + result = _invoke(["generate", "-f", COFFEE, *COMMON, "--metrics", metrics], tmp_path) + assert result.exit_code == 0, result.output + assert "Metrics: 0" in result.output + + +# --------------------------------------------------------------------------- +# metrics list / export +# --------------------------------------------------------------------------- +def test_metrics_list(tmp_path): + result = _invoke(["metrics", "list", "-f", COFFEE, "--metrics", COFFEE_METRICS], tmp_path) + assert result.exit_code == 0, result.output + lines = result.output.splitlines() + assert lines[0].split() == [ + "revenue", + "simple", + "file", + "sum", + "of", + "orders.total_amount,", + "filtered,", + "by", + "orders.order_date", + ] + assert any(line.split()[:3] == ["order_lines", "count", "file"] for line in lines) + assert any( + line.split()[:4] == ["average_order_value", "ratio", "file", "revenue"] for line in lines + ) + assert any(line.split()[:3] == ["web_share", "derived", "file"] for line in lines) + assert any(line.split()[:3] == ["orders_count", "count", "inferred"] for line in lines) + + +def test_metrics_list_without_a_file_lists_the_inferred_ones(tmp_path): + result = _invoke(["metrics", "list", "-f", COFFEE], tmp_path) + assert [line.split()[0] for line in result.output.splitlines()] == [ + "orders_total_amount", + "orders_count", + "order_items_quantity", + "order_items_count", + ] + bare = _invoke( + ["metrics", "list", "-f", ROOT / "examples" / "ecommerce.model2data.yml"], tmp_path + ) + assert bare.exit_code == 0 + assert "No metrics" in bare.output + + +def test_metrics_export_prints_ossie(tmp_path): + result = _invoke(["metrics", "export", "-f", COFFEE, "--metrics", COFFEE_METRICS], tmp_path) + assert result.exit_code == 0, result.output + assert result.output.startswith("# Apache Ossie (Open Semantic Interchange) 0.1.1") + assert yaml.safe_load(result.output)["semantic_model"][0]["name"] == "coffee_webshop" + + +def test_metrics_export_writes_a_file(tmp_path): + out = tmp_path / "coffee.osi.yml" + args = [ + "metrics", + "export", + "-f", + COFFEE, + "--metrics", + COFFEE_METRICS, + "--to", + "OSSIE", + "-o", + out, + ] + result = _invoke(args, tmp_path) + assert result.exit_code == 0, result.output + assert f"✅ Wrote {out} (Apache Ossie 0.1.1, 11 metrics)" in result.output + assert "ℹ️ Not expressible in Ossie 0.1.1 itself" in result.output + again = _invoke(args, tmp_path) + assert again.exit_code == 1 and "already exists" in again.output + assert _invoke([*args, "--force"], tmp_path).exit_code == 0 + + +def test_metrics_export_without_losses_prints_none(tmp_path): + model = tmp_path / "one.model2data.yml" + model.write_text("model2data: 0.4.0\nname: one\ntables:\n t:\n columns:\n id: int\n") + result = _invoke(["metrics", "export", "-f", model, "-o", tmp_path / "o.yml"], tmp_path) + assert result.exit_code == 0, result.output + assert "Not expressible" not in result.output + + +def test_metrics_export_refuses_an_unknown_format(tmp_path): + result = _invoke(["metrics", "export", "-f", COFFEE, "--to", "metricflow"], tmp_path) + assert result.exit_code == 2 + assert "Choose one of: ossie" in result.output + + +def test_metrics_with_no_command_shows_help(tmp_path): + result = _invoke(["metrics"], tmp_path) + assert "list" in result.output and "export" in result.output + + +@pytest.mark.parametrize("command", ["list", "export"]) +def test_metrics_commands_refuse_a_broken_metrics_file(tmp_path, command): + metrics = tmp_path / "x.metrics.yml" + metrics.write_text( + "model2data-metrics: 0.1.0\nmodel: coffee_webshop\nmetrics:\n m: {count: nope}\n" + ) + result = _invoke(["metrics", command, "-f", COFFEE, "--metrics", metrics], tmp_path) + assert result.exit_code == 1 + assert "metrics.m.count" in result.output diff --git a/tests/test_metrics_dbt.py b/tests/test_metrics_dbt.py new file mode 100644 index 0000000..7c547e3 --- /dev/null +++ b/tests/test_metrics_dbt.py @@ -0,0 +1,123 @@ +"""The metric tests against dbt itself: `dbt build` computes every metric and gets its known value. + +`metric_values.json` is computed in Python, on DuckDB, from the frames the run +wrote. Each generated `data-tests/metrics/metric_.sql` computes the same +metric over the project's staging models, as the warehouse loaded them from +the seeds. These cases run a real `dbt build` and require every metric test to +pass: on the reference example, on a model with every kind of column and join, +and on the training model with its defects (orphans, nulls, invalid values, +messy text, duplicate keys) over several days. One more edits a known value +and requires its test to fail, so a passing test is known to check something. + +Run with the project's own dbt first on PATH (`PATH="$PWD/.venv/bin:$PATH"`). +""" + +from __future__ import annotations + +import json +import re +import shutil +import subprocess +from pathlib import Path + +import pytest + +from model2data.cli import main as generate_cli + +DBT = shutil.which("dbt") +ROOT = Path(__file__).resolve().parent.parent +SPEC = ROOT / "model2data" / "spec" / "examples" +FIXTURES = ROOT / "tests" / "fixtures" / "metrics" + +pytestmark = pytest.mark.skipif(DBT is None, reason="dbt CLI not found on PATH") + + +def _build(project: Path, *args: str) -> dict[str, str]: + """Each test's status after `dbt build`; a model or seed that does not succeed fails here.""" + result = subprocess.run( + [str(DBT), "build", "--profiles-dir", ".", *args], + cwd=project, + capture_output=True, + text=True, + timeout=300, + ) + run_results = project / "target" / "run_results.json" + assert run_results.exists(), result.stdout + result.stderr + statuses = {} + for node in json.loads(run_results.read_text())["results"]: + unique_id, status = node["unique_id"], node["status"] + if unique_id.startswith("test."): + statuses[unique_id.split(".")[2]] = status + else: + assert status == "success", f"{unique_id} {status}:\n{result.stdout}" + return statuses + + +def _metric_tests(statuses: dict[str, str]) -> dict[str, str]: + return {name: status for name, status in statuses.items() if name.startswith("metric_")} + + +@pytest.mark.parametrize( + "model, metrics, options", + [ + pytest.param( + SPEC / "coffee_webshop.model2data.yml", + SPEC / "coffee_webshop.metrics.yml", + {"rows": 300, "seed": 7}, + id="coffee-example", + ), + pytest.param( + FIXTURES / "shop.model2data.yml", + FIXTURES / "shop.metrics.yml", + {"rows": 80, "seed": 3}, + id="every-kind-and-join", + ), + pytest.param( + ROOT / "examples" / "ecommerce_training.model2data.yml", + FIXTURES / "ecommerce_training.metrics.yml", + {"rows": 60, "days": 3}, + id="training-defects-and-days", + ), + pytest.param( + ROOT / "examples" / "ecommerce_training.model2data.yml", + FIXTURES / "ecommerce_training.metrics.yml", + {"rows": 60, "days": 2, "defects_preset": "messy"}, + id="messy-preset", + ), + ], +) +def test_every_metric_test_passes_in_dbt_build(tmp_path, monkeypatch, model, metrics, options): + monkeypatch.chdir(tmp_path) + generate_cli( + file=model, force=True, adapter="duckdb", name="metrics", metrics_file=metrics, **options + ) + project = tmp_path / "dbt_metrics" + values = json.loads((project / "metric_values.json").read_text()) + statuses = _metric_tests(_build(project)) + assert set(statuses) == {f"metric_{name}" for name in values["metrics"]} + assert all(status == "pass" for status in statuses.values()), statuses + + +def test_a_wrong_known_value_fails_its_test(tmp_path, monkeypatch): + monkeypatch.chdir(tmp_path) + generate_cli( + file=SPEC / "coffee_webshop.model2data.yml", + rows=50, + seed=1, + force=True, + name="metrics", + metrics_file=SPEC / "coffee_webshop.metrics.yml", + ) + project = tmp_path / "dbt_metrics" + test = project / "data-tests" / "metrics" / "metric_revenue.sql" + text = test.read_text() + # Move the known value by twice the tolerance. + text = re.sub( + r"abs\(value - ([0-9.]+)\) > ([0-9.]+)", + lambda m: f"abs(value - ({m.group(1)} + 2 * {m.group(2)})) > {m.group(2)}", + text, + ) + test.write_text(text) + statuses = _metric_tests(_build(project)) + assert statuses.pop("metric_revenue") == "fail" + assert set(statuses.values()) == {"pass"} From a55fb30cf2f0bc51dd0f9cbf6f9df20962b34d92 Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 17:07:16 +0200 Subject: [PATCH 3/6] Document metrics in the README, LLMS.md and the guide A "Metrics next to the model" section in both READMEs, with the coffee example, what the known values and the metric tests are, and the Ossie export; the metrics file and commands in LLMS.md and `guide tune`, and what to do about their messages in `guide triage`. The guide's option check now reads the options of grouped commands (`metrics export --to`). Co-Authored-By: Claude Opus 5.5 --- LLMS.md | 20 ++++++++++ README.md | 80 +++++++++++++++++++++++++++++++++++++- README_PYPI.md | 40 ++++++++++++++++++- model2data/guide/triage.md | 14 ++++++- model2data/guide/tune.md | 30 +++++++++++++- tests/test_guide.py | 7 +++- 6 files changed, 185 insertions(+), 6 deletions(-) diff --git a/LLMS.md b/LLMS.md index 3337214..2fd1a50 100644 --- a/LLMS.md +++ b/LLMS.md @@ -245,6 +245,18 @@ generated project), a `TableGroup` its `groups`. - For a source that keeps its own history (an SCD2 table to snapshot or join point-in-time), set `history: true` in the table's `incremental` and generate with `--days N`: `
_history` gets every version with `valid_from`, `valid_to` and `is_current`. +- When the user names the numbers that matter (revenue, orders, conversion), write them in a + metrics file beside the model, `.metrics.yml` (metrics spec 0.1.0, + `model2data/spec/metrics/README.md`): `measure: table.column` with `agg`, `count: table`, + `ratio: {numerator, denominator}` or `expression: a - b` over metric names, and `where` filters + (`table.column: value`, a list, or `{ne|in|not_in|gt|gte|lt|lte|between|is_null: ...}`, combined + with `any`/`all`). `format: percent` means the value is a fraction (0.6 shows as 60%): write + shares as `a / b`, never `* 100`. A filter column must be on the metric's table or reachable through foreign + keys child-to-parent along one path. Run `model2data validate .metrics.yml`, then generate + with `--metrics .metrics.yml`: `metric_values.json` holds each metric's known value, and + `dbt build` runs a test per metric that must pass. A failing metric test means the metric's SQL + and the data disagree; never edit `metric_values.json` to make it pass. The file must be passed; + `generate` does not pick it up from beside the model. - model2data requires dbt-core >= 1.11 (tracking dbt's own supported-version policy). Everything here, `--unit-tests` included, works with a plain `pip install model2data`. @@ -280,6 +292,14 @@ model2data --file SCHEMA.dbml [OPTIONS] tests are seen to fail; writes defects_report.json and EXPECTED_FAILURES.md into the project. none: ignore every defect, the model's own too +--metrics PATH The model's metrics file: adds metric_values.json (known values), + osi/NAME.yml (Apache Ossie 0.1.1) and data-tests/metrics/ (a dbt test + per metric). Changes no other file + +model2data validate FILE... [--model MODEL] a metrics file (*.metrics.yml) is checked against + --model, or the model beside it with its stem +model2data metrics list -f MODEL [--metrics FILE] every metric, inferred too +model2data metrics export -f MODEL [--metrics FILE] --to ossie [-o FILE] without generating ``` For anything not covered here, see [README.md](README.md) — this file exists to make a schema diff --git a/README.md b/README.md index 1b48521..cc08968 100644 --- a/README.md +++ b/README.md @@ -614,6 +614,81 @@ orders: incremental: {new_per_day: 20, update_rate: 0.1, updated_at: updated_at, history: true} ``` +### Metrics next to the model + +What the numbers mean -- revenue, orders, average order value -- goes in a second, optional file +beside the model, `.metrics.yml`, defined by the [metrics spec 0.1.0](model2data/spec/metrics/README.md) +([schema](model2data/spec/metrics/metrics.schema.json)): + +```yaml +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +model2data-metrics: 0.1.0 +model: coffee_webshop + +metrics: + revenue: + label: Revenue + measure: orders.total_amount # summed: the column's `measure` is true + where: + orders.status: [paid, shipped, delivered] + time: orders.order_date + format: currency + orders: + measure: orders.id + agg: count_distinct + average_order_value: + ratio: {numerator: revenue, denominator: orders} + coffee_units_sold: + measure: order_items.quantity # dated by orders.order_date, through order_id + where: + orders.status: {ne: cancelled} + products.category: [beans, ground, capsules] + any: + - orders.channel: web + - order_items.quantity: {gte: 3} +``` + +(the whole file, which conforms against the example model, is +[`model2data/spec/examples/coffee_webshop.metrics.yml`](model2data/spec/examples/coffee_webshop.metrics.yml)). +A metric is a column aggregated (`measure`, with `agg` or the column's own `measure`), a row count +(`count`), a `ratio` of two metrics' totals, or arithmetic over metrics (`expression`). A filter +can reach any table the metric's table reaches through its foreign keys, many-to-one, along exactly +one path; nulls behave as in SQL. Every `measure` column of the model also yields a metric on its +own (`orders_total_amount`), and a fact a row count (`orders_count`); `infer: false` turns that +off. `format` changes no value: `percent` expects a fraction (0.6 shows as 60%), so a share is +`web_revenue / revenue`, never `* 100`. The generator never reads the file: the data is the same +with or without it. + +```bash +model2data validate coffee_webshop.metrics.yml # against coffee_webshop.model2data.yml beside it +model2data --file coffee_webshop.model2data.yml --metrics coffee_webshop.metrics.yml --seed 42 --as-of 2026-01-31 +cd dbt_coffee_webshop && dbt build # one test per metric, each checking its known value +``` + +With `--metrics`, the run also writes, and changes nothing else: + +- **`metric_values.json`** -- each metric's **known value** over the generated data, overall and + per calendar month of its time column: with the command above, revenue is 28344.22, orders 200, + average order value 141.7211. A run knows its data, so it knows its numbers; a semantic layer or + dashboard built on the data can be checked against them. Counts are exact; everything else is + rounded to 6 decimal places, half to even. Same seed, same bytes. +- **`data-tests/metrics/metric_.sql`** -- a singular dbt test per metric that computes it + over the project's staging models and fails unless it gets the known value (within + `0.000001 + 0.000000001 × |value|`), so `dbt build` proves the metric logic on the warehouse. +- **`osi/.yml`** -- the model and its metrics as an [Apache Ossie](https://github.com/apache/ossie) + (Open Semantic Interchange) 0.1.1 semantic model: tables as datasets over the staging models + (`staging.stg_
`), foreign keys as relationships, date columns as time dimensions, metrics + as ANSI SQL expressions. What Ossie 0.1.1 has no field for (a metric's label, format and time, + enum members) is carried in `custom_extensions` and listed at the top of the file. + +`model2data metrics list -f MODEL [--metrics FILE]` shows every metric, and `model2data metrics +export -f MODEL [--metrics FILE] --to ossie [-o FILE]` writes the Ossie file without generating. +Without `--metrics`, both use the model's inferred metrics. A sibling metrics file is not picked up +by `generate` on its own: a file appearing beside a model must not change what an unchanged +command writes. From Python, `model2data.metrics` loads and checks a file (`load`, `validate`), +resolves it with the model into one semantic representation (`resolve`), and computes +(`known_values`) and exports (`to_ossie`) from it. + --- ## Generated dbt project structure @@ -634,7 +709,10 @@ dbt_{project_name}/ │ ├── ut_stg_table1.yml # only with --unit-tests │ └── ... ├── data-tests/ -│ └── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys +│ ├── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys +│ └── metrics/metric_revenue.sql # only with --metrics: one per metric +├── osi/{project_name}.yml # only with --metrics: Apache Ossie 0.1.1 +├── metric_values.json # only with --metrics: each metric's known value ├── macros/ │ ├── generate_schema_name.sql │ └── model2data_hint_tests.sql # only when the model's hints write tests diff --git a/README_PYPI.md b/README_PYPI.md index d8d788b..da4dcf2 100644 --- a/README_PYPI.md +++ b/README_PYPI.md @@ -339,6 +339,41 @@ orders: incremental: {new_per_day: 20, update_rate: 0.1, updated_at: updated_at, history: true} ``` +### Metrics next to the model + +What the numbers mean goes in a second, optional file beside the model, `.metrics.yml`, +defined by the [metrics spec 0.1.0](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/metrics/README.md): + +```yaml +model2data-metrics: 0.1.0 +model: coffee_webshop +metrics: + revenue: + measure: orders.total_amount + where: + orders.status: [paid, shipped, delivered] + format: currency + orders: + measure: orders.id + agg: count_distinct + average_order_value: + ratio: {numerator: revenue, denominator: orders} +``` + +A metric is a column aggregated (`measure`), a row count (`count`), a `ratio` of two metrics' +totals, or arithmetic over metrics (`expression`); filters reach other tables through many-to-one +foreign keys, and every `measure` column of the model yields a metric of its own. The generator +never reads the file. `model2data validate x.metrics.yml` checks it against the model beside it. +`--metrics FILE` on `generate` adds, and changes nothing else: + +- `metric_values.json`: each metric's known value over the generated data, overall and per month; +- `data-tests/metrics/`: a dbt test per metric checking the warehouse gets that value; +- `osi/.yml`: the model and its metrics as an [Apache Ossie](https://github.com/apache/ossie) + 0.1.1 semantic model, with what Ossie cannot say listed at the top. + +`model2data metrics list` and `model2data metrics export --to ossie` do the same without +generating. The [README](https://github.com/JB-Analytica/model2data/blob/main/README.md#metrics-next-to-the-model) has the details. + ## Generated dbt project structure The generated dbt project includes: @@ -357,7 +392,10 @@ dbt_{project_name}/ │ ├── ut_stg_table1.yml # only with --unit-tests │ └── ... ├── data-tests/ -│ └── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys +│ ├── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys +│ └── metrics/metric_revenue.sql # only with --metrics: one per metric +├── osi/{project_name}.yml # only with --metrics: Apache Ossie 0.1.1 +├── metric_values.json # only with --metrics: each metric's known value ├── macros/ │ ├── generate_schema_name.sql │ └── model2data_hint_tests.sql # only when the model's hints write tests diff --git a/model2data/guide/triage.md b/model2data/guide/triage.md index f9a0a10..c3fbd66 100644 --- a/model2data/guide/triage.md +++ b/model2data/guide/triage.md @@ -18,6 +18,12 @@ says it created the project. Fix the **model file**, never the generated project (`tables.orders.columns.status.generate.weights`). Fix that value. Exit 1 until all are gone. - `⚠️ : N warnings`: it conforms. A reference to a parent column that is not a key: make the parent `pk` or `unique`. A `grain` without a key: add the key, or drop `grain`. +- A metrics file (`.metrics.yml`) is checked against the model beside it. An error + naming two paths: the filter's table is reached twice (two foreign keys to one table); + filter on a column of the table in between instead. `cannot be reached`: the column is on + a child table; put the metric on that table, or drop the filter. `compares by order`: list + the values with `in`. A warning `no date or timestamp column`: set `time`. A warning + `can never match`: the value is outside what the model generates; fix the value or the hint. ## generate @@ -51,9 +57,13 @@ Take the first rule that applies to each line: 3. Any other failing `not_null`, `unique`, `relationships`, `accepted_values` test: the generated data broke a key the model declares. Re-read the generate summary; rule 4 or 5 above applies. -4. A WARN from a hint test (`min`/`max`, `after`, `null_rate`, `distinct`, `grain`): the hint +4. A failing `metric_` test (with `--metrics`): the warehouse computed the metric + differently from `metric_values.json`. Regenerate with `--force` first (the test and the + seeds must come from the same run); if it still fails, report it with both files. Never + edit `metric_values.json` or the test to make it pass. +5. A WARN from a hint test (`min`/`max`, `after`, `null_rate`, `distinct`, `grain`): the hint and the data disagree. Fix the hint in the model. -5. Still failing after the model is fixed: report it with the model file and the output. +6. Still failing after the model is fixed: report it with the model file and the output. Done looks like: `validate` exits 0, the summary has no ⚠️ lines, `dbt build` ends `ERROR=0` (and `WARN=0` unless the model asks for defects). diff --git a/model2data/guide/tune.md b/model2data/guide/tune.md index 4bfc165..4003a11 100644 --- a/model2data/guide/tune.md +++ b/model2data/guide/tune.md @@ -5,8 +5,10 @@ | Command | Does | Exit | |---|---|---| | `model2data --file M` | same as `model2data generate --file M` | see below | -| `model2data validate M...` | check models against spec 0.4.0 | 0 conforms (warnings allowed), 1 any error | +| `model2data validate M...` | check models against spec 0.4.0, and `*.metrics.yml` files against the metrics spec and their model (`--model M`, else the model beside it with the same stem) | 0 conforms (warnings allowed), 1 any error | | `model2data convert M` | print M as `.model2data.yml`; `-o FILE` writes it, `--force` overwrites | 0 ok, 1 unreadable model or output exists | +| `model2data metrics list -f M [--metrics F]` | every metric: the file's, then the inferred ones | 0, 1 on a model or metrics error | +| `model2data metrics export -f M [--metrics F] --to ossie` | the model and its metrics as Apache Ossie 0.1.1; `-o FILE` writes it, `--force` overwrites | 0, 1 on an error or an existing output, 2 on another `--to` | | `model2data guide [TOPIC]` | this page; topics `setup`, `triage`, `tune` | 0 | `generate` exits 0 on success; 1 on a model error, an existing `dbt_/` without @@ -37,6 +39,7 @@ Every option overrides the model's `run` setting of the same meaning. | `--unit-tests` | | off | | `--name NAME` (project becomes `dbt_NAME`) | `name` (top level) | the model's `name`, else the file stem | | `--force` (replace `dbt_/`) | | off | +| `--metrics FILE` (the model's `*.metrics.yml`; never picked up on its own) | | none | ## Generator types @@ -136,4 +139,29 @@ With `--days N` the seeds hold the state after the last day, and `--days-format` Only tables with `incremental` change after the first day. +With `--metrics FILE`, and nothing else changed: `metric_values.json` (each metric's known +value over the seeds, overall and by month), `data-tests/metrics/metric_.sql` (a dbt +test per metric that fails unless the warehouse gets that value) and `osi/.yml` +(Apache Ossie 0.1.1). + +## Metrics file + +`.metrics.yml` beside the model, version 0.1.0 of its own spec +(`model2data/spec/metrics/README.md`, `metrics.schema.json` in the package). Top level: +`model2data-metrics` (0.1.0), `model` (the model's `name`), `metrics`, `dimensions`, `infer`. +A metric (name `[a-z][a-z0-9_]*`) has exactly one of `measure` (`table.column`, aggregated +by `agg`: `sum`, `average`, `min`, `max`, `median`, `count`, `count_distinct`, or else by +the column's own `measure`), `count` (a table: its rows), `ratio` (`{numerator, denominator}`, +two metric names) or `expression` (metric names, numbers, `+ - * /`, parentheses), and may +have `label`, `description`, `ai_context`, `format` (`number`, `currency`, `percent`: a fraction, 0.6 shows as 60%, never `* 100`), and, +with `measure` or `count`, `time` (a date or timestamp column) and `where`. `where` maps +`table.column` to a value (equals), a list (one of) or operators `eq`, `ne`, `in`, +`not_in`, `gt`, `gte`, `lt`, `lte`, `between: [a, b]`, `is_null: true`; `any: [...]` and +`all: [...]` combine filters. A null fails every condition but `is_null: true`. A filter +column is on the metric's table or reached through `references` child to parent along +exactly one path. Order operators only on numbers, dates and timestamps. Every `measure` +column also yields a metric `
_` and a fact `
_count`, unless +`infer: false`; a metric of the same name in the file replaces it. `dimensions` maps a +column to `false` (never a dimension), `true`, or `{label, description}`. + next: `model2data guide triage` diff --git a/tests/test_guide.py b/tests/test_guide.py index f3a9d57..f61c6b6 100644 --- a/tests/test_guide.py +++ b/tests/test_guide.py @@ -101,9 +101,14 @@ def test_every_command_a_page_names_exists(topic): @pytest.mark.parametrize("topic", TOPICS) def test_every_option_a_page_names_exists(topic): + commands = list(_commands().values()) + # `metrics` is a group: its subcommands' options count too. + for command in list(commands): + if isinstance(command, click.Group): + commands.extend(command.commands.values()) options = { opt - for command in _commands().values() + for command in commands for param in command.params for opt in [*param.opts, *param.secondary_opts] } | {"--help"} From 34d4e3c1b1aefc95dae827fc26e2dcb0dcab71db Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 17:14:27 +0200 Subject: [PATCH 4/6] Release 1.13.0 Metrics next to the model: metrics spec 0.1.0, `validate` on metrics files, `generate --metrics` (known values, a dbt test per metric, Apache Ossie 0.1.1), `metrics list|export`, and the `model2data.metrics` API. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 +++--- action.yml | 4 ++-- pyproject.toml | 2 +- uv.lock | 2 +- 5 files changed, 59 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a45a194..c72c53e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,58 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.13.0] - 2026-10-06 + +### Added +- **Metrics next to the model.** A second, optional file beside the model, + `.metrics.yml`, says what the model's numbers mean, defined by its own spec, [metrics + spec 0.1.0](model2data/spec/metrics/README.md), with a JSON Schema at + `https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json`. A metric is a + column aggregated (`measure: orders.total_amount`, by `agg` or the column's own `measure`), a + row count (`count: orders`), a ratio of two metrics' totals (`ratio: {numerator, denominator}`), + or arithmetic over metrics (`expression: revenue - refunds`). Simple metrics and row counts take + a `where` filter (a value, a list, or `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`, + `between`, `is_null`, combined with `any` and `all`, with nulls as in SQL) and a `time` column; + a filter may name a column of any table the metric's table reaches through its foreign keys, + many-to-one, along exactly one path. Every `measure` column of the model also yields a metric of + its own (`orders_total_amount`) and every fact a row count (`orders_count`), named as model2data + studio's semantic export names them; `infer: false` turns that off, and a metric of the same + name in the file replaces the inferred one. `format: percent` expects a fraction (0.6 shows as + 60%) and is passed on as a percent format, never multiplied. `dimensions:` offers a column as a dimension, with a + label, or never. **The generator never reads the file**: a model generates the same data with + or without one. +- **`model2data validate` checks metrics files** (`*.metrics.yml`): the schema, then against the + model, `--model`, or else the model beside it with the same stem. It names every unknown table + or column, an aggregation that does not fit its column, an unknown metric in a ratio or + expression, a cycle between metrics, a filter column no path reaches or two paths reach (naming + both), a value that is not a member of its enum or not of its column's type, and a comparison + on an enum, boolean or text column; it warns about a metric with no date to report it by and a + filter that can never match the generated data (a `gt` above a column's `max`). +- **`generate --metrics FILE`** adds, and changes no other file: + `metric_values.json`, each metric's **known value** over the generated data, overall and per + calendar month (counts exact, everything else rounded to 6 decimal places, half to even; the + same seed gives the same bytes); a singular dbt test per metric, + `data-tests/metrics/metric_.sql`, that computes it over the project's staging models and + fails unless it gets that value, so `dbt build` proves the metric logic on the warehouse, with + defects and `--days` too; and `osi/.yml`, the model and its metrics as an Apache Ossie + (Open Semantic Interchange) 0.1.1 semantic model, as tagged `osi-0.1.1-rc1` in apache/ossie (no + final 0.1.1 tag exists yet; 0.2.0 is an unreleased draft). A + metrics file beside the model is not picked up on its own: an unchanged command keeps writing + the same files. +- **`model2data metrics list`** shows every metric, inferred ones included, and **`model2data + metrics export --to ossie`** writes the Ossie file without generating. What Ossie 0.1.1 has no + field for (a metric's label, format and time, an enum's members, a table's role and grain) goes + in `custom_extensions` and is listed at the top of the file. +- **`model2data.metrics`**, the Python API: `load` and `validate` a metrics file, `resolve` it with + its model into one semantic representation (entities, relationships, dimensions, measures and + metrics with their join paths), `known_values` over a run's frames, `to_ossie`, and + `write_metric_tests`. + +### Changed +- The spec's example model, `model2data/spec/examples/coffee_webshop.model2data.yml`, marks + `orders.total_amount` and `order_items.quantity` as measures, for the metrics example beside + it. No example under `examples/` changed, and no output changed for any model. + ## [1.12.0] - 2026-10-06 ### Changed diff --git a/README.md b/README.md index cc08968..1ca5201 100644 --- a/README.md +++ b/README.md @@ -230,14 +230,14 @@ jobs: ``` Inputs: `files` (glob, default `**/*.model2data.yml`), `version` (default: the release the tag -points at, e.g. `1.12.0`; a specifier such as `>=1.10,<2` also works), `python-version` (3.12). +points at, e.g. `1.13.0`; a specifier such as `>=1.10,<2` also works), `python-version` (3.12). **pre-commit** ```yaml repos: - repo: https://github.com/JB-Analytica/model2data - rev: v1.12.0 + rev: v1.13.0 hooks: - id: model2data-validate ``` @@ -251,7 +251,7 @@ model2data: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: ["**/*.model2data.yml"] script: - - pip install model2data==1.12.0 + - pip install model2data==1.13.0 - model2data validate --glob "**/*.model2data.yml" ``` diff --git a/action.yml b/action.yml index 086716a..51ad88f 100644 --- a/action.yml +++ b/action.yml @@ -12,10 +12,10 @@ inputs: default: "**/*.model2data.yml" version: description: >- - The model2data engine version to install: a bare version such as `1.12.0`, or a full + The model2data engine version to install: a bare version such as `1.13.0`, or a full requirement specifier such as `>=1.9,<2`. required: false - default: "1.12.0" + default: "1.13.0" python-version: description: The Python version to run model2data with. required: false diff --git a/pyproject.toml b/pyproject.toml index 56b8fc3..cba92e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "model2data" -version = "1.12.0" +version = "1.13.0" description = "Generate analytics-ready datasets from DBML models" readme = "README_PYPI.md" requires-python = ">=3.10" diff --git a/uv.lock b/uv.lock index af4dadd..62b65b7 100644 --- a/uv.lock +++ b/uv.lock @@ -785,7 +785,7 @@ wheels = [ [[package]] name = "model2data" -version = "1.12.0" +version = "1.13.0" source = { editable = "." } dependencies = [ { name = "dbt-core" }, From 8d6d8877a5cee90e2c4c13efc2fe6485cd1d2673 Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 20:48:24 +0200 Subject: [PATCH 5/6] Rewrite the README and PyPI page as a showcase, reference to docs/ The README now leads with what model2data does today: one line per capability with a link to its page, a before and after of a real run with metrics (model and metrics in; the project, dbt build's summary and metric_values.json out), who it is for, and how it works with the metrics step in the diagram. README_PYPI.md carries the same top half with absolute links and a text diagram. The reference moved to docs/, one page per topic, worded as it was. Two fixes on the way: the coffee_webshop metrics command now passes --rows 200 (the values quoted are for 200 rows), and the rounding line says what metric_values.json says (integer sums, minimums and maximums are exact). examples/ecommerce.metrics.yml gives the e-commerce example revenue, orders, average order value and units sold, and the demo GIF shows them: generate with --metrics, dbt build with the four metric tests passing, the known values. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 9 +- DEVELOPMENT.md | 3 +- LLMS.md | 5 +- README.md | 919 ++++++++++----------------------- README_PYPI.md | 647 ++++++++--------------- assets/demo.gif | Bin 1160995 -> 252424 bytes assets/demo.tape | 53 +- docs/README.md | 24 + docs/agents.md | 26 + docs/ci.md | 47 ++ docs/days.md | 33 ++ docs/dbt-project.md | 113 ++++ docs/defects.md | 35 ++ docs/distributions.md | 62 +++ docs/generating.md | 68 +++ docs/history.md | 12 + docs/metrics.md | 78 +++ docs/model-file.md | 76 +++ docs/time-shapes.md | 60 +++ examples/README.md | 11 + examples/ecommerce.metrics.yml | 33 ++ 21 files changed, 1189 insertions(+), 1125 deletions(-) create mode 100644 docs/README.md create mode 100644 docs/agents.md create mode 100644 docs/ci.md create mode 100644 docs/days.md create mode 100644 docs/dbt-project.md create mode 100644 docs/defects.md create mode 100644 docs/distributions.md create mode 100644 docs/generating.md create mode 100644 docs/history.md create mode 100644 docs/metrics.md create mode 100644 docs/model-file.md create mode 100644 docs/time-shapes.md create mode 100644 examples/ecommerce.metrics.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index c72c53e..1ca2e27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,11 +53,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/). its model into one semantic representation (entities, relationships, dimensions, measures and metrics with their join paths), `known_values` over a run's frames, `to_ossie`, and `write_metric_tests`. +- **`examples/ecommerce.metrics.yml`**: revenue, orders, average order value and units sold for + the e-commerce example, for `--metrics`. ### Changed - The spec's example model, `model2data/spec/examples/coffee_webshop.model2data.yml`, marks `orders.total_amount` and `order_items.quantity` as measures, for the metrics example beside - it. No example under `examples/` changed, and no output changed for any model. + it. No model under `examples/` changed, and no output changed for any model. +- **The README and the PyPI page were rewritten** to show what model2data does today: what you + get, one capability per line with a link; a before and after of a real run with metrics; who + it is for; and how it works, with a new demo GIF. The reference that was in the README moved to + `docs/`, one page per topic (the model file, generating, the dbt project, days, history, time + shapes, distributions, defects, metrics, CI, agents), worded as it was. ## [1.12.0] - 2026-10-06 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 57955a0..420dd65 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -163,7 +163,8 @@ Releases are published to PyPI automatically when a GitHub Release is published 4. The floating major tag (`uses: JB-Analytica/model2data@v1`) must follow the release. `.github/workflows/major-tag.yml` does it on `release: published` for `vX.Y.Z` tags. By hand: `git tag -f v1 v1.10.0 && git push -f origin v1`. Also bump the default `version` input - in `action.yml`, and the versions in the README's CI snippets, to the new release. + in `action.yml`, and the versions in the CI snippets of + `docs/ci.md`, to the new release. 5. Confirm the new version is live: `pip index versions model2data`, or check `https://pypi.org/project/model2data//` (the PyPI JSON API can lag the actual upload by a minute or two — the version page itself is the more immediate check). diff --git a/LLMS.md b/LLMS.md index 2fd1a50..ad7cce3 100644 --- a/LLMS.md +++ b/LLMS.md @@ -236,7 +236,8 @@ generated project), a `TableGroup` its `groups`. for parsing and generate independent per-column FK values, but — same caveat as above — the combination isn't guaranteed to match a real parent row unless separately enforced. - Only DuckDB (default, zero-config) and Postgres (`--adapter postgres`, needs - `pip install "model2data[postgres]"` and connection env vars — see README.md) are supported + `pip install "model2data[postgres]"` and connection env vars — see + [docs/dbt-project.md](docs/dbt-project.md)) are supported targets today. - To show that a project's tests fire (or to teach dbt), generate with `--defects training`, or list defects per table in a `.model2data.yml` (`defects: [{type: nulls, column: x, count: @@ -302,5 +303,5 @@ model2data metrics list -f MODEL [--metrics FILE] every m model2data metrics export -f MODEL [--metrics FILE] --to ossie [-o FILE] without generating ``` -For anything not covered here, see [README.md](README.md) — this file exists to make a schema +For anything not covered here, see [README.md](README.md) and [docs/](docs/README.md) — this file exists to make a schema → demo turnaround fast, not to duplicate the full documentation. diff --git a/README.md b/README.md index 1ca5201..8e72b27 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # model2data [![PyPI](https://img.shields.io/pypi/v/model2data)](https://pypi.org/project/model2data/) +[![PyPI downloads](https://img.shields.io/pypi/dm/model2data)](https://pypi.org/project/model2data/) +[![Python versions](https://img.shields.io/pypi/pyversions/model2data)](https://pypi.org/project/model2data/) [![CI](https://github.com/JB-Analytica/model2data/actions/workflows/ci.yml/badge.svg)](https://github.com/JB-Analytica/model2data/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/JB-Analytica/model2data/branch/main/graph/badge.svg)](https://codecov.io/gh/JB-Analytica/model2data) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) @@ -11,26 +13,16 @@ Built and maintained by [JB Analytica](https://www.jbanalytica.com/) — data pl Give `model2data` a data model — a `.model2data.yml` file, or a [DBML](https://dbml.dbdiagram.io/docs/) schema hand-written or exported from an existing database — and it generates realistic, -relationship-preserving synthetic data -*and* a complete, runnable dbt project around it: seeds, staging models, tests, and a -DuckDB or Postgres profile. No sample data to hunt down, no dbt boilerplate to hand-write, no -production data to risk exposing. +relationship-preserving synthetic data *and* a complete, runnable dbt project around it: seeds, +staging models, tests, and a DuckDB or Postgres profile. Add a metrics file and it also knows +what your revenue comes to, and writes a dbt test that proves it. No sample data to hunt down, +no dbt boilerplate to hand-write, no production data to risk exposing. -Driving model2data from a coding agent? Have it start here; the instructions ship with the -installed version and pick a topic from the current directory: - -```bash -uvx model2data@latest guide -``` - -A working analytics stack — real (synthetic) data, tested dbt models, queryable in -DuckDB — from a schema file, in seconds: - -![model2data generating a project and running it with dbt](https://raw.githubusercontent.com/JB-Analytica/model2data/main/assets/demo.gif) +![model2data generating a project with metrics and running it with dbt](https://raw.githubusercontent.com/JB-Analytica/model2data/main/assets/demo.gif) ```bash pip install model2data -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 # examples/ is in this repository cd dbt_ecommerce && dbt build ``` @@ -41,220 +33,270 @@ cd dbt_ecommerce && dbt build --- -## Why this exists +## What you get + +**Values that look real.** Column names are matched against about 40 common patterns — `email`, +`first_name`, `city`, `phone`, `company`, ... — so a column called `email` gets real-looking +emails, not `Lorem ipsum`. Type a column with any Faker provider (`billing_country state`, +`sku ean13`) to pick its generator outright, and `--locale nl_BE` makes every person and address +come from one country. → [The model file](docs/model-file.md) + +**Foreign keys that resolve.** Tables are generated in dependency order and every foreign key +points at a parent row that exists — onto a primary key or a unique one. Composite primary and +unique keys hold, and a column that repeats a parent's value through a foreign key +(`orders.customer_email`) holds the email of the order's own customer. +→ [The model file](docs/model-file.md) + +**A dbt project that runs.** Seeds, staging models that `ref()` them, `not_null`, `unique`, +`relationships` and `accepted_values` tests, data tests written from the model's own hints, and +a DuckDB (zero-config) or Postgres profile. One `dbt build` loads, builds and tests it, and +`--unit-tests` adds dbt unit test fixtures. → [The generated dbt project](docs/dbt-project.md) + +**The same files, byte for byte.** The same model, `--seed`, `--as-of` and options give the same +files on any machine, any day, with the same model2data version — safe to commit as fixtures, +safe to diff in CI. `--table-seed orders=7` re-rolls one table and leaves every other one +byte-identical. → [The determinism promise](docs/generating.md#the-determinism-promise) + +**Days after the first.** A table marked `incremental` moves on day by day: `--days 7` or +`--next` adds new rows and updates existing ones, an enum with `transitions` moves an order from +`pending` to `shipped`, and each day is written as a batch or a changelog to load incrementally. +→ [Days after the first](docs/days.md) + +**History tables.** `history: true` writes `
_history`, every version of every row with +`valid_from`, `valid_to` and `is_current`: an SCD type 2 source to build snapshots against. +→ [A source that keeps its history](docs/history.md) + +**When things happen.** `--business-hours`, `--growth` and `--seasonality` shape every timestamp +(weekdays and working hours, a trend, a Q4 peak), or one column at a time. `updated_at` never +lands before `created_at`, `after` orders any two columns, and `when` gives `shipped_at` a value +on shipped and delivered orders only. → [When things happen](docs/time-shapes.md) + +**How the data is spread.** `--skew` lets a few customers place most of the orders; `weights`, +`true_rate`, `null_rate` and `distinct` shape a column; `distribution` draws a number from a +normal, lognormal or exponential curve. → [How the data is spread](docs/distributions.md) + +**Defects on purpose.** `--defects training` breaks each standard dbt test once, `messy` puts a +small share of every defect on every table, and a table can list its own: duplicate keys, +orphans, nulls, invalid values, messy text, late-arriving rows. Every run with defects writes +`EXPECTED_FAILURES.md`, so a test that does not fire shows. → [Defects on purpose](docs/defects.md) + +**Metrics with known values** (new in 1.13.0). A metrics file beside the model defines revenue, +orders, average order value. The run writes each metric's value over the generated data to +`metric_values.json`, overall and per month, a dbt test per metric that must reproduce it on the +warehouse, and an [Apache Ossie](https://github.com/apache/ossie) semantic model under `osi/`. +→ [Metrics with known values](docs/metrics.md) + +**Validate in CI.** `model2data validate` checks models and metrics files and prints GitHub +annotations; `uses: JB-Analytica/model2data@v1` fails a pull request that breaks one. A +pre-commit hook and a GitLab CI snippet do the same. → [Validate models in CI](docs/ci.md) + +**Use it from an agent.** `uvx model2data@latest guide` prints instructions written for a coding +agent, shipped with the installed version; [LLMS.md](LLMS.md) takes an LLM from a plain-English +description to a running project. → [Agents and LLMs](docs/agents.md) + +**Or in the browser.** [model2data studio](#model2data-studio--the-same-engine-in-the-browser) +is the same engine with a DBML editor and a live diagram. + +--- + +## Before and after + +In: a model (here the `orders` table of +[`examples/ecommerce.model2data.yml`](examples/ecommerce.model2data.yml)) and, optionally, the +metrics that matter ([`examples/ecommerce.metrics.yml`](examples/ecommerce.metrics.yml)): + +```yaml + orders: + columns: + id: {type: bigint, pk: true, not_null: true} + customer_id: {type: bigint, not_null: true, references: customers.id} + order_date: {type: timestamp, not_null: true} + total_amount: + type: numeric + not_null: true + generate: {min: 10, max: 5000} + status: order_status +``` + +```yaml +metrics: + revenue: + label: Revenue + measure: orders.total_amount + agg: sum + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + format: currency + orders: + count: orders + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + average_order_value: + ratio: {numerator: revenue, denominator: orders} +``` + +```bash +model2data --file examples/ecommerce.model2data.yml --metrics examples/ecommerce.metrics.yml \ + --rows 200 --seed 42 --as-of 2026-01-31 +``` + +Out: a dbt project. + +``` +dbt_ecommerce/ +├── seeds/raw/ customers.csv, orders.csv, order_items.csv, products.csv, +│ product_reviews.csv, __seed_config.yml +├── models/staging/ stg_
.sql + stg_
.yml (with tests), for each table +├── data-tests/metrics/ metric_revenue.sql, metric_orders.sql, +│ metric_average_order_value.sql, metric_units_sold.sql +├── macros/ generate_schema_name.sql, model2data_hint_tests.sql +├── osi/ecommerce.yml the model and its metrics as Apache Ossie 0.1.1 +├── metric_values.json each metric's known value +├── ecommerce.model2data.yml the model, and +├── ecommerce.metrics.yml its metrics, copied as given +├── dbt_project.yml +└── profiles.yml DuckDB +``` + +`dbt build` loads the seeds, builds the staging models and runs every test, the four metric +tests included: + +``` +Finished running 5 seeds, 49 data tests, 5 view models in 0 hours 0 minutes and 0.71 seconds (0.71s). + +Completed successfully + +Done. PASS=59 WARN=0 ERROR=0 SKIP=0 NO-OP=0 REUSED=0 TOTAL=59 +``` + +And `metric_values.json` says what a dashboard on this data must show: + +```json +{ + "model2data-metrics": "0.1.0", + "model": "ecommerce", + "run": { + "seed": 42, + "as_of": "2026-01-31" + }, + "rounding": "counts, and sums, minimums and maximums of integer columns, are exact; every other value is rounded to 6 decimal places, half to even", + "metrics": { + "revenue": { + "kind": "simple", + "label": "Revenue", + "value": 220291.8, + "time": "orders.order_date", + "by_month": { + "2025-01": 3967.88, + "2025-02": 10676.66, + ... + "2026-01": 31879.13 + } + }, + "orders": { "kind": "count", "label": "Orders", "value": 92, ... }, + "average_order_value": { "kind": "ratio", "label": "Average order value", "value": 2394.476087, ... }, + "units_sold": { "kind": "simple", "label": "Units sold", "value": 734, ... } + } +} +``` + +Run it again tomorrow, or on another machine, with the same model2data version, and every one +of those files is the same. + +--- + +## Who it's for Analytics engineers hit the same wall constantly: you need realistic data to build or test a pipeline, but production data is off-limits (privacy, access, scale), and hand-rolling mock CSVs -is tedious and doesn't scale past two tables. `model2data` closes that gap — from a schema -definition to a seeded, tested dbt project you can actually run, with no database or production -access required. - -- **Privacy-safe.** Nothing but a schema definition goes in; nothing but synthetic data comes out. -- **Realistic, not random.** Column names are matched against ~35 common patterns — `email`, - `first_name`, `city`, `phone`, `company`, ... — so a column called `email` gets real-looking - emails, not `Lorem ipsum` text. Type a column with any Faker provider (`billing_country state`, - `sku ean13`) to pick its generator outright when the name is wrong for the data. -- **Relationship-preserving.** Foreign keys resolve to real parent rows; tables are generated in - dependency order. -- **Deterministic, byte for byte.** The same model, `--seed` and `--as-of` (and the same options) - give the same files, byte for byte, on any machine and any day with the same model2data - version — safe to commit fixtures, safe to diff across CI runs. See - [The determinism promise](#the-determinism-promise). -- **Re-rollable one table at a time.** `--table-seed orders=7` regenerates a single table and - leaves every other table byte-identical, so you can keep the four tables that look right. -- **A real dbt project, not just CSVs.** Seeds, staging models that `ref()` them, schema tests, - and a ready-to-use profile — the thing you'd otherwise spend an afternoon scaffolding by hand. - A single `dbt build` loads, transforms, and tests the whole thing. - -## Who is model2data for? - -- **Analytics engineers** — generate realistic datasets and a working dbt project without - waiting on production access. -- **Data engineers** — produce deterministic test data from an existing schema for pipeline and - migration testing. -- **Software & data teams** — prototype integrations and analytics workflows without exposing - production data. -- **Consultants & architects** — spin up realistic environments for demos, workshops, and - architecture validation in minutes, not hours. +is tedious and doesn't scale past two tables. model2data closes that gap. Nothing but a schema +definition goes in; nothing but synthetic data comes out. + +- **A consultant who needs a client demo before source access.** Write the client's model from a + kick-off call, generate a year of their data, and show a working dbt project and dashboard in + the first week, without touching production. +- **An analytics engineer who wants fixtures in CI.** Commit the model, generate with `--seed` + and `--as-of`, and every CI run builds against the same bytes. `--days` gives an incremental + model the next day's batch to process. +- **A trainer who needs data that fails on purpose.** `--defects training` breaks each standard + dbt test once and says which, so a class sees `unique`, `not_null`, `relationships` and + `accepted_values` fail for the right reason. +- **A team defining metrics once.** Write revenue in one metrics file, check every number the + semantic layer or dashboard shows against `metric_values.json`, let `dbt build` prove the SQL, + and hand the definitions on as Apache Ossie. ## How it works ```mermaid flowchart LR - subgraph input [" "] - A["📄 model\n.model2data.yml or DBML"] - end + A["model
.model2data.yml or DBML"] + M["metrics file, optional
.metrics.yml"] subgraph m2d ["model2data"] direction LR - B["Parse\ntables, columns,\nrelationships"] --> C["Generate\nFaker + name-aware\ninference, FK-aware"] - C --> D["Scaffold\nseeds · staging models\ntests · profile"] + B["Read and validate
tables, keys, hints,
metrics"] --> C["Generate
name-aware values,
FK-aware, seeded"] + C --> D["Scaffold
dbt project"] + C --> K["Compute
each metric's
known value"] end subgraph output ["Generated dbt project"] direction TB E["seeds/*.csv"] - F["models/staging/*.sql + *.yml"] - G["profiles.yml\n(DuckDB or Postgres)"] + F["models/staging/
*.sql + *.yml tests"] + G["data-tests/metrics/"] + J["metric_values.json"] + O["osi/ Apache Ossie"] + P["profiles.yml
DuckDB or Postgres"] end A --> B - D --> E - D --> F - D --> G - E & F & G --> H["dbt build"] - H --> I[("Analytics-ready\ndataset")] + M --> B + D --> E & F & P + K --> G & J & O + E & F & G & P --> H["dbt build"] + H --> I[("Tested dataset,
metrics proven")] classDef m2dStyle fill:#0A3866,stroke:#2196F0,color:#F6F8FB classDef outStyle fill:#182333,stroke:#A8C9EE,color:#F6F8FB classDef endStyle fill:#FA9306,stroke:#FA9306,color:#182333 - class B,C,D m2dStyle - class E,F,G outStyle + class B,C,D,K m2dStyle + class E,F,G,J,O,P outStyle class H,I endStyle ``` 1. **Read.** Reads the model — its tables, columns, keys, references and generation hints — from a `.model2data.yml` document, checking it against [the spec](model2data/spec/README.md), or - from DBML, which it converts to the same model first. + from DBML, which it converts to the same model first. A metrics file is checked against + [its spec](model2data/spec/metrics/README.md) and against the model. 2. **Generate.** Produces synthetic values per column — typed generation for known SQL types (int, date, timestamp, ...), then a Faker provider named as the type (`sku ean13`), then name-aware inference for everything else (`email`, `phone`, `city`, ...), foreign keys - resolved against already-generated parent rows. + resolved against already-generated parent rows. The metrics file is never read here: the data + is the same with or without it. 3. **Scaffold.** Writes a complete dbt project around that data: CSV seeds, staging models that `ref()` those seeds, `not_null`/`unique`/`relationships` tests, `accepted_values` tests for - enum-typed columns, singular SQL tests for composite primary/unique keys, table and column - `description:` fields from the model, and a profile for DuckDB (zero-config, file-based) or - Postgres. + enum-typed columns, singular SQL tests for composite primary/unique keys, tests from the + model's hints, table and column `description:` fields from the model, and a profile for + DuckDB (zero-config, file-based) or Postgres. +4. **Compute metrics.** With `--metrics`, computes each metric over the generated data and writes + its known value, a dbt test that checks it, and the Apache Ossie file. --- -## The model file - -A model is one YAML document, `.model2data.yml` — or the same document as JSON. Its -format is [spec 0.4.0](model2data/spec/README.md), with a JSON Schema -([`model.schema.json`](model2data/spec/model.schema.json)) your editor can autocomplete and check -against: - -```yaml -# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/0.2.0/model.schema.json -model2data: 0.2.0 -name: coffee_webshop - -enums: - order_status: [pending, paid, shipped, delivered, cancelled] - -tables: - customers: - description: One row per registered customer account - columns: - id: {type: bigint, pk: true} - email: {type: email, unique: true, not_null: true} - phone: - type: phone_number - generate: {null_rate: 0.4} - - orders: - columns: - id: {type: bigint, pk: true} - customer_id: - type: bigint - not_null: true - references: customers.id - generate: {skew: 0.8} - total_amount: - type: numeric - not_null: true - generate: - min: 10 - max: 5000 - distribution: {kind: lognormal, median: 120, spread: 0.7} - status: - type: order_status - generate: - weights: {delivered: 20, cancelled: 1} - -run: - seed: 1 - as_of: 2026-01-01 -``` - -A column's `type` is an SQL type, an enum of the model, or a generator (`email`, `first_name`, -`ean13`, ...). `generate` holds its hints, each a typed value the schema documents. `run` saves -the generation settings with the model; every CLI option overrides the one it names. The -[reference example](model2data/spec/examples/coffee_webshop.model2data.yml) is a complete model, -and every schema in [`examples/`](examples/) comes as one. - -Check a model without generating anything — every issue is printed with its path in the document: - -```bash -model2data validate examples/ecommerce.model2data.yml -``` - -### DBML is supported input - -`--file` also takes a `.dbml` file, which model2data converts to the same model before generating -(parsed with [pydbml](https://github.com/Vanderhoof/PyDBML)). Hints written as a JSON note on a -column (`[note: '{"min": 1, "max": 5}']`) become its `generate`; any other note is its -description. `convert` writes the model a DBML file converts to, for you to keep: +## Installation ```bash -model2data convert examples/ecommerce.dbml -o ecommerce.model2data.yml +pip install model2data # DuckDB included +pip install "model2data[postgres]" # to target Postgres with --adapter postgres +uvx model2data --help # or run it without installing ``` -The spec's [From 0.1](model2data/spec/README.md#from-01) section lists how each DBML feature -converts. A few newer or rarer DBML features — `check` constraints, `Records`, `TablePartial`, -unquoted non-ASCII names — can't be read yet, and are refused with the line and what to change. +Python 3.10 to 3.14. The examples used on this page are in [`examples/`](examples/). --- -## Validate models in CI - -Teams that keep `*.model2data.yml` models in git can fail a pull request that breaks one. -`model2data validate` takes several files and `--glob` patterns, prefixes each issue with its -file, exits 1 if any model has an error, and with `--format github` prints annotations that show -inline on the pull request's Files tab. `--require-files` fails when nothing matched. - -**GitHub Actions** - -```yaml -name: model2data -on: - pull_request: - paths: ["**/*.model2data.yml"] -jobs: - validate: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - uses: JB-Analytica/model2data@v1 -``` - -Inputs: `files` (glob, default `**/*.model2data.yml`), `version` (default: the release the tag -points at, e.g. `1.13.0`; a specifier such as `>=1.10,<2` also works), `python-version` (3.12). - -**pre-commit** - -```yaml -repos: - - repo: https://github.com/JB-Analytica/model2data - rev: v1.13.0 - hooks: - - id: model2data-validate -``` - -**GitLab CI** - -```yaml -model2data: - image: python:3.12-slim - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - changes: ["**/*.model2data.yml"] - script: - - pip install model2data==1.13.0 - - model2data validate --glob "**/*.model2data.yml" -``` - ## model2data studio — the same engine, in the browser [**model2data studio**](https://studio.jbanalytica.com) puts everything on this page behind a @@ -279,474 +321,39 @@ model gets designed and shown. --- -## Installation - -```bash -pip install model2data -``` - ---- - -## Quick start - -We bundle several example schemas in `examples/` — this walkthrough uses the e-commerce one -(`examples/ecommerce.model2data.yml`: customers, products, orders, order items, and reviews). - -Generate a project with synthetic data: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 -``` - -This creates a `dbt_ecommerce/` folder with your data and dbt setup. - -Real schemas are rarely uniform. `--rows-for` sizes individual tables, so a handful of customers -can sit behind a large orders table the way they would in the warehouse you're modelling: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 \ - --rows-for customers=50 --rows-for order_items=5000 -``` - -`--seed` reproduces a run's numbers, but dates and timestamps are generated relative to the -current date, so the same seed drifts once the day turns over. `--as-of` pins the date they're -anchored on, and the whole dataset reproduces on any later day — which is what makes a generated -fixture safe to commit: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --as-of 2026-01-31 -``` - -### The determinism promise - -The same model, seed and `--as-of` — with the same options (`--rows`, `--rows-for`, -`--table-seed`, `--locale`, `--defects`, `--days`, …) — produce the same files, byte for byte: - -- on any machine and operating system, and on every supported Python version; -- with any Faker or pandas version model2data accepts; -- with the same model2data version, whenever you run it. - -A new release may change what a seed produces, to fix a bug or make the data more realistic. -When it does, the changelog says which models are affected and why. Pin the version -(`model2data==1.11.0`) when fixtures must stay the same across upgrades. - -`tests/test_determinism.py` holds the file hashes of a spread of models, presets, multi-day runs -and locales, and runs on every pull request — against the newest Faker and pandas too — so a -change to a single output byte fails the build unless it is deliberate and in the changelog. - -If one table comes out wrong and the rest looks right, `--table-seed` re-rolls just that table. -Every other table's seed CSV stays byte-identical, and children of the re-rolled table still -reference rows that exist, so there's nothing to re-check but the table you asked to change: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --table-seed orders=7 -``` - -`--locale` picks the country every generated person and address comes from (`en_US` by default); -it's a per-run setting, so a table can't end up holding one Belgian and one American address. A -`country` column that sits beside a `city`/`street`/`state`/`postcode` column always agrees with -that place; a `country` column with none of those beside it isn't describing anyone's address, so -it reads as an international mix instead, with the locale's own country the most common: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --locale nl_BE -``` - -### Generate the next days - -A table with `incremental` in the model moves on day by day: each day adds `new_per_day` rows -(their dates and timestamps falling on that day) and updates `update_rate` of the rows it already -holds, and an enum column with `transitions` moves from a state to one of the states allowed to -follow it. See `examples/ecommerce_daily.model2data.yml` and "Days after the first" in the -[spec](model2data/spec/README.md). - -```bash -model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --days 7 -model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --next -``` - -`--days N` generates day 0, the run you would get without it, and N days after it (`--next` is -`--days 1`). The dbt seeds hold the state after the last day. `--days-format` picks what else is -written beside the project, outside `seeds/` so dbt does not load it: `batches` (the default), -`days/
/day_000.csv` whole and then one file per day with the rows inserted and updated that -day; `changelog`, `changelog/
.csv` with a `_day` and an `_op` (`insert` or `update`) column -on every row; or `final`, nothing more. A day depends only on the seed, `--as-of`, the day and the -model, so day *n* never changes when you generate more days or add an unrelated table. From Python: - -```python -from model2data.generate.days import generate_days -from model2data.model import load - -days = generate_days(load("examples/ecommerce_daily.model2data.yml"), 7, seed=42) -days[3].tables["orders"].inserted # rows day 3 added -days[3].tables["orders"].updated # rows day 3 changed, with their new values -days[3].tables["orders"].state # the table after day 3 -``` - -### Shape when things happen - -By default, every date and timestamp is drawn uniformly across its window. `--business-hours`, -`--growth`, and `--seasonality` shape that instead — weekdays and working hours, a trend across -the window, and an annual cycle peaking in Q4: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 \ - --business-hours --growth 0.5 --seasonality 0.3 -``` - -Within a row, created/updated/deleted-style columns are ordered automatically — `updated_at` never -lands before its own `created_at` — under any profile, uniform included. A column whose name -doesn't say what it depends on can say so explicitly with an `after` hint: - -```yaml -shipped_at: - type: timestamp - generate: {after: ordered_at} -``` - -A column that only has a value in some states says which with `when` (spec 0.4.0: the model says -`model2data: 0.4.0`): it holds a value on -exactly the rows whose named column holds one of the listed values, and is null on every other -row — no `pending` order with a `shipped_at`, no `cancelled` subscription without a -`cancelled_at`: - -```yaml -shipped_at: - type: timestamp - generate: {after: ordered_at, when: {status: [shipped, delivered]}} -``` - -The named column is another column of the table (an enum, boolean, number or text column; several -named must all match), and the column carrying `when` is nullable. On the matching rows it is -never null, unless it has a `null_rate`, which then counts only those rows. On days after the -first (`--days`), a row that moves into a listed status gets its value that day and a row that -moves out loses it. Every other column comes out exactly as it would without the hint. - -The flags above (or `run.shape` in the model) shape every date and timestamp column the same -way, run-wide. `business_hours`, `growth`, and `seasonality` column hints override that for one -column at a time — the whole point being a run can be uniform everywhere except the one column -that needs shaping, or shaped everywhere except the one column that shouldn't be: - -```yaml -orders: - columns: - id: {type: int, pk: true} - created_at: - type: timestamp - generate: {business_hours: true, growth: 0.4} - refunded_at: - type: timestamp - generate: {growth: 0} -``` - -Here `created_at` gets business hours and growth even on an otherwise-uniform run, while -`refunded_at` stays flat even under `--growth 0.5` — each hint only replaces the fields it names, -so a partial hint like `{growth: 0}` leaves that column's `business_hours`/`seasonality` at -whatever the run-level flags set. - -### Shape how the data is spread - -By default every parent row is equally likely to be picked for a child row, and every column -gets the same generic null rate, value spread, and true/false split. `--skew` changes the first -part: `0.0` is that uniform default, `1.0` means a handful of parents hold most of the children — -"a fifth of the customers place most of the orders": - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --skew 0.8 -``` - -Column hints shape the rest, per column: - -```yaml -orders: - columns: - id: {type: int, pk: true} - customer_id: - type: int - references: customers.id - generate: {skew: 0.9} - status: - type: order_status - generate: - weights: {delivered: 20, cancelled: 2} - is_paid: - type: boolean - generate: {true_rate: 0.9} - discount_code: - type: varchar - generate: {null_rate: 0.8} - shipping_city: - type: varchar - generate: {distinct: 12} -``` - -`skew` on a foreign key overrides `--skew` for just that column. `weights` biases an enum column -toward the values named (unnamed values still appear, at weight 1). `true_rate` is the fraction of -non-null rows a boolean column comes back `true`. `null_rate` replaces the column's default null -fraction outright. `distinct` draws the column's values from a fixed-size pool instead of a fresh -value per row — a `shipping_city` most warehouses only ever see a handful of. - -### Shape a number's distribution - -`min`/`max` alone only ever drew uniformly between them. A `distribution` hint on an integer or -decimal column picks a different shape instead: - -```yaml -total_amount: - type: numeric - generate: - min: 5 - distribution: {kind: lognormal, median: 80, spread: 0.6} -``` - -`normal` takes `mean` (the centre) and `stddev` (the spread); `lognormal` takes `median` (the -typical value) and `spread` (how heavy the tail is — 0.3 is mild, 1.0 is heavy); `exponential` -takes `mean` (the average). Any left unset default to the midpoint of the column's effective -`min`/`max` (or `stddev` = range / 6, `spread` = 0.5). `min`/`max` still clip the result — a -`normal` centred near an edge redraws a bounded number of times before clamping, so it never -loops forever and never crosses the bound. Leaving `distribution` out, or setting it to -`uniform`, is exactly today's behaviour. - -Run dbt to load, transform, and test the data: - -```bash -cd dbt_ecommerce -dbt build -``` - -Staging models `ref()` their seeds, so a single `dbt build` loads the seeds, builds the models, -and runs every generated test in one dependency-ordered pass — no separate `dbt seed`/`dbt run` -needed, even on a brand-new database. (The individual `dbt deps`, `dbt seed`, and `dbt run` -commands still work if you'd rather drive the steps yourself; the generated project declares no -packages, so `dbt deps` is a no-op.) - -Your analytics-ready dataset is now in DuckDB! - -To target Postgres instead, install the extra and pass `--adapter postgres`: - -```bash -pip install "model2data[postgres]" -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --adapter postgres -``` - -Connection details are read from environment variables (`MODEL2DATA_PG_HOST`, `MODEL2DATA_PG_PORT`, `MODEL2DATA_PG_USER`, `MODEL2DATA_PG_PASSWORD`, `MODEL2DATA_PG_DATABASE`), defaulting to `localhost:5432` with a `postgres`/`postgres` user for local development. - -After generation, the CLI prints a short summary — tables and rows generated, relationships found in the model, and any columns that fell back to generic placeholder text because neither their type nor name could be matched. - -Pass `--unit-tests` to also generate deterministic dbt unit test fixtures (`models/staging/ut_stg_
.yml`) from the actually-generated seed rows: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --unit-tests -``` - -This targets dbt-core's native unit testing feature, which works out of the box with the base -install — see [dbt-core versions](#dbt-core-versions) below. - -Your model's hints also write **data tests** for the dbt project, so the model that generates the -fixtures guards the real pipeline too. Every hint that states a constraint becomes a generic test -on the staging model, shipped as a self-contained macro in `macros/model2data_hint_tests.sql` (no -dbt package, so `dbt build` still works offline): - -| In the model | dbt test | Tolerance | -|---|---|---| -| `generate: {min, max}` on a numeric column | `model2data_between` | none | -| `generate: {after: other}` | `model2data_not_before` (where both are not null) | none | -| `generate: {null_rate}` | `model2data_max_null_share`: nulls at most `null_rate` + tolerance | `--test-tolerance`, default 0.1 | -| `generate: {distinct: n}` | `model2data_max_distinct`: at most `n` distinct values | none | -| `generate: {when}` | `model2data_when`: null exactly where the condition does not hold (with `null_rate`, only there; its null share is then tested among the matching rows) | none | -| `grain` on a table | `model2data_unique_combination` | none | -| an enum-typed column | `accepted_values` (always written) | none | - -`true_rate`, `weights`, `skew`, `distribution` and the temporal shape hints (`business_hours`, -`growth`, `seasonality`) describe a statistical shape rather than a constraint a row can break, so -they write no test. `--hint-tests {error,warn,off}` sets these tests' severity (default `warn`: -they describe intent and should not break a first `dbt build` on real data); the structural tests -(`not_null`, `unique`, `relationships`) are unaffected. A model with no such hints generates the -same YAML as before. To call the mapping from Python, `model2data.dbt.hint_tests.hint_tests_for(model)` -returns the tests as data. - -### Break the data on purpose - -A dbt test you have never seen fail is a test you hope works. `--defects` puts deliberate, -counted defects in the generated data, so `dbt build` fails exactly the tests it should — for -teaching dbt, or for proving a project's tests fire: - -```bash -model2data --file examples/ecommerce.model2data.yml --seed 42 --defects training -cd dbt_ecommerce && dbt build # fails unique, not_null, relationships, accepted_values once each -``` - -`training` breaks each kind of standard dbt test once; `messy` puts a small share of every defect -on every table; `clean` (the default) is the data as it always was, byte for byte; `none` also -ignores the defects a model's tables list, for the clean data of a training model. A table can -also list its own defects in the model (spec 0.3.0): - -```yaml -orders: - defects: - - {type: duplicate_keys, count: 3} # fails unique - - {type: orphan_foreign_keys, column: customer_id, share: 0.02} # fails relationships - - {type: nulls, column: order_date, count: 5} # fails not_null -``` - -The types are `duplicate_keys`, `orphan_foreign_keys`, `nulls`, `invalid_values` (fails -`accepted_values`), `messy_text` (whitespace and casing to clean in staging), and, with `--days`, -`late_arriving` (rows an incremental model filtering on `updated_at > max(updated_at)` skips) and -`late_updates` (versions a `strategy: timestamp` snapshot misses) and `overlapping_history` (see -below). Every run with defects writes -`defects_report.json` (each defect, the rows it broke, the tests it breaks) and -`EXPECTED_FAILURES.md` into the project, so a test that does not fire is visible. Defects are applied -after the clean data, from their own random stream: the same seed gives the same bytes, and a -defect on one table moves nothing in another. From Python, `model2data.defects.planned_defects` -says what a run will break, `model2data.output.finish_run` applies it (and builds the histories) -after `generate_days`, and `write_defects_report` / `write_expected_failures` write the two files. - -### A source that keeps its history - -`history: true` in a table's `incremental` (spec 0.3.0) also writes `
_history`: every -version of every row over the generated days, with `valid_from`, `valid_to` (null for the current -version) and `is_current` — an SCD type 2 source to build snapshots and point-in-time joins -against. The project tests it with two package-free tests, one current row per key and no -overlapping versions; the `overlapping_history` defect breaks the second. - -```yaml -orders: - incremental: {new_per_day: 20, update_rate: 0.1, updated_at: updated_at, history: true} -``` - -### Metrics next to the model - -What the numbers mean -- revenue, orders, average order value -- goes in a second, optional file -beside the model, `.metrics.yml`, defined by the [metrics spec 0.1.0](model2data/spec/metrics/README.md) -([schema](model2data/spec/metrics/metrics.schema.json)): +## Validate models in CI ```yaml -# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json -model2data-metrics: 0.1.0 -model: coffee_webshop - -metrics: - revenue: - label: Revenue - measure: orders.total_amount # summed: the column's `measure` is true - where: - orders.status: [paid, shipped, delivered] - time: orders.order_date - format: currency - orders: - measure: orders.id - agg: count_distinct - average_order_value: - ratio: {numerator: revenue, denominator: orders} - coffee_units_sold: - measure: order_items.quantity # dated by orders.order_date, through order_id - where: - orders.status: {ne: cancelled} - products.category: [beans, ground, capsules] - any: - - orders.channel: web - - order_items.quantity: {gte: 3} -``` - -(the whole file, which conforms against the example model, is -[`model2data/spec/examples/coffee_webshop.metrics.yml`](model2data/spec/examples/coffee_webshop.metrics.yml)). -A metric is a column aggregated (`measure`, with `agg` or the column's own `measure`), a row count -(`count`), a `ratio` of two metrics' totals, or arithmetic over metrics (`expression`). A filter -can reach any table the metric's table reaches through its foreign keys, many-to-one, along exactly -one path; nulls behave as in SQL. Every `measure` column of the model also yields a metric on its -own (`orders_total_amount`), and a fact a row count (`orders_count`); `infer: false` turns that -off. `format` changes no value: `percent` expects a fraction (0.6 shows as 60%), so a share is -`web_revenue / revenue`, never `* 100`. The generator never reads the file: the data is the same -with or without it. - -```bash -model2data validate coffee_webshop.metrics.yml # against coffee_webshop.model2data.yml beside it -model2data --file coffee_webshop.model2data.yml --metrics coffee_webshop.metrics.yml --seed 42 --as-of 2026-01-31 -cd dbt_coffee_webshop && dbt build # one test per metric, each checking its known value -``` - -With `--metrics`, the run also writes, and changes nothing else: - -- **`metric_values.json`** -- each metric's **known value** over the generated data, overall and - per calendar month of its time column: with the command above, revenue is 28344.22, orders 200, - average order value 141.7211. A run knows its data, so it knows its numbers; a semantic layer or - dashboard built on the data can be checked against them. Counts are exact; everything else is - rounded to 6 decimal places, half to even. Same seed, same bytes. -- **`data-tests/metrics/metric_.sql`** -- a singular dbt test per metric that computes it - over the project's staging models and fails unless it gets the known value (within - `0.000001 + 0.000000001 × |value|`), so `dbt build` proves the metric logic on the warehouse. -- **`osi/.yml`** -- the model and its metrics as an [Apache Ossie](https://github.com/apache/ossie) - (Open Semantic Interchange) 0.1.1 semantic model: tables as datasets over the staging models - (`staging.stg_
`), foreign keys as relationships, date columns as time dimensions, metrics - as ANSI SQL expressions. What Ossie 0.1.1 has no field for (a metric's label, format and time, - enum members) is carried in `custom_extensions` and listed at the top of the file. - -`model2data metrics list -f MODEL [--metrics FILE]` shows every metric, and `model2data metrics -export -f MODEL [--metrics FILE] --to ossie [-o FILE]` writes the Ossie file without generating. -Without `--metrics`, both use the model's inferred metrics. A sibling metrics file is not picked up -by `generate` on its own: a file appearing beside a model must not change what an unchanged -command writes. From Python, `model2data.metrics` loads and checks a file (`load`, `validate`), -resolves it with the model into one semantic representation (`resolve`), and computes -(`known_values`) and exports (`to_ossie`) from it. - ---- - -## Generated dbt project structure - -The generated dbt project includes: - -``` -dbt_{project_name}/ -├── seeds/ -│ └── raw/ -│ ├── __seed_config.yml # seed descriptions + column-type overrides -│ ├── table1.csv -│ └── table2.csv -├── models/ -│ └── staging/ -│ ├── stg_table1.sql -│ ├── stg_table1.yml -│ ├── ut_stg_table1.yml # only with --unit-tests -│ └── ... -├── data-tests/ -│ ├── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys -│ └── metrics/metric_revenue.sql # only with --metrics: one per metric -├── osi/{project_name}.yml # only with --metrics: Apache Ossie 0.1.1 -├── metric_values.json # only with --metrics: each metric's known value -├── macros/ -│ ├── generate_schema_name.sql -│ └── model2data_hint_tests.sql # only when the model's hints write tests -├── dbt_project.yml -├── profiles.yml # DuckDB or Postgres config, depending on --adapter -└── {project_name}_profile.duckdb # DuckDB adapter only +name: model2data +on: + pull_request: + paths: ["**/*.model2data.yml"] +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: JB-Analytica/model2data@v1 ``` -- **Seeds**: CSV files with generated synthetic data, plus `__seed_config.yml` — each seed's - `description:` (the table's `description` in the model) and the column-type overrides that keep - all-digit text columns (barcodes, zero-padded postcodes, ...) from being loaded as integers. -- **Staging Models**: Basic dbt models that `ref()` their seed. Using `ref()` rather than - declaring the seeds as dbt `sources` is what gives each model a real DAG edge to the seed - behind it, so one `dbt build` orders seeds before models on a fresh database. -- **Tests**: A YAML per staging model with column tests (`not_null`, `unique`, `relationships`, - and `accepted_values` for enum-typed columns), plus the hint tests above. A column's `description` in the model becomes - its `description:` field. -- **Composite key tests**: Composite primary/unique keys (`keys`, or several `pk: true` columns) get - a singular SQL test under `data-tests/`, dbt's configured `test-paths`. -- **Profiles**: Pre-configured for DuckDB (file-based) or Postgres (via env vars), with schema handling. -- **Unit tests** (opt-in via `--unit-tests`): `models/staging/ut_stg_
.yml` fixtures built - from real generated rows, co-located with each staging model so dbt (which only parses unit - tests from `model-paths`) picks them up. +Issues show inline on the pull request's Files tab. The inputs, a pre-commit hook and GitLab CI +are in [Validate models in CI](docs/ci.md). --- -## Using model2data with an LLM +## Documentation -If you want to go from a plain-English description of a data model straight to a running, -demo-ready dbt project, [LLMS.md](LLMS.md) is written for an LLM/agent to read: it covers the -DBML feature set model2data understands (enums, notes, defaults, composite keys, both -relationship syntaxes, self-references), which it converts to a spec 0.2.0 model and the exact command sequence to run. Point an -LLM-backed coding assistant at it and describe your data model — it can author the DBML and run -model2data for you. +- [The model file](docs/model-file.md) — `.model2data.yml`, DBML as input, `validate`, `convert` +- [Generating a project](docs/generating.md) — row counts, `--as-of`, the determinism promise, `--table-seed`, `--locale` +- [The generated dbt project](docs/dbt-project.md) — `dbt build`, Postgres, unit tests, hint tests, structure +- [Days after the first](docs/days.md) and [history tables](docs/history.md) +- [When things happen](docs/time-shapes.md) and [how the data is spread](docs/distributions.md) +- [Defects on purpose](docs/defects.md) +- [Metrics with known values](docs/metrics.md) +- [Validate models in CI](docs/ci.md) +- [Agents and LLMs](docs/agents.md), and [LLMS.md](LLMS.md) +- The [model spec](model2data/spec/README.md) and the [metrics spec](model2data/spec/metrics/README.md) +- [Examples](examples/README.md) and the [changelog](CHANGELOG.md) --- @@ -767,6 +374,7 @@ If you're pinned to an older dbt-core, use model2data 0.5.x, which supported dow - **DuckDB Default**: Chosen for its zero-config, file-based nature, making it easy to get started without database setup. Postgres is supported via `--adapter postgres`; other adapters can be configured manually. - **dbt Integration**: Leverages dbt's transformation capabilities for a familiar workflow in analytics engineering. - **Synthetic Data**: Uses deterministic generation for reproducibility; not intended for production use or as a replacement for real data. +- **Metrics describe, never steer**: The generator never reads the metrics file, so adding or changing a metric changes no generated data, only the known values and tests computed from it. - **Non-goals**: This is not a data migration tool, ETL pipeline, or real-time data generator. It focuses on static, synthetic datasets for testing and prototyping. --- @@ -783,18 +391,17 @@ If you're pinned to an older dbt-core, use model2data 0.5.x, which supported dow ## Project status -As of `1.0.0`, model2data is stable and feature-complete for its intended use case: turning a -data model into realistic synthetic data and a runnable dbt project, reliably. It is actively -maintained — CI runs a real `dbt build` against both the oldest supported dbt-core and the newest -release on every push, so compatibility is proven rather than assumed. New capabilities are not -the focus; correctness, dbt-core compatibility and community contributions are. +model2data is stable and actively developed. Releases follow semantic versioning: new +capabilities arrive in minor releases (since 1.0: days after the first, time shapes, +distributions, defects, history tables, CI validation, the agent guide and, in 1.13.0, metrics +with known values and Apache Ossie export). CI runs a real `dbt build` against both the oldest supported dbt-core and the newest +release on every push, and checks the output of a spread of models byte for byte. The +[changelog](CHANGELOG.md) says what each release changed, including any change to what a seed +produces. -Ideas that came up during development but were deliberately left out of scope, in case anyone -wants to pick them up as a contribution: +Ideas still open, in case anyone wants to pick them up as a contribution: - Additional database adapters (e.g. Snowflake, BigQuery). -- A rule-based semantic layer scaffold (`semantic_models.yml`/basic metrics) derived from the - parsed schema shape. - Example mart-layer models on top of staging (the generated `dbt_project.yml` carries a ready-to-uncomment `marts` schema/materialization config for this). diff --git a/README_PYPI.md b/README_PYPI.md index da4dcf2..9304bf2 100644 --- a/README_PYPI.md +++ b/README_PYPI.md @@ -1,22 +1,28 @@ # model2data [![PyPI](https://img.shields.io/pypi/v/model2data)](https://pypi.org/project/model2data/) +[![PyPI downloads](https://img.shields.io/pypi/dm/model2data)](https://pypi.org/project/model2data/) +[![Python versions](https://img.shields.io/pypi/pyversions/model2data)](https://pypi.org/project/model2data/) [![CI](https://github.com/JB-Analytica/model2data/actions/workflows/ci.yml/badge.svg)](https://github.com/JB-Analytica/model2data/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/JB-Analytica/model2data/branch/main/graph/badge.svg)](https://codecov.io/gh/JB-Analytica/model2data) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/JB-Analytica/model2data/blob/main/LICENSE) +Built and maintained by [JB Analytica](https://www.jbanalytica.com/) — data platform architecture and analytics engineering. + **Turn a data model into a running analytics stack in one command.** Give `model2data` a data model — a `.model2data.yml` file, or a [DBML](https://dbml.dbdiagram.io/docs/) schema hand-written or exported from an existing database — and it generates realistic, -relationship-preserving synthetic data -*and* a complete, runnable dbt project around it: seeds, staging models, tests, and a -DuckDB or Postgres profile. No sample data to hunt down, no dbt boilerplate to hand-write, no -production data to risk exposing. +relationship-preserving synthetic data *and* a complete, runnable dbt project around it: seeds, +staging models, tests, and a DuckDB or Postgres profile. Add a metrics file and it also knows +what your revenue comes to, and writes a dbt test that proves it. No sample data to hunt down, +no dbt boilerplate to hand-write, no production data to risk exposing. + +![model2data generating a project with metrics and running it with dbt](https://raw.githubusercontent.com/JB-Analytica/model2data/main/assets/demo.gif) ```bash pip install model2data -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 # examples/ is in the GitHub repository cd dbt_ecommerce && dbt build ``` @@ -25,411 +31,239 @@ cd dbt_ecommerce && dbt build > column will generate before you generate it, then export CSVs or a runnable dbt project. > Nothing to install, free to start. -That's a working analytics stack — real (synthetic) data, tested dbt models, queryable in -DuckDB — from a schema file, in seconds: - -![model2data generating a project and running it with dbt](https://raw.githubusercontent.com/JB-Analytica/model2data/main/assets/demo.gif) - --- -## Why this exists - -Analytics engineers hit the same wall constantly: you need realistic data to build or test a -pipeline, but production data is off-limits (privacy, access, scale), and hand-rolling mock CSVs -is tedious and doesn't scale past two tables. `model2data` closes that gap — from a schema -definition to a seeded, tested dbt project you can actually run, with no database or production -access required. - -- **Privacy-safe.** Nothing but a schema definition goes in; nothing but synthetic data comes out. -- **Realistic, not random.** Column names are matched against ~35 common patterns — `email`, - `first_name`, `city`, `phone`, `company`, ... — so a column called `email` gets real-looking - emails, not `Lorem ipsum` text. -- **Relationship-preserving.** Foreign keys resolve to real parent rows; tables are generated in - dependency order. -- **Deterministic.** Pass `--seed` and the same schema always produces the same data — safe to - commit fixtures, safe to diff across CI runs. Add `--as-of` to pin the date the data is anchored - on, and the run reproduces on any later day rather than only on the day it first ran. -- **Re-rollable one table at a time.** `--table-seed orders=7` regenerates a single table and - leaves every other table byte-identical, so you can keep the four tables that look right. -- **A real dbt project, not just CSVs.** Seeds, staging models that `ref()` them, schema tests, - and a ready-to-use profile — the thing you'd otherwise spend an afternoon scaffolding by hand. - A single `dbt build` loads, transforms, and tests the whole thing. - -## Who is model2data for? - -- **Analytics engineers** — generate realistic datasets and a working dbt project without - waiting on production access. -- **Data engineers** — produce deterministic test data from an existing schema for pipeline and - migration testing. -- **Software & data teams** — prototype integrations and analytics workflows without exposing - production data. -- **Consultants & architects** — spin up realistic environments for demos, workshops, and - architecture validation in minutes, not hours. - -## How it works - -1. **Read.** Reads the model — its tables, columns, keys, references and generation hints — from - a `.model2data.yml` document, checking it against [the spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/README.md), or - from DBML, which it converts to the same model first. -2. **Generate.** Produces synthetic values per column — typed generation for known SQL types - (int, date, timestamp, ...), name-aware inference for everything else (`email`, `phone`, - `city`, ...), foreign keys resolved against already-generated parent rows. -3. **Scaffold.** Writes a complete dbt project around that data: CSV seeds, staging models that - `ref()` those seeds, `not_null`/`unique`/`relationships` tests, `accepted_values` tests for - enum-typed columns, singular SQL tests for composite primary/unique keys, table and column - `description:` fields from the model, and a profile for DuckDB (zero-config, file-based) or - Postgres. +## What you get + +**Values that look real.** Column names are matched against about 40 common patterns — `email`, +`first_name`, `city`, `phone`, `company`, ... — so a column called `email` gets real-looking +emails, not `Lorem ipsum`. Type a column with any Faker provider (`billing_country state`, +`sku ean13`) to pick its generator outright, and `--locale nl_BE` makes every person and address +come from one country. → [The model file](https://github.com/JB-Analytica/model2data/blob/main/docs/model-file.md) + +**Foreign keys that resolve.** Tables are generated in dependency order and every foreign key +points at a parent row that exists — onto a primary key or a unique one. Composite primary and +unique keys hold, and a column that repeats a parent's value through a foreign key +(`orders.customer_email`) holds the email of the order's own customer. +→ [The model file](https://github.com/JB-Analytica/model2data/blob/main/docs/model-file.md) + +**A dbt project that runs.** Seeds, staging models that `ref()` them, `not_null`, `unique`, +`relationships` and `accepted_values` tests, data tests written from the model's own hints, and +a DuckDB (zero-config) or Postgres profile. One `dbt build` loads, builds and tests it, and +`--unit-tests` adds dbt unit test fixtures. → [The generated dbt project](https://github.com/JB-Analytica/model2data/blob/main/docs/dbt-project.md) + +**The same files, byte for byte.** The same model, `--seed`, `--as-of` and options give the same +files on any machine, any day, with the same model2data version — safe to commit as fixtures, +safe to diff in CI. `--table-seed orders=7` re-rolls one table and leaves every other one +byte-identical. → [The determinism promise](https://github.com/JB-Analytica/model2data/blob/main/docs/generating.md#the-determinism-promise) + +**Days after the first.** A table marked `incremental` moves on day by day: `--days 7` or +`--next` adds new rows and updates existing ones, an enum with `transitions` moves an order from +`pending` to `shipped`, and each day is written as a batch or a changelog to load incrementally. +→ [Days after the first](https://github.com/JB-Analytica/model2data/blob/main/docs/days.md) + +**History tables.** `history: true` writes `
_history`, every version of every row with +`valid_from`, `valid_to` and `is_current`: an SCD type 2 source to build snapshots against. +→ [A source that keeps its history](https://github.com/JB-Analytica/model2data/blob/main/docs/history.md) + +**When things happen.** `--business-hours`, `--growth` and `--seasonality` shape every timestamp +(weekdays and working hours, a trend, a Q4 peak), or one column at a time. `updated_at` never +lands before `created_at`, `after` orders any two columns, and `when` gives `shipped_at` a value +on shipped and delivered orders only. → [When things happen](https://github.com/JB-Analytica/model2data/blob/main/docs/time-shapes.md) + +**How the data is spread.** `--skew` lets a few customers place most of the orders; `weights`, +`true_rate`, `null_rate` and `distinct` shape a column; `distribution` draws a number from a +normal, lognormal or exponential curve. → [How the data is spread](https://github.com/JB-Analytica/model2data/blob/main/docs/distributions.md) + +**Defects on purpose.** `--defects training` breaks each standard dbt test once, `messy` puts a +small share of every defect on every table, and a table can list its own: duplicate keys, +orphans, nulls, invalid values, messy text, late-arriving rows. Every run with defects writes +`EXPECTED_FAILURES.md`, so a test that does not fire shows. → [Defects on purpose](https://github.com/JB-Analytica/model2data/blob/main/docs/defects.md) + +**Metrics with known values** (new in 1.13.0). A metrics file beside the model defines revenue, +orders, average order value. The run writes each metric's value over the generated data to +`metric_values.json`, overall and per month, a dbt test per metric that must reproduce it on the +warehouse, and an [Apache Ossie](https://github.com/apache/ossie) semantic model under `osi/`. +→ [Metrics with known values](https://github.com/JB-Analytica/model2data/blob/main/docs/metrics.md) + +**Validate in CI.** `model2data validate` checks models and metrics files and prints GitHub +annotations; `uses: JB-Analytica/model2data@v1` fails a pull request that breaks one. A +pre-commit hook and a GitLab CI snippet do the same. → [Validate models in CI](https://github.com/JB-Analytica/model2data/blob/main/docs/ci.md) + +**Use it from an agent.** `uvx model2data@latest guide` prints instructions written for a coding +agent, shipped with the installed version; [LLMS.md](https://github.com/JB-Analytica/model2data/blob/main/LLMS.md) takes an LLM from a plain-English +description to a running project. → [Agents and LLMs](https://github.com/JB-Analytica/model2data/blob/main/docs/agents.md) + +**Or in the browser.** [model2data studio](https://studio.jbanalytica.com) +is the same engine with a DBML editor and a live diagram. --- -## The model file +## Before and after -A model is one YAML document, `.model2data.yml` — or the same document as JSON. Its format -is [spec 0.4.0](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/README.md), with a JSON Schema your editor can autocomplete and -check against: +In: a model (here the `orders` table of +[`examples/ecommerce.model2data.yml`](https://github.com/JB-Analytica/model2data/blob/main/examples/ecommerce.model2data.yml)) and, optionally, the +metrics that matter ([`examples/ecommerce.metrics.yml`](https://github.com/JB-Analytica/model2data/blob/main/examples/ecommerce.metrics.yml)): ```yaml -# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/0.2.0/model.schema.json -model2data: 0.2.0 -name: coffee_webshop - -enums: - order_status: [pending, paid, shipped, delivered, cancelled] - -tables: - customers: - columns: - id: {type: bigint, pk: true} - email: {type: email, unique: true, not_null: true} - orders: columns: - id: {type: bigint, pk: true} - customer_id: - type: bigint - not_null: true - references: customers.id - generate: {skew: 0.8} + id: {type: bigint, pk: true, not_null: true} + customer_id: {type: bigint, not_null: true, references: customers.id} + order_date: {type: timestamp, not_null: true} total_amount: type: numeric - generate: - min: 10 - max: 5000 - distribution: {kind: lognormal, median: 120, spread: 0.7} - status: - type: order_status - generate: - weights: {delivered: 20, cancelled: 1} - -run: - seed: 1 - as_of: 2026-01-01 -``` - -`generate` holds a column's hints; `run` saves the generation settings with the model, and every -CLI option overrides the one it names. `model2data validate FILE` checks a model and prints every -issue with its path in the document. - -**Validate models in CI.** `model2data validate a.model2data.yml b.model2data.yml` (or -`--glob "**/*.model2data.yml"`, `--format github` for inline pull request annotations) exits 1 -when any model has an error. A GitHub Action (`uses: JB-Analytica/model2data@v1`), a pre-commit -hook (`model2data-validate`) and a GitLab CI snippet are in the -[README](https://github.com/JB-Analytica/model2data#validate-models-in-ci). - -**DBML is supported input.** `--file` also takes a `.dbml` file, converted to the same model -before generating; a JSON note on a column (`[note: '{"min": 1}']`) becomes its `generate`, any -other note its description. `model2data convert schema.dbml -o schema.model2data.yml` writes the -model a DBML file converts to. - ---- - -## model2data studio — the same engine, in the browser - -[**model2data studio**](https://studio.jbanalytica.com) puts everything on this page behind a -web UI. It is built by JB Analytica on top of this library, it's the fastest way to try -model2data, and it's the better fit while a schema is still being designed: - -- **Type DBML, see the diagram.** Syntax highlighting, autocomplete and live error checking; the - entity diagram redraws as you type. Click a column to trace what actually joins to it. -- **See what you'll get before you generate.** Every column shows an example of the value it will - produce, and columns nothing recognises are marked — so placeholder data is visible rather than - silent. -- **Generate and export.** Per-table row counts, then CSVs or a complete dbt project: the same - seeds, staging models, tests and DuckDB profile this CLI produces, reproducing the exact rows - you previewed. -- **Share the model.** A share link that also embeds as a chrome-free diagram in a Notion, - Confluence or wiki page. - -Free to start, nothing to install: [studio.jbanalytica.com](https://studio.jbanalytica.com). -The CLI stays the right tool for scripting, CI and fixtures you commit; the studio is where a -model gets designed and shown. - ---- - -## Installation - -```bash -pip install model2data + not_null: true + generate: {min: 10, max: 5000} + status: order_status ``` ---- - -## Quick start - -We bundle several example schemas in `examples/` — this walkthrough uses the e-commerce one -(`examples/ecommerce.model2data.yml`: customers, products, orders, order items, and reviews). - -Generate a project with synthetic data: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 +```yaml +metrics: + revenue: + label: Revenue + measure: orders.total_amount + agg: sum + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + format: currency + orders: + count: orders + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + average_order_value: + ratio: {numerator: revenue, denominator: orders} ``` -This creates a `dbt_ecommerce/` folder with your data and dbt setup. - -`--seed` reproduces a run's numbers, but dates and timestamps are generated relative to the -current date, so the same seed drifts once the day turns over. `--as-of` pins the date they're -anchored on, and the whole dataset reproduces on any later day — which is what makes a generated -fixture safe to commit. If one table comes out wrong and the rest looks right, `--table-seed` -re-rolls just that table, leaving every other table's seed CSV byte-identical. `--locale` picks -the country every generated person and address comes from: - ```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 \ - --as-of 2026-01-31 --table-seed orders=7 --locale nl_BE +model2data --file examples/ecommerce.model2data.yml --metrics examples/ecommerce.metrics.yml \ + --rows 200 --seed 42 --as-of 2026-01-31 ``` -Run dbt to load, transform, and test the data: +Out: a dbt project. -```bash -cd dbt_ecommerce -dbt build ``` - -Staging models `ref()` their seeds, so a single `dbt build` loads the seeds, builds the models, -and runs every generated test in one dependency-ordered pass — no separate `dbt seed`/`dbt run` -needed, even on a brand-new database. (The individual `dbt deps`, `dbt seed`, and `dbt run` -commands still work if you'd rather drive the steps yourself; the generated project declares no -packages, so `dbt deps` is a no-op.) - -Your analytics-ready dataset is now in DuckDB! - -To target Postgres instead, install the extra and pass `--adapter postgres`: - -```bash -pip install "model2data[postgres]" -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --adapter postgres +dbt_ecommerce/ +├── seeds/raw/ customers.csv, orders.csv, order_items.csv, products.csv, +│ product_reviews.csv, __seed_config.yml +├── models/staging/ stg_
.sql + stg_
.yml (with tests), for each table +├── data-tests/metrics/ metric_revenue.sql, metric_orders.sql, +│ metric_average_order_value.sql, metric_units_sold.sql +├── macros/ generate_schema_name.sql, model2data_hint_tests.sql +├── osi/ecommerce.yml the model and its metrics as Apache Ossie 0.1.1 +├── metric_values.json each metric's known value +├── ecommerce.model2data.yml the model, and +├── ecommerce.metrics.yml its metrics, copied as given +├── dbt_project.yml +└── profiles.yml DuckDB ``` -Connection details are read from environment variables (`MODEL2DATA_PG_HOST`, `MODEL2DATA_PG_PORT`, `MODEL2DATA_PG_USER`, `MODEL2DATA_PG_PASSWORD`, `MODEL2DATA_PG_DATABASE`), defaulting to `localhost:5432` with a `postgres`/`postgres` user for local development. - -After generation, the CLI prints a short summary — tables and rows generated, relationships found in the model, and any columns that fell back to generic placeholder text because neither their type nor name could be matched. +`dbt build` loads the seeds, builds the staging models and runs every test, the four metric +tests included: -Pass `--unit-tests` to also generate deterministic dbt unit test fixtures (`models/staging/ut_stg_
.yml`) from the actually-generated seed rows: - -```bash -model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --unit-tests ``` +Finished running 5 seeds, 49 data tests, 5 view models in 0 hours 0 minutes and 0.71 seconds (0.71s). -This targets dbt-core's native unit testing feature, which works out of the box with the base -install — see [dbt-core versions](#dbt-core-versions) below. - -Your model's hints also write **data tests** for the dbt project, so the model that generates the -fixtures guards the real pipeline too. Every hint that states a constraint becomes a generic test -on the staging model, shipped as a self-contained macro in `macros/model2data_hint_tests.sql` (no -dbt package, so `dbt build` still works offline): - -| In the model | dbt test | Tolerance | -|---|---|---| -| `generate: {min, max}` on a numeric column | `model2data_between` | none | -| `generate: {after: other}` | `model2data_not_before` (where both are not null) | none | -| `generate: {null_rate}` | `model2data_max_null_share`: nulls at most `null_rate` + tolerance | `--test-tolerance`, default 0.1 | -| `generate: {distinct: n}` | `model2data_max_distinct`: at most `n` distinct values | none | -| `generate: {when}` | `model2data_when`: null exactly where the condition does not hold (with `null_rate`, only there; its null share is then tested among the matching rows) | none | -| `grain` on a table | `model2data_unique_combination` | none | -| an enum-typed column | `accepted_values` (always written) | none | - -`true_rate`, `weights`, `skew`, `distribution` and the temporal shape hints (`business_hours`, -`growth`, `seasonality`) describe a statistical shape rather than a constraint a row can break, so -they write no test. `--hint-tests {error,warn,off}` sets these tests' severity (default `warn`: -they describe intent and should not break a first `dbt build` on real data); the structural tests -(`not_null`, `unique`, `relationships`) are unaffected. A model with no such hints generates the -same YAML as before. To call the mapping from Python, `model2data.dbt.hint_tests.hint_tests_for(model)` -returns the tests as data. +Completed successfully ---- - -### Generate the next days - -A table with `incremental` in the model moves on day by day: each day adds `new_per_day` rows -(their dates and timestamps falling on that day) and updates `update_rate` of the rows it already -holds, and an enum column with `transitions` moves from a state to one of the states allowed to -follow it. See `examples/ecommerce_daily.model2data.yml` and "Days after the first" in the -[spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/README.md). - -```bash -model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --days 7 -model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --next +Done. PASS=59 WARN=0 ERROR=0 SKIP=0 NO-OP=0 REUSED=0 TOTAL=59 ``` -`--days N` generates day 0, the run you would get without it, and N days after it (`--next` is -`--days 1`). The dbt seeds hold the state after the last day. `--days-format` picks what else is -written beside the project, outside `seeds/` so dbt does not load it: `batches` (the default), -`days/
/day_000.csv` whole and then one file per day with the rows inserted and updated that -day; `changelog`, `changelog/
.csv` with a `_day` and an `_op` (`insert` or `update`) column -on every row; or `final`, nothing more. A day depends only on the seed, `--as-of`, the day and the -model, so day *n* never changes when you generate more days or add an unrelated table. From Python: - -```python -from model2data.generate.days import generate_days -from model2data.model import load - -days = generate_days(load("examples/ecommerce_daily.model2data.yml"), 7, seed=42) -days[3].tables["orders"].inserted # rows day 3 added -days[3].tables["orders"].updated # rows day 3 changed, with their new values -days[3].tables["orders"].state # the table after day 3 +And `metric_values.json` says what a dashboard on this data must show: + +```json +{ + "model2data-metrics": "0.1.0", + "model": "ecommerce", + "run": { + "seed": 42, + "as_of": "2026-01-31" + }, + "rounding": "counts, and sums, minimums and maximums of integer columns, are exact; every other value is rounded to 6 decimal places, half to even", + "metrics": { + "revenue": { + "kind": "simple", + "label": "Revenue", + "value": 220291.8, + "time": "orders.order_date", + "by_month": { + "2025-01": 3967.88, + "2025-02": 10676.66, + ... + "2026-01": 31879.13 + } + }, + "orders": { "kind": "count", "label": "Orders", "value": 92, ... }, + "average_order_value": { "kind": "ratio", "label": "Average order value", "value": 2394.476087, ... }, + "units_sold": { "kind": "simple", "label": "Units sold", "value": 734, ... } + } +} ``` -### Break the data on purpose +Run it again tomorrow, or on another machine, with the same model2data version, and every one +of those files is the same. -A dbt test you have never seen fail is a test you hope works. `--defects` puts deliberate, -counted defects in the generated data, so `dbt build` fails exactly the tests it should — for -teaching dbt, or for proving a project's tests fire: - -```bash -model2data --file examples/ecommerce.model2data.yml --seed 42 --defects training -cd dbt_ecommerce && dbt build # fails unique, not_null, relationships, accepted_values once each -``` +--- -`training` breaks each kind of standard dbt test once; `messy` puts a small share of every defect -on every table; `clean` (the default) is the data as it always was, byte for byte; `none` also -ignores the defects a model's tables list, for the clean data of a training model. A table can -also list its own defects in the model (spec 0.3.0): +## Who it's for -```yaml -orders: - defects: - - {type: duplicate_keys, count: 3} # fails unique - - {type: orphan_foreign_keys, column: customer_id, share: 0.02} # fails relationships - - {type: nulls, column: order_date, count: 5} # fails not_null -``` +Analytics engineers hit the same wall constantly: you need realistic data to build or test a +pipeline, but production data is off-limits (privacy, access, scale), and hand-rolling mock CSVs +is tedious and doesn't scale past two tables. model2data closes that gap. Nothing but a schema +definition goes in; nothing but synthetic data comes out. + +- **A consultant who needs a client demo before source access.** Write the client's model from a + kick-off call, generate a year of their data, and show a working dbt project and dashboard in + the first week, without touching production. +- **An analytics engineer who wants fixtures in CI.** Commit the model, generate with `--seed` + and `--as-of`, and every CI run builds against the same bytes. `--days` gives an incremental + model the next day's batch to process. +- **A trainer who needs data that fails on purpose.** `--defects training` breaks each standard + dbt test once and says which, so a class sees `unique`, `not_null`, `relationships` and + `accepted_values` fail for the right reason. +- **A team defining metrics once.** Write revenue in one metrics file, check every number the + semantic layer or dashboard shows against `metric_values.json`, let `dbt build` prove the SQL, + and hand the definitions on as Apache Ossie. -The types are `duplicate_keys`, `orphan_foreign_keys`, `nulls`, `invalid_values` (fails -`accepted_values`), `messy_text` (whitespace and casing to clean in staging), and, with `--days`, -`late_arriving` (rows an incremental model filtering on `updated_at > max(updated_at)` skips) and -`late_updates` (versions a `strategy: timestamp` snapshot misses) and `overlapping_history` (see -below). Every run with defects writes -`defects_report.json` (each defect, the rows it broke, the tests it breaks) and -`EXPECTED_FAILURES.md` into the project, so a test that does not fire is visible. Defects are applied -after the clean data, from their own random stream: the same seed gives the same bytes, and a -defect on one table moves nothing in another. From Python, `model2data.defects.planned_defects` -says what a run will break, `model2data.output.finish_run` applies it (and builds the histories) -after `generate_days`, and `write_defects_report` / `write_expected_failures` write the two files. - -### A source that keeps its history - -`history: true` in a table's `incremental` (spec 0.3.0) also writes `
_history`: every -version of every row over the generated days, with `valid_from`, `valid_to` (null for the current -version) and `is_current` — an SCD type 2 source to build snapshots and point-in-time joins -against. The project tests it with two package-free tests, one current row per key and no -overlapping versions; the `overlapping_history` defect breaks the second. +## How it works -```yaml -orders: - incremental: {new_per_day: 20, update_rate: 0.1, updated_at: updated_at, history: true} ``` - -### Metrics next to the model - -What the numbers mean goes in a second, optional file beside the model, `.metrics.yml`, -defined by the [metrics spec 0.1.0](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/metrics/README.md): - -```yaml -model2data-metrics: 0.1.0 -model: coffee_webshop -metrics: - revenue: - measure: orders.total_amount - where: - orders.status: [paid, shipped, delivered] - format: currency - orders: - measure: orders.id - agg: count_distinct - average_order_value: - ratio: {numerator: revenue, denominator: orders} +model (.model2data.yml or DBML) + metrics file (optional) + -> read and validate -> generate -> scaffold the dbt project + compute each metric's known value + -> seeds, staging models and tests, metric tests, metric_values.json, osi/, profiles.yml + -> dbt build ``` -A metric is a column aggregated (`measure`), a row count (`count`), a `ratio` of two metrics' -totals, or arithmetic over metrics (`expression`); filters reach other tables through many-to-one -foreign keys, and every `measure` column of the model yields a metric of its own. The generator -never reads the file. `model2data validate x.metrics.yml` checks it against the model beside it. -`--metrics FILE` on `generate` adds, and changes nothing else: - -- `metric_values.json`: each metric's known value over the generated data, overall and per month; -- `data-tests/metrics/`: a dbt test per metric checking the warehouse gets that value; -- `osi/.yml`: the model and its metrics as an [Apache Ossie](https://github.com/apache/ossie) - 0.1.1 semantic model, with what Ossie cannot say listed at the top. - -`model2data metrics list` and `model2data metrics export --to ossie` do the same without -generating. The [README](https://github.com/JB-Analytica/model2data/blob/main/README.md#metrics-next-to-the-model) has the details. +1. **Read.** Reads the model — its tables, columns, keys, references and generation hints — from + a `.model2data.yml` document, checking it against [the spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/README.md), or + from DBML, which it converts to the same model first. A metrics file is checked against + [its spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/metrics/README.md) and against the model. +2. **Generate.** Produces synthetic values per column — typed generation for known SQL types + (int, date, timestamp, ...), then a Faker provider named as the type (`sku ean13`), then + name-aware inference for everything else (`email`, `phone`, `city`, ...), foreign keys + resolved against already-generated parent rows. The metrics file is never read here: the data + is the same with or without it. +3. **Scaffold.** Writes a complete dbt project around that data: CSV seeds, staging models that + `ref()` those seeds, `not_null`/`unique`/`relationships` tests, `accepted_values` tests for + enum-typed columns, singular SQL tests for composite primary/unique keys, tests from the + model's hints, table and column `description:` fields from the model, and a profile for + DuckDB (zero-config, file-based) or Postgres. +4. **Compute metrics.** With `--metrics`, computes each metric over the generated data and writes + its known value, a dbt test that checks it, and the Apache Ossie file. -## Generated dbt project structure +--- -The generated dbt project includes: +## Installation -``` -dbt_{project_name}/ -├── seeds/ -│ └── raw/ -│ ├── __seed_config.yml # seed descriptions + column-type overrides -│ ├── table1.csv -│ └── table2.csv -├── models/ -│ └── staging/ -│ ├── stg_table1.sql -│ ├── stg_table1.yml -│ ├── ut_stg_table1.yml # only with --unit-tests -│ └── ... -├── data-tests/ -│ ├── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys -│ └── metrics/metric_revenue.sql # only with --metrics: one per metric -├── osi/{project_name}.yml # only with --metrics: Apache Ossie 0.1.1 -├── metric_values.json # only with --metrics: each metric's known value -├── macros/ -│ ├── generate_schema_name.sql -│ └── model2data_hint_tests.sql # only when the model's hints write tests -├── dbt_project.yml -├── profiles.yml # DuckDB or Postgres config, depending on --adapter -└── {project_name}_profile.duckdb # DuckDB adapter only +```bash +pip install model2data # DuckDB included +pip install "model2data[postgres]" # to target Postgres with --adapter postgres +uvx model2data --help # or run it without installing ``` -- **Seeds**: CSV files with generated synthetic data, plus `__seed_config.yml` — each seed's - `description:` (the table's `description` in the model) and the column-type overrides that keep - all-digit text columns (barcodes, zero-padded postcodes, ...) from being loaded as integers. -- **Staging Models**: Basic dbt models that `ref()` their seed. Using `ref()` rather than - declaring the seeds as dbt `sources` is what gives each model a real DAG edge to the seed - behind it, so one `dbt build` orders seeds before models on a fresh database. -- **Tests**: A YAML per staging model with column tests (`not_null`, `unique`, `relationships`, - and `accepted_values` for enum-typed columns), plus the hint tests above. A column's `description` in the model becomes - its `description:` field. -- **Composite key tests**: Composite primary/unique keys (`keys`, or several `pk: true` columns) get - a singular SQL test under `data-tests/`, dbt's configured `test-paths`. -- **Profiles**: Pre-configured for DuckDB (file-based) or Postgres (via env vars), with schema handling. -- **Unit tests** (opt-in via `--unit-tests`): `models/staging/ut_stg_
.yml` fixtures built - from real generated rows, co-located with each staging model so dbt (which only parses unit - tests from `model-paths`) picks them up. - ---- - -## Using model2data with an LLM - -If you want to go from a plain-English description of a data model straight to a running, -demo-ready dbt project, [LLMS.md](https://github.com/JB-Analytica/model2data/blob/main/LLMS.md) is written for an LLM/agent to read: it covers the -DBML feature set model2data understands (enums, notes, defaults, composite keys, both -relationship syntaxes, self-references), which it converts to a spec 0.2.0 model and the exact command sequence to run. Point an -LLM-backed coding assistant at it and describe your data model — it can author the DBML and run -model2data for you. +Python 3.10 to 3.14. The examples used on this page are in [`examples/`](https://github.com/JB-Analytica/model2data/tree/main/examples/). --- @@ -445,74 +279,23 @@ If you're pinned to an older dbt-core, use model2data 0.5.x, which supported dow --- -## Design decisions / non-goals - -- **DuckDB Default**: Chosen for its zero-config, file-based nature, making it easy to get started without database setup. Postgres is supported via `--adapter postgres`; other adapters can be configured manually. -- **dbt Integration**: Leverages dbt's transformation capabilities for a familiar workflow in analytics engineering. -- **Synthetic Data**: Uses deterministic generation for reproducibility; not intended for production use or as a replacement for real data. -- **Non-goals**: This is not a data migration tool, ETL pipeline, or real-time data generator. It focuses on static, synthetic datasets for testing and prototyping. - ---- - -## Limitations - -- Synthetic data generation is heuristic-based (typed generation, name-aware inference, enum/default awareness) and may not perfectly mimic real-world distributions or edge cases. -- DuckDB and Postgres are supported today; other databases require manual profile adjustments. -- No support for incremental models or advanced dbt features in generated projects. -- Composite foreign keys (across a bridge/join table) are generated as independent single-column FKs — each column's values are individually valid, but the *combination* isn't guaranteed to match a real parent composite key unless that key is separately enforced as a key of the child (`keys`). -- A model that doesn't conform to the spec — or DBML that can't be read, or converts to such a model — is refused with every issue and where it is, rather than generated from in part. A reference onto a column that is not a key is allowed with a warning: its values are drawn from the ones the parent column holds. - ---- - -## Project status - -As of `1.0.0`, model2data is considered **feature-complete for its intended use case**: turning a -data model into realistic synthetic data and a runnable dbt project, reliably. There's no active -roadmap of new capabilities planned — the focus from here is maintenance: bug fixes, keeping pace -with new dbt-core releases, and reviewing community contributions. - -Ideas that came up during development but were deliberately left out of scope, in case anyone -wants to pick them up as a contribution: - -- Additional database adapters (e.g. Snowflake, BigQuery). -- A rule-based semantic layer scaffold (`semantic_models.yml`/basic metrics) derived from the - parsed schema shape. -- Example mart-layer models on top of staging (the generated `dbt_project.yml` carries a - ready-to-uncomment `marts` schema/materialization config for this). - -See [CONTRIBUTING.md](https://github.com/JB-Analytica/model2data/blob/main/CONTRIBUTING.md) if you'd like to work on any of these. - ---- - -## Contributing - -We welcome contributions! - -- Open issues for bugs or feature requests. -- Submit PRs to add new example models, custom data generators, or improvements. -- Ensure all new features include tests if possible. - -See [CONTRIBUTING.md](https://github.com/JB-Analytica/model2data/blob/main/CONTRIBUTING.md) for detailed guidelines, and [DEVELOPMENT.md](https://github.com/JB-Analytica/model2data/blob/main/DEVELOPMENT.md) for the local dev setup and release process. - -## Code of Conduct - -Please read our [Code of Conduct](https://github.com/JB-Analytica/model2data/blob/main/CODE_OF_CONDUCT.md) to understand our community standards. - ---- - ## License -MIT License. See LICENSE for details. +MIT License. See [LICENSE](https://github.com/JB-Analytica/model2data/blob/main/LICENSE). Built and maintained by [JB Analytica](https://www.jbanalytica.com). +Try [model2data studio](https://studio.jbanalytica.com) — model2data in the browser, nothing to install. --- -

- - JB Analytica - -
- Built and maintained by JB Analytica — - Data & Analytics Engineering · Data Platform Architecture · Modern BI. -
- Try model2data studio — model2data in the browser, nothing to install. -

+## Documentation + +- [The model file](https://github.com/JB-Analytica/model2data/blob/main/docs/model-file.md) — `.model2data.yml`, DBML as input, `validate`, `convert` +- [Generating a project](https://github.com/JB-Analytica/model2data/blob/main/docs/generating.md) — row counts, `--as-of`, the determinism promise, `--table-seed`, `--locale` +- [The generated dbt project](https://github.com/JB-Analytica/model2data/blob/main/docs/dbt-project.md) — `dbt build`, Postgres, unit tests, hint tests, structure +- [Days after the first](https://github.com/JB-Analytica/model2data/blob/main/docs/days.md) and [history tables](https://github.com/JB-Analytica/model2data/blob/main/docs/history.md) +- [When things happen](https://github.com/JB-Analytica/model2data/blob/main/docs/time-shapes.md) and [how the data is spread](https://github.com/JB-Analytica/model2data/blob/main/docs/distributions.md) +- [Defects on purpose](https://github.com/JB-Analytica/model2data/blob/main/docs/defects.md) +- [Metrics with known values](https://github.com/JB-Analytica/model2data/blob/main/docs/metrics.md) +- [Validate models in CI](https://github.com/JB-Analytica/model2data/blob/main/docs/ci.md) +- [Agents and LLMs](https://github.com/JB-Analytica/model2data/blob/main/docs/agents.md), and [LLMS.md](https://github.com/JB-Analytica/model2data/blob/main/LLMS.md) +- The [model spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/README.md) and the [metrics spec](https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/metrics/README.md) +- [Examples](https://github.com/JB-Analytica/model2data/blob/main/examples/README.md) and the [changelog](https://github.com/JB-Analytica/model2data/blob/main/CHANGELOG.md) diff --git a/assets/demo.gif b/assets/demo.gif index b649be895c330e0535dbe9139aee0d318c2d88bd..b9031c0a2984387ed186cd4718e15a3e858657ae 100644 GIT binary patch literal 252424 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 z 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 Kx?|VM9sdiVbAm?z diff --git a/assets/demo.tape b/assets/demo.tape index 540602c..90e0899 100644 --- a/assets/demo.tape +++ b/assets/demo.tape @@ -1,25 +1,21 @@ # Regenerate the README demo GIF: -# brew install vhs duckdb +# brew install vhs (jq ships with macOS 15; elsewhere install it too) # uv sync --extra dev # cd /tmp && mkdir m2d-gif-demo && cd m2d-gif-demo && cp -r /examples . # vhs /assets/demo.tape # (recorded from a scratch directory so the printed paths in the output don't -# leak a real machine's home directory) +# leak a real machine's home directory; replace /path/to/model2data below with +# the checkout whose .venv should run) # -# Then shrink it before committing -- vhs writes a ~2.5MB GIF, and a reduced -# palette at a lower frame rate cuts that by more than half with no visible -# loss on terminal text: -# ffmpeg -i demo.gif -vf "fps=12,palettegen=max_colors=32:stats_mode=diff" -y pal.png -# ffmpeg -i demo.gif -i pal.png \ -# -lavfi "fps=12[x];[x][1:v]paletteuse=dither=none:diff_mode=rectangle" \ -# -y /assets/demo.gif +# Commit the GIF as vhs writes it (about 250 KB at this size). A reduced +# palette makes it smaller but turns dbt's green PASS and jq's colours grey. Output demo.gif Set Shell "zsh" Set FontSize 16 -Set Width 1200 -Set Height 700 +Set Width 1520 +Set Height 540 Set Padding 24 Set Framerate 20 Set Theme {"name": "jba", "black": "#182333", "red": "#e5989b", "green": "#7cc576", "yellow": "#FA9306", "blue": "#2196F0", "purple": "#A8C9EE", "cyan": "#2196F0", "white": "#F6F8FB", "brightBlack": "#3b4252", "brightRed": "#e5989b", "brightGreen": "#7cc576", "brightYellow": "#FA9306", "brightBlue": "#2196F0", "brightPurple": "#A8C9EE", "brightCyan": "#2196F0", "brightWhite": "#FFFFFF", "background": "#0e1117", "foreground": "#F6F8FB", "cursor": "#FA9306"} @@ -31,37 +27,28 @@ Enter Sleep 500ms Show -# 1. Schema in -- synthetic data and a whole dbt project out. -Type "model2data --file examples/ecommerce.dbml --rows 200 --seed 42" +# 1. A model and its metrics in -- synthetic data, a dbt project and each +# metric's known value out. +Type "model2data -f examples/ecommerce.model2data.yml --metrics examples/ecommerce.metrics.yml --rows 200 --seed 42 --as-of 2026-01-31" Sleep 400ms Enter -Sleep 4000ms +Sleep 3500ms Type "clear" Enter Sleep 300ms -# 2. One command: loads the seeds, builds the models, runs every test. -Type "cd dbt_ecommerce && dbt build" +# 2. One command loads the seeds, builds the models and runs every test. The +# full log is 120 lines; the grep keeps the metric tests (each one computes +# its metric on the warehouse and must match the known value) and dbt's +# summary line, so both stay on screen long enough to read. +Type `cd dbt_ecommerce && dbt build --use-colors | grep -E "PASS metric_|Done\."` Sleep 300ms Enter -# dbt itself takes ~4s of this, so the sleep has to be generous enough that -# the finished PASS=.../ERROR=0 summary actually sits on screen long enough -# to read -- it is the whole point of this segment. -Sleep 9000ms +Sleep 7500ms -Type "clear" -Enter -Sleep 300ms - -# 3. The payoff. Real names and emails, not lorem ipsum -- and a join that -# actually resolves, because the foreign keys point at real parent rows. -Type `duckdb ecommerce_profile.duckdb -c "from staging.stg_customers select first_name, last_name, email, country limit 5"` -Sleep 300ms -Enter -Sleep 3000ms - -Type `duckdb ecommerce_profile.duckdb -c "from staging.stg_customers c join staging.stg_orders o on o.customer_id = c.id select c.country, count(*) orders, round(sum(o.total_amount)) revenue group by 1 order by revenue desc limit 5"` +# 3. The known values themselves: what a dashboard on this data must show. +Type `jq '.metrics | map_values(.value)' metric_values.json` Sleep 300ms Enter -Sleep 4000ms +Sleep 4500ms diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..e72f6a5 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,24 @@ +# model2data documentation + +The [README](../README.md) shows what model2data does; these pages say how each part works. + +- [The model file](model-file.md) — `.model2data.yml`, DBML as input, `validate` and `convert`. +- [Generating a project](generating.md) — row counts, `--as-of`, the determinism promise, + `--table-seed`, `--locale`. +- [The generated dbt project](dbt-project.md) — `dbt build`, Postgres, unit tests, the data + tests written from the model's hints, the folder structure. +- [Days after the first](days.md) — `incremental`, `--days`, `--next`, `transitions`, + `--days-format`. +- [A source that keeps its history](history.md) — `

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℞TL?axZja)WspQ1m_rz)?22hgr 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
WQN#%RiGJUUN!^nW?FE@@aZ2I%$#ayxX z&kpPaF_#ZxjXq1nI~dN-#pcz*%IJ)ply}Z!{A$#bavLdd z7RHJ>O$mV*%ZCp@ga|BPZT|tJERzr(aVT*e3=BBV45gU~XyaK;ar&L^H-R}tor2x( zfZM^L-(8#q^uM(@jUVxSVXZ7R5#MaCu@bezYWJ`Rku2IX#q7HA8P6z=a_v6y-V+uy z&yZv47LcGxY)g-LgPgDdQ#_4BrydafxZgWApai(DSEZL~xZs^rVdx_zso`WWz1V47 z^u+m-k!}>Jw``|I9UZP*ZbE{>bUT8#2x(O#eg>2R zOQriw&h9ITIqG1o{Kz6|CnTQkwWR+hd9@GvFDNwe}l-(KcF;HFBmA{w?k0hG$ zEmL+PfecdnJERuo-V8cix4wZOQ-;%B_)M&F=B_;3tCc&TdY3h$$SDfQ+ymFYY3;rD z$(1fE5F7$3++>2LEqt;xpcgUOho@ifONz00C+$Db_sHF z8;0fY$dQN1*6_#zPtPyUa|a^gTDYb^iu0O*?Wz?I97}Q@Zy|O><2tk7KDyR{(^16> z8>UY>9B2rdy=Ww4684pJX-q6|gNQeK_ZWr{WSf-7KfJjJ6-kYK{WjQ(J}Y>JH{aBV z#0uDi#GiGuX1h2q*kn1l!i_-;(ljZ9b8+qM!h5s0A(c)M@hDZr2u!}KGh~CnBa!7@ ztRV<+K>RDLLVLYJkkY%QCc$m2Wroo*soP8dfev)gC!SN6jdvC0^Gyd=RXP$B8bQJ) zUva&A1>rWVwlvH3Y`(K=K`VtIhI6qnd^rt8rHK)oy7Vj=VT8-?&~@+jNollZ2A&bR zCY2wuHa_Zo!Oc?KjaCW-1a+$pkgkknr;Wa#EHk|lr25j}Xsv}#HBr$WlVJt_KT=v

9#UkMah4`pRGy*kh&aqO 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 QBh&bQFR}lB^#Z^D18iRfsQ>@~ literal 1160995 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 z%0A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

IH15y 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%0A@xxXa;8lWc&ClFtM(_^Z8GxY1 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≻g2R9}*%; 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

1@t`8_S-t*f38LdLun$q8f?V4y2H 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

_history`, an SCD type 2 source. +- [When things happen](time-shapes.md) — business hours, growth, seasonality, `after`, `when`. +- [How the data is spread](distributions.md) — skew, weights, `true_rate`, `null_rate`, + `distinct`, number distributions. +- [Defects on purpose](defects.md) — `--defects messy|training`, defects per table, the + expected-failures report. +- [Metrics with known values](metrics.md) — the metrics file, `metric_values.json`, a dbt test + per metric, the Apache Ossie export. +- [Validate models in CI](ci.md) — the GitHub Action, pre-commit, GitLab CI. +- [Using model2data from a coding agent or an LLM](agents.md) — `model2data guide`, LLMS.md. + +The formats themselves are specified in the package: the [model spec](../model2data/spec/README.md) +and the [metrics spec](../model2data/spec/metrics/README.md), each with a JSON Schema. diff --git a/docs/agents.md b/docs/agents.md new file mode 100644 index 0000000..1de46e5 --- /dev/null +++ b/docs/agents.md @@ -0,0 +1,26 @@ +# Using model2data from a coding agent or an LLM + +## `model2data guide` + +Driving model2data from a coding agent? Have it start here; the instructions ship with the +installed version and pick a topic from the current directory: + +```bash +uvx model2data@latest guide +``` + +`model2data guide [setup|triage|tune]` prints one page of Markdown written for a coding agent: +`setup` (install, a starter model, the first run), `triage` (what `validate`, `generate` and +`dbt build` print and what to do about each, in order) and `tune` (every option, model key and +exit code). Without a topic it picks `triage` when the current directory holds a +`*.model2data.yml` or `*.dbml` file, else `setup`, and says so on its first line. It reads only +file names in the current directory and writes nothing. + +## LLMS.md + +If you want to go from a plain-English description of a data model straight to a running, +demo-ready dbt project, [LLMS.md](../LLMS.md) is written for an LLM/agent to read: it covers the +DBML feature set model2data understands (enums, notes, defaults, composite keys, both +relationship syntaxes, self-references), which it converts to a spec 0.2.0 model and the exact command sequence to run. Point an +LLM-backed coding assistant at it and describe your data model — it can author the DBML and run +model2data for you. diff --git a/docs/ci.md b/docs/ci.md new file mode 100644 index 0000000..f64bf80 --- /dev/null +++ b/docs/ci.md @@ -0,0 +1,47 @@ +# Validate models in CI + +Teams that keep `*.model2data.yml` models in git can fail a pull request that breaks one. +`model2data validate` takes several files and `--glob` patterns, prefixes each issue with its +file, exits 1 if any model has an error, and with `--format github` prints annotations that show +inline on the pull request's Files tab. `--require-files` fails when nothing matched. + +**GitHub Actions** + +```yaml +name: model2data +on: + pull_request: + paths: ["**/*.model2data.yml"] +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: JB-Analytica/model2data@v1 +``` + +Inputs: `files` (glob, default `**/*.model2data.yml`), `version` (default: the release the tag +points at, e.g. `1.13.0`; a specifier such as `>=1.10,<2` also works), `python-version` (3.12). + +**pre-commit** + +```yaml +repos: + - repo: https://github.com/JB-Analytica/model2data + rev: v1.13.0 + hooks: + - id: model2data-validate +``` + +**GitLab CI** + +```yaml +model2data: + image: python:3.12-slim + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: ["**/*.model2data.yml"] + script: + - pip install model2data==1.13.0 + - model2data validate --glob "**/*.model2data.yml" +``` diff --git a/docs/days.md b/docs/days.md new file mode 100644 index 0000000..2a715f6 --- /dev/null +++ b/docs/days.md @@ -0,0 +1,33 @@ +# Days after the first + +A table with `incremental` in the model moves on day by day: each day adds `new_per_day` rows +(their dates and timestamps falling on that day) and updates `update_rate` of the rows it already +holds, and an enum column with `transitions` moves from a state to one of the states allowed to +follow it. See `examples/ecommerce_daily.model2data.yml` and "Days after the first" in the +[spec](../model2data/spec/README.md). + +```bash +model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --days 7 +model2data --file examples/ecommerce_daily.model2data.yml --seed 42 --as-of 2026-01-31 --next +``` + +`--days N` generates day 0, the run you would get without it, and N days after it (`--next` is +`--days 1`). The dbt seeds hold the state after the last day. `--days-format` picks what else is +written beside the project, outside `seeds/` so dbt does not load it: `batches` (the default), +`days/
/day_000.csv` whole and then one file per day with the rows inserted and updated that +day; `changelog`, `changelog/
.csv` with a `_day` and an `_op` (`insert` or `update`) column +on every row; or `final`, nothing more. A day depends only on the seed, `--as-of`, the day and the +model, so day *n* never changes when you generate more days or add an unrelated table. From Python: + +```python +from model2data.generate.days import generate_days +from model2data.model import load + +days = generate_days(load("examples/ecommerce_daily.model2data.yml"), 7, seed=42) +days[3].tables["orders"].inserted # rows day 3 added +days[3].tables["orders"].updated # rows day 3 changed, with their new values +days[3].tables["orders"].state # the table after day 3 +``` + +`history: true` in a table's `incremental` also writes every version of every row as a +`
_history` table: see [A source that keeps its history](history.md). diff --git a/docs/dbt-project.md b/docs/dbt-project.md new file mode 100644 index 0000000..42862b1 --- /dev/null +++ b/docs/dbt-project.md @@ -0,0 +1,113 @@ +# The generated dbt project + +## Running it + +Run dbt to load, transform, and test the data: + +```bash +cd dbt_ecommerce +dbt build +``` + +Staging models `ref()` their seeds, so a single `dbt build` loads the seeds, builds the models, +and runs every generated test in one dependency-ordered pass — no separate `dbt seed`/`dbt run` +needed, even on a brand-new database. (The individual `dbt deps`, `dbt seed`, and `dbt run` +commands still work if you'd rather drive the steps yourself; the generated project declares no +packages, so `dbt deps` is a no-op.) + +Your analytics-ready dataset is now in DuckDB! + +To target Postgres instead, install the extra and pass `--adapter postgres`: + +```bash +pip install "model2data[postgres]" +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --adapter postgres +``` + +Connection details are read from environment variables (`MODEL2DATA_PG_HOST`, `MODEL2DATA_PG_PORT`, `MODEL2DATA_PG_USER`, `MODEL2DATA_PG_PASSWORD`, `MODEL2DATA_PG_DATABASE`), defaulting to `localhost:5432` with a `postgres`/`postgres` user for local development. + +After generation, the CLI prints a short summary — tables and rows generated, relationships found in the model, and any columns that fell back to generic placeholder text because neither their type nor name could be matched. + +Pass `--unit-tests` to also generate deterministic dbt unit test fixtures (`models/staging/ut_stg_
.yml`) from the actually-generated seed rows: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --unit-tests +``` + +This targets dbt-core's native unit testing feature, which works out of the box with the base +install — see [dbt-core versions](../README.md#dbt-core-versions). + +## Data tests from the model's hints + +Your model's hints also write **data tests** for the dbt project, so the model that generates the +fixtures guards the real pipeline too. Every hint that states a constraint becomes a generic test +on the staging model, shipped as a self-contained macro in `macros/model2data_hint_tests.sql` (no +dbt package, so `dbt build` still works offline): + +| In the model | dbt test | Tolerance | +|---|---|---| +| `generate: {min, max}` on a numeric column | `model2data_between` | none | +| `generate: {after: other}` | `model2data_not_before` (where both are not null) | none | +| `generate: {null_rate}` | `model2data_max_null_share`: nulls at most `null_rate` + tolerance | `--test-tolerance`, default 0.1 | +| `generate: {distinct: n}` | `model2data_max_distinct`: at most `n` distinct values | none | +| `generate: {when}` | `model2data_when`: null exactly where the condition does not hold (with `null_rate`, only there; its null share is then tested among the matching rows) | none | +| `grain` on a table | `model2data_unique_combination` | none | +| an enum-typed column | `accepted_values` (always written) | none | + +`true_rate`, `weights`, `skew`, `distribution` and the temporal shape hints (`business_hours`, +`growth`, `seasonality`) describe a statistical shape rather than a constraint a row can break, so +they write no test. `--hint-tests {error,warn,off}` sets these tests' severity (default `warn`: +they describe intent and should not break a first `dbt build` on real data); the structural tests +(`not_null`, `unique`, `relationships`) are unaffected. A model with no such hints generates the +same YAML as before. To call the mapping from Python, `model2data.dbt.hint_tests.hint_tests_for(model)` +returns the tests as data. + +## Structure + +The generated dbt project includes: + +``` +dbt_{project_name}/ +├── seeds/ +│ └── raw/ +│ ├── __seed_config.yml # seed descriptions + column-type overrides +│ ├── table1.csv +│ └── table2.csv +├── models/ +│ └── staging/ +│ ├── stg_table1.sql +│ ├── stg_table1.yml +│ ├── ut_stg_table1.yml # only with --unit-tests +│ └── ... +├── data-tests/ +│ ├── unique_combination_stg_table1_col_a_col_b.sql # only for composite pk/unique keys +│ └── metrics/metric_revenue.sql # only with --metrics: one per metric +├── osi/{project_name}.yml # only with --metrics: Apache Ossie 0.1.1 +├── metric_values.json # only with --metrics: each metric's known value +├── defects_report.json # only with defects: each defect and the tests it breaks +├── EXPECTED_FAILURES.md # only with defects +├── {model file} # the model it was generated from, copied as given +├── {stem}.metrics.yml # only with --metrics, copied as given +├── macros/ +│ ├── generate_schema_name.sql +│ └── model2data_hint_tests.sql # only when the model's hints write tests +├── dbt_project.yml +├── profiles.yml # DuckDB or Postgres config, depending on --adapter +└── {project_name}_profile.duckdb # DuckDB adapter only +``` + +- **Seeds**: CSV files with generated synthetic data, plus `__seed_config.yml` — each seed's + `description:` (the table's `description` in the model) and the column-type overrides that keep + all-digit text columns (barcodes, zero-padded postcodes, ...) from being loaded as integers. +- **Staging Models**: Basic dbt models that `ref()` their seed. Using `ref()` rather than + declaring the seeds as dbt `sources` is what gives each model a real DAG edge to the seed + behind it, so one `dbt build` orders seeds before models on a fresh database. +- **Tests**: A YAML per staging model with column tests (`not_null`, `unique`, `relationships`, + and `accepted_values` for enum-typed columns), plus the hint tests above. A column's `description` in the model becomes + its `description:` field. +- **Composite key tests**: Composite primary/unique keys (`keys`, or several `pk: true` columns) get + a singular SQL test under `data-tests/`, dbt's configured `test-paths`. +- **Profiles**: Pre-configured for DuckDB (file-based) or Postgres (via env vars), with schema handling. +- **Unit tests** (opt-in via `--unit-tests`): `models/staging/ut_stg_
.yml` fixtures built + from real generated rows, co-located with each staging model so dbt (which only parses unit + tests from `model-paths`) picks them up. diff --git a/docs/defects.md b/docs/defects.md new file mode 100644 index 0000000..c71a91b --- /dev/null +++ b/docs/defects.md @@ -0,0 +1,35 @@ +# Defects on purpose + +A dbt test you have never seen fail is a test you hope works. `--defects` puts deliberate, +counted defects in the generated data, so `dbt build` fails exactly the tests it should — for +teaching dbt, or for proving a project's tests fire: + +```bash +model2data --file examples/ecommerce.model2data.yml --seed 42 --defects training +cd dbt_ecommerce && dbt build # fails unique, not_null, relationships, accepted_values once each +``` + +`training` breaks each kind of standard dbt test once; `messy` puts a small share of every defect +on every table; `clean` (the default) is the data as it always was, byte for byte; `none` also +ignores the defects a model's tables list, for the clean data of a training model. A table can +also list its own defects in the model (spec 0.3.0): + +```yaml +orders: + defects: + - {type: duplicate_keys, count: 3} # fails unique + - {type: orphan_foreign_keys, column: customer_id, share: 0.02} # fails relationships + - {type: nulls, column: order_date, count: 5} # fails not_null +``` + +The types are `duplicate_keys`, `orphan_foreign_keys`, `nulls`, `invalid_values` (fails +`accepted_values`), `messy_text` (whitespace and casing to clean in staging), and, with `--days`, +`late_arriving` (rows an incremental model filtering on `updated_at > max(updated_at)` skips) and +`late_updates` (versions a `strategy: timestamp` snapshot misses) and `overlapping_history` (see +[A source that keeps its history](history.md)). Every run with defects writes +`defects_report.json` (each defect, the rows it broke, the tests it breaks) and +`EXPECTED_FAILURES.md` into the project, so a test that does not fire is visible. Defects are applied +after the clean data, from their own random stream: the same seed gives the same bytes, and a +defect on one table moves nothing in another. From Python, `model2data.defects.planned_defects` +says what a run will break, `model2data.output.finish_run` applies it (and builds the histories) +after `generate_days`, and `write_defects_report` / `write_expected_failures` write the two files. diff --git a/docs/distributions.md b/docs/distributions.md new file mode 100644 index 0000000..73f3d3b --- /dev/null +++ b/docs/distributions.md @@ -0,0 +1,62 @@ +# How the data is spread + +By default every parent row is equally likely to be picked for a child row, and every column +gets the same generic null rate, value spread, and true/false split. `--skew` changes the first +part: `0.0` is that uniform default, `1.0` means a handful of parents hold most of the children — +"a fifth of the customers place most of the orders": + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --skew 0.8 +``` + +Column hints shape the rest, per column: + +```yaml +orders: + columns: + id: {type: int, pk: true} + customer_id: + type: int + references: customers.id + generate: {skew: 0.9} + status: + type: order_status + generate: + weights: {delivered: 20, cancelled: 2} + is_paid: + type: boolean + generate: {true_rate: 0.9} + discount_code: + type: varchar + generate: {null_rate: 0.8} + shipping_city: + type: varchar + generate: {distinct: 12} +``` + +`skew` on a foreign key overrides `--skew` for just that column. `weights` biases an enum column +toward the values named (unnamed values still appear, at weight 1). `true_rate` is the fraction of +non-null rows a boolean column comes back `true`. `null_rate` replaces the column's default null +fraction outright. `distinct` draws the column's values from a fixed-size pool instead of a fresh +value per row — a `shipping_city` most warehouses only ever see a handful of. + +## A number's distribution + +`min`/`max` alone only ever drew uniformly between them. A `distribution` hint on an integer or +decimal column picks a different shape instead: + +```yaml +total_amount: + type: numeric + generate: + min: 5 + distribution: {kind: lognormal, median: 80, spread: 0.6} +``` + +`normal` takes `mean` (the centre) and `stddev` (the spread); `lognormal` takes `median` (the +typical value) and `spread` (how heavy the tail is — 0.3 is mild, 1.0 is heavy); `exponential` +takes `mean` (the average). Any left unset default to the midpoint of the column's effective +`min`/`max` (or `stddev` = range / 6, `spread` = 0.5). `min`/`max` still clip the result — a +`normal` centred near an edge redraws a bounded number of times before clamping, so it never +loops forever and never crosses the bound. Leaving `distribution` out, or setting it to +`uniform`, is exactly today's behaviour. diff --git a/docs/generating.md b/docs/generating.md new file mode 100644 index 0000000..1a7c468 --- /dev/null +++ b/docs/generating.md @@ -0,0 +1,68 @@ +# Generating a project + +We bundle several example schemas in `examples/` — this walkthrough uses the e-commerce one +(`examples/ecommerce.model2data.yml`: customers, products, orders, order items, and reviews). + +Generate a project with synthetic data: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 +``` + +This creates a `dbt_ecommerce/` folder with your data and dbt setup. + +Real schemas are rarely uniform. `--rows-for` sizes individual tables, so a handful of customers +can sit behind a large orders table the way they would in the warehouse you're modelling: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 \ + --rows-for customers=50 --rows-for order_items=5000 +``` + +`--seed` reproduces a run's numbers, but dates and timestamps are generated relative to the +current date, so the same seed drifts once the day turns over. `--as-of` pins the date they're +anchored on, and the whole dataset reproduces on any later day — which is what makes a generated +fixture safe to commit: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --as-of 2026-01-31 +``` + +## The determinism promise + +The same model, seed and `--as-of` — with the same options (`--rows`, `--rows-for`, +`--table-seed`, `--locale`, `--defects`, `--days`, …) — produce the same files, byte for byte: + +- on any machine and operating system, and on every supported Python version; +- with any Faker or pandas version model2data accepts; +- with the same model2data version, whenever you run it. + +A new release may change what a seed produces, to fix a bug or make the data more realistic. +When it does, the changelog says which models are affected and why. Pin the version +(`model2data==1.11.0`) when fixtures must stay the same across upgrades. + +`tests/test_determinism.py` holds the file hashes of a spread of models, presets, multi-day runs +and locales, and runs on every pull request — against the newest Faker and pandas too — so a +change to a single output byte fails the build unless it is deliberate and in the changelog. + +If one table comes out wrong and the rest looks right, `--table-seed` re-rolls just that table. +Every other table's seed CSV stays byte-identical, and children of the re-rolled table still +reference rows that exist, so there's nothing to re-check but the table you asked to change: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --table-seed orders=7 +``` + +`--locale` picks the country every generated person and address comes from (`en_US` by default); +it's a per-run setting, so a table can't end up holding one Belgian and one American address. A +`country` column that sits beside a `city`/`street`/`state`/`postcode` column always agrees with +that place; a `country` column with none of those beside it isn't describing anyone's address, so +it reads as an international mix instead, with the locale's own country the most common: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 --locale nl_BE +``` + +Next: [run the generated dbt project](dbt-project.md), or shape the data with +[days after the first](days.md), [when things happen](time-shapes.md), +[how the data is spread](distributions.md) and [defects on purpose](defects.md). diff --git a/docs/history.md b/docs/history.md new file mode 100644 index 0000000..e5d004e --- /dev/null +++ b/docs/history.md @@ -0,0 +1,12 @@ +# A source that keeps its history + +`history: true` in a table's `incremental` (spec 0.3.0) also writes `
_history`: every +version of every row over the generated days, with `valid_from`, `valid_to` (null for the current +version) and `is_current` — an SCD type 2 source to build snapshots and point-in-time joins +against. The project tests it with two package-free tests, one current row per key and no +overlapping versions; the `overlapping_history` defect breaks the second. + +```yaml +orders: + incremental: {new_per_day: 20, update_rate: 0.1, updated_at: updated_at, history: true} +``` diff --git a/docs/metrics.md b/docs/metrics.md new file mode 100644 index 0000000..cfa2a7b --- /dev/null +++ b/docs/metrics.md @@ -0,0 +1,78 @@ +# Metrics with known values + +What the numbers mean -- revenue, orders, average order value -- goes in a second, optional file +beside the model, `.metrics.yml`, defined by the [metrics spec 0.1.0](../model2data/spec/metrics/README.md) +([schema](../model2data/spec/metrics/metrics.schema.json)): + +```yaml +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +model2data-metrics: 0.1.0 +model: coffee_webshop + +metrics: + revenue: + label: Revenue + measure: orders.total_amount # summed: the column's `measure` is true + where: + orders.status: [paid, shipped, delivered] + time: orders.order_date + format: currency + orders: + measure: orders.id + agg: count_distinct + average_order_value: + ratio: {numerator: revenue, denominator: orders} + coffee_units_sold: + measure: order_items.quantity # dated by orders.order_date, through order_id + where: + orders.status: {ne: cancelled} + products.category: [beans, ground, capsules] + any: + - orders.channel: web + - order_items.quantity: {gte: 3} +``` + +(the whole file, which conforms against the example model, is +[`model2data/spec/examples/coffee_webshop.metrics.yml`](../model2data/spec/examples/coffee_webshop.metrics.yml)). +A metric is a column aggregated (`measure`, with `agg` or the column's own `measure`), a row count +(`count`), a `ratio` of two metrics' totals, or arithmetic over metrics (`expression`). A filter +can reach any table the metric's table reaches through its foreign keys, many-to-one, along exactly +one path; nulls behave as in SQL. Every `measure` column of the model also yields a metric on its +own (`orders_total_amount`), and a fact a row count (`orders_count`); `infer: false` turns that +off. `format` changes no value: `percent` expects a fraction (0.6 shows as 60%), so a share is +`web_revenue / revenue`, never `* 100`. The generator never reads the file: the data is the same +with or without it. + +```bash +model2data validate coffee_webshop.metrics.yml # against coffee_webshop.model2data.yml beside it +model2data --file coffee_webshop.model2data.yml --metrics coffee_webshop.metrics.yml --rows 200 --seed 42 --as-of 2026-01-31 +cd dbt_coffee_webshop && dbt build # one test per metric, each checking its known value +``` + +With `--metrics`, the run also writes, and changes nothing else: + +- **`metric_values.json`** -- each metric's **known value** over the generated data, overall and + per calendar month of its time column: with the command above, revenue is 28344.22, orders 200, + average order value 141.7211. A run knows its data, so it knows its numbers; a semantic layer or + dashboard built on the data can be checked against them. Counts, and sums, minimums and maximums of + integer columns, are exact; everything else is rounded to 6 decimal places, half to even. Same seed, same bytes. +- **`data-tests/metrics/metric_.sql`** -- a singular dbt test per metric that computes it + over the project's staging models and fails unless it gets the known value (within + `0.000001 + 0.000000001 × |value|`), so `dbt build` proves the metric logic on the warehouse. +- **`osi/.yml`** -- the model and its metrics as an [Apache Ossie](https://github.com/apache/ossie) + (Open Semantic Interchange) 0.1.1 semantic model: tables as datasets over the staging models + (`staging.stg_
`), foreign keys as relationships, date columns as time dimensions, metrics + as ANSI SQL expressions. What Ossie 0.1.1 has no field for (a metric's label, format and time, + enum members) is carried in `custom_extensions` and listed at the top of the file. + +`model2data metrics list -f MODEL [--metrics FILE]` shows every metric, and `model2data metrics +export -f MODEL [--metrics FILE] --to ossie [-o FILE]` writes the Ossie file without generating. +Without `--metrics`, both use the model's inferred metrics. A sibling metrics file is not picked up +by `generate` on its own: a file appearing beside a model must not change what an unchanged +command writes. From Python, `model2data.metrics` loads and checks a file (`load`, `validate`), +resolves it with the model into one semantic representation (`resolve`), and computes +(`known_values`) and exports (`to_ossie`) from it. + +The e-commerce example has a metrics file too, [`examples/ecommerce.metrics.yml`](../examples/ecommerce.metrics.yml) +(revenue, orders, average order value, units sold); the [README](../README.md#before-and-after) +shows what a run with it writes. diff --git a/docs/model-file.md b/docs/model-file.md new file mode 100644 index 0000000..49ac74d --- /dev/null +++ b/docs/model-file.md @@ -0,0 +1,76 @@ +# The model file + +A model is one YAML document, `.model2data.yml` — or the same document as JSON. Its +format is [spec 0.4.0](../model2data/spec/README.md), with a JSON Schema +([`model.schema.json`](../model2data/spec/model.schema.json)) your editor can autocomplete and check +against: + +```yaml +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/0.2.0/model.schema.json +model2data: 0.2.0 +name: coffee_webshop + +enums: + order_status: [pending, paid, shipped, delivered, cancelled] + +tables: + customers: + description: One row per registered customer account + columns: + id: {type: bigint, pk: true} + email: {type: email, unique: true, not_null: true} + phone: + type: phone_number + generate: {null_rate: 0.4} + + orders: + columns: + id: {type: bigint, pk: true} + customer_id: + type: bigint + not_null: true + references: customers.id + generate: {skew: 0.8} + total_amount: + type: numeric + not_null: true + generate: + min: 10 + max: 5000 + distribution: {kind: lognormal, median: 120, spread: 0.7} + status: + type: order_status + generate: + weights: {delivered: 20, cancelled: 1} + +run: + seed: 1 + as_of: 2026-01-01 +``` + +A column's `type` is an SQL type, an enum of the model, or a generator (`email`, `first_name`, +`ean13`, ...). `generate` holds its hints, each a typed value the schema documents. `run` saves +the generation settings with the model; every CLI option overrides the one it names. The +[reference example](../model2data/spec/examples/coffee_webshop.model2data.yml) is a complete model, +and every schema in [`examples/`](../examples/) comes as one. + +Check a model without generating anything — every issue is printed with its path in the document: + +```bash +model2data validate examples/ecommerce.model2data.yml +``` + +## DBML is supported input + +`--file` also takes a `.dbml` file, which model2data converts to the same model before generating +(parsed with [pydbml](https://github.com/Vanderhoof/PyDBML)). Hints written as a JSON note on a +column (`[note: '{"min": 1, "max": 5}']`) become its `generate`; any other note is its +description. `convert` writes the model a DBML file converts to, for you to keep: + +```bash +model2data convert examples/ecommerce.dbml -o ecommerce.model2data.yml +``` + +The spec's [From 0.1](../model2data/spec/README.md#from-01) section lists how each DBML feature +converts. A few newer or rarer DBML features — `check` constraints, `Records`, `TablePartial`, +unquoted non-ASCII names — can't be read yet, and are refused with the line and what to change. diff --git a/docs/time-shapes.md b/docs/time-shapes.md new file mode 100644 index 0000000..4d0f3c5 --- /dev/null +++ b/docs/time-shapes.md @@ -0,0 +1,60 @@ +# When things happen + +By default, every date and timestamp is drawn uniformly across its window. `--business-hours`, +`--growth`, and `--seasonality` shape that instead — weekdays and working hours, a trend across +the window, and an annual cycle peaking in Q4: + +```bash +model2data --file examples/ecommerce.model2data.yml --rows 200 --seed 42 \ + --business-hours --growth 0.5 --seasonality 0.3 +``` + +Within a row, created/updated/deleted-style columns are ordered automatically — `updated_at` never +lands before its own `created_at` — under any profile, uniform included. A column whose name +doesn't say what it depends on can say so explicitly with an `after` hint: + +```yaml +shipped_at: + type: timestamp + generate: {after: ordered_at} +``` + +A column that only has a value in some states says which with `when` (spec 0.4.0: the model says +`model2data: 0.4.0`): it holds a value on +exactly the rows whose named column holds one of the listed values, and is null on every other +row — no `pending` order with a `shipped_at`, no `cancelled` subscription without a +`cancelled_at`: + +```yaml +shipped_at: + type: timestamp + generate: {after: ordered_at, when: {status: [shipped, delivered]}} +``` + +The named column is another column of the table (an enum, boolean, number or text column; several +named must all match), and the column carrying `when` is nullable. On the matching rows it is +never null, unless it has a `null_rate`, which then counts only those rows. On days after the +first (`--days`), a row that moves into a listed status gets its value that day and a row that +moves out loses it. Every other column comes out exactly as it would without the hint. + +The flags above (or `run.shape` in the model) shape every date and timestamp column the same +way, run-wide. `business_hours`, `growth`, and `seasonality` column hints override that for one +column at a time — the whole point being a run can be uniform everywhere except the one column +that needs shaping, or shaped everywhere except the one column that shouldn't be: + +```yaml +orders: + columns: + id: {type: int, pk: true} + created_at: + type: timestamp + generate: {business_hours: true, growth: 0.4} + refunded_at: + type: timestamp + generate: {growth: 0} +``` + +Here `created_at` gets business hours and growth even on an otherwise-uniform run, while +`refunded_at` stays flat even under `--growth 0.5` — each hint only replaces the fields it names, +so a partial hint like `{growth: 0}` leaves that column's `business_hours`/`seasonality` at +whatever the run-level flags set. diff --git a/examples/README.md b/examples/README.md index bcdc051..d34346b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -79,6 +79,17 @@ dbt seed && dbt run - **Unique constraints**: Email uniqueness per customer - **Realistic data generation**: Names, emails, phone numbers generated via Faker library +**Metrics**: `ecommerce.metrics.yml` beside it ([metrics spec 0.1.0](../model2data/spec/metrics/README.md)) +defines revenue, orders, average order value and units sold. Pass it with `--metrics` and the run +also writes each metric's known value (`metric_values.json`), a dbt test per metric and an Apache +Ossie file; the data is the same with or without it: + +```bash +model2data --file examples/ecommerce.model2data.yml --metrics examples/ecommerce.metrics.yml \ + --rows 200 --seed 42 --as-of 2026-01-31 +cd dbt_ecommerce && dbt build +``` + **Use case**: Perfect for learning how to model transactional systems. Run this to generate realistic e-commerce data for testing, analytics, or building dbt pipelines. **Try it**: diff --git a/examples/ecommerce.metrics.yml b/examples/ecommerce.metrics.yml new file mode 100644 index 0000000..2f31750 --- /dev/null +++ b/examples/ecommerce.metrics.yml @@ -0,0 +1,33 @@ +# yaml-language-server: $schema=https://www.jbanalytica.com/model2data/spec/metrics/0.1.0/metrics.schema.json +model2data-metrics: 0.1.0 +model: ecommerce + +metrics: + revenue: + label: Revenue + description: Order value of the orders that were not cancelled. + measure: orders.total_amount + agg: sum + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + format: currency + + orders: + label: Orders + count: orders + where: + orders.status: [processing, shipped, delivered] + time: orders.order_date + + average_order_value: + label: Average order value + ratio: {numerator: revenue, denominator: orders} + format: currency + + units_sold: + label: Units sold + measure: order_items.quantity # dated by orders.order_date, through order_id + agg: sum + where: + orders.status: {ne: cancelled} From be417c835d6b373904f7999ed2f970a69367e765 Mon Sep 17 00:00:00 2001 From: Jarich Braeckevelt Date: Tue, 6 Oct 2026 20:49:10 +0200 Subject: [PATCH 6/6] Say what model2data does today in the PyPI summary Co-Authored-By: Claude Opus 5.5 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cba92e6..94e9ee4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "model2data" version = "1.13.0" -description = "Generate analytics-ready datasets from DBML models" +description = "Turn a data model into realistic synthetic data, a runnable dbt project and metrics with known values" readme = "README_PYPI.md" requires-python = ">=3.10" license = "MIT"