From 3096821d42ab367d1bcb1e3ddfd5c10973257fb1 Mon Sep 17 00:00:00 2001 From: Ly Nguyen Date: Wed, 13 Dec 2023 16:29:39 -0800 Subject: [PATCH 1/6] Partial parsing in dbt Cloud --- .../74-Dec-2023/partial-parsing.md | 15 ++++++ .../release-notes/75-Nov-2023/repo-caching.md | 2 +- website/docs/reference/parsing.md | 6 ++- website/snippets/_cloud-environments-info.md | 50 +++++++++++------- .../docs/deploy/example-account-settings.png | Bin 0 -> 61502 bytes .../img/docs/deploy/example-repo-caching.png | Bin 47561 -> 0 bytes 6 files changed, 52 insertions(+), 21 deletions(-) create mode 100644 website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md create mode 100644 website/static/img/docs/deploy/example-account-settings.png delete mode 100644 website/static/img/docs/deploy/example-repo-caching.png diff --git a/website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md b/website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md new file mode 100644 index 00000000000..eb224d5b845 --- /dev/null +++ b/website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md @@ -0,0 +1,15 @@ +--- +title: "New: Native support for partial parsing" +description: "December 2023: For faster run times with your dbt invocations, configure dbt Cloud to parse only the changed files in your project." +sidebar_label: "New: Native support for partial parsing" +sidebar_position: 09 +tags: [Dec-2023] +date: 2023-12-14 +--- + +By default, dbt parses all the files in your project at the beginning of every dbt invocation. Depending on the size of your project, this operation can take a long time to complete. With the new partial parsing feature in dbt Cloud, you can reduce the time it takes for dbt to parse your project. When enabled, dbt Cloud parses only the changed files in your project instead of parsing all the project files. As a result, your dbt invocations will take significantly less time to run. + +To learn more, refer to [Partial parsing](/docs/deploy/deploy-environments#partial-parsing). + + + diff --git a/website/docs/docs/dbt-versions/release-notes/75-Nov-2023/repo-caching.md b/website/docs/docs/dbt-versions/release-notes/75-Nov-2023/repo-caching.md index 7c35991e961..eff15e96cfd 100644 --- a/website/docs/docs/dbt-versions/release-notes/75-Nov-2023/repo-caching.md +++ b/website/docs/docs/dbt-versions/release-notes/75-Nov-2023/repo-caching.md @@ -11,4 +11,4 @@ Now available for dbt Cloud Enterprise plans is a new option to enable Git repos To learn more, refer to [Repo caching](/docs/deploy/deploy-environments#git-repository-caching). - \ No newline at end of file + \ No newline at end of file diff --git a/website/docs/reference/parsing.md b/website/docs/reference/parsing.md index 1a68ba0d476..8205f93d013 100644 --- a/website/docs/reference/parsing.md +++ b/website/docs/reference/parsing.md @@ -41,7 +41,7 @@ The [`PARTIAL_PARSE` global config](/reference/global-configs/parsing) can be en Parse-time attributes (dependencies, configs, and resource properties) are resolved using the parse-time context. When partial parsing is enabled, and certain context variables change, those attributes will _not_ be re-resolved, and are likely to become stale. -In particular, you may see **incorrect results** if these attributes depend on "volatile" context variables, such as [`run_started_at`](/reference/dbt-jinja-functions/run_started_at), [`invocation_id`](/reference/dbt-jinja-functions/invocation_id), or [flags](/reference/dbt-jinja-functions/flags). These variables are likely (or even guaranteed!) to change in each invocation. We _highly discourage_ you from using these variables to set parse-time attributes (dependencies, configs, and resource properties). +In particular, you may see **incorrect results** if these attributes depend on "volatile" context variables, such as [`run_started_at`](/reference/dbt-jinja-functions/run_started_at), [`invocation_id`](/reference/dbt-jinja-functions/invocation_id), or [flags](/reference/dbt-jinja-functions/flags). These variables are likely (or even guaranteed!) to change in each invocation. dbt Labs _strongly discourages_ you from using these variables to set parse-time attributes (dependencies, configs, and resource properties). Starting in v1.0, dbt _will_ detect changes in environment variables. It will selectively re-parse only the files that depend on that [`env_var`](/reference/dbt-jinja-functions/env_var) value. (If the env var is used in `profiles.yml` or `dbt_project.yml`, a full re-parse is needed.) However, dbt will _not_ re-render **descriptions** that include env vars. If your descriptions include frequently changing env vars (this is highly uncommon), we recommend that you fully re-parse when generating documentation: `dbt --no-partial-parse docs generate`. @@ -51,7 +51,9 @@ If certain inputs change between runs, dbt will trigger a full re-parse. The res - `dbt_project.yml` content (or `env_var` values used within) - installed packages - dbt version -- certain widely-used macros, e.g. [builtins](/reference/dbt-jinja-functions/builtins) overrides or `generate_x_name` for `database`/`schema`/`alias` +- certain widely-used macros (for example, [builtins](/reference/dbt-jinja-functions/builtins), overrides, or `generate_x_name` for `database`/`schema`/`alias`) + +If you're triggering [CI](/docs/deploy/continuous-integration) job runs, the partial parsing benefits are not available on a new pull request (PR) or new branch. However, they are available on subsequent commits to that new PR or branch. If you ever get into a bad state, you can disable partial parsing and trigger a full re-parse by setting the `PARTIAL_PARSE` global config to false, or by deleting `target/partial_parse.msgpack` (e.g. by running `dbt clean`). diff --git a/website/snippets/_cloud-environments-info.md b/website/snippets/_cloud-environments-info.md index 6e096b83750..e89a5e0abc2 100644 --- a/website/snippets/_cloud-environments-info.md +++ b/website/snippets/_cloud-environments-info.md @@ -34,24 +34,6 @@ Both development and deployment environments have a section called **General Set - If you select a current version with `(latest)` in the name, your environment will automatically install the latest stable version of the minor version selected. ::: -### Git repository caching - -At the start of every job run, dbt Cloud clones the project's Git repository so it has the latest versions of your project's code and runs `dbt deps` to install your dependencies. - -For improved reliability and performance on your job runs, you can enable dbt Cloud to keep a cache of the project's Git repository. So, if there's a third-party outage that causes the cloning operation to fail, dbt Cloud will instead use the cached copy of the repo so your jobs can continue running as scheduled. - -dbt Cloud caches your project's Git repo after each successful run and retains it for 8 days if there are no repo updates. It caches all packages regardless of installation method and does not fetch code outside of the job runs. - -To enable Git repository caching, select **Account settings** from the gear menu and enable the **Repository caching** option. - - - -:::note - -This feature is only available on the dbt Cloud Enterprise plan. - -::: - ### Custom branch behavior By default, all environments will use the default branch in your repository (usually the `main` branch) when accessing your dbt code. This is overridable within each dbt Cloud Environment using the **Default to a custom branch** option. This setting have will have slightly different behavior depending on the environment type: @@ -92,3 +74,35 @@ schema: dbt_alice threads: 4 ``` +### Git repository caching + +At the start of every job run, dbt Cloud clones the project's Git repository so it has the latest versions of your project's code and runs `dbt deps` to install your dependencies. + +For improved reliability and performance on your job runs, you can enable dbt Cloud to keep a cache of the project's Git repository. So, if there's a third-party outage that causes the cloning operation to fail, dbt Cloud will instead use the cached copy of the repo so your jobs can continue running as scheduled. + +dbt Cloud caches your project's Git repo after each successful run and retains it for 8 days if there are no repo updates. It caches all packages regardless of installation method and does not fetch code outside of the job runs. + +To enable Git repository caching, select **Account settings** from the gear menu and enable the **Repository caching** option. + + + +:::note + +This feature is only available on the dbt Cloud Enterprise plan. + +::: + +### Partial parsing + +At the start of every dbt invocation, dbt reads all the files in your project, extracts information, and constructs an internal manifest containing every object (model, source, macro, and so on). Among other things, it uses the `ref()`, `source()`, and `config()` macro calls within models to set properties, infer dependencies, and construct your project's DAG. When dbt finishes parsing your project, it stores the internal manifest in a file called `partial_parse.msgpack`. + +Parsing projects can be time-consuming, especially for large projects (for example, a project with hundreds of models and thousands of files). To reduce the time it takes dbt to parse your project, use the partial parsing feature in dbt Cloud for your environment. When enabled, dbt Cloud uses the `partial_parse.msgpack` file to determine which files have changed (if any) since the project was last parsed. Then, instead of parsing all project files, it _only_ parses the changed files or the files related to those changes. + +The partial parsing feature does have some known limitations. Refer to [Known limitations](/reference/parsing#known-limitations) to learn more about them. + +To enable, select **Account settings** from the gear menu and enable the **Partial parsing** option. + + + + + diff --git a/website/static/img/docs/deploy/example-account-settings.png b/website/static/img/docs/deploy/example-account-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..12b8d9bc49f15bbe2e766d064b26617bd11c7177 GIT binary patch literal 61502 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%0AY@5?wV&Kd?F@dGO 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 literal 0 HcmV?d00001 diff --git a/website/static/img/docs/deploy/example-repo-caching.png b/website/static/img/docs/deploy/example-repo-caching.png deleted file mode 100644 index 805d845dccb2f9d979a12cbbd43cb79858090685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47561 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 From 209cb4117be222040cd026602f083bafdb2df3f2 Mon Sep 17 00:00:00 2001 From: Ly Nguyen Date: Thu, 14 Dec 2023 09:37:51 -0800 Subject: [PATCH 2/6] Feedback --- website/snippets/_cloud-environments-info.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/snippets/_cloud-environments-info.md b/website/snippets/_cloud-environments-info.md index e89a5e0abc2..855a8c66ab0 100644 --- a/website/snippets/_cloud-environments-info.md +++ b/website/snippets/_cloud-environments-info.md @@ -98,7 +98,7 @@ At the start of every dbt invocation, dbt reads all the files in your project, e Parsing projects can be time-consuming, especially for large projects (for example, a project with hundreds of models and thousands of files). To reduce the time it takes dbt to parse your project, use the partial parsing feature in dbt Cloud for your environment. When enabled, dbt Cloud uses the `partial_parse.msgpack` file to determine which files have changed (if any) since the project was last parsed. Then, instead of parsing all project files, it _only_ parses the changed files or the files related to those changes. -The partial parsing feature does have some known limitations. Refer to [Known limitations](/reference/parsing#known-limitations) to learn more about them. +Partial parsing in dbt Cloud requires dbt version 1.4 or newer. The feature does have some known limitations. Refer to [Known limitations](/reference/parsing#known-limitations) to learn more about them. To enable, select **Account settings** from the gear menu and enable the **Partial parsing** option. From fc1aaaa9a4a04e999ced3c707add857295bfc968 Mon Sep 17 00:00:00 2001 From: Ly Nguyen <107218380+nghi-ly@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:25:36 -0800 Subject: [PATCH 3/6] Update website/docs/reference/parsing.md Co-authored-by: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> --- website/docs/reference/parsing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/parsing.md b/website/docs/reference/parsing.md index 8205f93d013..c845beea05d 100644 --- a/website/docs/reference/parsing.md +++ b/website/docs/reference/parsing.md @@ -41,7 +41,7 @@ The [`PARTIAL_PARSE` global config](/reference/global-configs/parsing) can be en Parse-time attributes (dependencies, configs, and resource properties) are resolved using the parse-time context. When partial parsing is enabled, and certain context variables change, those attributes will _not_ be re-resolved, and are likely to become stale. -In particular, you may see **incorrect results** if these attributes depend on "volatile" context variables, such as [`run_started_at`](/reference/dbt-jinja-functions/run_started_at), [`invocation_id`](/reference/dbt-jinja-functions/invocation_id), or [flags](/reference/dbt-jinja-functions/flags). These variables are likely (or even guaranteed!) to change in each invocation. dbt Labs _strongly discourages_ you from using these variables to set parse-time attributes (dependencies, configs, and resource properties). +In particular, you may see incorrect results if these attributes depend on "volatile" context variables, such as [`run_started_at`](/reference/dbt-jinja-functions/run_started_at), [`invocation_id`](/reference/dbt-jinja-functions/invocation_id), or [flags](/reference/dbt-jinja-functions/flags). These variables are likely (or even guaranteed!) to change in each invocation. dbt Labs _strongly discourages_ you from using these variables to set parse-time attributes (dependencies, configs, and resource properties). Starting in v1.0, dbt _will_ detect changes in environment variables. It will selectively re-parse only the files that depend on that [`env_var`](/reference/dbt-jinja-functions/env_var) value. (If the env var is used in `profiles.yml` or `dbt_project.yml`, a full re-parse is needed.) However, dbt will _not_ re-render **descriptions** that include env vars. If your descriptions include frequently changing env vars (this is highly uncommon), we recommend that you fully re-parse when generating documentation: `dbt --no-partial-parse docs generate`. From 0a14d2e68a5a03d856795d3473dc1880dbba0ab2 Mon Sep 17 00:00:00 2001 From: Ly Nguyen <107218380+nghi-ly@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:26:41 -0800 Subject: [PATCH 4/6] Update website/docs/reference/parsing.md Co-authored-by: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> --- website/docs/reference/parsing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/reference/parsing.md b/website/docs/reference/parsing.md index c845beea05d..6eed4c96af0 100644 --- a/website/docs/reference/parsing.md +++ b/website/docs/reference/parsing.md @@ -53,7 +53,7 @@ If certain inputs change between runs, dbt will trigger a full re-parse. The res - dbt version - certain widely-used macros (for example, [builtins](/reference/dbt-jinja-functions/builtins), overrides, or `generate_x_name` for `database`/`schema`/`alias`) -If you're triggering [CI](/docs/deploy/continuous-integration) job runs, the partial parsing benefits are not available on a new pull request (PR) or new branch. However, they are available on subsequent commits to that new PR or branch. +If you're triggering [CI](/docs/deploy/continuous-integration) job runs, the benefits of partial parsing are not applicable to new pull requests (PR) or new branches. However, they are applied on subsequent commits to the new PR or branch. If you ever get into a bad state, you can disable partial parsing and trigger a full re-parse by setting the `PARTIAL_PARSE` global config to false, or by deleting `target/partial_parse.msgpack` (e.g. by running `dbt clean`). From cb418f9d36fede27971959248ea0725a2ff5483b Mon Sep 17 00:00:00 2001 From: Ly Nguyen <107218380+nghi-ly@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:27:48 -0800 Subject: [PATCH 5/6] Update website/snippets/_cloud-environments-info.md Co-authored-by: Matt Shaver <60105315+matthewshaver@users.noreply.github.com> --- website/snippets/_cloud-environments-info.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/snippets/_cloud-environments-info.md b/website/snippets/_cloud-environments-info.md index 855a8c66ab0..01ea41936ce 100644 --- a/website/snippets/_cloud-environments-info.md +++ b/website/snippets/_cloud-environments-info.md @@ -96,7 +96,7 @@ This feature is only available on the dbt Cloud Enterprise plan. At the start of every dbt invocation, dbt reads all the files in your project, extracts information, and constructs an internal manifest containing every object (model, source, macro, and so on). Among other things, it uses the `ref()`, `source()`, and `config()` macro calls within models to set properties, infer dependencies, and construct your project's DAG. When dbt finishes parsing your project, it stores the internal manifest in a file called `partial_parse.msgpack`. -Parsing projects can be time-consuming, especially for large projects (for example, a project with hundreds of models and thousands of files). To reduce the time it takes dbt to parse your project, use the partial parsing feature in dbt Cloud for your environment. When enabled, dbt Cloud uses the `partial_parse.msgpack` file to determine which files have changed (if any) since the project was last parsed. Then, instead of parsing all project files, it _only_ parses the changed files or the files related to those changes. +Parsing projects can be time-consuming, especially for large projects with hundreds of models and thousands of files. To reduce the time it takes dbt to parse your project, use the partial parsing feature in dbt Cloud for your environment. When enabled, dbt Cloud uses the `partial_parse.msgpack` file to determine which files have changed (if any) since the project was last parsed, and then it parses _only_ the changed files and the files related to those changes. Partial parsing in dbt Cloud requires dbt version 1.4 or newer. The feature does have some known limitations. Refer to [Known limitations](/reference/parsing#known-limitations) to learn more about them. From 2221548f107578c7c86ffe22416e75ca97a463bf Mon Sep 17 00:00:00 2001 From: Ly Nguyen Date: Tue, 2 Jan 2024 10:32:25 -0800 Subject: [PATCH 6/6] Feedback --- .../{74-Dec-2023 => 73-Jan-2024}/partial-parsing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename website/docs/docs/dbt-versions/release-notes/{74-Dec-2023 => 73-Jan-2024}/partial-parsing.md (92%) diff --git a/website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md b/website/docs/docs/dbt-versions/release-notes/73-Jan-2024/partial-parsing.md similarity index 92% rename from website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md rename to website/docs/docs/dbt-versions/release-notes/73-Jan-2024/partial-parsing.md index eb224d5b845..c0236a30783 100644 --- a/website/docs/docs/dbt-versions/release-notes/74-Dec-2023/partial-parsing.md +++ b/website/docs/docs/dbt-versions/release-notes/73-Jan-2024/partial-parsing.md @@ -3,11 +3,11 @@ title: "New: Native support for partial parsing" description: "December 2023: For faster run times with your dbt invocations, configure dbt Cloud to parse only the changed files in your project." sidebar_label: "New: Native support for partial parsing" sidebar_position: 09 -tags: [Dec-2023] -date: 2023-12-14 +tags: [Jan-2024] +date: 2024-01-03 --- -By default, dbt parses all the files in your project at the beginning of every dbt invocation. Depending on the size of your project, this operation can take a long time to complete. With the new partial parsing feature in dbt Cloud, you can reduce the time it takes for dbt to parse your project. When enabled, dbt Cloud parses only the changed files in your project instead of parsing all the project files. As a result, your dbt invocations will take significantly less time to run. +By default, dbt parses all the files in your project at the beginning of every dbt invocation. Depending on the size of your project, this operation can take a long time to complete. With the new partial parsing feature in dbt Cloud, you can reduce the time it takes for dbt to parse your project. When enabled, dbt Cloud parses only the changed files in your project instead of parsing all the project files. As a result, your dbt invocations will take less time to run. To learn more, refer to [Partial parsing](/docs/deploy/deploy-environments#partial-parsing).