# dbt™ fundamentals

- [Getting started with dbt™](/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](/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](/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](/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](/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](/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](/app-help/concepts/dbt-fundamentals/configuring-your-dbt-project.md)
- [Setting up your dbt\_project.yml](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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](/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™](/app-help/concepts/dbt-fundamentals/running-dbt.md)
- [Mastering the dbt™ CLI](/app-help/concepts/dbt-fundamentals/running-dbt/mastering-the-dbt-cli.md)
- [Commands](/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](/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](/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](/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.
