# dbt™ fundamentals

- [Getting started with dbt™](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt.md): An introduction to dbt™ for beginners, covering core concepts, project structure,   models, sources, and testing to help you build reliable data transformations.
- [Introduction](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt/introduction.md): Learn how dbt™ transforms SQL-based analytics by centralizing data transformations in the warehouse. This guide covers dbt’s role in the ELT stack, its benefits, and how it improves data reliability,
- [Project Strucuture](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt/project-strucuture.md): Understand how dbt™ projects are structured for scalability and maintainability. This guide covers key components like models, sources, configuration files, and best practices for organizing SQL trans
- [Working with Sources](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt/working-with-sources.md): Learn how dbt™ sources help manage raw data tables efficiently. This guide covers defining sources in YAML, using the source() function, tracking dependencies, and ensuring data freshness.
- [Testing Data Quality](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt/testing-data-quality.md): Discover how dbt™ testing ensures data accuracy and reliability. Learn about built-in and custom tests, schema validations, referential integrity checks, and best practices for maintaining high-qualit
- [Models and Transformations](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/getting-started-with-dbt/models-and-transformations.md): Explore how dbt™ models streamline data transformations using SQL. Learn about model dependencies, ref(), materialization, and Jinja macros to build modular, reusable, and testable transformations.
- [Configuring your dbt™ Project](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project.md)
- [Setting up your dbt\_project.yml](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/setting-up-your-dbt_project.yml.md): Explains the crucial dbt\_project.yml configuration file, including its purpose, key components, and best practices for maintaining an organized and evolving dbt project.
- [Defining Your Sources in sources.yml](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/define-your-sources.yml.md): Covers how to properly define and use sources in dbt™ by configuring the    \`sources.yml\` file, referencing sources in models, and ensuring data quality.
- [Testing Source Freshness](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/testing-source-freshness.md): Learn how to configure and run source freshness checks in dbt™, ensuring your data is up-to-date and meets SLAs. Covers setup, optimization, and best practices for maintaining reliable data pipelines.
- [Unit Testing](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/unit-testing.md): Learn how to use unit tests in dbt™ to validate transformation logic, prevent errors,    and improve code reliability before deploying to production.
- [Working with Tags](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/working-with-tags-in-your-dbt-tm-project.md): Learn how to use tags in dbt™ to organize models, streamline execution, and improve workflow efficiency in analytics engineering.
- [Managing Seeds](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/managing-seeds.md): Learn how to use dbt seeds to manage static data. Discover best practices for creating, loading, configuring, and maintaining CSV files in your dbt project for seamless data integration.
- [Environment Management](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/environment-management.md): Learn how to set up and manage development, testing, and production environments in dbt projects.
- [Variables and Parameters](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/variables-and-parameters.md): Learn how to use variables and parameters in dbt to make your data   transformations configurable, flexible, and environment-aware.
- [Macros](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/macros.md): Learn how to use dbt™ macros to create reusable SQL logic and build    modular transformations. This guide covers creating macros, implementing   advanced techniques, and leveraging dbt packages to ex
- [Custom Tests](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/custom-tests.md): Learn how to extend dbt™'s testing capabilities with custom tests. This guide covers   creating singular and generic tests, implementing parameterized tests, and integrating   with dbt packages for ad
- [Hooks & Operational Tasks](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/hooks-and-operational-tasks.md): Learn how to use dbt™ hooks to automate operational tasks like granting permissions,   managing metadata, and implementing custom logic before or after model runs.
- [Packages](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project/packages.md): Learn how to extend dbt™'s functionality with packages. This guide covers installing, using, and creating packages to add reusable functionality like macros, models, and tests to your dbt project
- [Model Materializations](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations.md): Covers dbt's model materialization strategies, including table, view, incremental, and ephemeral, and how to configure materializations at the project and individual model level.
- [Table Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/table-materialization.md): Learn about table materializations in dbt, understand when to use them, and explore their advantages and limitations.
- [View​ Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/view-materialization.md): Learn about view materializations in dbt, understand when to use them, and explore their advantages and limitations.
- [Incremental Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization.md): Explains dbt's incremental modeling capabilities for updating only   new/modified data in large/complex transformations, covering different   strategies and best practices.
- [Using Merge for Incremental Models](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization/using-merge-for-incremental-models.md): Details the merge strategy for incremental models, which updates existing records   and inserts new ones using a database MERGE statement.
- [Using Delete+Insert for Incremental Models](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization/using-delete+insert-for-incremental-models.md): Covers the delete+insert method for incremental models, which replaces batches    of records by first deleting them and then inserting new versions.
- [Using Append for Incremental Models](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization/using-append-for-incremental-models.md): Explains the append-only method for incremental models, ideal for event logs   and immutable data where records are only added, never updated.
- [Using Microbatch for Incremental Models](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/incremental-materialization/using-microbatch-for-incremental-models.md): Explores the microbatch method for incremental models, designed for    processing very large datasets in smaller batches for improved reliability   and performance.
- [Ephemeral Materialization](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/ephemeral-materialization.md): Describes dbt's ephemeral materialization, which integrates models as CTEs in   dependent models, discussing advantages, disadvantages, and recommended use   cases.
- [Snapshots](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/model-materializations/snapshots.md): Covers dbt's snapshot functionality for tracking historical changes using Type 2 Slowly Changing Dimensions, including configuration, strategies, metadata, and best practices.
- [Running dbt™](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt.md)
- [Mastering the dbt™ CLI](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli.md)
- [Commands](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli/commands.md): Covers the key dbt CLI commands and their use cases, including run, test, source freshness, compile, documentation, and utility commands to control data transformations.
- [Methods](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli/methods.md): Learn how to use dbt selector methods to filter resources based on properties like tags, sources, paths, and configurations, improving the precision of dbt runs and tests.
- [Selector Methods](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli/selector-methods.md): Explore dbt selector methods to filter resources based on properties like tags, sources, and configurations, with wildcard support for precise targeting during data transformations.
- [Graph Operators](https://docs.paradime.io/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli/graph-operators.md): Learn how to use dbt graph operators with the --select flag to navigate your project's execution graph, targeting specific models and their dependencies for precise execution in data pipelines.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paradime.io/app-help/concepts/dbt-fundamentals.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
