機械翻訳について

カスタム整合性チェック・ルールの使用

このトピックでは、カスタム整合性チェック・ルールおよびセマンティック・モデルに対するルールの作成方法について説明します。

カスタム整合性チェック・ルールについて

セマンティック・モデルの特定の開発標準に基づいて、整合性チェックのエラーおよび警告を作成できます。

セマンティック・モデラーの整合性チェックでは、モデルのデプロイを成功させない一般的なモデリングの問題やランタイム・エラーの原因となる一般的なモデリングの問題を検出する標準チェックが提供されます。 たとえば、プレゼンテーション表にカスタム表示名が必要な場合など、組織に一意のモデリング要件または標準がある場合は、カスタム整合性チェックを作成して、モデルをデプロイする前にこのような固有の問題を見つけて修正できます。 カスタム整合性チェックを作成すると、固有の問題を見つけるためにモデルで実行する必要のある手動チェックが置き換えられます。

モデルのカスタム・ルールを作成するときに、チェックをエラーまたは警告のいずれにするかを指定します。 エラー番号を指定し、カスタム整合性チェック結果に表示するカスタム・エラー・メッセージを書き込むことができます。 複数のルールを同じエラー番号または警告番号でグループ化できます。

SMMLエディタまたはセマンティック・モデラー・ユーザー・インタフェースでチェック・ルールを編集できます。

セマンティック・モデラーは、作成したモデルを使用してカスタム・ルールを保存します。 あるセマンティク・モデルのSMMLエディタから別のセマンティク・モデルのSMMLエディタにコンテンツをコピーして貼り付けることで、カスタム・ルールを共有できます。

JSONPathを使用して、カスタム・ルールの問合せを記述します。 JSONPathは、開発者および非開発者がネストされた複雑なJSON構造に対する問合せを記述できるようにするJSONの問合せ言語です。 セマンティック・モデラーにより、書込みを行う問合せがユーザー・インタフェースおよびサーバー上で有効になります。 「JSONPathを使用したセマンティック・モデルのカスタム・ルール問合せの書込みについて」を参照してください。

「整合性のチェック」または「拡張チェック」を実行する場合、セマンティック・モデラーにはモデルのカスタム・ルールは含まれません。 エラー・カテゴリに割り当てるカスタム・ルールによって、拡張チェックの実行およびモデルのデプロイが妨げられることはありません。

チェックの整合性の詳細は、「チェックの整合性について」を参照してください。

JSONPathを使用したセマンティック・モデルのカスタム・ルール問合せの記述について

JSONPathは、セマンティック・モデルのカスタム整合性チェック・ルールの作成に使用する問合せ言語です。 JSONPathでは、ビジネス制約およびデータ品質制約の違反についてセマンティック・モデルのオブジェクトをスキャンするユーザー定義ルールを作成できます。

カスタム整合性チェック・ルールを無期限の問合せとして記述することで、進化するモデル全体でゼロ、1または多数のノードを照合できるため、一貫性とワークフローの制限に最適です。

確定問合せと不確定問合せ

明確な問合せと無期限問合せの違いに注意してください。

  • 確定パスは最大で1つのノードを選択し、実装では通常、確定パスを使用するときに単一の値またはnullを返します。 これは「単一ターゲット」形式です。
  • 無期限パスでは、ゼロ、1つまたは複数のノードを選択し、一致のコレクション(多くの場合、リストまたは配列)を返すことができます。 フィルタ、ワイルドカード、ディープ・スキャン、スライスおよび複数索引セレクタにより、問合せは無期限になります。

カスタム整合性チェックで無期限の問合せが必要な理由

カスタム整合性チェックでは、次の理由で無期限の問合せが必要です。

  • 包括的スキャン - 一貫性チェックでは、モデル全体で1つだけではなくすべての問題のあるインスタンスを見つける必要があります。 したがって、問合せは1つの評価で複数の一致を返すことができる必要があります。
  • スキーマおよびバージョンの自己回復性 - セマンティック・モデルが進化するにつれて、たとえば、プロパティが追加され、配列が並べ替えられ、新しいネストが行われると、無期限の問合せはパターンに依存し、固定位置に依存しないため、有効のままになります。
  • レポート・セマンティクスの消去 - 不確定な問合せは、自然に「N一致= N報告結果」にマップされますが、ゼロ一致はエラーや特殊なケースがない「問題なし」を正常に表します。

