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