One Engine, Endless Applications
The SDF CLI surfaces in-depth column-level lineage information directly from the command line.
A transformation layer that actually understands SQL. Simplify testing, reporting, and debugging with the best SQL development experience.
Request a DemoThe SDF CLI surfaces in-depth column-level lineage information directly from the command line.
SDF does for SQL what Typescript did for Javascript.
Faster Development. Trusted Results. Safety at Scale.
Minimize YML for maximal gain.
Compose your data warehouse with declarative block syntax.
The SDF YML workspace block defines the configuration of your workspace in SDF. It serves as a central place to manage and outline the structure and behavior of your SDF project. Essential details such as the workspace's name, edition, description, repository information, and includes paths for .sql
and .sdf.yml
files are configured here. Moreover, it specifies defaults, dependencies, providers, and various other configurations that are crucial for the operation of your SDF workspace.
The SDF YML table block is used to define or add metadata to a table, including the table name, description, columns, and SQL dialect. Moreover, classifiers can be applied at both column and table levels within this block. Additionally, the .sdfcache
directory uses this metadata representation to store the configured and generated metadata across your project.
Classifiers are a powerful extended typing system for data. In SDF they are used to provide more meaning to data, i.e. they can provide units of measurement (e.g. USD, meter), represent the state of data representation (e.g. PII is in clear text or anonymized), or provide the purpose of a table (e.g. this table is public).
Attach a classifier to a table or column; SDF then tracks the flow of a classifier within the whole workspace.
The SDF YML function block is used to define user-defined functions within the SDF environment. This functionality allows for extensive customization and extension of SQL capabilities within your SDF projects.
The function block includes details such as the function's name, its parameters, return type, dialect it applies to, and its volatility. Functions can be scalar, aggregate, or table functions, and they support various features like fixed or varying arity, overloading, polymorphic behavior, higher-order functions, and more.
SDF Environments are used to separate production, staging, and developer-specific workflows. It supports zero-copy sourcing from production data and systematic renaming to ensure developers only write to non-production schemas during development.