
dbt - 高度な機能
Jinjaマクロ、カスタムテスト、パッケージ、フック、スナップショット (SCD)、incremental models、dbt Cloud、CI/CD
20 面接問題·
Senior
1dbtにおいて、Jinjaマクロの主な目的は何ですか?
1
dbtにおいて、Jinjaマクロの主な目的は何ですか?
回答
Jinjaマクロは、複数のdbtモデルでコードを再利用できるようにします。パラメータを受け取り、動的に生成されたSQLコードを返す関数のように動作します。これによりコードの重複を回避し、プロジェクト全体で複雑な変換を保守しやすくなります。
2ファイル内で再利用可能なdbtマクロを定義するにはどうすればよいですか?
2
ファイル内で再利用可能なdbtマクロを定義するにはどうすればよいですか?
回答
dbtマクロは、macrosフォルダ内の.sqlファイルでJinjaのmacro/endmacro構文を使用して定義されます。マクロ名はmacroキーワードの後に指定し、パラメータを括弧で囲みます。このマクロはプロジェクト内の任意のモデルから呼び出すことができます。
3dbtスナップショットの「timestamp」戦略と「check」戦略の違いは何ですか?
3
dbtスナップショットの「timestamp」戦略と「check」戦略の違いは何ですか?
回答
timestamp戦略は、変更を検出するために更新日付列(updated_at)を比較します。1つの列のみを比較するため、パフォーマンスが高くなります。check戦略は、指定された列(check_cols)の値を比較して変更を検出します。信頼できるtimestamp列がない場合に便利です。
4
dbtがスナップショットを作成する際に自動的に追加される列はどれですか?
5
dbtで「merge」戦略を使用してincrementalモデルを構成するにはどうすればよいですか?
+17 面接問題
その他のData Engineering面接トピック
Linux & Shell - 基礎
Junior
20問Git & GitHub - 基礎
Junior
20問データエンジニアリングのための高度なPython
Junior
25問Docker - 基礎
Junior
25問Google Cloud Platform - 基礎
Junior
20問CI/CDとコード品質
Mid-Level
20問Docker Compose
Mid-Level
20問FastAPI - データAPI
Mid-Level
20問Data Engineering向けの高度なSQL
Mid-Level
20問Data Lake - アーキテクチャと取り込み
Mid-Level
20問データエンジニアリングのためのBigQuery
Mid-Level
20問PostgreSQL - 管理
Mid-Level
20問Data EngineeringのためのData Modeling
Mid-Level
20問Fivetran & Airbyte - データ取り込み
Mid-Level
20問dbt - 基礎
Mid-Level
20問Apache Airflow - 基礎
Mid-Level
20問Kubernetes - 基礎
Mid-Level
20問ETL / ELT / ETLT パターン
Senior
20問Apache Airflow - 上級
Senior
20問Airflow + dbt - パイプラインオーケストレーション
Senior
20問PySpark - 大規模処理
Senior
20問Google Pub/Sub - データストリーミング
Senior
20問Apache Beam & Dataflow
Senior
20問Kubernetes - 本番環境とスケーリング
Senior
20問Terraform - Infrastructure as Code
Senior
20問NoSQLデータベース
Senior
20問モダンなData Architecture
Senior
20問モニタリングとオブザーバビリティ
Senior
20問IAMとデータセキュリティ
Senior
20問