# dbt - 高度な機能 (Data Engineering) > Jinjaマクロ、カスタムテスト、パッケージ、フック、スナップショット (SCD)、incremental models、dbt Cloud、CI/CD - 20 面接問題 - Senior - [面接問題: Data Engineering](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions.md) ## 1. dbtにおいて、Jinjaマクロの主な目的は何ですか? **回答** Jinjaマクロは、複数のdbtモデルでコードを再利用できるようにします。パラメータを受け取り、動的に生成されたSQLコードを返す関数のように動作します。これによりコードの重複を回避し、プロジェクト全体で複雑な変換を保守しやすくなります。 ## 2. ファイル内で再利用可能なdbtマクロを定義するにはどうすればよいですか? **回答** dbtマクロは、macrosフォルダ内の.sqlファイルでJinjaのmacro/endmacro構文を使用して定義されます。マクロ名はmacroキーワードの後に指定し、パラメータを括弧で囲みます。このマクロはプロジェクト内の任意のモデルから呼び出すことができます。 ## 3. dbtスナップショットの「timestamp」戦略と「check」戦略の違いは何ですか? **回答** timestamp戦略は、変更を検出するために更新日付列(updated_at)を比較します。1つの列のみを比較するため、パフォーマンスが高くなります。check戦略は、指定された列(check_cols)の値を比較して変更を検出します。信頼できるtimestamp列がない場合に便利です。 ## さらに17問利用可能 - dbtがスナップショットを作成する際に自動的に追加される列はどれですか? - dbtで「merge」戦略を使用してincrementalモデルを構成するにはどうすればよいですか? 無料で登録: https://sharpskill.dev/ja/login ## その他のData Engineering面接トピック - [Linux & Shell - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/linux-shell-basics.md): 20問, Junior - [Git & GitHub - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/git-github-fundamentals.md): 20問, Junior - [データエンジニアリングのための高度なPython](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/python-advanced-de.md): 25問, Junior - [Docker - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/docker-fundamentals.md): 25問, Junior - [Google Cloud Platform - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/gcp-fundamentals.md): 20問, Junior - [CI/CDとコード品質](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/ci-cd-code-quality.md): 20問, Mid-Level - [Docker Compose](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/docker-compose.md): 20問, Mid-Level - [FastAPI - データAPI](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/fastapi.md): 20問, Mid-Level - [Data Engineering向けの高度なSQL](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/sql-advanced-de.md): 20問, Mid-Level - [Data Lake - アーキテクチャと取り込み](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/data-lake.md): 20問, Mid-Level - [データエンジニアリングのためのBigQuery](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/bigquery-de.md): 20問, Mid-Level - [PostgreSQL - 管理](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/postgresql-admin.md): 20問, Mid-Level - [Data EngineeringのためのData Modeling](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/data-modeling-de.md): 20問, Mid-Level - [Fivetran & Airbyte - データ取り込み](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/fivetran-airbyte.md): 20問, Mid-Level - [dbt - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/dbt-fundamentals-de.md): 20問, Mid-Level - [Apache Airflow - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/airflow-fundamentals.md): 20問, Mid-Level - [Kubernetes - 基礎](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/kubernetes-fundamentals.md): 20問, Mid-Level - [ETL / ELT / ETLT パターン](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/etl-elt-patterns.md): 20問, Senior - [Apache Airflow - 上級](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/airflow-advanced.md): 20問, Senior - [Airflow + dbt - パイプラインオーケストレーション](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/airflow-dbt-integration.md): 20問, Senior - [PySpark - 大規模処理](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/pyspark.md): 20問, Senior - [Google Pub/Sub - データストリーミング](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/pubsub-streaming.md): 20問, Senior - [Apache Beam & Dataflow](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/apache-beam-dataflow.md): 20問, Senior - [Kubernetes - 本番環境とスケーリング](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/kubernetes-advanced.md): 20問, Senior - [Terraform - Infrastructure as Code](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/terraform.md): 20問, Senior - [NoSQLデータベース](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/nosql-databases.md): 20問, Senior - [モダンなData Architecture](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/data-architecture.md): 20問, Senior - [モニタリングとオブザーバビリティ](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/monitoring-observability.md): 20問, Senior - [IAMとデータセキュリティ](https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/iam-security-de.md): 20問, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ja/technologies/data-engineering/interview-questions/dbt-advanced-de