From 27dd12a48c5875cb226d2405c830ab701e75c88e Mon Sep 17 00:00:00 2001 From: "nikita.zverev2" Date: Mon, 22 Jun 2026 12:43:06 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20transformations=20docs=20hygiene=20?= =?UTF-8?q?=E2=80=94=20broken=20anchors,=20typos,=20migration=20leftovers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRDCT-354 - Fix typo 'suport' → 'support' in snowflake, python, R pages - Fix broken anchor #snowflake-loading-type → #loading-type-snowflake-and-bigquery - Fix broken link /transformations/workspace → /workspace/ - Convert 6 absolute help.keboola.com URLs to root-relative paths - Remove 41 Jekyll {: width="..." } attributes from dbt pages - Fix 4 wrong code fences (java → bash) in dbt/cli/cli.md - Remove Confluence class leftover in dbt/index.md Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../transformations/code-patterns/index.md | 20 +++++------ .../docs/transformations/dbt/cli/cli.md | 34 +++++++++---------- .../docs/transformations/dbt/cloud/cloud.md | 18 +++++----- .../docs/transformations/dbt/flows/flows.md | 6 ++-- src/content/docs/transformations/dbt/index.md | 2 +- .../dbt/transformation/transformation.md | 32 ++++++++--------- .../transformations/python-plain/index.md | 2 +- .../docs/transformations/r-plain/index.md | 4 +-- .../transformations/snowflake-plain/index.md | 4 +-- .../docs/transformations/variables/index.md | 2 +- 10 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/content/docs/transformations/code-patterns/index.md b/src/content/docs/transformations/code-patterns/index.md index 1349ae5cd..a4b6f6216 100644 --- a/src/content/docs/transformations/code-patterns/index.md +++ b/src/content/docs/transformations/code-patterns/index.md @@ -1,10 +1,10 @@ ---- -title: Code Patterns -slug: 'transformations/code-patterns' --- +title: Code Patterns +slug: 'transformations/code-patterns' +--- + + - - Code Pattern is a special type of [component](/components/) that - generates code based on [parameters](#parameters-form), and @@ -54,16 +54,16 @@ Follow the instructions at the top of the configuration page. The user interface of the configuration consists of the following: 1. Instructions on how to set up the code pattern correctly -2. [Table Input Mapping](https://help.keboola.com/transformations/mappings/#table-input-mapping) -3. [Table Output Mapping](https://help.keboola.com/transformations/mappings/#table-output-mapping) +2. [Table Input Mapping](/transformations/mappings/#table-input-mapping) +3. [Table Output Mapping](/transformations/mappings/#table-output-mapping) 4. [Parameters Form](#parameters-form) of the code pattern 5. **Generate Code** button 6. Read-only [generated code](#generated-code) ### Input and Output Mapping -Table [Input](https://help.keboola.com/transformations/mappings/#table-input-mapping) -and [Output](https://help.keboola.com/transformations/mappings/#table-output-mapping) Mapping can be created either +Table [Input](/transformations/mappings/#table-input-mapping) +and [Output](/transformations/mappings/#table-output-mapping) Mapping can be created either - **manually** as in ordinary transformations, or - **automatically**, generated together with the code if the component supports it. @@ -90,5 +90,5 @@ on the code pattern component with the actual parameters. The result is then sav ![Screenshot -- Generated Code](/transformations/code-patterns/overview-6-code.png) -After the code has been generated, you can [run the job](https://help.keboola.com/management/jobs/#running-jobs) the standard way. +After the code has been generated, you can [run the job](/management/jobs/#running-jobs) the standard way. diff --git a/src/content/docs/transformations/dbt/cli/cli.md b/src/content/docs/transformations/dbt/cli/cli.md index a962f8750..e281c11dd 100644 --- a/src/content/docs/transformations/dbt/cli/cli.md +++ b/src/content/docs/transformations/dbt/cli/cli.md @@ -12,7 +12,7 @@ Let's set up the local development with [Keboola CLI](https://developers.keboola It is easy on Mac with [homebrew](https://docs.brew.sh/Installation.html) support (other platforms covered in the [documentation](https://developers.keboola.com/cli/installation/)): -```java +```bash brew tap keboola/keboola-cli brew install keboola-cli kbc --version @@ -20,12 +20,12 @@ kbc --version If you already have CLI, make sure you have the most updated version: -```java +```bash brew upgrade keboola-cli kbc --version ``` -![](imgs/2772467715.png){: width="100%" } +![](imgs/2772467715.png) **You will then gain access to dbt-related commands within Keboola CLI!** @@ -53,26 +53,26 @@ The user is in the folder with the cloned dbt project and can run the following ### Example -![](imgs/2770010115.jpg){: width="100%" } +![](imgs/2770010115.jpg) Store credentials to your zsh env profile (or your respective environment): --------------------------------------------------------------------------- The file is located (Unix) in `~/.zshrc` -![](imgs/2770206732.png){: width="100%" } +![](imgs/2770206732.png) Then you can run dbt locally against the project storage, safely develop and test your code. As part of the init command, CLI will create all sources from storage buckets. A storage bucket is a source file containing tables: -![](imgs/2777448699.png){: width="100%" } +![](imgs/2777448699.png) *Note: Please note that `_timestamp` is automatically filled, alongside `primary keys` and corresponding `tests` for primary keys (`unique` and `not_null` tests).* ### Run Test Debug -```java +```bash dbt debug -t beer_demo --profiles-dir . ``` @@ -84,29 +84,29 @@ dbt debug -t beer_demo --profiles-dir . * We are using local profiles; they are using environmental variables stored before. -![](imgs/2769649699.png){: width="100%" } +![](imgs/2769649699.png) You should see green in all steps: -![](imgs/2770239505.png){: width="100%" } +![](imgs/2770239505.png) dbt Run ------- For the script alteration, the only check/change you have to make with off-the-shelf scripts is to alter source definitions to match sources: -![](imgs/2769879073.png){: width="100%" } +![](imgs/2769879073.png) -![](imgs/2770042889.png){: width="100%" } +![](imgs/2770042889.png) To execute the dbt: -```java +```bash dbt run -t beer_demo --profiles-dir . ``` -![](imgs/2769879081.png){: width="100%" } +![](imgs/2769879081.png) ### Other Commands for Future Use @@ -124,7 +124,7 @@ dbt run -t beer_demo --profiles-dir . * **Example** (non-interactive mode): -![](imgs/2770010121.jpg){: width="100%" } +![](imgs/2770010121.jpg) `kbc dbt generate sources` -------------------------- @@ -135,7 +135,7 @@ dbt run -t beer_demo --profiles-dir . * **Example** (non-interactive mode) - ![](imgs/2770010127.jpg){: width="100%" } + ![](imgs/2770010127.jpg) `kbc dbt generate env` ---------------------- @@ -146,7 +146,7 @@ dbt run -t beer_demo --profiles-dir . * **Example** - ![](imgs/2770010133.jpg ){: width="100%" } + ![](imgs/2770010133.jpg ) ### Workspaces Support @@ -161,4 +161,4 @@ dbt run -t beer_demo --profiles-dir . * **Example** (non-interactive mode) - ![](imgs/2770010139.jpg){: width="100%" } + ![](imgs/2770010139.jpg) diff --git a/src/content/docs/transformations/dbt/cloud/cloud.md b/src/content/docs/transformations/dbt/cloud/cloud.md index 730f6a945..e1ec42a2d 100644 --- a/src/content/docs/transformations/dbt/cloud/cloud.md +++ b/src/content/docs/transformations/dbt/cloud/cloud.md @@ -5,7 +5,7 @@ slug: 'transformations/dbt/cloud' dbt Cloud is supported via dedicated components. You can find them in the menu section **Components**: -![](imgs/2777448719.png){: width="100%" } +![](imgs/2777448719.png) * `kds-team.ex-dbt-cloud-api` for extracting data from dbt Cloud API @@ -14,31 +14,31 @@ dbt Cloud is supported via dedicated components. You can find them in the menu s ## dbt Cloud Trigger -![](imgs/2776563988.png){: width="100%" } +![](imgs/2776563988.png) The component configuration is pretty straightforward. You must authorize the component by providing your `Account ID`, `Job ID`, and `API key`. The component generates a status table called `dbt_cloud_trigger` storing the job trigger API response: -![](imgs/2776269020.png){: width="100%" } +![](imgs/2776269020.png) When **Wait for result** is selected, the component polls the status until the job ends. The component has a default wait time limit that can be optionally set to a different time. When the option **Wait for result** is used, the component extracts artifacts, stores them in the file storage, and additionally, produces a job result API call table: -![](imgs/2776564000.png){: width="100%" } +![](imgs/2776564000.png) Both tables can be found in the storage, or accessed directly from the job result: -![](imgs/2777710848.png){: width="100%" } +![](imgs/2777710848.png) Artifacts can be found in the storage - files - search by tag: -![](imgs/2777448746.png){: width="100%" } +![](imgs/2777448746.png) Search by tag (component type or configuration ID): `tags:"componentId-kds-team.app-dbt-cloud-job-trigger"` -![](imgs/2776269036.png){: width="100%" } +![](imgs/2776269036.png) **Tip:**: Those files can be also easily [retrieved externally via the API](https://api.keboola.com/?service=storage#get-/v2/storage/branch/-branchId-/files) or from an integrated Jupyter workspace for further analysis. @@ -61,10 +61,10 @@ The purpose of this data source connector is to extract and store the [dbt Cloud To configure the source connector, enter the API token and select a default configuration: -![](imgs/2777448752.png){: width="100%" } +![](imgs/2777448752.png) You can access the data from Storage, or directly from the job detail screen: -![](imgs/2777710857.png){: width="100%" } +![](imgs/2777710857.png) ***Note:** The data source connector utilizes our powerful Generic Extractor. In case you want to customize the extraction, select just some endpoints, etc. You can switch to the JSON schema and edit the configuration manually.* diff --git a/src/content/docs/transformations/dbt/flows/flows.md b/src/content/docs/transformations/dbt/flows/flows.md index c01de54ad..871537299 100644 --- a/src/content/docs/transformations/dbt/flows/flows.md +++ b/src/content/docs/transformations/dbt/flows/flows.md @@ -5,8 +5,8 @@ slug: 'transformations/dbt/flows' All dbt related components behave in the same way as any other component in Keboola does. They can be added to the flows to define orchestrated data pipelines, add schedule and notifications: -![](imgs/2776269000.jpeg){: width="100%" } +![](imgs/2776269000.jpeg) -![](imgs/2776269006.png){: width="100%" } +![](imgs/2776269006.png) -![](imgs/2776269012.png){: width="100%" } +![](imgs/2776269012.png) diff --git a/src/content/docs/transformations/dbt/index.md b/src/content/docs/transformations/dbt/index.md index ffd4f0022..d7fa79d81 100644 --- a/src/content/docs/transformations/dbt/index.md +++ b/src/content/docs/transformations/dbt/index.md @@ -71,7 +71,7 @@ All components can be used in the flows, thus orchestrated with data pipeline de Customers use their own external infrastructure and development environments

