Apache Airflow 2.4からのAsset(旧Dataset)という機能がありますが、
この機能が何なのか? また、どんなユースケースがあるのかを考えたいと思います。

Assets Definitions | Apache Airflow
https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/assets.html

公式サイトの説明は以下の通り。

An Airflow asset is a logical grouping of data. Upstream producer tasks can update assets, and asset updates contribute to scheduling downstream consumer dags.

日本語に訳すと、次のような感じでしょうか。

Assetとはデータの論理グループです。上流のデータ生成タスクはAssetを更新し、Asset更新をきっかけに後続のデータ利用DAGがスケジューリングされます。

つまり、AssetはDFD(DataFlowDiagram)で言うところのデータストアにあたります。
Airflowのタスク = DFDのプロセスなので、
DFDのようにプロセス・データストアを使って依存関係を定義できそうですが、
Assetの後続でスケジューリングされるのはDAGなので、
そういう訳でもないです。
依然として、DAGはタスク(プロセス)間の依存関係を定義します。

また、Assetの更新をきっかけに後続DAGをスケジュールした場合は、
時間ベースのスケジュールと違い、
data_intervalがNoneになってしまうので、
集計処理の依存関係にも使いにくいです。

DFDをイメージしてしまったせいで混乱してしまったのですが、
Assetというものは、依存関係に絡む概念では無く、
データストアの更新イベント管理と考えるのが良さそうです。

Asset機能の主たるユースケースは、
「データが更新された履歴をAirflowのGUIから確認する」ことです。
付随して「データの更新をきっかけにDAGをスケジュールする」こともできる。
くらいの捉え方です。

AirflowのGUIから、以下を確認できるのは便利だと思います。

  • いつデータが更新された
  • どのタスクがそのデータを更新したか
  • どのDAGがそのデータを参照しているか

AssetでスケジュールするDAGは、
基本的に期間を持たない(最新の値だけあれば良い)処理になるので、
ユースケースとしては、そんなに多くないような気はします。
例えば、
「行動ログと商品マスタを参照してオススメ商品を生成する処理」を、
定期実行(CronTrigger) or 商品マスタ更新時(AssetTrigger)
でスケジュールするケースとか。

以上。