ヒントとトラブルシューティング

次の情報を使用して、JSONPath問合せを記述します。
  • ルールを作成する場合は、「カスタム・ルール」ダイアログの「検証」ボタンを使用して、問合せの構文を検証します。 オブジェクトの小さなサンプルを使用して、妥当性チェックの選択と結果のカーディナリティを行います。
  • 結果のカーディナリティを確認してください。 配列が必要で、ルールが単一のスカラーを返す場合は、フィルタまたはワイルドカードに調整して無期限にします。
  • ラージ・オブジェクトの場合、$..を可能なかぎり$.presentationTable.hierarchiesなどのサブツリー・ルートに置き換えることで、コストがかかるスキャンを絞り込みます。

リソース

Oracleでは、JSONPathおよび有効なJSONPath問合せの記述方法に精通していることを前提としています。

JSONPathを初めて使用する場合は、これらのリソースを使用して、JSONPath問合せの記述方法を学習してください。

JSONPath「カスタム整合性チェックの問合せ例」も参照してください。

リソース 説明
公式仕様(RFC 9535) JSONPath構文、セレクタ、フィルタ、評価セマンティクスおよび適合性に関する標準IETF標準。
Jayway JsonPath (Java) README 実用的な構文、演算子、例およびAPIの使用方法の詳細を備えた一般的な実装。
Hevoデータ 例とフィルタの使用法を含む簡潔なチュートリアルスタイルの概要。
REST APIチュートリアル: JSONPathの基本および一般的な問合せパターンのガイド。
JSONPathオンライン評価者 サンプルJSONに対して式をプロトタイピングするための評価者。
Site24x7 JSONパス評価者 対話型の結果パネルを備えた評価者/検証者。

JSONPathカスタム整合性チェック問合せの例

これらの例を使用して、有効なJSONPathカスタム整合性チェック問合せを記述します。

  • この問合せでは、アクセッサが「認証済ユーザー」でアクセスが「NO_ACCESS」であるpresentationTableの下のすべての権限エントリが選択されます。

    $.presentationTable.permissions[?(@.accessor == "role:AuthenticatedUser" && @.access == "NO_ACCESS")]
  • この問合せでは、名前フィールドに部分文字列"1"、"2"または"3"が含まれるpresentationTableオブジェクトを選択します。 この問合せは、重複するオブジェクトを見つけます。

    $.presentationTable[?(@.name contains '1'|| @.name contains '2'|| @.name contains '3')]
  • この問合せでは、dataTypeがVARCHARと等しいlogicalTableのすべてのlogicalColumnsが選択されます。

    $.logicalTable.logicalColumns[?(@.dataType == 'VARCHAR')]
  • 前の問合せと同様に、この問合せでは、logicalTableのすべてのlogicalColumnsが選択されます。ここで、dataTypeは"VARCHAR"ですが、構文は異なります。
    $..logicalColumns[?(@.dataType == 'VARCHAR')]
  • この問合せでは、名前が「Offices Company」であるドキュメント全体のすべてのlogicalLevelsが選択されます。
    $..logicalLevels[?(@.name == 'Offices Company')]
  • この問合せでは、アクセッサがroleBI: で始まるすべての権限が選択されます(startsWithサポートまたは承認済代替が必要です)。
    $..permissions[?(@.accessor contains "role:BI")]
  • この問合せでは、logicalTableSourceが"LTS1 Offices"と等しいドキュメント全体のすべてのphysicalMappingsが選択されます。

    $..physicalMappings[?(@.logicalTableSource == "LTS1 Offices")]

カスタム整合性チェック・ルールの作成

