// CASE STUDY — 05

経営ダッシュボードと、使うほど育つAI分析
— Snowflake × AWS でつなぐ

複数の事業と多くの拠点を持つ企業の、月次の実績と予算を1つの画面に集めました。Snowflake の数字を AWS 上で毎朝つくり直して配り、文章で聞けば Amazon Bedrock がSQLを組み立てて答えます。役に立った回答は管理者が確かめてから教師データに加え、翌朝からAIの手本になります。

SnowflakeAWS LambdaAmazon BedrockRAG経営ダッシュボード
経営ダッシュボードの概要画面のデモ。営業収益と営業利益の見出し、月次の実績と予算、事業別の予算差、拠点別ランキング、営業収益から営業利益までのウォーターフォール
概要 — 実績と予算、事業別の予算差、拠点別の順位、営業収益から営業利益までの内訳を1枚に(紹介用のデモ画面・数値は架空) / 横にスワイプできます

社名・業種・事業名は伏せています。このページの画面は、実際の機能をもとに紹介用に作り直したデモで、見た目は納品した画面と異なります。数値・事業名・拠点名はすべて架空です。

/ 01

やったこと

「見えるようにする」より先に、数字の読み方を決めることに時間を使いました。定義が揺れている画面は、どれだけきれいでも会議では使われません。

  1. 数字の定義を、先に確定した。会計の科目マスタと組織マスタをたどり、「この事業のこの利益は、どの科目をどう足したものか」を1つずつ決めました。決められないものは埋めずに、決まっていないことが画面に出るようにしています。
  2. 見方を1つの画面に集めた。全体、予実対比とPL明細、事業別、拠点別、AI分析。年度・事業・拠点の絞り込みはすべてのタブで連動し、実績/予算/前年の比較基準も1か所で切り替えます。
  3. Snowflake と AWS をつないだ。Snowflake の数字を AWS Lambda が毎朝読み取って集計し、S3 と CloudFront で配ります。画面を開くたびにデータベースへ問い合わせないので、待たされません。ログインは Cognito で、管理画面は管理者にだけ出ます。
  4. 文章のまま聞けるようにした。質問は ECS Fargate のAPIが受け、Amazon Bedrock がSQLを組み立てて Snowflake に照会し、表やグラフで返します。組み立ての手本は Bedrock のナレッジベースから探します。
  5. 使うほど育つようにした。役に立った回答に 👍 を押し、管理者が確かめて採用すると、翌朝からAIの手本になります(03 で詳しく)。
  6. 毎朝つくり直し、止まったら気づける。データは毎朝自動で作り直します。別の経路でも同じものを作って突き合わせ、食い違えば通知が飛びます。元は人が入力する会計の数字なので、「止まっている」と「動いていないだけ」を分けて見ています。
/ 02

アーキテクチャ — Snowflake × AWS

経路は2つです。ひとつは、Snowflake の数字を毎朝つくり直して配る経路。もうひとつは、文章でその場で聞く経路。どちらも Snowflake の同じ定義(セマンティックビュー)を見ているので、画面とAIの答えが食い違いません。

// ARCHITECTURE — Snowflake × AWS Snowflake AWS 公開View 会計・予算の実績 セマンティックビュー 集計の決まりを定義 画面もAIも 同じ定義を見る 毎朝つくり直して配る経路 その場で 聞く経路 EventBridge 毎朝 起動 Lambda 読み取って集計 S3 画面用のデータ CloudFront 配信 と /api Cognito ログイン ECS Fargate 質問を受けるAPI Amazon Bedrock 質問 → SQL ナレッジベース Bedrock・手本を検索 DynamoDB 利用ログ・👍・採用 BROWSER 利用者 経営・現場 管理者 毎朝 読み取り 配信 質問 /api SQLで照会 手本 記録 上は毎朝つくり直す実績、下はその場で聞く分析。どちらも Snowflake の同じ定義を見ている。
緑=毎朝の配信 赤=その場で聞く 黄=教師データ / 横にスワイプできます

※ AI分析のAPI、利用ログ(DynamoDB)、ナレッジベースはお客様側の開発チームが構築し、当社と分担しています。当社は、数字の定義、Snowflake からの毎朝の集計と配信、画面、教師データの流れ(👍 ボタン、管理画面、毎朝の書き出し)を担当しました。

/ 03

AI分析の教師データのつくり方

文章で聞くAIは、入れた日のままでは、その会社の言葉づかいや集計の癖を知りません。そこで、使う人が「役に立った」と押した回答を、管理者が確かめてから手本に加える流れを作りました。手本は毎朝ナレッジベースに取り込まれ、似た質問が来たときに Bedrock が参照します。

// TEACHING DATA — 👍 が翌朝の手本になるまで 01 利用者 質問する 文章で聞くと、グラフ・ 表とSQLが返る ECS Fargate / Bedrock 02 利用者 👍 を押す 質問とSQLを記録し、 そのときの結果も控える DynamoDB / S3 03 管理者 確かめる 管理画面で結果とSQL を見て、集計を確かめる Cognito(管理者だけ) 04 管理者 採用する 「教師データに採用」を 押す DynamoDB 05 自動 翌朝から手本に 毎朝、採用分を書き出し、 ナレッジベースへ取り込む Lambda / S3 / ナレッジベース 次に似た質問が来たら、Bedrock がナレッジベースから手本を探して SQL を組み立てる
青=利用者 茶=管理者 緑=自動 / 横にスワイプできます

👍 だけでは手本にしない

押されただけで手本にすると、もっともらしくても集計を間違えた回答が混ざります。誤った手本はAIの精度を下げるので、採用は管理者だけができるようにし、SQLと数字を見てから決めます。

採用するもの・しないもの

採用するのは、集計が正しく、よく聞かれそうな質問(事業別の営業利益率、拠点別の売上上位、月別の推移など)。迷ったら、SQLの結果をダッシュボードの数字と突き合わせてから決めます。

押したときの結果も残す

👍 の記録だけでは、あとから正しかったか判断できません。押した瞬間のグラフ・表の結果を控えとして S3 に残し、管理画面の「結果を見る」で確かめられるようにしました。

集計の決まりは Snowflake に1か所

どの表をどう結び、どの科目を足して「営業利益」と呼ぶか。この決まりを Snowflake のセマンティックビューに置き、画面とAIが同じ定義を見ています。定義が変わったときは、毎朝の確認で気づいて画面を合わせます。

AI分析画面のデモ。文章の質問に対して、生成されたSQL、事業別の営業利益率のグラフ、役に立ったボタンが表示される
① ② AI分析 — 文章で聞くとSQLとグラフが返る。役に立ったら 👍(デモ画面・数値は架空) / 横にスワイプできます
管理画面の教師データ一覧のデモ。👍が付いた回答の一覧と、選んだ回答のSQL、押したときの結果、採用ボタン
③ ④ 管理 › 教師データ — SQLと押したときの結果を見て、採用する(デモ画面) / 横にスワイプできます
Contact

データ活用の伴走支援、
始めませんか。

BI導入・データ基盤構築・AI活用の定着まで。まずはお気軽にご相談ください。

お問い合わせ
記事URLをコピーしました