Knowledge
同じ質問でも、答えを出せる SQL の書き方は何通りもあります。しかし指標の定義、よく使う列、期待する表示のしかたは企業ごとに異なります。Knowledge はこうした慣習を保存し、毎回の対話で説明し直さなくても Mimir の出力が実際の期待に近づくようにする場所です。
上部の Knowledge タブに入ると、左側は Question-SQL pairs と Instructions の 2 つに分かれます。左上の Back to project でプロジェクト画面に戻ります。
Knowledge の内容は現在選択しているセマンティックモデルに属し、Project 全体で共有されるものではありません。POS 店舗セマンティックモデルの下で作成したナレッジは、CRM 会員セマンティックモデルに切り替えると表示されず、画面にはデータがないと表示されます。ナレッジを追加または確認する前に、上部で正しいセマンティックモデルが選択されているか確認してください。
Question-SQL pairs:SQL の書き方を Mimir に教える
1 組の pair は、1 つの質問とそれに対して組織が正しいと認める SQL です。保存しておくと、Mimir は似た質問に出会ったときに毎回自力で導出するのではなく、その書き方を参照します。
小売プロジェクトの店舗在庫を例にします。store_inventory テーブルには store_id / store_name と sku / sku_name の両方があり、on_hand と safety_stock も両方あります。不足分をどの 2 列の差で求めるか、店舗をコードで表示するか名前で表示するかは、データ自身が決められることではなくチームの取り決めです。その取り決めを 1 組の pair として書きます。
Question
哪些門市的聯名鈦保溫瓶低於安全庫存?
SQL statement
SELECT store_name, sku_name, on_hand, safety_stock, safety_stock - on_hand AS shortage
FROM retail_pos.store_inventory
WHERE sku = 'SKU-8801' AND on_hand < safety_stock
ORDER BY shortage DESC
この 1 組で 3 つのことが同時に決まります。不足分の計算は安全在庫から現在庫を引くこと、絞り込み条件は現在庫が安全在庫を下回ること、出力はコードではなく store_name と sku_name を使うことです。

追加するには右上の Add question-SQL pair をクリックします。Question 欄には質問そのものを入力し、SQL statement は構文ハイライトに対応したエディターです。入力後、Preview data で一度実行して結果が返るか確認し、Submit で保存します。

一覧の各行のメニューには Edit と Delete があります。削除時は確認が入り、復元できないことが警告されます。

Instructions:回答のしかたを定める
Instruction は照会の例ではなくルールを保存するもので、数値は正しいが表示のしかたが期待と違う場合に適しています。上の例を引き継いで、同じ取り決めを 1 本の通則として書けば、関連する質問ごとに SQL を用意する必要がなくなります。
回答門市庫存問題時,缺口一律定義為安全庫存減現有庫存,並以件為單位;
門市一律顯示 store_name 而不是 store_id,商品一律顯示 sku_name 而不是 sku。

追加するには Add an instruction をクリックします。フォームは 2 つの部分に分かれます。
- Apply instruction to:有効範囲を決めます。Global はすべての質問に適用し、Matched to relevant questions は似た質問を検出したときにのみ適用します。一覧の Matching questions 列はこの設定を示しており、上のルールは Global で保存したため Global (all questions) と表示されます。
- Instruction details:ルールの内容そのもので、上限は 3000 文字です。欄の説明には、Mimir が SQL を生成する際に守るべきルールを入力するよう記載されています。

範囲の選択には実際の違いがあります。上のような列表示の慣習は、どの店舗在庫の質問でも守るべきなので Global が適しています。特定の状況でしか成り立たないルール、たとえばあるキャンペーン期間だけの特別な計算方法は、Matched にしておかないと他の質問の答えに影響してしまいます。
どちらを使うか
2 つは影響する段階が異なります。Question-SQL pairs は照会の書き方に影響し、Instructions は回答のしかたに影響します。
- ある指標がいつも間違って計算される、または毎回違うテーブルを照会してしまう場合は、Question-SQL pairs を追加して正しい書き方を直接与えます。
- 数値は正しいが表示が期待と違う場合、たとえば名前ではなくコードが表示される、単位が揃っていない、いつも使う列が欠けているといった場合は、Instructions を追加します。
- 1 つの取り決めが計算と表示の両方に関わる場合は両方追加します。pair がこの質問を正しく照会させ、instruction が関連する他の質問にも同じルールを守らせます。