π₯ Click here for YouTube video with installation steps and demo β
π Officially recommended by Google1. Though not an officially supported Google product.
VS Code extension for Dataform with following features
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 |
-
# 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 ? Please see FAQ section, if you are still stuck, please raise an issue here
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 |
- 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
- Add hover docs for config block elements. e.g. Assertions, type etc
- Add option to include dependents / dependencies when running cost estimator for tag
- Handle case where user is not connected to internet or on vpn where network request for dry run cannot be made