DL
プロジェクト一覧
商用バックエンド開発事例

POS分析・データ出力

複数サービスの分析データ、大容量CSV出力、クラウド費用の制約に対応したPOS管理アプリケーション。

株式会社本気モードでの商用・本番業務

担当

バックエンド/フルスタック開発・アーキテクチャ貢献 — 管理アプリ、分析、データ出力

10〜20秒

一部の分析更新:従来約1〜2分

約300MB

メモリ使用量を抑えたCSV出力

約$1,300/月

当初のインフラ見積もり比での削減見込み

課題

複数サービスのデータを使う分析処理では、繰り返しの同期取得が依存関係と更新時間を増やしていました。

大容量CSVを全量メモリに保持せず生成する必要があり、出力の再利用と最新データ取得の両立も課題でした。

分析・出力の処理フロー

分析更新とCSV出力に、それぞれバッチ処理とバックグラウンド処理を適用しました。

01サービスデータ
02RabbitMQ連携
03ClickHouse分析
04Redis参照キャッシュ
05バックグラウンド再計算
06管理UI
  • 制約付きJSON-to-SQL層で分析要求を検証し、ClickHouse SQLへ変換します。
  • テナントと期間ごとに再計算を分割し、バッチ処理とロックで並行更新に対応します。
  • CSVは複数サービスからページ単位で取得し、進捗を表示しながらS3へストリーミング出力します。

主な技術判断

01

クエリの境界を明確にする

任意のSQLではなく、検証済みの分析要求をSQLに変換します。

02

同期依存を減らす

変更頻度の低い参照データをキャッシュし、一部の分析をバックグラウンドで再計算します。

03

鮮度の選択を明示する

同じ条件の出力を再利用しつつ、ユーザーが再生成を選べるようにします。

04

実際の稼働状況を確認する

既存EKS環境のEC2ワーカーノード2台への集約に貢献し、ログとバックアップのローテーションを導入しました。

成果と対象範囲

一部の分析更新時間を約1〜2分から10〜20秒へ短縮しました。全APIやプラットフォーム全体の応答時間を示す数値ではありません。

約300MBのCSVをメモリ使用量を抑えて生成しました。インフラ集約による継続費用の削減見込みは、当初のインフラ見積もり比で月約1,300米ドルです。請求実績の監査結果ではありません。

商用業務の公開範囲

公開範囲

CVに記載済みの技術判断と集約した成果を紹介しています。顧客データ、独自ソース、内部エンドポイント、詳細な配備設定は掲載していません。

検討・確認事項

  • →テナント境界と並行再計算を説明する
  • →ストリーミング出力とデータ鮮度の判断を説明する
  • →インフラ見積もりの負荷前提を確認する

技術スタック

C#ASP.NET CoreClickHouseRabbitMQRedisAWS S3CognitoEKSEC2