Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Tamako_Suzuki
Former Employee
Former Employee

Logical Inference and Aggregations(日本語訳)

Henric CronströmのBusiness Discoveryブログの日本語訳をご紹介いたします。

オリジナルの英文ブログへのリンク

http://community.qlik.com/blogs/qlikviewdesignblog/2013/07/15/logical-inference-and-aggregations

Henric Cronströmの経歴を詳しく知りたい方はこちらのリンク(英文)もご参照ください。

http://community.qlik.com/people/hic


-------------------------------------------------------------------------------------------------------------------------------------------------------------------

QlikViewでは、クリックを押すたびに毎回、すべてのデータを再計算します。

Everything(全部です).

あらたな選択(selection)は、常に最新の状況への更新を意味します。 別の項目の選択を選択すれば、集計の再計算や、チャートやKPIとして表示されている値が再計算されます。つまり、最新の状況のベクトルThe state vectors)とオブジェクトが、再評価されるのです。ユーザーの要求に答えるために、すべてが再計算されます。

キャッシュの役割についても、説明しておきましょう。QlikViewでは、一度計算済みの内容については、毎回再計算を実行する必要はありません。つまり、すべてを再計算するという表現は、厳密に定義すると、正しい説明ではないかもしれません。いったん計算結果が得られた項目は、キャッシュから、計算結果をそのまま取得できます。したがって、何も事前計算されないというのも、間違った説明になってしまいますね。計算する必要がないというほうが、いいでしょう。そして、計算のすべてはリアルタイムで実行されます。

QlikViewは即時計算エンジンを持っています。(QlikView is an on-demand calculation engine.

再計算には、2つのステップがあります。1つめは、データモデル上の論理的な評価(logical inference)です。2番目は、シートのラベルや警告(alerts)を含む、すべてのオブジェクト内での計算処理です。

最初に実行される論理的な評価(logical inference)の処理は、 あらたに選択された項目に対して、テーブル内のどの項目とレコードを計算に利用するかを特定することを目的とした処理です。この処理では、実際には特定された項目に対して、実際の計算は実行されず、純粋にロジカルなプロセスとして実行されます。結果は、状況のベクトル(The state vectors)に保管されます。

選択された値は、ひとつのテーブルからデータモデル内のすべてのテーブルへと関連性を評価するのです。どの項目内の値やレコードを取得するのか、そして、除外する必要があるのかをテーブル間をまたがって定義されます。


CommunityBlog_LogicalInference.gif


論理的な評価(logical inference)が完了した後に、 QlikViewは、すべての表示されているオブジェクトの評価を開始します。たとえば、リストボックスや、チャート内の軸項目、数式の定義によって計算される値などのすべての計算が必要な値を確認しています。 ただし、表示されていないタブのシートや、最小化されたり、非表示になっているオブジェクトについては、計算されません。

計算処理は、常に論理的な評価エンジン(logical inference engine)によって定義された内容をもとにして、集計(aggregation)されます。つまり、オブジェクト自体には、データを持っているわけではないといえます。

計算処理は、一般的に、レスポンスタイムのなかで、多くの割合を占める処理となり、具体的にいうと、しばしば、90%近くを占めるケースもあります。計算処理は、非同期(asynchronous)で複数のレベルのスレッドによって、実行されます。最初に、すべてのオブジェクトはスレッドにより計算されます。次に、64ビットのバージョンでは、複数のスレッドに分散された計算処理が実行されます。たとえば、ひとつのオブジェクト内にある合計(Sum)処理は、複数のスレッドを利用して、高速に計算することができます。

最終的に、オブジェクトは再計算のうえ、画面に表示されます。計算処理が非同期で、複数のスレッドとして実行されることにより、各オブジェクトごとに、最新化された表示が完了するまでの時間は異なります。

オブジェクトが計算結果を反映した最新の状況として表示されると、あなたは再びクリックをおすことができるようになり、これらの処理は、クリックを押すたびに、繰り返し実行されています。

HIC

1 Reply
Tamako_Suzuki
Former Employee
Former Employee
Author

本文中のスレッドやマルチスレッドについて、お分かりの方も多いと思いますが、もし、どんな意味だろうと思われた方のために、参考となりそうなリンクを追記しておきます。

E-Word IT用語辞典よりの引用です・

マルチスレッドとは 【 multi-thread 】 - 意味/解説/説明/定義 : IT用語辞典