Definition
Create typed dataset definitions over ClickHouse tables and views.
A dataset is a typed semantic model over a source table or view.
import { dataset, dimension, measure } from '@hypequery/datasets';
const Orders = dataset('orders', {
source: 'orders',
tenantKey: 'tenant_id',
timeKey: 'created_at',
dimensions: {
id: dimension.number(),
createdAt: dimension.timestamp({ column: 'created_at' }),
},
measures: {
revenue: measure.sum('amount'),
},
});source is the physical table or view name. The first dataset() argument is the logical dataset name. tenantKey and timeKey are physical column names used for runtime tenant isolation and time graining.
Module pattern
Define datasets at the module level and export them from dedicated files.
// datasets/orders.ts
export const Orders = dataset('orders', {
source: 'orders',
tenantKey: 'tenant_id',
timeKey: 'created_at',
dimensions: {
id: dimension.number(),
status: dimension.string(),
createdAt: dimension.timestamp({ column: 'created_at' }),
},
measures: {
revenue: measure.sum('amount'),
},
});Public shape
A dataset can include:
sourcetenantKeytimeKeydimensionsmeasuresfiltersrelationshipslimits
See Dimensions, Measures, and Metrics for the main building blocks.