## What — API と job の違い - **コスト**:1実行あたりの単価だけ見るとjobの方が高くなりやすい(実行のたびにサーバーを新しく立ち上げる必要があるから)。なので、インジェスチョンのように「たまに走る重い処理」は、常時待機のAPIを持つよりjobの方がコスト的にも実装されやすい | 観点 | API | job | |---|---|---| | 起動方法 | HTTPリクエストで起動 | 実態はコマンド実行(今回はgcloudコマンド) | | 起動時間 | 一度立ち上げたら常に待機しているので即座に応答できる | 毎回サーバーを立ち上げるので起動に時間がかかる | | デバッグのしやすさ | 1つのサーバーにいろんなデータのインジェスチョンのログが混ざるので追いづらい | 実行ごとにサーバーが分かれるので、ログも実行単位で分かれて見やすい | ## How — 使い分け - 比較的小さいリクエストを大量に捌く場合(例:Xのようなサービス)→毎回サーバーを立ち上げると逆に遅いのでAPI - インジェスチョンのように時間がかかる処理→job実行 > [!success] 結論 > インジェスチョンのように時間がかかる重い処理は**job実行**で実装する。逆に、短くて大量のリクエストを捌くなら**API**。社内データ基盤のインジェスチョン方針はjob実行。 ## 関連 - [[データ基盤]] - [[Cloud StorageとBigQuery]]