- +

Development is provided by dbt Cloud and the execution is defined by users on their own infrastructure

diff --git a/src/content/docs/transformations/dbt/transformation/transformation.md b/src/content/docs/transformations/dbt/transformation/transformation.md index 13906aded..f4b779262 100644 --- a/src/content/docs/transformations/dbt/transformation/transformation.md +++ b/src/content/docs/transformations/dbt/transformation/transformation.md @@ -5,7 +5,7 @@ slug: 'transformations/dbt/transformation' ## Configuration -![](imgs/dbt-transformation-overview.webp){: width="100%" } +![](imgs/dbt-transformation-overview.webp) ### Database Connection @@ -15,21 +15,21 @@ slug: 'transformations/dbt/transformation' The required connection parameters for your remote data warehouse vary depending on the selected backend type. Use the **Run Debug** option in the right panel to validate the connection using the entered parameters. -![](imgs/dbt-transformation-db-connection.webp){: width="100%" } +![](imgs/dbt-transformation-db-connection.webp) ### dbt Project Repository First, you must define a repository by specifying the URL (ending with GIT) and entering the access credentials if required. -![](imgs/2776563898.png){: width="100%" } +![](imgs/2776563898.png) After saving a configuration, click **Load Branches** to select the desired branch. Don't forget to click **Save**. -![](imgs/2776563904.png){: width="100%" } +![](imgs/2776563904.png) ### Execution Steps -![](imgs/2740748169.png){: width="100%" } +![](imgs/2740748169.png) Select the desired execution steps, then edit or rearrange them as needed. @@ -41,11 +41,11 @@ For example, you can use the following command: dbt run --select "path:marts/finance,tag:nightly,config.materialized:table" --full-refresh ``` -![](imgs/dbt-transformation-step-edit.webp){: width="100%" } +![](imgs/dbt-transformation-step-edit.webp) ### Freshness If you run the `dbt source freshness` step in your project, you can set time limits for displaying warnings and errors. Both time limits can be enabled and configured independently. -![](imgs/2740735193.png){: width="100%" } +![](imgs/2740735193.png) ### Artifacts Artifacts generated by dbt (all steps except `dbt deps` and `dbt debug`) are automatically stored in Keboola Storage. Depending on the configuration, they are saved either as a compressed ZIP file or as individual files. @@ -56,13 +56,13 @@ Artifacts generated by dbt (all steps except `dbt deps` and `dbt debug`) are aut This is a specific configuration needed for the Keboola dbt component. Define which tables will be imported within storage. This configuration uses a standard output mapping UI element with configuration options, such as incremental or full load, filters, etc. -![](imgs/2776563928.png){: width="100%" } +![](imgs/2776563928.png) ## Running transformation Before running the dbt transformation, you can configure additional parameters (such as the dbt Core version, backend size, and number of threads), run debug command, or view generated project documentation. -![](imgs/dbt-transformation-run.webp){: width="50%" } +![](imgs/dbt-transformation-run.webp) ### Run Debug @@ -70,7 +70,7 @@ To verify that your credentials and project setup are correct, you can run a deb The **Run debug** button will create a separate job with standard logging, exposing the results of the dbt debug command: -![](imgs/2776563946.png){: width="100%" } +![](imgs/2776563946.png) ## dbt Project Documentation @@ -78,7 +78,7 @@ When you press **dbt Project Documentation**, the job will generate the necessar Clicking the button synchronously generates the documentation in a popup: -![](imgs/2776269049.png){: width="100%" } +![](imgs/2776269049.png) ## Manually Triggering dbt Transformation @@ -101,19 +101,19 @@ When you manually run a dbt transformation, a new job is triggered with standard * Record of producing and storing artifacts -![](imgs/2776563952.png){: width="100%" } +![](imgs/2776563952.png) You can also access all configuration jobs from the configuration screen and the **Jobs** menu section. -![](imgs/2776563958.png){: width="100%" } +![](imgs/2776563958.png) -![](imgs/2776563964.png){: width="50%" } +![](imgs/2776563964.png) ## Discover The **Discover** tab is designed to provide more information about the run. Keboola plans to expand this tab to offer additional insights. Currently, it provides the timeline designed to visually display the duration of each model build. -![](imgs/2777448784.png){: width="100%" } +![](imgs/2777448784.png) ## Profiles and Target @@ -139,7 +139,7 @@ default: ***Note:** The values of environment variables are provided automatically based on the database connection settings or the use of Keboola Storage.* If needed, you can use a `profiles.yml` file committed in your dbt project repository for Remote DWH components and set the target according to your requirements. In this case, you must use the environment variables mentioned above in the generated `profiles.yml` and specify the target in each executed step. Your committed `profiles.yml` file will be merged with the automatically generated version. -![](imgs/2740663016.png){: width="100%" } +![](imgs/2740663016.png) :::caution Important: Never commit sensitive information such as access credentials or passwords to the repository. diff --git a/src/content/docs/transformations/python-plain/index.md b/src/content/docs/transformations/python-plain/index.md index 4650b2d9e..61e32894a 100644 --- a/src/content/docs/transformations/python-plain/index.md +++ b/src/content/docs/transformations/python-plain/index.md @@ -84,7 +84,7 @@ it immediately. The following two examples show two ways of reading and manipula ## Dynamic Backends If you have a large amount of data in databases and complex queries, your transformation might run for a couple of hours. -To speed it up, you can change the backend size in the configuration. Python transformations suport the following sizes: +To speed it up, you can change the backend size in the configuration. Python transformations support the following sizes: - XSmall - Small _(default)_ - Medium diff --git a/src/content/docs/transformations/r-plain/index.md b/src/content/docs/transformations/r-plain/index.md index 3458e3844..b4fd5a2b1 100644 --- a/src/content/docs/transformations/r-plain/index.md +++ b/src/content/docs/transformations/r-plain/index.md @@ -92,7 +92,7 @@ warning = function(w) {} ## Dynamic Backends If you have a large amount of data in databases and complex queries, your transformation might run for a couple of hours. -To speed it up, you can change the backend size in the configuration. R transformations suport the following sizes: +To speed it up, you can change the backend size in the configuration. R transformations support the following sizes: - XSmall - Small _(default)_ - Medium @@ -103,7 +103,7 @@ Scaling up the backend size allocates more resources to speed up your transforma ***Note:** Dynamic backends are not available to you if you are on the [Free Plan (Pay As You Go)](/management/payg-project/).* ## Development Tutorial -We recommend that you create an [R Workspace](/transformations/workspace) with the same +We recommend that you create an [R Workspace](/workspace/) with the same input mapping your transformation will use. This is the fastest way to develop your transformation code. **Tip:** Limit the number of rows you read in from the CSV files: diff --git a/src/content/docs/transformations/snowflake-plain/index.md b/src/content/docs/transformations/snowflake-plain/index.md index 0d85bbf48..90733d0df 100644 --- a/src/content/docs/transformations/snowflake-plain/index.md +++ b/src/content/docs/transformations/snowflake-plain/index.md @@ -24,7 +24,7 @@ Snowflake is a cloud database and, as such, brings continuous updates and behavi interested in those changes, please follow the official [Snowflake release notes](https://docs.snowflake.com/en/release-notes/overview). When loading data to a Snowflake transformation, beware that there are two different -methods: [copy and clone](/transformations/mappings/#snowflake-loading-type). +methods: [copy and clone](/transformations/mappings/#loading-type-snowflake-and-bigquery). ## Aborting Transformation Execution In some cases, you may need to abort the transformation execution and exit with an error message. @@ -53,7 +53,7 @@ of the variable as a user error, `Transformation aborted: Integrity check failed ## Dynamic Backends If you have a large amount of data in databases and complex queries, your transformation might run for a couple of hours. -To speed it up, you can change the backend size in the configuration. Snowflake transformations suport the following sizes: +To speed it up, you can change the backend size in the configuration. Snowflake transformations support the following sizes: - XSmall - Small _(default)_ - Medium diff --git a/src/content/docs/transformations/variables/index.md b/src/content/docs/transformations/variables/index.md index 699d2b65b..70f4537a2 100644 --- a/src/content/docs/transformations/variables/index.md +++ b/src/content/docs/transformations/variables/index.md @@ -171,7 +171,7 @@ CREATE OR REPLACE TABLE "result" AS SELECT *, "second" * 42 AS "larger_second" FROM "source"; ``` -Because of [Clone mapping](/transformations/mappings/#snowflake-loading-type), you have +Because of [Clone mapping](/transformations/mappings/#loading-type-snowflake-and-bigquery), you have to drop the `_timestamp` column from the source by executing this query: ```sql