セマンティック・モデルの特定の開発標準に基づいて、カスタム整合性チェック・ルールを作成できます。 カスタム・ルールを作成すると、特定の問題についてモデルを手動でチェックする手間が省けます。

作成したカスタム・ルールは、セマンティック・モデラー・エディタの「カスタム・ルール」タブに含まれ、セマンティック・モデラーでは、「整合性チェック」または「拡張チェック」の実行時にカスタム・ルールが含まれません。 エラー・カテゴリに割り当てるカスタム・ルールによって、拡張チェックの実行およびモデルのデプロイが妨げられることはありません。 「カスタム整合性チェック・ルールについて」を参照してください。

この情報は、ルールの作成に役立ちます。
  • ルール名 - ルールの名前を指定します。 この名前はカスタム・ルール管理のみを目的としており、「カスタム・ルール」タブに表示されます。 カスタム整合性チェックの結果には表示されません。
  • エラー番号 - カスタム整合性チェック結果に表示するエラー番号を指定します。 エラー番号は文字列で、数字、文字および文字を含めることができます。 同じエラー番号を複数のルールに割り当てることができます。 たとえば、ルールを1つのエラー番号でグループ化する場合です。
  • カテゴリ - ルールがエラーか警告かを指定します。 エラーがデフォルトです。 エラーは、モデルをデプロイする前にモデル開発者が修正する必要がある重要な問題を示します。 警告は、開発者が修正する必要がある可能性がある問題を示します。 セマンティック・モデラーでは、「整合性チェック」または「拡張チェック」にカスタム整合性チェックが含まれないため、エラーとしてラベル付けしたチェックでは、拡張チェックを実行してモデルをデプロイできなくなります。
  • ルール使用可能 - モデルでカスタム整合性チェックを実行するときにルールが含まれるかどうかを示します。
  • 説明 - 開発者のルールに関するコメントおよび情報が含まれ、開発者がルールを変更したときに「カスタム・ルール」ダイアログにのみ表示されます。
  • メッセージ - チェックでエラーまたは警告のインスタンスが検出されたときに、「カスタム整合性チェック」タブの「エラーの説明」列に表示するテキストを指定します。 このメッセージは、モデル開発者が問題とその修正方法を理解するのに役立ちます。
  • JSONPATH問合せ - 問合せのJSONPath構文が含まれます。 「JSONPathを使用したセマンティック・モデル・カスタム・ルール問合せの記述について」および「JSONPathカスタム整合性チェック問合せの例」を参照してください。
  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、「ルールの作成」をクリックします。
  5. 「カスタム・ルール」ダイアログで、ルールのプロパティを指定します。
  6. JSONPath問合せで、ルールの問合せを記述します。 「検証」をクリックします
  7. 「追加」をクリックします。

カスタム整合性チェック・ルールの表示

自分および他の開発者がモデル用に作成したカスタム・ルールのリストを表示できます。 このリストは、各ルールの概要情報、およびモデルのルールの管理(ルールの削除、ルールの編集、ルールの有効化または無効化など)に使用します。

  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. オプション: ルールの上にカーソルを置き、「アクション」 「アクション」メニューをクリックして、ルールに対して実行するオプションを選択します。

カスタム整合性チェック・ルールの変更

自分または他の開発者がモデルに追加したカスタム・ルールのプロパティまたはJSONPath問合せを変更できます。

カスタム・ルールのプロパティの詳細は、「カスタム整合性チェック・ルールの作成」を参照してください。
  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、変更するルールにマウス・ポインタを重ねて、「アクション」 「アクション」メニューをクリックし、「編集」をクリックします。
  5. 「カスタム・ルール」ダイアログで、ルールのプロパティおよびJSONPath問合せを変更します。
  6. 「保存」をクリックします。

カスタム整合性チェック・ルールの有効化または無効化

モデルの既存のカスタム・ルールを有効または無効にできます。 カスタム・ルールを有効にしてテストするか、問合せの開発中に無効にできます。

