Genie spacesトラブルシューティング
このページではGenie spacesを作成および維持する際によくある問題を解決する方法について説明します。
誤解されているビジネス用語
ほとんどの企業やドメインには、ビジネス固有のイベントについて伝えるために使用する特定の略語があります。 たとえば、年を指す場合、常に会計年度を意味し、この会計年度は 1 月ではなく 2 月または 3 月に始まる場合があります。 Genieがこれらの質問に自然かつ正確に答えられるようにするには、ビジネス用語をGenieが理解できる単語や概念に明示的にマッピングする指示を含めます。 指示を提供するを参照してください。
テーブルまたは列の使用法が正しくありません
Genieが間違ったテーブルからデータを取得しようとしたり、間違った列で分析を実行しようとしたりする場合は、次のいずれかの方法でデータを調整できます。
- 明確かつ正確な説明を提供する : テーブルと関連するメタデータをチェックして、そこで使用されている用語が、ユーザーが送信した質問の用語と一致していることを確認します。そうでない場合は、説明を改良するか、表で使用されている用語を質問で使用されている用語にマッピングする指示を追加します。
- サンプルクエリの追加 : Genie が特定の質問に回答する方法を学習するために使用できるサンプル SQL クエリを提供します。 指示を提供するを参照してください。
- スペースからテーブルまたは列を削除します 。一部のテーブルには重複する列または概念が含まれている場合があり、その結果、Genie が応答にどのデータを使用するかを判断することが困難になります。可能であれば、不要なテーブルや列、重複するテーブルや列を削除します。基礎となるデータ オブジェクトを変更せずにGenie UI から列を非表示にするには、 「関連する列を非表示または表示する」を参照してください。
フィルタリングエラー
生成されたクエリには、特定の値に応じて結果をフィルター処理するためのWHERE句が含まれることがよくあります。Genie がデータ値を表示できない場合、間違った値をフィルターするようにWHERE句が設定される可能性があります。たとえば、テーブルで「CA」などの略語が使用されている場合、「California」という名前を一致させようとすることがあります。
このような状況では、関連する列で 値の例 と 値の辞書 が有効になっていることを確認します。関連するテーブルに新しいデータが追加された場合は、値を更新します。「より信頼性の高いGenieスペースのためのナレッジストアの構築」を参照してください。
不正な結合
Unity Catalogで外部キー参照が定義されていない場合、スペースで異なるテーブルを結合する方法がわからない可能性があります。
次のソリューションを 1 つ以上実装してみてください。
- 可能な場合は、 Unity Catalogで外部キー参照を定義します。 CONSTRAINT 句を参照してください。
- テーブルの外部キー関係がUnity Catalogで指定されていない場合は、 Genieのナレッジストアで結合関係を定義します。 この戦略は、自己結合などのより複雑な結合シナリオや、基礎となるテーブルを変更するための十分な権限がない場合に役立ちます。結合関係の定義を参照してください。
- 標準的な方法でテーブルを結合するサンプルクエリを提供します。
いずれの方法でも問題が解決しない場合は、テーブルをビューに事前結合し、代わりにそれをスペースの入力として使用します。
列のコメントがフォーリンテーブルから同期されない
Databricks 、フォーリンテーブルへの書き込みのメタデータ、データ、またはセマンティクスを管理しません。 ソース テーブルによっては、Databricks からコメントにアクセスできない場合があります。コメントを利用できるようにするには、Databricks では次のいずれかを実行することをお勧めします。
- Genieスペース UIで列のメタデータを編集します。 編集されたメタデータは、それが書き込まれるGenieスペースにのみ適用されます。 「列メタデータの編集」を参照してください。
- 連合テーブルの上にマテリアライズドビューを作成します。 マネージドテーブルと同様に、マテリアライズドビューでもコメントを追加および編集できます。 このビューは複数のGenie spacesで再利用できます。 フォーリンテーブルからマテリアライズドビューへのデータのロードの詳細については、 「マテリアライズドビューを使用してフォーリンテーブルからデータをロードする」を参照してください。 マテリアライズドビューの操作の詳細については、 「マテリアライズドビュー」を参照してください。
メトリクス計算の問題
メトリクスをコンピュートしてロールアップする方法は、任意に複雑になる可能性があり、スペースでは理解できない多くのビジネスの詳細が含まれる場合があります。 これにより、誤った報告が発生する可能性があります。
次のソリューションを 1 つ以上実装してみてください。
- メトリックが基本テーブルから集計される場合は、各ロールアップ値を計算するSQLクエリの例を提供します。
- メトリクスがコンピュート前に作成されており、集計テーブルに配置されている場合は、テーブルのコメントでこれを説明してください。 そのテーブル内のメトリクスをさらにロールアップできる場合は、各メトリクスに有効な集計を指定します。
- 生成しようとしているSQLが非常に複雑な場合は、スペースのメトリックをすでに集計したビューを作成してみてください。
時間ベースの計算が正しくない
明示的に追加のガイダンスを提供しない限り、Genie はデータに表されるタイムゾーンや分析を実行する必要があるタイムゾーンを必ずしも推測できるとは限りません。
元のソースタイムゾーン、変換関数、およびターゲットタイムゾーンの詳細を示すより明確な指示を含めます。次の例は、より信頼性の高いタイムゾーン変換のために一般的な手順を変更する方法を示しています。
-
常に時刻を特定のタイムゾーンに変換します 。この例では、ソースのタイムスタンプが
UTCであり、結果をAmerica/Los_Angelesタイムゾーンに変換すると想定します。次の内容を手順に追加し、<timezone-column>適切な列名に置き換えます。- 表内のタイムゾーンは
UTCです。 - 次の関数を使用してすべてのタイムゾーンを変換します:
convert_timezone('UTC', 'America/Los_Angeles', <timezone-column>)。
- 表内のタイムゾーンは
-
UTC 以外の日付時刻形式を UTC に変換する : ワークスペースのデフォルトのタイムゾーンが
UTCであるが、ロサンゼルスのユーザーが特定のレコード セットについて 今日 を参照する必要がある場合は、スペースの一般的な指示に以下を追加します。- 今日 を参照するには、
date(convert_timezone('UTC', 'America/Los_Angeles', current_timestamp()))を使用します。
- 今日 を参照するには、
詳細と構文については、convert_timezone関数を参照してください。
指示を無視する
コメントでテーブルと列について説明し、一般的な指示を提供したとしても、スペースではそれらがまだ正しく使用されていない可能性があります。
次の戦略を 1 つ以上試してください。
- テーブルを正しく使用するサンプルクエリを提供します。サンプルクエリは、スペースにデータの使用方法を教える場合に特に効果的です。
- Genieで無関係な列を非表示にします。 「関連する列を非表示または表示する」を参照してください。
- テーブルからビューを作成し、データのよりシンプルなビューを提供します。
- 指示を見直し、無関係な表や指示を削除してスペースを集中させます。
- 新しいチャットを開始してみてください。以前のやり取りは、特定のチャットでの Genie の応答に影響を与える可能性があります。ただし、新しいチャットを開始すると、新しい指示をテストするための空白の開始点が得られます。
パフォーマンスの問題
Genie が非常に長いクエリやテキスト応答を生成する必要がある場合、応答に長い時間がかかったり、思考フェーズでタイムアウトが発生したりすることがあります。
パフォーマンスを向上させるには、次の 1 つ以上のアクションを試してください。
- 信頼できるアセットまたはビューを使用して、複雑なクエリをカプセル化します。 AI/BI Genieスペースでの信頼できるアセットの使用を参照してください。
- 可能な限り、サンプル SQL クエリの長さを短くしてください。
- Genie が遅い応答や失敗する応答を生成し始めた場合は、新しいチャットを開始してください。
ミッションクリティカルな質問に対する信頼できない回答
信頼できるアセットを使用して、ユーザーが尋ねると予想される特定の質問に対して検証済みの回答を提供します。 AI/BI Genieスペースでの信頼できるアセットの使用を参照してください。
トークン制限の警告
トークンは、Genie が言語を処理して理解するために使用するテキストの基本単位です。Genieスペース内のテキスト指示とメタデータは、「オフライン」に変換されます。 スペースがトークン制限に近づくと、警告が表示されます。Genie はコンテキスト フィルタリングを使用して、質問に最も関連性が高いと思われるトークンを優先順位付けします。警告が表示されても応答は生成されるはずですが、重要なコンテキストがフィルター処理されると品質が低下する可能性があります。この制限を超えると、 Genieスペースでメッセージを送受信できなくなります。
トークン数を減らすには、次の方法を検討してください。
- 不要な列を削除する : テーブル内の不要な列は、トークンの使用に大きく影響する可能性があります。可能であれば、冗長なフィールドや必須でないフィールドを生のテーブルから除外するビューを作成します。Genieスペース内の不要な列を非表示にすることもできます。 「関連する列を非表示または表示する」を参照してください。
- 列の説明を合理化します 。列の説明は重要ですが、列名によってすでに伝えられている情報の重複は避けてください。たとえば、列の名前が
account_name場合、「アカウントの名前」のような説明は冗長になる可能性があるため省略できます。 - Genieスペースで列のメタデータを編集する :列のメタデータの説明を編集し、同義語を提供する方法については、「列のメタデータの編集」を参照してください。
- サンプル SQL クエリの削減 : さまざまな種類の質問に対応できるように、多様なサンプル SQL クエリを含めますが、重複または冗長な例は削除します。
- 指示を簡素化する : 指示が明確かつ簡潔であることを確認します。不必要な言葉は避けてください。
あなたのアカウントはクロスジオ処理に対応していません
Genie は、Databricks によって管理される指定サービスです。指定されたサービスは、Databricks Geos を使用してデータの保存場所を管理します。一部の地域では、ワークスペースと同じ Geo でデータを処理できません。ワークスペースがこれらのリージョンのいずれかにある場合は、アカウント管理者がクロスジオ処理を有効にする必要があります。
スループットの限界に達する
Databricks UI からGenieスペースにアクセスする場合、スループットは、すべてのGenieスペースにおいてワークスペースごとに 1 分あたり 20個の質問に制限されます。
Conversation APIの無料枠 (パブリック プレビュー) を使用してGenie spacesアクセスする場合、スループットは、すべてのGenie spacesごとに 1 分あたり 5 つの質問がベスト エフォートに制限されます。 「Genie API を使用して Genie をアプリケーションに統合する」を参照してください。