JP5922805B2 - 進化的な分析のためのシステム - Google Patents

進化的な分析のためのシステム Download PDF

Info

Publication number
JP5922805B2
JP5922805B2 JP2014561198A JP2014561198A JP5922805B2 JP 5922805 B2 JP5922805 B2 JP 5922805B2 JP 2014561198 A JP2014561198 A JP 2014561198A JP 2014561198 A JP2014561198 A JP 2014561198A JP 5922805 B2 JP5922805 B2 JP 5922805B2
Authority
JP
Japan
Prior art keywords
rewrite
query
cost
views
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014561198A
Other languages
English (en)
Other versions
JP2015515671A (ja
Inventor
ヴァヒト ハカン ハシグムス、
ヴァヒト ハカン ハシグムス、
サンカラナラヤナン、ジャガン
ジェフリー ルフェーヴル、
ジェフリー ルフェーヴル、
純一 舘村
純一 舘村
ネオクリス ポリゾティス、
ネオクリス ポリゾティス、
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of JP2015515671A publication Critical patent/JP2015515671A/ja
Application granted granted Critical
Publication of JP5922805B2 publication Critical patent/JP5922805B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本明細書は仮出願でなく、2012年6月27日に出願された仮出願シリアルNo.61664971の優先権を主張し、その内容は参照により組み込まれる。
本発明は、進化的な(evolutionary)分析に関する。
知識主導型の企業は、彼らのビジネスのあらゆる側面を計測する積極的な戦略を導入し、収集された大量の生データから従業員が価値を見出すことを奨励している。データ主導型の意思決定(DDD)は、データ中にそれをサポートする十分な証拠がある限り、変化の影響を受けない知識主導型の企業のどの部分もそのままにはしておかない。組織は、データを、未知の価値を有するかもしれないログとして収集し、このため、抽出−変換−書き出し(ETL:Extract−Transform−Load)を行うことは、ETLの高い費用のため現実的でない。ETLは、高価であり、データがどのようであるか、値がどこに存在するものであるかの先験知識を必要とする正式なプロセスを要求する。そのログは、一般的に大きく、フラットであり、構造が完全に予め定義されたデータベース設計を要求するために、一般的なデータベースに対してETLの複雑さを追加する低構造(low-structure)を有している。これらの理由のために、データの多くが十分に評価されることなく、データアナリストは、近代的な組織が収集する、増え続けるデータを分析して、すぐに使用可能な見識を生成することを必要とする。予期されるように、このタイプの分析は、本質的に探索的であり、データアナリストが、データ上で初期クエリを開始し、結果を試験し、そしてクエリを再公式化して(reformulate)追加のデータソースにもたらす、などのインタラクティブなプロセスを伴う。典型的には、クエリは、データタイプおよび分析の目的、例えば、ツイート上で感情分析を行う、または大きなソーシャルネットワーク内のノードそれぞれの影響を計算することにリンクされている、高機能な、ドメイン特有の動作を伴う。
MapReduce(MR)およびHadoopのような大規模システムは、耐障害性をサポートするために、中間ジョブ結果の積極的な実体化を行う。ジョブが、データアナリストによって発行された探索的なクエリに対応するとき、これらの実体化は、典型的には、同じアナリストからの一連のクエリの中から、またはむしろ類似した仮定をテストする異なるアナリストのクエリに渡って、共通の計算をキャプチャする実体化ビューの大規模なセットを生み出す。驚くことではないが、MapReduceはそれをオリジナルのフレームワークとし、そのオープンソースの形であるHadoop、または宣言型のクエリ言語を提供するPigおよびHiveのような派生システムは、このタイプの分析のデファクトツールとなっている。大規模なデータセットにスケーラビリティを提供することに加えて、MRは、先行スキーマを定義しデータをインポートする必要がないように、新規データソースを導入することを促進し、そして、データ上に適用することができるユーザ定義関数(UDFs)のメカニズムを通じて拡張性を提供する。
UDFsは、SQLのような、リレーショナルデータベースおよび記憶部で利用可能な標準的な操作の範囲外のものである。典型的なUDFの例は、分類関数である。これは、入力として、user_idおよびいくつかのテキストを必要とし、このテキストからいくつかのエンティティ(オブジェクト、固有名詞)を抽出し、そしてそれらのエンティティについて、ポジティブまたはネガティブな感情として、ユーザの周囲のテキストを分類する。データの値は不明であるため、アナリストは、通常、当初はデータについて完全に理解できておらず、最初のクエリ(ワークフロー)をポーズして、最終的な望ましい結果に向けて、現在の答えが次のクエリの進化を知らせるようにそれを改良する。さらにUDFsのような複雑な関数は、多くの場合、トライアンドエラーを通して経験的に調整される必要があり、アナリストは、多くの場合、データ上でその答えに満足するまで、分析的なタスクを何度も繰り返し改良する必要があるであろう。
単一のMRジョブの計算範囲は制限されているため、科学者たちは、一般的に、互いにデータをフィードするMRジョブの集合としてクエリを実装する。かなり頻繁に、そのようなクエリは、宣言型のクエリ言語、例えば、HiveQLまたはPigLatinを用いて書かれ、自動的にMRジョブのセットに変換される。
MRシステムの人気にも関わらず、クエリパフォーマンスは、データアナリストが仮説を検証し、結論に収束することができる「スピード」に順番に直接影響する重要な課題である。一部のゲインは、MRのオーバーヘッドを低減することによって達成することができるが、パフォーマンスへの大きな障害は、大規模なデータセットを取り込み、実際には共通のクラスの複数のMRジョブに及ぶクエリの先天的な複雑さである。例えば、データを再構成または前処理することによる事前調整は、予備分析の流動性および不確実性に起因して、大変困難である。
一実施形態によれば、進化的分析のためのシステムは、システムで実行される以前のワークフロー実行結果の一部として実体化された回答を用いることによって、より効率的にするために、ワークフローをリライトすることによって、3つの側面(分析ワークフロー、ユーザ、およびデータ進化)をサポートする。
他の実施形態によれば、進化的分析のためのシステムは、システムで実行される以前のワークフロー実行結果の一部として実体化された回答を用いることによって、より効率的にするために、ワークフローをリライトすることを通じて、3つの側面をサポートする。システムは、アナリストたちによって用いられている既存のクエリ実行エンジンとクエリリライト部とを統合する。最適化部は、いくつかの宣言型の言語で記述されたクエリを取得し、それをMRジョブで構成された実行プランに変換する。ターゲット実行エンジンは、実体化ビューメタデータ蓄積部16だけでなくリライト部14も統合することによって、拡張される。
上記のシステムの実装は、以下の1または複数を含むことができる。クエリは、大規模なログである基本データに対して表されており、クエリはUDFsを含んでいる。MRジョブのそれぞれは、安定したストレージ(例えば、Hadoop中のHDFS)への出力を実体化する。一実施形態において、最適化部は、システムに許容されたUDFsに対するコスト見積りを提供することができる。リライト部にターゲットエンジンの最適化部と通信させるために、最適化部は、各計画ノード上の2種類の注釈(annotations)と共に、プランを生成するように拡張される。(1)その計算の論理式(2)推定実行コスト
リライト部は、ノードの出力のためのリライトを探索するとき、注釈中の論理式を用いる。数式は、関係演算子またはUDFsから構成されている。探索中に見つかったリライトのそれぞれでは、リライト部は最適化部を利用して、プランおよび推定コストを取得している。クエリ実行の間、クエリ処理の全ての副産物は、日和見主義的な(opportunistic)実体化ビューとして維持され、システム中で記憶されて、日和見主義的なの物理設計構造の一部となる。実体化ビューメタデータ蓄積部は、ビュー定義のような、現在のシステムにおける実体化ビューに関する情報と、クエリ最適化において用いられる標準データ統計値とを含む。
好ましい実施形態の利点は、下記のうち1または複数を含むことができる。システムがそれほど複雑でない。ユーザの観点から−リライトは、ユーザのガイダンスまたはヒントなしで自動的に行われる。システムの観点から−物理設計が自動化され、継続的にプロバイダのガイダンスなしで調整される。システムは、アルゴリズム的に最適なリライトを作業効率のよい方法で見つける。また、より高速な動作が達成される。ユーザおよびシステムの観点から−方法は、システム内の既存の成果物を使用して、システムがアナリストクエリの最低価格の可能な(最適な)リライトを提供することを保証している。アルゴリズム的観点から−アルゴリズムは、OPTCOSTによる最適なリライトを見つけるために、ソリューション空間の最小量を探索し、これは、ソリューション空間を削ることなく行われる。ワークフローリライト技術は、ワークフロー実行時間を低減するために、システム中の全ての利用可能なアーチファクト(artifact:中間生成物)を用いるリライトを生成することによって、進化的ワークフローの最適なリライトを、作業効率のよい方法で探索する。これは、ユーザの視点からより早いパフォーマンスと、システムプロバイダの視点からクエリに応答するために消費されるシステムリソース量の減少をもたらす。楽観的なコスト関数OPTCOSTの使用は、ワークフローリライトアルゴリズムが、システムが最適なリライトを見つけるために必要なソリューション空間の最小量を生成(explode:爆発的に増やす)および探索することを可能にするリライト空間を徐々に探索することを可能にする。UDFのグレーボックスモデルは、リライトをまだもたらす表現である。グレーボックスアプローチは、少ない労力で、ユーザが、システムにUDFを追加することを許容する。これは、システムがUDFのリライトのために探索することを許容し、如何なる他のアナリストもそのUDFを使用することを許容する。さらに、システムオペレータは、また、UDFを含むように、リライト言語を選択して拡張することができるが、より多くの労力を必要とする。このモデルは、単独のヒントよりも、より一般的であり、より表現豊かである。
進化の3つの側面を同時にサポートすることができるフレキシブルなシステムを示している。 制御フローを示すシステムフレームワークの例示的でありハイレベルな概要を示している。 システム内のワークフローおよび新規データセットの進化をサポートする例示的なプロセスを示している。 システム内の新規ユーザの進化のための例示的なプロセスを示している。 リライトのための例示的なプロセスを示している。 効果的かつ効率的な進化をサポートするために、ワークフローを内部的に処理して維持する例示的なシステムを示している。 空間を削るための例示的なプロセスを示している。
図1は、進化の3つの側面---ワークフロー、ユーザ、およびデータを同時にサポートすることができるフレキシブルなシステムを示している。我々は、これを進化的システムと呼ぶ。進化的クエリワークフローは、アナリストによって、彼らが反復的にデータを探索するように記述されたものである。ユーザは、クエリに彼/彼女の意図を翻訳することができるようにデータを十分に理解できていないため、進化的ワークフローWの結果は、最初は望んだ結果を生成できないことがある。典型的には、Wは、新規ワークフローW’として再定式化され、このプロセスが繰り返される。ワークフローの進化は、ワークフローの結果がアナリストの意図により沿って一致するために、単一のアナリストがワークフローを調整し、変更し、再目的化することによって定義される。ユーザの進化は、それが新規ワークフローと共にシステムを検索し始める、新規アナリストの登場として、定義される。データの進化は、アナリストが新規データソース(例えば、ログ)をシステムに加えるプロセスとして定義される。
このシステムにおいて、ワークフローの進化は、ワークフローの結果がアナリストの意図に一致するようによりよく整列するために、単一のアナリストが、ワークフローを調整し、変更し、再目的かすることによって定義される。ユーザの進化は、新規ワークフローと共にシステムを検索し始める新規アナリストの登場として定義される。データの進化は、アナリストが新規データソース(例えば、ログ)をシステムに加えるプロセスとして定義される。
システムは、新規クエリの実行時間を低減する、システム内の以前のクエリ/ワークフロー実行結果からのアーチファクト(中間回答および最終回答)をシームレスに維持することおよび再利用することによって、ワークフローをより効率的にするためにリライトすることを通じて、これらの3つの側面をサポートする。これらのアーチファクトは、実体化ビューと呼ぶことができる。
我々のユースケースにおけるアナリストは、典型的には、以前の結果を調べて元のワークフローを変更することによって、ワークフローを複数回修正する。この方法のアナリストは、彼らの望む解答に向けて動くような方向において、彼らの知識(intuition)を探索する自由がある。ワークフローの変更は、新規データソースの追加、サブゴールの変更、パラメータの変更、またはワークフロー中のいくつかの動作をUDFで置き換えることを含むことができる。一実施形態は、これらのタイプの変更を我々のマイクロベンチマーク内でキャプチャーする。アナリストは、新規UDFをシステムに加えることによってワークフローの言語を拡張することができ、そしてUDFは全ての他のアナリストに利用可能となる。
サービスプロバイダはシステム内において他のプレイヤであり、プラットフォームマネージャとして良好なシステムパフォーマンスを確保したい。プロバイダは、ユーザのコミュニティのパフォーマンスに対する単一のユーザのパフォーマンスの最大化の間のトレードオフを考慮しなければならない。プロバイダは、より多くのUDFsを追加することによって、リライトの言語を拡張することができる。UDFを用いてリライト言語を拡張することは、よりよいリライトを見つけることによって、アナリストに利益をもたらすが、リライトの探索空間を拡大し、より良いリライトを見つけるためにかかる時間を増大する。リライト言語が豊富で拡張可能な変換のセットを含んでいたとしても、リライトの言語はワークフローの言語よりも表現豊かでないことが予想される。プロバイダはまた、保持する実体化ビューを決定する必要がある。ストレージ空間は無限でないため、ガーベッジコレクタが必要とされる。
我々のシナリオ内のクエリは、UDFsのように表現された複雑な分析操作を含む可能性がある。我々のシステム内の以前の計算を効果的に再利用するために、我々は、UDFsを意味的にモデル化する方法を必要とする。
UDFsをモデリングする可能性は、オーバヘッドとシステムに対する複雑さとの様々なレベルを有する、ホワイトボックス、グレーボックス、またはブラックボックスアプローチを含むことができる。ホワイトボックスアプローチは、システムがUDFが入力を変換する方法を理解するように、UDFの完全な記述を必要とする。このアプローチは、新規UDFをシステムに追加するときに、アナリストにとって高いオーバーヘッドを有する。ブラックボックスアプローチは、アナリストのための非常に低いオーバーヘッドを有しているが、システムにとって全く不可解な出力を生成するため、結果の再利用という我々の目的には適していないかもしれない。UDFsは、データ上のかなり複雑な操作を伴うことがあるため、我々のシステムは、UDFによって実行されるエンドツゥーエンドの変換のみをキャプチャするグレーボックスアプローチを採用している。エンドツゥーエンドの変換によって、我々のUDFモデルは計算の詳細は何も知らないが、我々は、我々のモデルが入力タプルと出力タプルとの間の細粒度の依存関係をキャプチャすることができることを示唆している。これは、新規UDFを追加するときに、グレーボックスモデルを提供するための追加の労力を必要とするが、まだシステムに便利な方法で、UDFの変換を理解させることができる。ブラックボックスモデルは、一方で、全体としての入力および出力の間の粗粒度の依存関係を追跡することができるのみである。
我々のグレーボックスモデルにおけるUDFは、ローカル関数の合成として記述される。ローカル関数は、単一のタプルまたは単一のグループのタプル上で操作する関数を指す。一実施形態は、ローカル関数を以下の動作を実行するものに制限する。
1.属性を破棄または追加
2.フィルタを適用することによってタプルを破棄
3.タプルのグルーピングを実行
グレーボックスモデルは、ローカル関数それぞれにより与えられた変換を理解しているが、複数のローカル関数によって実行される変換の本質を理解していない。UDFのエンドツゥーエンドの変換は、UDF内の各ローカル関数によって実行される動作を構成することによって得ることができる。
グレーボックスモデルに従って、プラン内の全てのノードの入力および出力は、3つのプロパティ:属性A、フィルタF、および分類Gによってキャプチャされる。Fは、入力データに適用する全てのフィルタの組み合わせであり、Gは現在適用されているグルーピングであり、Aはスキーマをキャプチャする。UDFのエンドツゥーエンドの変換は、ローカル関数の組み合わせを用いた、入力の出力への変換として表現することができる。組み合わせは、3つの動作を用いて、エンドツゥーエンドの変換の意味をキャプチャするが、実際の計算ではなく、内部手続を記述するためではないことに留意せよ。これらをグルーピングと組み合わせることによって、モデルは、select(選択)、project(提案)、join(加入)、group-by(分類)、およびaggregation(集約)のような関係演算子と同様に、リッチなUDFsを表現する。“joins”は、複数の関係を共通のキー上でグループ化する、MapReduce内で標準の方法でモデル化される。
図2は、制御フローを示す、システムフレームワークのハイレベルな概要を例示的に示している。システムは、システム内における以前のワークフロー実行結果の一部として実体化された回答を用いることによって、より効率的にするために、ワークフローのリライトを通じて、これらの3つの側面をサポートする。システムは、クエリリライト部を、アナリスト10によって使用される既存のクエリ実行エンジンと統合する。最適化部12は、宣言型の言語で記述されたクエリを取得し、それをMRジョブから構成される実行プラン内に変換する。クエリは、大規模なログである基本データに対して表現されており、クエリは、UDFsを含む。MRジョブのそれぞれは、安定したストレージ(例えば、Hadoop内のHDFS)への出力を実体化する。この実施形態において、最適化部は、システムに適用されるUDFsに対するコスト推定値を提供することができる。ターゲット実行エンジンは、実体化ビューメタデータ蓄積部16だけでなくリライト部14を統合することによって拡張される。リライト部14に、ターゲットエンジンの最適化部と通信させるために、最適化部12は、2つのタイプの注釈を各プランノード上に生成するように拡張される。(1)計算の論理式(2)推定実行コスト。リライト部は、ノードの出力のためのリライトを探索するとき、注釈中の論理式を用いる。式は、関係演算子またはUDFsから構成される。探索中に見つかったリライトのそれぞれでは、リライト部は、プランおよび推定コストを得るために最適化部を利用する。クエリ実行の間、クエリ処理の全ての副産物は、日和見主義的な実体化ビューとして維持され、システム内で記憶されて、日和見主義的な物理設計構造の一部となる。実体化ビューメタデータ蓄積部は、ビュー定義のような現在のシステムにおける実体化ビューに関する情報と、クエリ最適化において用いられる標準データ統計値とを含む。
システムは、MRの組み込みの耐障害性のメカニズムを日和見主義的な物理設計として活用することで、クエリパフォーマンスを劇的に改善することができる。MRジョブのそれぞれは、障害回復を目的とした、中間結果(マッピング部(mapper)の出力、低減部(reducer)の入力、および低減部の出力)の実体化を含む。より一般的には、PigまたはHiveによって生成されたもののような多段階のジョブは、そのような実体化をいくつか含むであろう。我々は、これらの実体化の結果をクエリ実行のアーチファクトと呼び、それらがクエリ実行の副産物として自動的に生成されることに注目する。
データ探索の進化の本質を考えると、各クエリは、同じアナリストによる以前のクエリと類似性を有している可能性があり、同じデータを調べる他のアナリストのクエリとさえも類似性を有している可能性がある。例えば、複数のデータアナリストは、感情分析を特定のツイートのクラス(例えば、特定の地理的エリア)上で、しかし異なる仮定を念頭に置いて、実行することができる。そのため、システム内の以前のクエリにより実行される計算は、生成されたアーチファクト中でキャプチャされるように、新規クエリに関連するかもしれない。
アーチファクトは、日和見主義でつくられた実体化ビューとして取り扱われ、それらは、システム内で新規クエリをリライトするために用いられる。この技術の日和見主義的な本質は、いくつかの良い特性を有している:実体化ビューは、クエリ実行の副産物として生成される。すなわち、追加のオーバヘッドを必要としない。複数のビューのセットは、自然に、現在のワークロードに合わせて調整される。大規模な分析システムは通常大量のクエリを発行することを考えると、等しく大量の実体化ビューがあり、このため新規クエリに対する良好なリライトを探索する良いチャンスがあるであろうということになる。産業用のデータ分析システムの内部のこの技術の実装の結果は、クエリ実行時間を劇的に節約することが可能であることを示している。リライトは、最高で2ケタの大きさの実行時間を低減することができる。
クエリリライト技術は、MRシステム中の日和見主義的な実体化ビューのシナリオをターゲットとしている。アルゴリズムは、候補となるリライトの巨大な空間を積極的に削減し、最適なリライトを効率的な方法で生成するために、空間データベース(具体的には、距離空間における最近隣探索)から発送を得た技術を採用している。システムは、単純であるがUDFsの多くの共通タイプをキャプチャするのに十分表現豊かなグレーボックスUDFモデルを用いる。これは、以前の結果の効果的な再利用を可能にするために、我々にUDFsの限られた理解を与える。リライトプロセスは、入力としてクエリと複数のビューのセットとを取り込み、最適なリライトを出力する。この技術は、最適なリライトを一定の仮定の下で見つけるために必要なビューの最小セットを考慮する場合、作業効率がよい。この方法を適用した実験結果は、実世界のデータと現実的な複雑なクエリとを使用して、最高で2ケタの大きさの実行時間の改善をもたらす。この方法による節約は、移動するデータが大幅に少なくなり、可能な場合、生のログから再読み込みすることの高い労力(expense)を回避し、UDFsを含む長時間実行の計算結果を再利用/再目的化することによるものである。
クエリリライトプロセスは、2つの主な課題:リライトの大空間を探索する方法、および、UDFs(大規模データ分析における共通の特徴)を含むビューを推論する方法に対処している。最小コストのリライトを見つけたアルゴリズムは、非距離空間における最近隣探索から発想を得ている。我々は、Hiveに基づいたプロトタイプデータ分析システムを用いた、実世界のデータセット上の広範な実験的研究を紹介する。結果は、アプローチが、複雑なデータ分析クエリ上の劇的なパフォーマンスの改善をもたらすことができ、平均で61%であり、最大で2ケタの大きさのトータル実行時間を低減することを実証している。
図3は、システム内におけるワークフローおよび新規データセットの進化をサポートする例示的なプロセスを示している。アナリストは、1または複数の進化的なワークフロー100を記述する。システムは、120で新規UDFを取得し、システムは、122で新規データセットを追加する。システムは、124でワークフローをリライトし、進化的ワークフローが110で実行される。システムは、126で実体化ビューを分類する。プロバイダは、128でシステムに実体化ビューをドロップさせることができる。あるいは、システムは、130で言語をリライトすることによって、拡張することができる。
図4は、システム内の新規ユーザの進化のための例示的なプロセスを示している。当初は、新規アナリストは、このシステムを用いる。アナリストは、140でワークフローWを書き込む。システムは、142でワークフローを順にリライトして、144でワークフローを実行する。アナリストは、146で結果を試験し、もし彼/彼女が満足しない場合、アナリストはワークフローを見直して、140に戻ることができる。あるいは、もしアナリストが満足する場合、プロセスは終了する。
図5は、ワークフローをリライトするための例示的なプロセスを示している。プロセスは、160で、入力として、ワークフローWと、1または複数の既存の実体化ビューVとを受信する。プロセスは、162で、Wをn個のサブワークフローに分割する。プロセスは、164で最良のリライトをサブワークフローのそれぞれについて見つける。プロセスは、166で、Wに対するリライトを見つけるために、複数のリライトを組み合わせる。
図6は、効果的かつ効率的な進化をサポートするために、ワークフローを内部的に処理および維持する例示的なシステムを示している。170において、プロセスは、入力として、ワークフローWおよび既存の実体化ビューVを受信する。プロセスは、172で、Wをn個のサブワークフローに分割する。プロセスは、174で、全てのn個のサブワークフローについて同時にリライトを列挙する。176において、プロセスは、コストcでリライトを見つけなかった場合、サブワークフローのサーチを取り除く。プロセスは、178で、今までで最良のリライトを維持する。次に、プロセスは、180で全てのサーチ問題が取り除かれたか否かを確認する。もし取り除かれていない場合、プロセスは、174に戻り、そうでない場合、プロセスは、Wについて最良のリライトを182で返す。
図7は、空間を削るための例示的なプロセスを示している。このプロセスにおいて、新規ユースケースが、190で、分析システムのために選択される。システムは、192で、進化の3つの側面(ワークフロー、ユーザ、およびデータ)を同時にキャプチャする。プロセスは、194で、リライトにつながるグレーボックスUDFモデリング技術を適用する。このプロセスはまた、196で、最適かつ仕事効率のよいワークフローリライトを実行する。OptCost関数は、198で、約束する候補のビューの増分を列挙することを可能にするために用いられる。プロセスは、そして、サーチ問題をリライトし、その問題を、サーチ空間を削るために200で用いられる、nサーチ問題として型変換する(cast)。
一実施形態において、仕事効率クエリリライトアルゴリズムは、ビューを使用してリライトするコストの下限によって順序付けられたターゲットのそれぞれで空間をサーチする。これは計算上高価であるため、下限は、有効なリライトを見つけることを要求するべきでない。我々は、候補ビューvおよびターゲットWを入力として取り込み、vを用いてWのリライトrの下限を提供する、楽観的なコスト関数OptCost(W,v)を定義する。rは、候補ビューvを用いる、Wのリライトである。下限の特性は、OptCost(W,v)≦Cost(r)である。下限コストを用いることは、オブジェクト間の計算距離が計算上高価であり、このため、常に実際の距離以下である望ましい特性を計算することが容易である、代わりの距離関数を好む、距離空間の最近隣探索問題から発想を得ている。
OptCost関数を考慮すると、リライトアルゴリズムは、この問題を2つの部分に分割することによって、Wの最適なリライトr*を見つける。
1.BfRewriteは、W中の全てのターゲットについてのリライトの効率的なサーチを実行し、Wについての全体的に最適なリライトを出力する。
2.ViewFinderは、単一のターゲットについての候補ビューを、それらがターゲットの低コストのリライトを生成する能力に基づいて列挙し、BfRewriteによって利用される。
BfRewriteアルゴリズムは、W中の複数のターゲットで見つかった複数のリライトから構成され得る、Wのリライトrを生成する。計算されたリライトr*は、同じクラス内の全てのリライトの候補のうち最低コストを有する可能性がある。さらに、アルゴリズムは、仕事効率がよい:Cost(r*)が先天的に知られていないとしても、最適なコストCost(r*)よりも高い候補ビューをOptCostと共に試験することはない。直感的には、アルゴリズムは、証拠を示して、最適なリライトを発見するために必要とされるサーチ空間の一部のみを探索する。
アルゴリズムは、プランについての最良のリライトであるW自身から始まる。その後、W中の複数のターゲットそれぞれにおいて、n個の同時サーチの問題を生成し、よりよりリライトを見つけるために、繰り返して動作する。各繰り返しにおいて、アルゴリズムは、1つのターゲットWを選択し、Wにおける候補ビューを試験する。アルゴリズムは、W中の他のターゲットのサーチ空間を削ることを支援するために、このステップの結果を利用する。仕事効率を上げるために、アルゴリズムは、次に試験する候補ビューを正確に選択しなければならない。我々が下記に示すように、OptCost関数は、絞り込む次のターゲットを選択するために、重要な役割を果たしている。
BfRewriteは、各ターゲットにおいてリライトの空間をサーチするために、ViewFinderの例を用いている。ViewFinderは、以下の複数の関数を提供するブラックボックスである。(1)Initは、候補ビューのサーチ空間をそれらのOptCostに従って生成する。(2)Peekは、次の候補ビューのOptCostを提供する。(3)Refineは、次の候補ビューを用いるターゲットのリライトを見つけようとする。Refineの1つの重要な特性は、以下の通りである:Peekの値よりも小さいコストを有する対応するターゲットについて見つかる残りのリライトが存在しないこと。
ViewFinderの重要な特徴は、BfRewriteによって、順に空間を探索し、セクション4.1.中に示されるように不要なサブ空間を削るために用いられる、そのOptCost関数である。上述したように、ビューを用いるリライトクエリは、困難な問題として知られている。伝統的に、SPJGクエリのクラスに対するビューを用いるリライトクエリのための方法は、2段階のアプローチを用いる。削減(prune)段階は、どのビューがクエリに関連しているかを決定し、関連する複数のビューの中から、要求されたジョイン述語の全てを含むものは「完全な(complete)ソリューション」と呼ばれ、そうでなければ、「部分的な(partial)ソリューション」と呼ばれる。これは、典型的には、追加の関連ビューを形成するために、全ての可能な等価ジョイン方法を用いる部分的なソリューションにジョインする統合(merge)段階が続く。アルゴリズムは、クエリに応じるために有用なビューが残っている限り、繰り返す。
我々は、部分的なソリューションおよび完全なソリューションを特定するという点で類似したアプローチを採用し、統合段階に続く。ViewFinderは、ターゲットのリライトを探索するとき、候補ビューCを考慮する。Cは、標準ビュー統合手順の実装である統合関数を用いるV中において複数の「統合」ビューにより形成される複数のビューを含むのと同様に、V中において、複数のビューを含む。伝統的なアプローチは、全ての部分的なソリューションを統合して完全なソリューションを作り出し、部分的なソリューションが残らなくなるまで継続する。これは、候補ビューの空間を指数関数的に爆発的に増やす。このアプローチは、必要に応じて、空間を爆発的に増やすことを可能にし、考慮されているよりもずっと少ない候補ビューをもたらす。
早期終了条件を用いずに、既存のアプローチは、全てのターゲットにおいて徹底的に空間を探索するであろう。このため、我々は、空間を列挙し、要求に応じてのみ段階的に探索し、BfRewriteにより要求されると、頻繁に、サーチを停止および再開することができるリライトアルゴリズムを望んでいる。我々は、ターゲットに対する等価リライトが存在する可能性があるが、ViewFinderはそれを見つけるように依頼されないかもしれないことに注意する。
ViewFinderは、アルゴリズム4中に示されている。ハイレベルにおいて、ViewFinderは、ステートフルであり、BfRewriteに各ターゲットでのインクリメンタルサーチを開始、停止および再開させることが可能である。ViewFinderは、候補ビューの優先度キューを用いて、状態を維持する。ViewFinderは、我々が次に説明する3つの関数Init、Peek、およびRefineを実装する。
Init関数は、ターゲットWi(Wiは集合Wに属する)の論理表現であるクエリおよびシステム内に存在する実体化ビューVのセットと共に、ViewFinderのインスタンスを作成する。次に、クエリは、qに割り当てられ、V内の各ビューは、OptCost(q,v)をソーティングキーとして用いて、優先度キューに加えられる。Initの最後において、PQ内の候補ビューは、V内のビューのみを含む。
Peek関数は、BfRewriteによって、PQ内の先頭アイテムのOptCostを取得するために用いられる。Refine関数は、BfRewriteがViewFinderに次の候補ビューを試験するように依頼したときに起動される。この段階では、ViewFinderは、先頭アイテムvをPQからポップする。ViewFinderは、そして、vを以前ポップした候補ビュー(すなわち、Seen中のビュー)と統合して、その結果、候補ビューの空間を順に爆発的に増加させることによって、新規候補ビューのセットMを生成する。Seenは、vのOptCost以下のOptCostを有する候補ビューを含むことに注意せよ。Mは、Seen内にすでになく、PQ中に挿入された候補だけを維持している。後に定理として提供されるOptCostの特性は、M内の候補ビューは、vのOptCostよりも大きいOptCostを有し、これらのビューは、vより前に試験されていない必要がある。この特性は、候補ビューの空間の漸進的な爆発的増加を可能にする。そして、vがSeenに加えられる。
もしvが完全であると推測される場合、我々は、RewriteEnum関数を起動することによって、vを用いてqのリライトを見つけようとする。RewriteEnumによって見つかった複数のリライトのうち、最も安価なリライトがBfRewriteに結果として返される。ビューvがクエリqについて部分的であるか完全であるかを決定するために、我々は、楽観的なアプローチを採用する。このアプローチは、vを用いる完全なリライトが存在するという推測を示している。これらの条件は、vを用いる等価リライトの存在を確認するために十分ではないが、推測は、ビューがqのリライトに参加するために満たさなければならない、以下の必要条件を要求する。
(a)vは、qによって要求される全ての特性を含む、またはv中にないq中の特性を生み出すために必要な全ての特性を含む。
(b)vは、qよりも弱い選択述語を含んでいる。
(c)vは、qよりも凝集度が低い。
関数GuessComplete(q,v)は、これらのチェックを実行し、vがqに関する特性を満たしている場合、trueを返す。有効なリライトが存在していることを特定するための要件を指定したこれらの条件下では、推測は、偽陽性となることがあるが、偽陰性になることは決してない。
RewriteEnumアルゴリズムは、完全であると推測されるビューを用いて、クエリの有効なリライトを生成しようとする。返されるリライトは、vを用いる全ての可能なqの等価リライトの中で最も安価なものを示している。リライトのコストは、Cost関数によって評価され、そのリライトを実装する最も安価な実行プランに対応している。評価は、リライトおよびクエリが同じ特性、フィルタ、および分類を含むことを確認することによって決定される。
我々は、Lを用いて、完全であると推測されるビューvに補償を適用することによって、qの等価リライトを列挙する。我々は、要求された補償の全ての配列を生成し、等価の試験を行うことによって、これを実行し、Lを与えられる全ての可能なリライトの総当たりの列挙となる。これは、Lの絶対値を小さく維持するシステムのためのケースを作る。Lがオペレータの既知の固定セットに制限されているとき、それは、分類を含む単純な統合の特定のケースとして、[?]中にあるように、多項式数のリライトの試みを試験するのに十分であるかもしれない。そのようなアプローチは、全体的なシステムの利益となる場合、システムがLからUDFsを用いてLを拡張するフレキシビリティを有するべきであるようなケースに適用することができない。
有効なリライトを見つける計算コストを考慮して、BfRewriteは、2つのストラテジーを用いて、RewriteEnumアルゴリズムの起動を制限する。まず1つ目に、我々は、上述した3つの特性に基づいて、ビューの完全性を推測する全ての候補ビュー上にRewriteEnumを適用することを避ける。2つ目に、我々は、vを用いて、リライトのコストの下限値を決定することによって、RewriteEnumを全ての完全なビューに適用することを遅らせる。下限値について、我々は、次のセクションで説明されるOptCostを用いる。
システムは、それらが低コストリライトを提供する能力に基づいた候補ビューの列挙を実行する。OptCostは、下限値に到達するために、Cost関数の“non-subsumable”なコスト特性に依存している。vがqに関して完全であると推測されることを考慮すると、qおよびvの属性、フィルタ、および分類の表現間の差異は、fixとされる。Fixは、qの表現内のvの表現を変えることができる架空のローカル関数を示す。そのようなローカル関数を含むUDFは、実際には存在しないであろうことに注意せよ。我々は、Lからの補償を含むリライトを生成するRewriteEnumを起動しなければならない。補償中のローカル関数の組み合わせは、vの表現をqに変換する。最後に、完全であると推測されることが偽陽性をもたらし得るのと同じ理由で、fixの存在は、vが有効なリライトをもたらすことを保証することに注意せよ。どちらも、要求された補償動作が互いに独立してvに適用することができると仮定する。
OptCost関数は、RewriteEnum(q,v)により返されたプランのコストの下限値であり、計算が安価であるという、2つの特性を有する。vが実体化ビューである場合、cは、vにアクセスするコストと等価である。それ以外の場合は、vがビューの統合の結果である場合、cは、vの構成ビューにアクセスするための合計コストである。我々は、vが既に実体化されていない場合、cを、v内の構成ビューを統合するコスト(すなわち、作成コスト)とし、そうでなければ、既に実体化されている場合、c=0である。我々は、cを、v上のfix内の動作のそれぞれを実行するコストを取得するために、Costを起動することによって得られた、v上のfix内で最も安価な動作を適用するコストとする。xはfix内の動作であり、cはmin(Cost(x,v))により得られる。
qに関するvのOptCostは、c=c+c+cによって得られる。cは、vを用いるリライトのどのプランのコストよりも小さい。vがqに関して部分的である場合、どのような補償も適用されないため、c=0である。
最適化部は、それを実体化する前に、候補ビューv中に補償がプッシュされ得るプランを生成することができる。この場合、OptCostは、vの全ての構成ビューにアクセスするコスト(c)に加えて、vの任意の構成ビュー上に、または、vを生成するプロセス中で生成され得る中間ビュー上に、fix中で最も安価な動作を適用する最小コストc’だけを考慮できるように、弱い下限を提供することができる。vがqに関して部分的である場合、OptCostは、cのみを含む。一般的に、cは、存在する場合、vを用いたqの等価リライトrにより生み出される任意のプランのコストの下限である。最低コストrを見つけるために、RewriteEnumは、等価リライトを達成するために、補償動作の全ての配列を適用する。いくつの動作が補償に用いられたかに関わらず、定義1によって、補償を適用するコストは、少なくとも、fix中で最も安価な動作cと同じくらい高価である。
次に、OptCost関数は、補償のプッシュダウンを含むケースについて分析される。この場合、vの構成ビューの統合の順序も、適用可能な補償も両方まだ知られていない。下限は、rの任意のプラン(すなわち、c’)中の任意の補償オペレータの位置だけでなく、v中の(すなわち、cを用いることによって)構成ビューの順序についていかなる仮定もつくらないように、維持する。Seen中に存在しないM中の全ての候補ビューのOptCostは、vのOptCost以上である。
アルゴリズム1−4のための疑似コードを以下に示す。
Figure 0005922805
Figure 0005922805
Figure 0005922805
Figure 0005922805
上記の方法は、日和見主義的な実体化ビューにとって、大規模なデータ分析システムにおいて、クエリを大幅に高速化するという利点を有する。仕事効率は良好であるが、UDFモデルおよび下限OptCost関数を活用して、BfRewriteアルゴリズムは、最適なリライトを生成する。現実的なシナリオと、平均61%で、2ケタ以上の大きさで、実証された劇的なパフォーマンス改善についての様々な進化的なクエリ。システムは、保持するために最も有益なビューを識別することができる。ビューを保持するストラテジーは、これらの決定がビューメンテナンスコストにより影響を受けていることを考慮して、全体的なシステムの利益の観点から、開発され得る。
本発明は、ハードウェア、ファームウェア、またはソフトウェア中で、或いは、この3つの組み合わせにより、実装することができる。好ましくは、本発明は、プロセッサ、データストレージシステム、揮発性および非揮発性メモリおよび/またはストレージエレメンツ、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを有する、プログラム可能なコンピュータ上で実行される、コンピュータプログラム中で実装される。
一例として、このシステムをサポートするコンピュータのブロック図が次に説明される。コンピュータは、好ましくは、プロセッサ、ランダムアクセスメモリ(RAM)、プログラムメモリ(好ましくは、フラッシュROMのような、書き込み可能なリードオンリーメモリ(ROM))およびCPUバスによって接続された入力/出力(I/O)コントローラを含む。コンピュータは、必要に応じて、ハードディスクおよびCPUバスに接続されたハードドライブコントローラを含んでもよい。ハードディスクは、本発明のような、アプリケーションプログラムおよびデータを格納するために用いることができる。代わりに、アプリケーションプログラムは、RAMまたはROMに格納されてもよい。I/Oコントローラは、I/Oバスを用いてI/Oインタフェースに接続される。I/Oインタフェースは、アナログまたはデジタルの形で、シリアルリンク、ローカルエリアネットワーク、無線リンク、およびパラレルリンクのような通信リンク上でデータを受信し、送信する。必要に応じて、ディスプレイ、キーボード、およびポインティングデバイス(マウス)がまたI/Oバスに接続されてもよい。代わりに、別個のコネクション(別個のバス)がI/Oインタフェース、ディスプレイ、キーボード、およびポインティングデバイスのために用いられてもよい。プログラム可能なプロセッシングシステムは、予めプログラムされていてもよいし、他のソース(例えば、フロッピーディスク、CD−ROM、または他のコンピュータ)からプログラムをダウンロードすることによって、プログラム(および再プログラム)されてもよい。
各コンピュータプログラムは、記憶媒体またはデバイスがここに記述された手順を実行するために、コンピュータに読み込まれたときに、コンピュータの動作を構成し、制御するために、実体的に、一般的なまたは特定の目的のプログラム可能なコンピュータによって読み込み可能な、機械可読記憶媒体またはデバイス(例えば、プログラムメモリまたは磁気ディスク)中に明白に格納される。本発明のシステムはまた、コンピュータプログラムを用いて構成され、コンピュータ可読記憶媒体中で具現化され、記憶媒体がそのように構成されるため、コンピュータは特定の所定の方法で、ここに記述された機能を実行するように動作する。
当業者は、本発明の広範な教示が多様な形態で実現することができることを、上述の説明から理解することができる。理解できるように、開示され、特許請求された方法のステップは、本発明の精神から逸脱することなく、ここに開示され、特許請求された順序とことなる順序で実行することができる。したがって、本発明は、特定の例に関連して説明されてきたが、図面、明細書、および下記の特許請求の範囲を検討すれば、他の修正が、当業者に明らかとなるであろうため、本発明の真の範囲は、そのように限定されるべきでない。

Claims (21)

  1. 進化的なクエリをサポートする方法であって、
    以前のクエリまたはワークフロー実行結果である実体化ビューから、アーチファクトを保持することと、
    ユーザ定義関数(UDF)のリライトのサーチをサポートするために、前記UDFのグレーボックスモデルを提供することと、
    ワークフロー実行時間を低減するために、アーチファクトを用いるリライトを自動的に生成することと、
    リライト空間を徐々にサーチして、候補ビューの空間をより大きくし、最適なリライトを見つけるためのソリューション空間の最小量をサーチすることと、を含む方法。
  2. 請求項1に記載の方法であって、
    ワークフローの進化、ユーザの進化、およびデータの進化を含む、3つの側面に沿った同時進化をサポートすることを含む、方法。
  3. 請求項1に記載の方法であって、
    前記UDFを含むようにリライト言語を拡張することを含む、方法。
  4. 請求項1に記載の方法であって、
    が候補ビューvを用いるWのリライトであり、下限の特性が、OptCost(W,v)≦Cost(r)として決定される場合に、候補ビューvおよびターゲットWを入力として取得し、vを用いるWのリライトrの下限を提供する、最適コスト関数OptCost(W,v)を決定すること、を含む方法。
  5. 請求項4に記載の方法であって、
    OptCostによって順序付けられた複数の候補ビューのサーチ空間を生成することと、
    次の候補ビューのOptCostを提供することと、
    前記次の候補ビューを用いて前記ターゲットのリライトを決定することと、を含む方法。
  6. 請求項1に記載の方法であって、
    W内の全てのターゲットについてリライトの効率的なサーチを実行し、Wについて全体的に最適なリライトを出力し、
    単一のターゲットについて、1または複数の候補ビューを、それらが前記ターゲットの低コストリライトを生成する能力に基づいて列挙することによって、
    Wの前記最適なリライトr*を決定することを含む方法。
  7. 請求項1に記載の方法であって、
    W内の複数のターゲットにおいて見つかった複数のリライトからなるWのリライトr*を生成することを含み、その間に、計算されたリライトr*が同じクラス内の複数のリライトのうち最小コストを有する、方法。
  8. 請求項1に記載の方法であって、
    Wをプランに対するリライトとして用いることと、
    n個の同時サーチ問題をW内の各ターゲットにおいて生成して、より良いリライトを繰り返し探索することと、その間に、各繰り返しが1つのターゲットWiを選択し、Wiにおける候補ビューを試験し、
    W内の他のターゲットの探索空間を削る結果、前記より良いリライトを用いることと、を含む方法。
  9. 請求項1に記載の方法であって、
    非構造化データセット上でUDFsの実行を最適化することを含む方法。
  10. 請求項1に記載の方法であって、
    ユーザワークフローの進化について最適化することを含む方法。
  11. 進化的な分析クエリをサポートするシステムであって、
    クエリを受信し、前記クエリを実行プランに変換する最適化部と、
    ワークフローの進化、ユーザの進化、およびデータの進化を含む3つの側面に沿った同時進化をサポートするために前記最適化部と接続されたクエリリライト部と、
    前記クエリリライト部と接続され、クエリ最適化において用いられる、ビュー定義および標準データ統計値を含む実体化ビューに関する情報を収容する実体化ビューメタデータ格納部と、
    前記クエリを実行するために前記クエリリライト部と接続されたクエリ実行エンジンと、を有するシステム。
  12. 請求項11に記載のシステムであって、
    クエリは、大規模なログと、UDFsを含むクエリとを含む基本データに対して表現される、システム。
  13. 請求項11に記載のシステムであって、
    前記最適化部は、システムに認められたUDFsについてのコスト推定値を提供する、システム。
  14. 請求項11に記載のシステムであって、
    前記最適化部は、各プランノードにおける2つのタイプの注釈:(1)計算の論理表現および(2)推定された実行コストを有するプランを生成する、システム。
  15. 請求項14に記載のシステムであって、
    前記リライト部は、ノードの出力に対するリライトを探索するとき、前記注釈中の前記論理表現を用いる、システム。
  16. 請求項15に記載のシステムであって、
    前記論理表現は、UDFsの関係オペレータからなる、システム。
  17. 請求項15に記載のシステムであって、
    前記ノードの出力に対するリライトの探索の間に見つかったリライトのそれぞれについて、前記リライト部はプランおよび推定コストを取得するために前記最適化部を利用する、システム。
  18. 請求項11に記載のシステムであって、
    クエリ実行の間のクエリ処理の副産物が、日和見主義的な実体化ビューとして維持され、日和見主義的な物理設計構造として格納される、システム。
  19. 請求項11に記載のシステムであって、
    候補ビューvおよびターゲットWiを入力として取得し、Wiのリライトriの下限をvを用いて提供し、riが、前記候補ビューvを用いるWiのリライトであり、前記下限の特性がOptCost(Wi,v)≦Cost(ri)として決定される楽観的コスト関数Optを決定するためのコンピュータコードを含む、システム。
  20. 請求項19に記載のシステムであって、
    前記OptCostによって順序付けられた複数の候補ビューの探索空間を生成し、次の候補ビューの前記OptCostを提供し、前記次の候補ビューを用いて前記ターゲットのリライトを決定するためのコンピュータコードを含む、システム。
  21. 請求項11に記載のシステムであって、
    Wをプランに対するリライトとして用い、
    n個の同時サーチ問題をW内の各ターゲットにおいて生成して、より良いリライトを繰り返して探索し、その間に、各繰り返しが1つのターゲットWiを選択し、Wiにおける候補ビューを試験し、
    他のターゲットの探索空間を削る結果、前記より良いリライトを用いるためのコンピュータコードを含むシステム。

JP2014561198A 2012-06-27 2013-05-31 進化的な分析のためのシステム Active JP5922805B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261664971P 2012-06-27 2012-06-27
US61/664,971 2012-06-27
US13/890,359 US9183253B2 (en) 2012-06-27 2013-05-09 System for evolutionary analytics
US13/890,359 2013-05-09
PCT/US2013/043532 WO2014003970A1 (en) 2012-06-27 2013-05-31 System for evolutionary analytics

Publications (2)

Publication Number Publication Date
JP2015515671A JP2015515671A (ja) 2015-05-28
JP5922805B2 true JP5922805B2 (ja) 2016-05-24

Family

ID=49779245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014561198A Active JP5922805B2 (ja) 2012-06-27 2013-05-31 進化的な分析のためのシステム

Country Status (5)

Country Link
US (1) US9183253B2 (ja)
EP (1) EP2810186A4 (ja)
JP (1) JP5922805B2 (ja)
CN (1) CN104137095B (ja)
WO (1) WO2014003970A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262076A (zh) * 2011-01-25 2013-08-21 惠普发展公司,有限责任合伙企业 分析数据处理
US9355145B2 (en) 2011-01-25 2016-05-31 Hewlett Packard Enterprise Development Lp User defined function classification in analytical data processing systems
US9383982B2 (en) * 2012-09-12 2016-07-05 Microsoft Technology Licensing, Llc Data-parallel computation management
US10459767B2 (en) * 2014-03-05 2019-10-29 International Business Machines Corporation Performing data analytics utilizing a user configurable group of reusable modules
US9870295B2 (en) * 2014-07-18 2018-01-16 General Electric Company Automation of workflow creation and failure recovery
US10102029B2 (en) 2015-06-30 2018-10-16 International Business Machines Corporation Extending a map-reduce framework to improve efficiency of multi-cycle map-reduce jobs
US11120021B2 (en) * 2017-01-11 2021-09-14 Facebook, Inc. Systems and methods for optimizing queries
CN108255979A (zh) * 2017-12-28 2018-07-06 山东浪潮商用系统有限公司 一种数据汇总方法、数据汇总平台及系统
US11694289B2 (en) 2020-06-30 2023-07-04 Cerner Innovation, Inc. System and method for conversion achievement
US12117999B2 (en) * 2021-09-29 2024-10-15 International Business Machines Corporation Masking shard operations in distributed database systems
US20230297573A1 (en) * 2022-03-21 2023-09-21 Oracle International Corporation Workload-aware data placement advisor for olap database systems

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2326513C (en) * 1998-03-27 2009-06-16 Informix Software, Inc. Processing precomputed views
CA2249096C (en) * 1998-09-30 2001-12-04 Ibm Canada Limited-Ibm Canada Limitee Method for determining optimal database materializations using a query optimizer
US20060047696A1 (en) * 2004-08-24 2006-03-02 Microsoft Corporation Partially materialized views
CN1763744A (zh) * 2004-08-24 2006-04-26 微软公司 局部物化视图
US20070143246A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query
US8204876B2 (en) * 2006-03-13 2012-06-19 Oracle International Corporation Dynamic materialized view ranging
US7644062B2 (en) * 2006-03-15 2010-01-05 Oracle International Corporation Join factorization of union/union all queries
US8060391B2 (en) * 2006-04-07 2011-11-15 The University Of Utah Research Foundation Analogy based workflow identification
US7693820B2 (en) * 2006-04-21 2010-04-06 Microsoft Corporation Use of materialized transient views in query optimization
US7606827B2 (en) * 2006-12-14 2009-10-20 Ianywhere Solutions, Inc. Query optimization using materialized views in database management systems
US7844600B2 (en) * 2007-07-13 2010-11-30 Oracle International Corp. Materialized views with user-defined aggregates
JP5181283B2 (ja) * 2008-06-30 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム
US7991765B2 (en) * 2008-07-31 2011-08-02 Teradata Us, Inc. Cost-based query rewrite using materialized views
WO2010045143A2 (en) * 2008-10-16 2010-04-22 The University Of Utah Research Foundation Automated development of data processing results
US9305057B2 (en) * 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges

Also Published As

Publication number Publication date
WO2014003970A1 (en) 2014-01-03
JP2015515671A (ja) 2015-05-28
CN104137095B (zh) 2017-10-20
CN104137095A (zh) 2014-11-05
US20140006383A1 (en) 2014-01-02
EP2810186A4 (en) 2015-11-11
EP2810186A1 (en) 2014-12-10
US9183253B2 (en) 2015-11-10

Similar Documents

Publication Publication Date Title
JP5922805B2 (ja) 進化的な分析のためのシステム
US11620574B2 (en) Holistic optimization for accelerating iterative machine learning
Kim et al. Taming subgraph isomorphism for RDF query processing
JP5559636B2 (ja) 情報サーベイのための方法及び装置
US8423569B2 (en) Decomposed query conditions
US20070214135A1 (en) Partitioning of data mining training set
Thakkar et al. Composing, optimizing, and executing plans for bioinformatics web services
LeFevre et al. Opportunistic physical design for big data analytics
Bruno et al. Polynomial heuristics for query optimization
Sevenich et al. Using domain-specific languages for analytic graph databases
Zhang et al. Recognizing patterns in streams with imprecise timestamps
Martínez-Cruz et al. Flexible queries on relational databases using fuzzy logic and ontologies
Stadler et al. Sparklify: A scalable software component for efficient evaluation of sparql queries over distributed rdf datasets
WO2021248319A1 (en) Database management system and method for graph view selection for relational-graph database
US20130060753A1 (en) Optimization Method And Apparatus
US20100036804A1 (en) Maintained and Reusable I/O Value Caches
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
Fegaras et al. Compile-time code generation for embedded data-intensive query languages
Glake et al. Towards Polyglot Data Stores--Overview and Open Research Questions
Hussain et al. A methodology to rank the design patterns on the base of text relevancy
Shmeis et al. A rewrite-based optimizer for spark
Rivero et al. On isomorphic matching of large disk-resident graphs using an XQuery engine
Nikolov et al. Ephedra: Efficiently combining RDF data and services using SPARQL federation
WO2021206829A1 (en) Transforming queries using bitvector aware optimization
LeFevre et al. Exploiting opportunistic physical design in large-scale data analytics

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160414

R150 Certificate of patent or registration of utility model

Ref document number: 5922805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350