[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】Databricks AppsでダッシュボードをPDF化して300店舗にメール配信する [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

店舗運営において、各店長へ個別のKPIレポートを毎日配信したいというニーズがあった。しかし、Databricksの標準機能では以下の制約により要件を満たせなかった。


  • AI/BIダッシュボードの購読機能では、宛先ごとに異なるフィルタを適用したPDFを生成できない。
  • ダッシュボードからPDFを直接取得できるAPIが存在しない。
  • ヘッドレスブラウザを用いたスクリーンショット方式は、環境維持や描画制御の面で運用負荷が高い。

// Approach

Databricks Appsを用いて、PDF生成エンドポイントを持つカスタムアプリケーションを構築した。ブラウザに依存せず、描画の整合性を保つために「同じ定義から2回レンダリングする」手法を採用している。


  • チャート定義(Vega-Liteスペック)をPython側で一元管理する。
  • Web画面の描画には vega-embed を使用する。
  • PDF生成には、Rust製の vl-convert でチャートをPNG化し、fpdf2 で組版を行う。
  • Databricks JobからサービスプリンシパルのOAuthトークンを用いてAppのAPIを叩き、SMTPで配信する。

// Result

Databricks Appsを「社内向けHTTP API基盤」として活用し、要件を満たす配信システムを実現した。


  • 画面とPDFのグラフが構造的に一致し、保守性が向上した。
  • ヘッドレスブラウザを使用しないため、環境依存のトラブルを回避できた。
  • 将来的なServerless Micro Appsの導入により、コスト最適化が期待できる。

Senior Engineer Insight

> ヘッドレスブラウザという「壊れやすい」手段を避け、描画エンジンを分離した判断は極めて実践的だ。特に、Appsの制約を考慮し vl-convert を選んだ点は、プラットフォーム特性を理解している。ただし、Appsの常時起動コストは無視できない。実運用では、将来的なServerless化を見据えた設計が求められる。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。