🎥 Click here for YouTube video with installation steps and demo →


🎉 Officially recommended by Google[^1]. Though not an officially supported Google product.
VS Code extension for Dataform. Supports both Dataform version 2.x and 3.x
Feature |
Description |
Compiled Query & Dry run stats |
Compiled query with dry run stats in a vertical split |
Dependancy graph |
Interative dependancy graph with external sources higlighted in distinct colors |
Inline diagnostics on .sqlx file 🚨 |
Native LSP like experience with diagnostics being directly put on sqlx file |
Preview query results |
Preview query results in a table by running the file |
Cost estimator 💸 |
Estimate the cost of running a Tag |
Go to definition |
Go to definition for source in $ref{("my_source")} and javascript blocks in .sqlx files |
Auto-completion |
- Column names of current model - Dependencies and declarations in ${ref("..")} trigger when $ character is typed - Dependencies when " or ' is typed inside the config block which has dependencies keyword is in the line prefix - tags when " or ' is typed inside the config block which has tags keyword is in the line prefix |
Code actions |
Apply dry run suggestions at the speed of thought |
Run file(s)/tag(s) |
Run file(s)/tag(s), optionally with dependencies/dependents/full refresh using vscode command pallet / menu icons |
Format using Sqlfluff 🪄 |
Fromat .sqlx files using sqlfluff |
BigQuery snippets |
Code snippets for generic BigQuery functions taken from vscode-langauge-sql-bigquery extension |
Requirements
Dataform cli
# requires nodejs
npm i -g @dataform/cli
Run dataform compile
from the root of your Dataform project to ensure that you are able to use the cli
Install gcloud cli and run
gcloud init
gcloud auth application-default login
gcloud config set project <project_id> #replace with your gcp project id
To enable formatting using sqlfluff install sqlfluff
# install python and run
pip install sqlfluff
To enable prettier diagnostics install Error Lens extension [ optional ]
[!NOTE]
Trouble installing or looking for a specific customization ? Please see FAQ section, if you are still stuck, please raise an issue here
Features





Go to definition for source in $ref{("my_source")}
. Takes you to my_source.sqlx
or sources.js
at the line where my_source
is defined. There is also support for go to definiton
from a javascript variable/module from a .sqlx
file to js
block or .js
file where the virable or module declaration exsists

Auto completion support for dependencies
when "
or '
is typed inside the config block which has dependencies
keyword is in the line prefix

Declarations in ${ref("..")}
trigger when $ character is typed

Auto completion support for tags
when "
or '
is typed inside the config block which has tags
keyword is in the line prefix


Open vscode command pallet by pressing CTLR + SHIFT + p or CMD + SHIFT + p on mac and run one of the required commands
Commands |
Dataform: Run current file |
Dataform: Run current file with dependencies |
Dataform: Run current file with dependents |
Dataform: Run current tag |
Dataform: Run current tag with dependencies |
Dataform: Run current tag with dependents |
Dataform: Format current file |
Dataform: Run file(s) / tag(s) with options |
Known Issues
- [ ] Features such as go to definition / dependancy graph might not work with consistantly with
${ref("dataset", "table")}
or when it is multiline or a different format works best with ${ref('table_name')}
format
TODO
- [ ] Add option to include dependents / dependencies when running cost estimator for tag
- [ ] Add hover docs for config block elements. e.g. Assertions, type etc
- [ ] Handle case where user is not connected to internet or on vpn where network request for dry run cannot be made
[^1]: Link to confirmation of official recommendation by Google: link