Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

カスタム・メトリック

ユーザがエンティティ、CRC、CC、パス、文、およびソースについて独自のカスタム・メトリックを追加できるように、iKnow をカスタマイズできます。これらのメトリックは、ドメイン内のすべてのソースについて生成することも、選択したソースについて生成することもできます。その後、これらのカスタム・メトリック値によるクエリを実行できます。

Note:

カスタム・メトリック・ソフトウェアは、2013.1 の新しいソフトウェア・カテゴリであるテクノロジ・プレビューです。テクノロジ・プレビューの目的は、インターシステムズが既存および将来のアプリケーションの有効性を高めるために役立つと確信している新しいソフトウェア機能を紹介して利用可能にするための方法を提供することです。

ここに示す機能は、ユーザがいつでも使用できますが、機能や設計の面でまだ完全ではありません。これらの機能を利用するユーザは、以下の点を理解する必要があります。

  • インターシステムズは、今後の更新に関して下位互換性を保証しません。

  • ユーザは、これらの機能を配置済みのアプリケーションに組み込むことができますが、その前にインターシステムズに問い合わせて、最善の対策を決定する必要があります。

  • これらの機能をアプリケーションに導入するユーザは、最終リリース・バージョンへのアップグレードを確約する必要があります。

ソフトウェアにこれらの項目を組み込むユーザには、自身の経験に関するフィードバックを提供することを強くお勧めします。

カスタム・メトリックの実装

カスタム・メトリックを実装するには、以下の手順を実行します。

  1. メトリックを定義する : 1 つまたは複数のメトリックを定義するには、%iKnow.Metrics.MetricDefinitionOpens in a new tab のサブクラスを実装し、1 つまたは複数のカスタム・メトリックのプロパティを指定する “Metrics” という名前の XData ブロックを追加します。

  2. メトリックの計算を定義する : これらのメトリックの値を計算するには、%iKnow.Metrics.MetricBuilderOpens in a new tab サブクラスに計算を実装します。このサブクラスでは、Calculate***Metrics() メソッドを 1 つまたは複数実装して、対応するターゲットおよびタイプのカスタム・メトリックの計算をサポートする必要があります。例えば、CalculateEntUniMetrics()Opens in a new tab は、ドメイン全体に適用可能なメトリックのターゲット・エンティティを計算します。

  3. メトリック定義を登録する : メトリック定義を特定のドメインに関連付けるには、%iKnow.Metrics.MetricDefinition クラスの Register()Opens in a new tab メソッドを呼び出して、実装した %iKnow.Metrics.MetricBuilderOpens in a new tab サブクラスを "ビルダ・クラス" として定義に登録します。これにより、すべてのメトリック、それらのプロパティ、およびそれらのターゲットが “Metrics” XData ブロックの定義に従って登録されます。メトリック定義を登録すると、メトリック値を格納するのに必要なデータ構造が構成されます。

    %iKnow.DomainDefinitionOpens in a new tabサブクラスとしてドメインが作成され、メトリックがそのドメインに対して定義された場合、Register() メソッドを呼び出して、メトリック定義を登録する必要はありません。

  4. メトリック値を構築する : %iKnow.Metrics.MetricBuilderOpens in a new tab の実装を使ってメトリック値を構築するには、ビルダ・クラスの Build()Opens in a new tab または BuildAll()Opens in a new tab メソッドを呼び出します。これらのメソッドは、適用可能なすべてのメトリックを構築し、実際のメトリックの計算を Calculate***Metrics() の実装に転送します。フィルタを指定して、カスタム・メトリックの構築を定義されたソースのサブセットだけに限定できます。

    %iKnow.Metrics.MetricBuilderOpens in a new tab サブクラスで SUPPORTSMULTIPROCESS パラメータ (既定値 = 1) をオーバーライドしない限り、Build() メソッドは作業を複数のプロセスに分割します。各プロセスは、別個の MetricBuilder オブジェクトをインスタンス化し、それらのビルダ・オブジェクトを使用してエントリのバッチを次々に処理します。ソースのインデックスが作成されたターゲット・タイプの場合、これらはソースのバッチであり、すべてのターゲット要素が同じビルダ・プロセスによって処理されます。

  5. 構築プロセスを最適化する : %iKnow.Metrics.MetricBuilderOpens in a new tab には、いくつかのコールバック・ユーティリティ・メソッドが用意されています。例えば、OnBeforeBuildMetrics()Opens in a new tabOnBeforeBuildMetricsBatch()Opens in a new tabOnBeforeBuildMetricsForSource()Opens in a new tab、およびこれらに対応する OnAfter***() メソッドなどがあります。これらのメソッドを使用すると、バッチ全体の値を事前に計算して、その値を個々の Calculate***Metrics() メソッドで選択できるため、パフォーマンスを最適化するのに役立ちます。個々の Calculate***Metrics() メソッドは、出力パラメータ pValues を使って値を返します。pValues は、pValues("MyMetric") = [MyValue] のようにメトリック名でインデックス指定して生成されます (1 つの MetricBuilder クラスが 1 つのパスで複数のメトリックをサポートして計算できるため)。

  6. 結果を取得する : %iKnow.Metrics.MetricAPIOpens in a new tab には、特定のドメインに登録されたカスタム・メトリックを操作するために使用できるメソッドがいくつか用意されています。これらのメソッドを使用して、カスタム・メトリックの結果を返すことができます。

    Calculate***Metrics() メソッドが特定のターゲット要素の値を返さないときは、既存のメトリック値が (あれば) 保持されます。値として "" を返すと、既存の値が上書き (消去) されます。

使用例は、SAMPLES ネームスペースの Aviation.Metrics.BuilderOpens in a new tab クラスと Aviation.Metrics.DefinitionOpens in a new tab クラスを参照してください。

タイプおよびターゲット

  • メトリックは、メトリック値がドメイン全体のコンテキスト内で適用されるか、ある特定のソースまたはメタデータ・グループだけに適用されるかを指定するタイプを持っています。使用可能な値は、$$$IKMTRTYPEDOMAIN、$$$IKMTRTYPESOURCE、および $$$IKMTRTYPEGROUP です。

    $$$IKMTRTYPEGROUP メトリックは、特定のメタデータ・フィールドで定義されたソース・グループのコンテキストで有効です。このタイプのメトリックのメトリック・ビルダ・クラスでは、Calculate***Metrics() の実装の一部として CurrentFieldName および CurrentFieldValue プロパティの値を使用できます。

  • 1 つのメトリックは、カスタム・メトリックが適用される要素であるターゲットを 1 つまたは複数持っています。使用可能な値は、$$$IKMTRENTITY、$$$IKMTRCRC、$$$IKMTRCC、$$$IKMTRPATH、$$$IKMTRSENTENCE、および $$$IKMTRSOURCE です。ターゲットは、どの Calculate***Metrics() メソッドを指定するかによって指定されます。例えば、CalculateEntUniMetrics() はターゲット $$$IKMTRENTITY に適用されます。適用方法は、タイプによって異なります。

メトリックのコピー

現在のネームスペース内のドメイン間でメトリックをコピーできます。

FeedbackOpens in a new tab