既存のルールの場合は、「カスタム・ルール」タブでルールを有効または無効にできます。 ルールを作成または変更する場合、「カスタム・ルール」ダイアログでルールを有効または無効にできます。
  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、有効化または無効化するルールにマウス・ポインタを重ねて、「アクション」 「アクション」メニューをクリックします。
  5. 「整合性のチェック」の実行時にルールを含めるには、「有効化」を選択します。 「整合性のチェック」の実行時にルールを除外するには、「無効化」フィールドをクリックします。

カスタム整合性チェックの実行

カスタム整合性チェックを使用して、セマンティック・モデルの特定の開発標準に基づいて作成したエラーおよび警告カスタム・チェックを識別します。

次の点に注意してください。
  • カスタム整合性チェックでは、セマンティック・モデル全体に対するカスタム・チェックが検索されます。 物理表や初期化ブロックなどの個々のモデル・オブジェクトに対してカスタム整合性チェックを実行することはできません。
  • 「整合性のチェック」または「拡張チェック」を実行する場合、セマンティック・モデラーにはカスタム・ルールは含まれません。
  • エラー・カテゴリに割り当てるカスタム・ルールによって、拡張チェックの実行およびモデルのデプロイが妨げられることはありません。
  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、「カスタム整合性チェックの実行」選択アイコンをクリックします。
  5. 「カスタム整合性チェック」タブで、オブジェクトのリンクをクリックして検索し、開きます。
  6. オブジェクトを修正し、「保存」をクリックしてセマンティック・モデルを保存します。
  7. 「カスタム整合性チェック」タブをクリックし、「チェック」 選択アイコンをクリックしてカスタム整合性チェックを再実行し、結果をリフレッシュします。

カスタム整合性チェック結果の警告の非表示

カスタム・チェック一貫性の結果リストに表示または非表示にする警告を選択できます。 警告を非表示にすると、結果リスト内の警告の数を制限して、修正する必要がある最もクリティカルな警告を見つけて集中できます。

  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、「カスタム整合性チェックの実行」選択アイコンをクリックします。
  5. カスタム整合性チェックの結果リストで、すべての警告が表示されるように「警告」チェック・ボックスが選択されていることを確認します。
  6. 非表示にする警告を見つけて、その「すべての警告の非表示」アイコン「すべての警告の非表示」アイコンをクリックします。

カスタム整合性チェックで非表示の警告を表示

カスタム・チェック一貫性の結果に表示する非表示の警告を選択できます。

  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、「カスタム整合性チェックの実行」選択アイコンをクリックします。
  5. 整合性チェックの結果タブで、「非表示の警告」をクリックして非表示の警告のリストを表示します。
  6. カスタム・チェックの一貫性結果に表示する警告を選択します。 「OK」をクリックします。
  7. カスタム整合性チェックの結果リストで、すべての警告が表示されるように「警告」チェック・ボックスが選択されていることを確認します。

CSVファイルへのカスタム整合性チェック・ルールのエクスポート

カスタム整合性チェックを実行すると、結果をCSVファイルにエクスポートできます。

カスタム整合性チェックの結果をエクスポートすると、すべての結果がエクスポートされ、「カスタム整合性チェック」タブに表示される結果のみがエクスポートされます。 たとえば、エラーと警告の両方のセマンティク・モデルでカスタム整合性チェックを実行した場合、「カスタム整合性チェック」タブで「エラー」をクリックしてエラー・メッセージのみを表示すると、「CSVにエクスポート」をクリックすると、Oracle Analyticsによって、すべてのエラーおよび警告を含むCSVファイルが生成されます。
  1. ホーム・ページで、「ナビゲータ」 ナビゲータ・アイコンをクリックし、「セマンティック・モデル」をクリックします。
  2. 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
  3. ツールバーで、「整合性のチェック」 「整合性のチェック」ツールバー・アイコンの横にある下矢印をクリックし、「カスタム・ルール」を選択します。
  4. 「カスタム・ルール」タブで、「カスタム整合性チェックの実行」選択アイコンをクリックします。
  5. 「カスタム・チェックの整合性」タブで、「CSVにエクスポート」 CSVへのエクスポートをクリックします。