JP2016509294A - 分散型データベースクエリ・エンジン用のシステムおよび方法 - Google Patents

分散型データベースクエリ・エンジン用のシステムおよび方法 Download PDF

Info

Publication number
JP2016509294A
JP2016509294A JP2015551711A JP2015551711A JP2016509294A JP 2016509294 A JP2016509294 A JP 2016509294A JP 2015551711 A JP2015551711 A JP 2015551711A JP 2015551711 A JP2015551711 A JP 2015551711A JP 2016509294 A JP2016509294 A JP 2016509294A
Authority
JP
Japan
Prior art keywords
query
node
worker
data
partial
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.)
Granted
Application number
JP2015551711A
Other languages
English (en)
Other versions
JP6117378B2 (ja
JP2016509294A5 (ja
Inventor
マーシー、ラゴサム
ゴエル、ラジャット
Original Assignee
フェイスブック,インク.
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 フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2016509294A publication Critical patent/JP2016509294A/ja
Publication of JP2016509294A5 publication Critical patent/JP2016509294A5/ja
Application granted granted Critical
Publication of JP6117378B2 publication Critical patent/JP6117378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/2455Query execution
    • G06F16/24552Database cache management
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

低レイテンシのデータベース・クエリ処理を実行することができるシステム用の技術を本明細書に開示する。システムは、ゲートウェイ・サーバおよび複数のワーカ・ノードを含む。ゲートウェイ・サーバは、複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対して、データベース・クエリを複数の部分クエリに分割し、複数の中間結果に基づきクエリ結果を構築するように構成されている。複数のワーカ・ノードの各ワーカ・ノードは、複数の部分クエリのそれぞれの部分クエリを、分散型ストレージ・クラスタの少なくとも1つのデータ・ノード上に記憶されているそれぞれの部分クエリに関係しているデータを走査することによって処理するように、かつ、ワーカ・ノードのメモリに記憶されている複数の近似の中間結果を生成するように構成されている。

Description

本発明は、一般にデータベースに関し、低クエリ・レイテンシ・データベース分析用の分散型データベースクエリ・エンジンに関する。
コンピュータおよびネットワーク技術における発展によって、大量のデータ・ストレージを必要とするアプリケーションが出現している。例えば、何千万ものユーザが、ウェブ・ページを作成したり、ソーシャル・メディア・ウェブサイトにイメージおよびテキストをアップロードしたりすることができる。結果として、ソーシャル・メディア・ウェブサイトは、毎日大量のデータを蓄積し、したがって、データを記憶および処理するために高度にスケーラブルなシステムを必要とする。様々なツールが、そうしたマスデータ・ストレージを可能とするために存在する。アプリケーションが何千ものコンピュータ(ノードとも呼ばれる)や数ペタバイトのデータのクラスタと対話することを可能とすることによって大規模なデータ集約的分散型アプリケーションをサポートする、フレームワークが存在する。例えば、Hadoopと呼ばれるフレームワークは、Hadoop分散型ファイルシステム(HDFS)と呼ばれる分散型、スケーラブル、かつポータブルなファイルシステムを利用して、Hadoopクラスタ中のデータ・ノード(スレーブ・ノードとも呼ばれる)間に大量のデータを分散させる。データ・ノードの停電またはネットワーク障害(スイッチ故障を含む)の悪影響を減少させるため、HDFSにおけるデータは、典型的には、様々なデータ・ノード上に複製される。
Hive(オープン・ソースのデータ・ウェアハウス・システム)は、Hadoopクラスタ上で動作するように開発された。クエリ言語(SQL)により表現されるHiveサポート・データ・クエリは、HiveQLと呼ばれる宣言型言語に似ている。Hiveシステムは、次いで、HiveQLにより表現されているクエリをHadoopクラスタ上で実行可能なマップ縮小(map reduce)ジョブにコンパイルする(有向非巡回グラフの数学形式による)。HiveQL言語は、プリミティブ型と、配列およびマップなどのコレクションと、ネストされたコンポジションのタイプとを格納しているテーブルをサポートする、タイプ・システムを含む。加えて、Hiveシステムは、スキームおよび統計を格納するシステム・カタログ(Hive Metastoreと呼ばれる)を含み、これはデータの探査(exploration)およびクエリの最適化に有用である。
Hadoopクラスタと結合されると、Hiveシステムは、ソーシャル・ネットワーキング・システムの大量のデータを記憶して分析することが可能である。例えば、Hiveシステムは、ユーザがソーシャル・ネットワーキング・システム上でフォローするストーリのランクを決定するべく、ユーザ間のつながりの程度を分析することが可能である。Hiveシステムは、ソーシャル・ネットワーキング・システムのサービスがアプリケーション開発者、アドミニストレータ、および広告主が開発および経営判断を行うのを助けるためにどのように用いられているかに関する洞察を得るべく、アクティビティ・ログを分析することが可能である。Hiveシステムは、ソーシャル・ネットワーキング・システムのユーザに対し示される広告を最適化する複雑なデータ・マイニング・プログラムを動作させることができる。Hiveシステムは、さらに、ソーシャル・ネットワーキング・システムのスパムおよび中傷(abuse)を識別するべく、利用ログを分析する。
Hiveシステムは、プログラミング能力を有しない人が、複雑なデータ・パイプラインの承認、デバッグ、およびスケジューリングを行うため、またHiveシステムおよび
他のリレーショナル・データベース(MySQLおよびOracleなど)に記憶されているデータに基づく報告を生成するべくHiveクエリを承認および実行するためのウェブ・ベースのツールを含む。
しかしながら、Hiveシステム用のクエリ・レイテンシは通常では大きい。大量のデータおよびHadoopクラスタのマップ縮小スキームのため、最も単純なクエリであっても、完了には数秒から数分を要する。これは特に、対話型分析において、オペレータが一連のクエリのうちの次のクエリを決定するために現在のクエリの結果を必要とするときに問題である。レイテンシの問題は、アナリストの生産性に著しく影響する(アナリストは、現在のクエリの結果を待機する場合、次のクエリを決定することができないので)。
1つの可能な代替のソリューションは、Hiveからの集約データを、MySQLおよびOracleなど、他のタイプのリレーショナル・データベース管理システム(RDBMS)にロードするデータ・パイプラインを作成することである。次いで、オペレータは、対話型分析を行い、それらのRDBMSを用いて報告を作成(ビルド)する。しかしながら、各RDBMSは、個別のデータ・パイプラインを必要とする。また、データ・パイプラインがHiveから他のRDBMSまで集約データを転送するのにも時間を要する。したがって、この代替の処理は、依然として厄介かつ不便である。
本明細書において導入される技術は、システム・カタログ(例えば、Hiveメタストア)にメタデータを記憶する大規模ストレージ・クラスタ(例えば、Hadoopクラスタ)に記憶されている極めて大量のデータに対する低レイテンシのクエリという利点を提供する。特に、本明細書において導入される技術は、サービング(serving)木計算フレームワークに基づく分散型クエリ・エンジンを含む。分散型クエリ・エンジンは、ゲートウェイ・サーバおよび複数のワーク・ノードを含む。ゲートウェイ・サーバは、1つのクエリ・タスクを部分タスクに分割する。エンジンの各ワーカ・ノードは、部分タスクを扱い、メモリにおける中間のクエリ結果を生成する。中間のクエリ結果は、関連するデータの一部を走査することによって生成される近似の中間結果となることができる。ゲートウェイ・サーバは、この中間のクエリ結果を受信し、その中間のクエリ結果に基づきクエリ・タスクに対するクエリ結果を構築する。
本明細書において導入される技術により、したがって、データベースに対するデータベース・クエリを処理するためのシステムが提供される。システムは、ゲートウェイ・サーバおよび複数のワーカ・ノードを含む。ゲートウェイ・サーバは、複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対して、データベース・クエリを複数の部分クエリに分割し、複数の中間結果に基づきクエリ結果を構築するように構成されている。複数のワーカ・ノードの各ワーカ・ノードは、複数の部分クエリのそれぞれの部分クエリを、分散型ストレージ・クラスタの少なくとも1つのデータ・ノード上に記憶されているそれぞれの部分クエリに関係しているデータを走査することによって処理するように、かつ、ワーカ・ノードのメモリに記憶されている複数の近似の中間結果を生成するように構成されている。
本明細書において導入される技術では、Hadoopクラスタなど大規模ストレージ・クラスタに記憶されているデータの大きな集約に対し、低レイテンシのクエリ処理を行うことができる。これは特に、対話型の分析において有益である(オペレータは、次のクエリの決定を完了するために現在のクエリの結果を待機する必要がないので)。この分散型クエリ・システムは、関連するデータの一部を走査することによって、さらに近似の結果
を生成することができる。システムのオペレータは、一連のクエリの有効性をテストするために、関連するデータの全集合に対して一連のクエリを処理する前に、その一連のクエリのラッピッド・プロトタイプを受信することができる。
本発明による実施形態は、システム、記憶媒体、および方法に係る添付の特許請求の範囲により特に開示されており、1つのクレーム・カテゴリー(例えば、システム)において言及される特徴は、別のクレーム・カテゴリ(例えば、方法)においても同様に請求される。
本発明の一実施形態では、システムは、複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリから複数の部分クエリを生成するように、かつ、複数の中間結果に基づきクエリ結果を構築するように構成されているゲートウェイ・サーバと、複数のワーカ・ノードとを備え、前記複数のワーカ・ノードの各ワーカ・ノードは、前記複数の部分クエリのそれぞれの部分クエリを、前記それぞれの部分クエリに関係し前記分散型ストレージ・クラスタの少なくとも1つのデータ・ノード上に記憶されているデータを走査することによって処理するように構成されており、前記複数のワーカ・ノードの各ワーカ・ノードは、そのワーカ・ノードのメモリに記憶されている前記複数の中間結果のうちの1つの中間結果を生成するようにさらに構成されている。
前記複数のワーカ・ノードの各ワーカ・ノードは、前記複数の部分クエリの前記それぞれの部分クエリを、前記分散型ストレージ・クラスタの前記少なくとも1つのデータ・ノード上に記憶されている前記それぞれの部分クエリに関係している前記データの一部を走査することによって処理するように、かつ、ワーカ・ノードの前記メモリに記憶されている近似の中間結果を生成するようにさらに構成され得る。
前記ゲートウェイ・サーバは、少なくとも1つの近似の中間結果に基づき近似のクエリ結果を構築するようにさらに構成され得る。
前記ゲートウェイ・サーバは、前記複数の中間結果の一部に基づき近似のクエリ結果を構築するようにもさらに構成され得る。
前記ゲートウェイ・サーバは、散在するワーカ・ノードを識別し、前記散在するワーカ・ノードに割り当てられている部分クエリを複数の下位の部分クエリにさらに分割し、前記複数の下位の部分クエリを前記複数のワーカ・ノードの一部に割り当てるように、またさらに構成され得、ここで、前記散在するワーカ・ノードは、前記ゲートウェイ・サーバに進行割合を報告しないか、所定期間の後に所定値未満の前記進行割合を前記ゲートウェイ・サーバに報告するワーカ・ノードである。
前記複数のワーカ・ノードの各ワーカ・ノードは、前記分散型ストレージ・クラスタ内のそれぞれのデータ・ノードを動かすサービスであり得る。
システムは、前記データベースのテーブル・レベル・メタデータおよび前記分散型ストレージ・クラスタのファイル・レベル・メタデータをキャッシュするように構成されているメタデータ・キャッシュをさらに備え得る。
前記メタデータ・キャッシュは、前記データベース・クエリ用に以前のデータベース・クエリからキャッシュされたメタデータを保持するように構成され得る。
前記複数のワーカ・ノードの各ワーカ・ノードは、そのワーカ・ノードによる部分クエリ処理の状態を報告するために、前記ゲートウェイ・サーバにハートビート・メッセージを周期的に送ることが可能である。
前記ゲートウェイ・サーバは、近似のクエリ結果を返すかまたは前記データベース・クエリの処理を終了する命令をクライアント・デバイスから受け取るようにさらに構成され得る。
前記ゲートウェイ・サーバは、前記ワーカ・ノードに対し、近似の中間結果を直ちに返し、クライアント・デバイスに対する前記近似の中間結果に基づき、近似のクエリ結果を返すようにもさらに構成され得る。
前記データベース・クエリは、近似のクエリ結果の要求を含み得る。
前記クエリ結果は、前記クエリ結果について走査されたデータ・ノードに記憶されている関連するデータの一部を示す標識を伴うことが可能である。
前記データベースは、Hiveデータ・ウェアハウス・システムであり、前記分散型ストレージ・クラスタはHadoopクラスタであり得る。
本発明のさらなる一実施形態では、方法は、本発明または上記において言及した実施形態のいずれかによるシステムを用いる。
本発明のさらなる一実施形態では、方法は、クライアント・デバイスから複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリを受信する工程と、前記データベース・クエリを複数の部分クエリに分割する工程と、複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程であって、各ワーカ・ノードは前記分散型ストレージ・クラスタのデータ・ノード上で動くサービスである、部分クエリ送信工程と、前記ワーカ・ノードから前記部分クエリに対する複数の中間結果を取り出す工程であって、各中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータを走査することによって処理される、中間結果の取出工程と、前記複数の中間結果に基づきクエリ結果を生成する工程と、を備える。
方法は、前記クライアント・デバイスに前記クエリ結果および部分インジケータを返す工程であって、前記部分インジケータは、前記クエリ結果に対して走査された前記データ・ノードに記憶されている関連するデータの部分を示す工程をさらに含み得る。
方法は、また、前記ワーカ・ノードに対し近似のクエリ結果を直ちに返すように命令する工程をさらに含むことが可能であり、ここで、取出工程は、前記ワーカ・ノードから前記部分クエリに対する複数の近似の中間結果を取り出す工程であって、各近似の中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータの一部を走査することによって処理される。
方法は、各部分クエリについて、前記部分クエリに関連するデータを記憶するデータ・ノードに関するメタデータを取り出す工程をさらに備えてもよく、送信する工程は、前記メタデータに基づき複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程を含む。
本発明のさらなる一実施形態(これも請求され得る)では、方法は、クライアント・デバイスから複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリを受信する工程と、前記データベース・クエリを複数の部分クエリに分割する工程と、複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程であって、各ワーカ・
ノードは前記分散型ストレージ・クラスタのデータ・ノード上で動くサービスである、工程と、散在するワーカ・ノードを識別する工程と、前記散在するワーカ・ノードに割り当てられている部分クエリを複数の下位の部分クエリに分割し、前記複数の下位の部分クエリを前記複数のワーカ・ノードの一部に割り当てる工程と、前記ワーカ・ノードから前記部分クエリに対する複数の中間結果を取り出す工程であって、各中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータを走査することによって処理される、中間結果の取出工程と、前記複数の中間結果に基づきクエリ結果を生成する工程と、を備える。
識別する工程は、前記ワーカ・ノードが周期的に送信するハートビート・メッセージを監視することによって散在するワーカ・ノードを識別する工程であって、前記散在するワーカ・ノードは、前記散在するワーカ・ノードからのハートビート・メッセージが所定期間のあいだ受信されないとき、あるいは前記散在するワーカ・ノードから、前記散在するワーカ・ノードによる部分クエリ処理の状態を表す、閾値未満である数を含むハートビート・メッセージが受信されるときに識別される、工程を含み得る。
本発明のさらなる一実施形態(これも請求され得る)では、1つ以上の非一時的なコンピュータ可読記憶媒体はソフトウェアを具現し、該ソフトウェアは実行時、本発明または上記において言及した実施形態のいずれかによるシステムにおいて実行するように構成されている。
分散型クエリ・エンジンを作成可能なHadoopクラスタの一例を示す図。 MapReduceタスクを管理するJobTrackerを有するHadoopクラスタの一例を示す図。 分散型クエリ・エンジン、Hadoop分散型ファイルシステム(HDFS)、Hiveデータ・ウェアハウス、およびストレージ・クラスタの間の関係を示す図。 一例の分散型クエリ・エンジンの高位ブロック図。 散在するワーカ・ノードを識別し、さらに部分クエリを分割するサンプル処理を示す図。 データベース・クエリの近似処理を行うためのサンプル処理を示す図。 本明細書に記載の任意のクラスタ・ノードを表すコンピュータ・ノードのアーキテクチャの一例を示す高位ブロック図。
本明細書において導入される技術の他の態様は、添付の図面から、また以下の詳細な説明から明らかとなる。
本発明のこれらのおよび他の目的、特徴、および特性は、本出願の一部をなす添付の特許請求の範囲および図面とともに以下の詳細な説明の検討から、当業者には、より明らかとなるだろう。
本記載における「一実施形態」、「1つの実施形態」などに対する参照は、記載の特定の特徴、機能、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。本記載においてそうした句が見られる場合、必ずしもすべてが同じ実施形態を参照している訳でも、それらの句が相互に排他的である訳でもない。
現代のソーシャル・ネットワーキング・システムは、毎日大量のデータを蓄積し、したがって、データを記憶し分析するために高度にスケーラブルなシステムを必要とする。特に、大量のデータに対する効率的な対話型分析には、データ・クエリの処理に関し、低レ
イテンシで高速に応答する手法が必要である。本発明では、インメモリサービング木ベースの計算フレームワークを近似クエリ処理と組み合わせることによって可能となる分散型クエリ・エンジンを開示する。この分散型クエリ・エンジンは、さらなるインメモリ処理のために、クエリ・タスクを複数の部分タスクに分割し、部分タスクをワーカ・ノードに対し分散させる。この分散型クエリ・エンジンは、データの走査された部分に基づきワーカ・ノードに近似の中間結果を要求することによって、クエリ処理中の任意の時に近似の結果を生成することが可能である。従来のHadoopクラスタのマップ縮小スキームと異なり、ワーカ・ノードは部分タスクを処理し、処理時間を減少させ全レイテンシを改良するべく、メモリに全中間結果を記憶する。中間結果(その元になるデータではなく)のみが結果の構築のために転送され、転送されるデータの量および転送時間を著しく減少させる。
一実施形態では、分散型クエリ・エンジンは、Hadoop分散型ファイルシステム(HDFS)、Hiveデータ・ウェアハウス、およびHiveメタストアを実行する、Hadoopクラスタの上に作成されることが可能である。分散型クエリ・エンジンは、Hiveのデータフォーマットおよびメタデータと互換性を有し、HiveQL言語のサブセットをサポートすることができる。分散型クエリ・エンジンを用いるオペレータは、Hiveデータ・ウェアハウスによって管理されるデータにおける統計パターンを効率的に発見することができる。分散型クエリ・エンジンは、近似結果を生成備えるによって、一連のクエリの迅速な分析および迅速なプロトタイピングを行なうことができる。加えて、分散型クエリ・エンジンは、関連するデータ集合体(aggregate)全体を走査することによって、フル分析を実行することができる。
図1は、分散型クエリ・エンジンを作成可能なHadoopクラスタの一例を示す。図1では、Hadoopクラスタ100は、メタデータ・ノード110Aと、複数のデータ・ノード110B、110C、110Dとを含む。それらのノードは、相互接続120を通じて互いに通信可能である。相互接続120は、例えばローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、都市内ネットワーク(MAN)、インターネットなどのグローバル・エリア・ネットワーク、ファイバ・チャンネル・ファブリック、またはそうした相互接続の任意の組み合わせであってよい。幾つかの実施形態では、相互接続120は、TCP/IPを含むネットワーク・プロトコル下のノード間におけるデータの処理及びルーティング用のネットワーク・スイッチを含むことが可能である。クライアント130Aおよび130Bは、ネットワーク140(例えば、インターネット、LAN、他のタイプのネットワークまたはネットワークの組み合わせ)を介してHadoopクラスタ100と通信を行ってもよい。クライアントの各々は、例えば、従来のパーソナルコンピュータ(PC)、サーバ・クラス・コンピュータ、ワークステーション、ハンドヘルド計算/通信装置であってよい。幾つかの実施形態では、Hadoopクラスタは、コモディティ・クラス・サーバの1つ以上のラックを用いて実装される。
ファイルおよびデータは、Hadoop分散型ファイルシステム(HDFS)においてHadoopクラスタ100の複数のノードを通じて分散して記憶される。クライアント130Aおよび130Bを含むクラスタ100のクライアントに対し、HDFSは従来の階層的ファイルシステムの機能を提供する。ファイルおよびファイルのデータ・ブロックが、HDFSにおいて作成、削除、または移動されることが可能である。HDFS内にメタデータ・サービス(ファイルシステムの名前空間を維持し外部クライアントによるアクセスを制御することを含む)を提供するべくメタデータ・ノード110A上で動作中のネーム・ノード(NameNode)サービス150が存在する。NameNodeサービスは、メタデータ・ノードにおいてFsイメージ(FsImage)と呼ばれるファイル160にファイルシステム・インデックス(ファイルおよびファイルシステム・プロパティに対するブロックのマッピングを含む)を記憶することが可能である。幾つかの実施形
態では、第2のNameNodeサービスを動作させている第2のメタデータ・ノードが存在してもよい。この第2のメタデータ・ノードは、メタデータ・ノードが故障する場合、バックアップとして働く。
各データ・ノード110は、HDFSのためのファイルを記憶することを担う。HDFSに記憶されているファイルは、サブセット(本明細書では「ブロック」と呼ぶ)に分割される。一実施形態では、ブロックのサイズは64MBである。ブロックは、通常、複数のデータ・ノードに複製される。したがって、Hadoopクラスタ100におけるHDFSは、必須ではないが、データ信頼性を達成するために従来のRAIDアーキテクチャを用いることが可能である。ファイル動作は、メタデータ・ノード110A上で動作するNameNodeサービス150によって制御される。幾つかの実施形態では、データ・ノード110B、110C、110Dはラックに編成され、そこですべてのノードがネットワーク・スイッチを介して接続される。1つのラック内のノード間のネットワーク速度は、異なるラックのノード間のネットワーク速度より高速になり得る。Hadoopクラスタは、タスクを割り当てる際、この事実を考慮してもよい。DataNodeサービス170は、ブロックの読取および書込要求に応答するために各データ・ノード上で動作する。DataNodeサービス170は、また、ブロックの作成、削除、および複製を行うため、メタデータ・ノードからの要求に応答する。
幾つかの実施形態では、データ・ノード110B、110C、110Dは、メタデータ・ノード110Aに対し、ブロック報告を含む定期的なハートビート・メッセージを送信する。メタデータ・ノード110Aは、この定期ブロック報告を用いて、そのブロック・マッピングおよび他のファイルシステム・メタデータを有効とする。
クライアント130Aまたは130BがHadoopクラスタ100にファイルを書き込もうとするとき、クライアントはメタデータ・ノード110Aにファイル生成要求を送信する。メタデータ・ノード110Aは、1つ以上の割り当てられたデータ・ノードの識別子とファイルのブロックの宛先ロケーションとを有するクライアントに応答する。クライアントは、割り当てられたデータ・ノードに対し、ファイルのデータ・ブロックを送信し、したがって、クラスタは、1つ以上のデータ・ノード上のデータ・ブロックを複製することが可能である。全てのブロックが送信されると、メタデータ・ノードは、そのメタデータ(そのFsImageファイルを含む)にファイル生成を記録する。
Hadoopクラスタは、MapReduceと呼ばれるフレームワークに基づく並列データ処理エンジンとして働く。Hadoopクラスタは、MapReduce機能を実装するためにJobTrackerを含む。図2に示されているように、JobTrackerは、Hadoopクラスタ200内に専用サーバ(ジョブ・トラッカ(JobTracker)ノード210A)として実装されることが可能である。Hadoopクラスタ200は、スイッチ226を介して相互接続されている2つのラック242および244を含む。ラック242は、ラック242以内のノードを相互接続するために、JobTrackerノード210A、メタデータ・ノード210B、データ・ノード210C、210D、およびスイッチ222を含む。ラック244は、ラック242内のノードを相互接続するために、データ・ノード210E、210H、およびスイッチ224を含む。他の幾つかの実施形態では、JobTrackerは、同じメタデータ・ノードをNameNodeサービスと共有するサービスとして実装可能である。メタデータ・ノード210B(名前ノードとも呼ばれる)は追跡のためにNameNodeサービスを動作させ、クラスタを通じてデータが保持される。JobTrackerノード210A(MapReduceジョブ制御の専用)は、クライアント230から要求を受信してMapReduceジョブを起動させる。MapReduceジョブ(MapReduceアプリケーションまたはMapReduceタスクとも呼ばれる)がJobTracker210A
に対し提出されると、JobTracker210Aは、ジョブ用のHDFSにおいて、入出力ファイル、ディレクトリ、またはその両方を識別する。MapReduceタスク用の入力ファイルは、MapReduceタスクのための入力データを格納している複数の入力ファイル・ブロックを含むことが可能である。JobTracker210Aは、いくつの従タスクが作成されるか決定するために、入力ファイル・ブロック(ブロックの物理量およびどこにブロックが位置するのか)についての知識を用いる。MapReduceアプリケーションは、入力ファイル・ブロックが存在する処理ノード毎にコピーされる。各割り当てられた処理ノードについて、JobTracker210Aは少なくとも1つの従タスクを作成する。各割り当てられた処理ノード上で、TaskTrackerサービスは、そのノード上の従タスクの状態を監視し、状態および中間物出力をJobTrackerに報告する。Hadoopクラスタ200は、ファイル・ブロックについての知識に基づき従タスクを分配する。したがって、処理ロケーションにストレージを移動させることに代えて、Hadoopクラスタは処理タスクをストレージ・ロケーションに移動させる。
ノード210A−210Hは図2において単一のユニットとして示されているが、各ノードが分散型アーキテクチャを有することも可能である。例えば、ノードは、複数のコンピュータの組み合わせとして設計可能であり、それら複数のコンピュータは互いから物理的に離れていてもよく、また物理的な相互接続を通じて互いと通信を行ってもよい。そのようなアーキテクチャでは、相互接続を通じて互いと通信を行うことが可能なコンピュータを配備することなどによって、簡便なスケーリングが可能となる。
一実施形態では、分散型クエリ・エンジンは、Hadoop分散型ファイルシステム(HDFS)、およびHiveデータ・ウェアハウスを実行する、Hadoopクラスタの上に作成される。図3は、分散型クエリ・エンジン300、Hiveデータ・ウェアハウス、HDFS、およびストレージ・クラスタの間の関係を示す。分散型クエリ・エンジン300は、Hiveデータ・ウェアハウスおよびHDFSの上に作成され、これが今度はストレージ・クラスタにより動作する。Hadoopクラスタ310は、大量のデータの記憶を担う複数のノード312を含む。Hadoopクラスタ310は、さらにメタデータ・ノード314を含む。Hadoop分散型ファイルシステム(HDFS)320は、ノード312の間におけるデータの分配および管理を行うべくHadoopクラスタ310上で動作する。データ・ノード(DataNode)サービス322は、ノード312におけるローカル・データ・ストアを管理するべくノード312上で動作する。データおよびファイルはブロックに分割され、Hadoopクラスタ310のノード312に記憶される。NameNodeサービス324は、Hadoopクラスタ内にメタデータ・サービス(ファイルシステムの名前空間を維持し外部クライアントによってアクセスを制御することを含む)を提供するべく、メタデータ・ノード314上で動作する。
Hiveデータ・ウェアハウス・システム330は、Hadoopクラスタ310およびHDFS320の上に作成される。Hiveデータ・ウェアハウス・システム330は、データベース・インターフェースとして働く。Hiveデータ・ウェアハウス・システム330は、SQLに似た宣言型言語、HiveQLにより表現されるデータ・クエリをサポートする。Hiveシステム用のデータベース・クエリを処理するHadoopクラスタのマップ縮小スキームに依存することに代えて、中止のクエリ・エンジンは、データベース・クエリを並列に処理するために複数のワーカ・ノード342を含む。分散型クエリ・エンジン300は、さらにゲートウェイ348を含む。一実施形態では、ワーカ・ノード342は、Hadoopクラスタ310のノード312上で動作するサービスとして実装される。別の実施形態では、ワーカ・ノード342は、Hadoopクラスタ310のノード312に相互連結される専用サーバとして実装される。
幾つかの実施形態では、ワーカ・ノード342は、HiveQLにより表現される部分タスクをHDFS320のDataNodeサービス322が実行可能な命令へとコンパイルすることを担う。
分散型クエリ・エンジンは、クライアントからクエリ・タスクを受信し、このクエリ・タスクを複数の部分タスクに分割する。図4は、一例の分散型クエリ・エンジン400の高位ブロック図を示す。分散型クエリ・エンジン400のオペレータは、クライアント480の入力インタフェース486を介してクエリ・タスクを提供することが可能である。一実施形態では、入力インタフェース486は、コマンドライン・インタフェース482およびグラフィック・インタフェース484の両方を含んでいる。コマンドライン・インタフェース482を用いると、オペレータは、データベース・クエリ言語(SQLまたはHiveQLなど)により直接表現されるプログラムとして、クエリ・タスクを提供することが可能である。グラフィック・インタフェース484を用いることによって、オペレータは484のグラフィック・インタフェース要素を用いることによって、クエリ・タスクを提供することが可能である。一実施形態では、グラフィック・インタフェース484は入力ウェブ・ページとして実装される。オペレータは、入力ウェブ・ページ上の要素と対話し、オプションを選択し、入力データを投入することによって、クエリ・タスクを提供することが可能である。グラフィック・インタフェース484は、オペレータの選択および入力をデータベース・クエリ言語により表現される対応するプログラムに翻訳することが可能である。入力インタフェース486は、コマンドライン・インタフェース482またはグラフィック・インタフェース484のいずれかから受信されたプログラムを、クエリ・タスクとして分散型クエリ・エンジン400のゲートウェイ410に送信する。
ゲートウェイ410は、クライアント480からクエリ・タスクを受信し、このクエリ・タスクのパースを行う。ゲートウェイ410は、クエリ・タスクに基づきHiveメタストア440に問い合わせを送信する。Hiveメタストア440は、クエリ・タスクが動作することを必要とするデータについて、データテーブル・メタデータとHDFSファイル識別とを、ゲートウェイ410に返す。次いで、ゲートウェイ410は、HDFSファイル識別に基づき、HDFS NameNode460から対応するHDFSブロックのロケーションを取り出す。
一実施形態では、ゲートウェイ410は、対応するHDFSブロックに基づき、クエリ・タスクを複数の部分クエリに分割する。ゲートウェイ410は、対応するHDFSブロック内の1つのHDFSブロックにおいて実行される個々の部分クエリを割り当てる。他の実施形態では、当業者によって想到され得るように、ゲートウェイ410は、他の方法によりクエリ・タスクを部分クエリに分割することが可能である。
ゲートウェイ410は、ローカル処理のために、ワーカ412に部分クエリの各々を送る。一実施形態では、ワーカ412は、Hiveテーブル・データを記憶するHadoopクラスタ上にオーバレイされる。各ワーク412は、Hadoopクラスタ・ノード432上のサービスとして動作する。部分クエリは、各ワーカ412が、その特定のワーカ412が動作させるノード432上の処理データ・ストアに対する部分クエリを担うように、生成される。ワーカ412は、そのワーカ412と同じクラスタ・ノード432上で動作するDataNodeサービス422と直接連絡を行う。ワーカ412は、単一のクラスタ・ノード432内のデータを要求することによって、部分クエリについて低レイテンシのデータ読取を達成することができる。
クラスタ・ノード432は、サービスの実装を行うために、リモート・プロシージャ・コール(RPC)フレームワークを用いることが可能である。例えば、一実施形態では、クラスタ・ノード432は、ワーカ・サービス412を高度にスケーラブルかつ高性能の
サーバサービスとして定義および作成するために、Apache Thriftフレームワークなど、RPCフレームワークを用いる。
一実施形態では、ワーカ・ノード342は、Hadoopクラスタ310のノード312上で動作するサービスとして実装される。別の実施形態では、ワーカ・ノード342は、Hadoopクラスタ310のノード312に相互連結される専用サーバとして実装される。
ワーカ412は、ゲートウェイ410に周期的に状態更新(「ハートビート」と呼ばれる)を返して、部分クエリ処理のプロセスを示す。一実施形態では、ハートビートを返すことを止めるか、すなわち、進行を示さない、割り当てられたワーカが存在する場合、ゲートウェイ410は、そのワーカが故障しているので、その部分クエリを別のワーカに再スケジューリグする、と決定する。各ワーカ412は、1つ以上のクラスタ・ノード432上に記憶されているそれぞれの部分クエリに関係するデータを走査し、その部分クエリについての中間結果を生成する。一実施形態では、ワーカ412は、そのワーカ412が動作するクラスタ・ノードのメモリにおいて部分クエリを完全に処理する。ワーカ412は、そのメモリに中間結果を記憶する。部分クエリの処理の終わりに、ワーカ412は中間結果をゲートウェイ410に送る。幾つかの実施形態では、ワーカ412は、Apache Thrift呼出など、RPC呼出を介して中間結果を送る。
ゲートウェイ410は、ワーカ412から中間結果をすべて受信し、中間結果をクエリ・タスクのための答えとしてのクエリ結果へと組み合わせる。次いで、ゲートウェイ410は、クエリ結果をクライアント480に返す。一実施形態では、クライアント480は随意でディスプレイ構成要素にクエリ結果を表示する。
MetaCache(メタ・キャッシュ)414は、Hiveテーブル・レベルおよびHDFSファイル・レベル・メタデータの両方をキャッシュしてクエリ・レイテンシを減少させるべく、ゲートウェイ410上で動作する。幾つかの実施形態では、MetaCache414は、ゲートウェイ410に相互接続されているスタンドアロン・サーバとして実装されることが可能である。MetaCache414は、以前のクエリからのキャッシュされているデータを保持することができる。例えば、オペレータがHiveテーブルのデータを対話的に分析している場合、そのオペレータは同じHiveテーブル上で複数の連続するクエリを動作させる。以前のクエリからのキャッシュされているデータを保護することによって、MetaCache414は、Hiveメタストア440およびHDFS NameNode460からメタデータを反復的にフェッチするのではなく、キャッシュされているメタデータを再使用することができる。
MetaCache414のキャッシュ・ヒット率は高いが、これは典型的なHiveテーブルにおけるデータは一度書き込まれると、さらなる変更なしに何度も読み取られるからである。一実施形態では、MetaCache414は、Hiveシステムの監査ログのリアル・タイム・フィードを取り出し、Hiveシステムにおけるパーティション用のキャッシュされているデータにおけるエントリ(Hiveクエリまたは他の操作によって変更されている場合がある)を無効とすることができる。別の実施形態では、MetaCache414は、所定の期間(例えば、1時間)のあいだ、クエリが行われていないキャッシュされているデータにおけるエントリを自動的に除去する。そうする際、MetaCache414は、メモリ利用における任意の増大を防止し、キャッシュ・エラーを最小化する。
ワーカ412が動作する各クラスタ・ノード432の仕事量は異なり得る。また、クラスタ・ノード432およびワーカ・サービス412は、様々な理由で故障し得る。ゲート
ウェイ410が妥当な期間に大多数のワーカ412から中間結果を受信することが可能である一方、ノードまたはサービスの故障または遅延により中間結果を送達できないワーカ412が存在する。これらのワーカは、部分クエリの分配から所定時間後に所定のパーセンテージ未満の進行速度を報告するか、または単にゲートウェイ410に進行を回答しない。それらのワーカは散在するワーカであると識別される。ゲートウェイ410は、散在するワーカを識別すると、部分クエリの割当を取り消すために、散在するワーカにメッセージを送る。散在するワーカが中間結果を送達しなかった各々の未完成の部分クエリについて、ゲートウェイ410は、部分クエリを複数の下位の部分クエリにさらに分割し、この下位の部分クエリを一部のワーカ412に割り当てる。一実施形態では、ゲートウェイ410は、ワーカ412の現在の仕事量に基づき下位の部分クエリの割当を決定する。他の実施形態では、ゲートウェイ410は、当業者によって想定され得るように、他の方法により割当を決定することができる。この追加の並行化処理は、未完了の部分クエリの再試行のスピードを上げ、したがって散在するワーカによって引き起こされるクエリ・レイテンシを減少させる。
図5は、散在するワーカ・ノードを識別し、さらに部分クエリを分割するためのサンプル処理を示す。工程502にて、分散型クエリ・エンジンのゲートウェイは、複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納するデータベースについて、データベース・クエリをクライアント・デバイスから受信する。工程504では、ゲートウェイはデータベース・クエリを複数の部分クエリに分割する。その後、工程506では、ゲートウェイは、複数のワーカ・ノードのそれぞれのワーカ・ノードに部分クエリの各々を送る。各ワーカ・ノードは、分散型ストレージ・クラスタのデータ・ノード上で動作するサービスであることが可能である。
工程508にて、ゲートウェイ・サーバは散在するワーカ・ノードを識別する。ゲートウェイは、散在するワーカ・ノードに割り当てられている部分クエリを複数の下位の部分クエリに分割し、この複数の下位の部分クエリを複数のワーカ・ノードの一部に割り当てる。一実施形態では、ゲートウェイは、ワーカ・ノードが周期的に送るハートビート・メッセージを監視することによって散在するワーカ・ノードを識別する。散在するワーカ・ノードは、その散在するワーカ・ノードからのハートビート・メッセージが所定期間のあいだ受信されないときに識別される。別の実施形態では、散在するワーカ・ノードは、その散在するワーカ・ノードからのハートビート・メッセージが受信されるときに識別される。このハートビート・メッセージは、散在するワーカ・ノードによる部分クエリ処理の状態を表す、閾値未満である数を含む。
工程510では、ゲートウェイは、ワーカ・ノードから部分クエリに対する複数の中間結果を取り出す。各中間結果は、それらのワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動作しているデータ・ノードに記憶されている関連するデータを走査することによって処理される。工程512では、ゲートウェイは、複数の中間結果に基づきクエリ結果を生成する。
一実施形態では、分散型クエリ・エンジンは、Hiveシステムのデータフォーマットおよびメタデータと互換性を有し、HiveQL言語のサブセットまたは完全セットをサポートすることができる。また、HiveQLはSQLに類似している宣言型言語である。HiveQLは、SQLの標準に厳密に従う必要がなく、SQLでは元々は規定されていない拡張を提供する。例えば、分散型クエリ・エンジンは、フィルタ、アグリゲート、トップk、百分位数、FROM節による下位クエリ、UNION ALL、およびユーザ定義関数をサポートすることができる。
一実施形態では、分散型クエリ・エンジンのサポートするTABLESAMPLE節は
、走査される入力データの量を明示的に制限するために用いられる。別の実施形態では、分散型クエリ・エンジンのサポートするWITH節は、同じクエリにおいて複数回用いられるである複雑な表現について変数を宣言することによって、オペレータがより読みやすいクエリを書くことを可能とする。また、WITH節では、実行中に共通する下位表現をオプティマイザが一度だけ評価するように、オペレータがオプティマイザに対してヒントを指定するための手段を提供することができる。
幾つかの実施形態では、クエリ処理全体が完了される前に、分散型クエリ・エンジンは近似のクエリ結果を供給することができる。分散型クエリ・エンジンは、最初のクエリ入力から所定期間後に、またはクエリの処理が所定条件(例えば、ある数のワーカが失敗する)を満たす場合に、自動的に近似のクエリ結果を供給することができる。また、分散型クエリ・エンジンは、オペレータ命令に応じて近似のクエリ結果を供給することができる。例えば、クエリ結果を待機しているオペレータは、Ctrl−Cを入力し、クエリ処理を止めるように分散型クエリ・エンジンに命令することができる。この命令を受け取ると、分散型クエリ・エンジンはクエリ処理を止め、近似のクエリ結果を返す。一実施形態では、分散型クエリ・エンジンは、さらにパーセンテージ・インジケータを供給し、近似のクエリ結果について走査されたデータのパーセンテージを示す。一実施形態では、分散型クエリ・エンジンは近似のクエリ結果を返し、正確なクエリ結果(すなわち、100%のパーセンテージ・インジケータを有する)のためのクエリ処理を継続する。
特に、クエリがデータの書込または変更ではなくデータの探査を行うには、近似のクエリ結果はオペレータの分析には十分であることがある。実行時のエラー(ノード故障、入力データの損傷、さらにはユーザによる自信のクエリの消去など)は、すべての入力データが走査されてはいない状況として扱うことができる。故障がある場合、分散型クエリ・エンジンは、単にエラー・メッセージを返すのではなく、それまでの部分クエリの処理に基づき即座に近似のクエリ結果を返すことができる。一実施形態では、分散型クエリ・エンジンは、パーセンテージ・インジケータとともに近似のクエリ結果を返す。
別の実施形態では、オペレータは、さらに正確なクエリ結果が必要であることを自信のクエリ・タスクにおいて指定することができる。この場合、クエリ処理が失敗するときには、実行時エラーを返すことができる。
分散型クエリ・エンジンは、アグリゲーションに対しワンパス・アルゴリズムを用いて、すべての中間結果をメモリに記憶する。中間結果および最終クエリ結果のサイズは、比較的小さくなり得る。分散型クエリ・エンジンが近似のクエリ結果を返す能力によって、さらにサイズが低減される。例えば、クエリが指定されたカラム(例えば、ORDER BY節)によってデータ・レコードをソートするものである場合、分散型クエリ・エンジンは、関連するデータ・レコードの一部の走査のみをワーカに行わせることによって、近似の答えを生成することができる。同様に、分散型クエリ・エンジンは、クエリのタイプ(別個のエントリを数える、百分位数を計算するなど)について近似の答えを生成することもできる。
例えば、一実施形態では、分散型クエリ・エンジンのオペレータは、データ・レコードの特定のセットからのカントリー・カラムの別個の値の数のカウントを命令するクエリ・タスクを入力することができる。分散型クエリ・エンジンは、このクエリを受信し、クエリを部分クエリに分割し、それらの部分クエリを処理するためにワーカを割り当てる。この時から20秒後、分散型クエリ・エンジンはタスクを開始し、オペレータは、クライアント・デバイスのキーボード上でCTRL−Cを押下することによってタスクを終了させる。終了命令を受け取ると、分散型クエリ・エンジンは、近似の中間結果を返すよう、割り当てられたワーカに直ちに命令し、次いで、割り当てられたワーカは、それらの近似の
中間結果を組み合わせることによって近似の結果を返す。この近似の結果は、オペレータのクライアント・デバイスに返される。クライアント・デバイスは、総処理時間、用いられるワーカの数、走査されたデータ・レコードの行、走査されたデータの量、正確な結果のために走査されるデータの量、走査されたデータのパーセンテージ、および/または故障の数に関する情報を、さらに受信することができる。
別の実施形態では、分散型クエリ・エンジンは、故障の数が所定の閾値を超えた後、自動的に近似のクエリ結果を返すことができる。さらに別の実施形態では、オペレータは、正確な結果が必要であることをクエリ・タスクにおいて指定する。分散型クエリ・エンジンは、割り当てられたワーカによって関連するデータ・レコードがすべて走査されるまで処理を維持することになる。正確なクエリ結果をオペレータのユーザデバイスに返すことができる。クライアント・デバイスは、総処理時間、用いられるワーカの数、走査されたデータ・レコードの行、走査されたデータの量、走査されたデータのパーセンテージ(すなわち、100%)、および/または故障の数に関する情報をさらに受信することができる。
図6は、データベース・クエリの近似処理を行うためのサンプル処理を示す。工程602にて、分散型クエリ・エンジンのゲートウェイは、複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータベースについて、データベース・クエリをクライアント・デバイスから受信する。工程604では、ゲートウェイはデータベース・クエリを複数の部分クエリに分割する。その後、工程606では、ゲートウェイは、複数のワーカ・ノードのそれぞれのワーカ・ノードに部分クエリの各々を送る。各ワーカ・ノードは、分散型ストレージ・クラスタのデータ・ノード上で動作するサービスであることが可能である。工程608では、部分クエリを送った後、ゲートウェイは、近似のクエリ結果を直ちに返すようにワーカ・ノードに命令することができる。一実施形態では、近似のクエリ結果を直ちに返すとは、非常に短い期間(1秒など)内に結果を返すことを意味する。この命令は、様々なイベントをトリガとしてもよい。例えば、ゲートウェイは、クライアント・デバイスからデータベース・クエリの処理を終了する命令を受け取ってもよく、あるいはゲートウェイは、所定期間後に正確なクエリ結果が利用可能でない場合、近似のクエリ結果を自動的に返すと決定してもよい。したがって、近似の結果は、クライアント・デバイスによって手動で要求されてもよく、ユーザの介入なしで分散型クエリ・エンジンによって自動的にトリガが行われてもよい。
工程610では、近似の中間結果のための命令の後、ゲートウェイは、ワーカ・ノードから部分クエリに対する複数の中間結果を取り出す。各近似の中間結果はワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータの一部を走査することによって処理される。近似の中間結果を受け取ると、工程612では、ゲートウェイは、複数の近似の中間結果に基づき近似のクエリ結果を生成する。次いで工程614では、分散型クエリ・エンジンのゲートウェイは近似のクエリ結果を返す。一実施形態では、近似のクエリ結果はパーセンテージ・インジケータとともにクライアント・デバイスに対し返される。パーセンテージ・インジケータは、クエリ結果に対して走査されたデータ・ノードに記憶されている関連するデータのパーセンテージを示す。
上述において示した利点に加えて、本明細書において提示される技術には以下に説明するような利点が存在する。
分散型クエリ・エンジンは、Hiveシステムを単独で用いることによるクエリ・レイテンシと比べ、Hadoopクラスタなどのデータ・ストレージ・クラスタに記憶されているデータに対するクエリのレイテンシを著しく減少させる。分散型クエリ・エンジンのオペレータまたはユーザは、わずかな待機期間でアドホックな(ad hoc)クエリを
行うことができる。分散型クエリ・エンジンは、様々な状況において利用することができる。例えば、分散型クエリ・エンジンがない場合、オペレータまたはアナリストは、MySQLまたはオラクルなどのデータベースにHiveからのデータを明示的にロードし、次いで、ウェブ・ベースのデータ分析報告を動かすためにデータベースからデータをフェッチする必要がある。分散型クエリ・エンジンを用いると、オペレータは、Hiveシステムからデータを直接フェッチし、ウェブ・ベースのデータ分析報告を生成させることができる。
一実施形態では、オペレータがクエリ・タスクのオーサリングを行う(例えば、図4に示すグラフィック・インタフェース484を用いて)とき、分散型クエリ・エンジンは、データ・サンプルをフェッチして、グラフィック・インタフェース484上でデータのプレビューをオペレータに見せることができる。別の実施形態では、分散型クエリ・エンジンは、クエリ・レイテンシをさらに向上させるために、メモリにおいてポピュラーなデータセットのインデックスおよびピニングを行うことができる。
本明細書に提示される技術によって、データ・ストレージ・クラスタの上に作成可能な低レイテンシの分散型クエリ・エンジンが提供される。この分散型クエリ・エンジンは、Hiveシステムの既存のデータおよびメタデータと互換性を有することができる。この分散型クエリ・エンジンは、アドホック分析用の他のデータベース(例えば、MySQLまたはオラクル)にデータをロードするパイプラインを必要とせずに、データ分析報告を行うために用いることができる。
図7は、本明細書に記載の任意のクラスタ・ノードを表すコンピュータ・ノードのアーキテクチャの一例を示す高位ブロック図である。ノード700は、1つ以上のプロセッサ710と、相互接続730に結合されたメモリ720とを備える。図7に示される相互接続730は、1以上の任意の別個の物理バス、ポイント・ツー・ポイント接続、または適切なブリッジ、アダプタ、もしくはコントローラによって接続されたその両方を表す抽象的概念である。相互接続730は、したがって、例えば、システムバス、PCI(Peripheral Component Interconnect)バスまたはPCI−Expressバス、ハイパートランスポート(HyperTransport)またはISA(industry standard architecture)バス、SCSI(small computer system interface)バス、USB(universal serial bus)、IIC(I2C)バス、または「FIREWIRE(登録商標)」とも呼ばれるIEEE(Institute of Electrical and Electronics Engineers)標準1394バスを含んでもよい。
プロセッサ710は、ストレージ・コントローラ700の中央処理装置(CPU)であり、したがって、ノード700の全動作を制御する。一定の実施形態では、プロセッサ710は、メモリ720に記憶されているソフトウェアまたはファームウェアを実行することによって、これを行う。プロセッサ710は、1以上のプログラマグル汎用または専用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラマブル・コントローラ、特定用途向けIC(ASIC)、プログラマブル論理デバイス(PLD)、TPM(trusted platform module)など、またはそうしたデバイスの組み合わせであるか、またはそれらを含んでよい。
メモリ720は、ノード700のメイン・メモリであるか、またはそれを含んでよい。メモリ720は、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、フラッシュ・メモリなど、またはそうしたデバイスの組み合わせであるか、またはそれらを含んでよい。使用時には、メモリ720は、本明細書に示される技術による命
令を含むコード770を格納してもよい。
また相互接続730を通じてプロセッサ710に接続されているのは、ネットワーク・アダプタ740およびストレージ・アダプタ750である。ネットワーク・アダプタ740は、ネットワークを通じてリモート・デバイスと通信を行う能力をノード700に提供し、また、例えば、イーサネット(登録商標)・アダプタやファイバ・チャンネル・アダプタであってもよい。また、ネットワーク・アダプタ740は、クラスタ内の他のノードと通信を行う能力をノード700に提供してもよい。幾つかの実施形態では、ノードは、クラスタの内外における通信を別個に扱う2以上のネットワーク・アダプタを用いてもよい。ストレージ・アダプタ750は、ノード700が持続性のストレージにアクセスすることを可能とし、また、例えば、ファイバ・チャンネル・アダプタやSCSIアダプタであってもよい。
メモリ720に記憶されているコード770は、上述のアクションを実行するべくプロセッサ710をプログラムするためのソフトウェアおよび/またはファームウェアとして実装されてもよい。一定の実施形態では、そのようなソフトウェアまたはファームウェアは、最初にリモート・システムからノード700を通じて(例えば、ネットワーク・アダプタ740を介して)ダウンロードされることによって、ノード700に対し提供されてもよい。
本明細書に導入される技術は、例えば、ソフトウェアおよび/またはファームウェアによりプログラムされるプログラマブル回路(例えば、1以上のマイクロプロセッサ)によって、もしくは完全に特殊用途のハードワイヤード回路によって、またはそれらの形態の組み合わせによって、実装されることができる。特殊用途のハードワイヤードの回路は、例えば、1以上の特定用途向けIC(ASIC)、プログラマブル論理デバイス(PLD)、FPGA(field programmable gate array)の形態であってもよい。
本明細書に導入される技術を実装する際に使用されるソフトウェアまたはファームウェアは、機械可読記憶媒体上に記憶されてもよく、また1以上の汎用または特殊用途プログラマブル・マイクロプロセッサによって実行されてもよい。本明細書において用いられる用語「機械可読記憶媒体」は、機械によってアクセス可能な形態で情報を記憶可能な任意の機構を含む(機械は、例えば、コンピュータ、ネットワーク・デバイス、携帯電話、携帯情報端末(PDA)、製造ツール、1以上のプロセッサを有する任意のデバイスなどであってよい)。例えば、機械アクセス可能記憶媒体は、記録可能/非記録可能な媒体(例えば、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなど)などを含む。
本明細書において用いられる用語「論理」は、例えば、特定のソフトウェアおよび/またはファームウェアによりプログラムされるプログラマブル回路、特殊用途のハードワイヤード回路、またはそれらの組み合わせを含んでよい。
上述の例に加えて、本発明の様々な他の修正および変更が本発明から逸脱することなく行われる。したがって、上述の開示は限定として見なされるものではなく、添付の特許請求の範囲は本発明の真の趣旨および全範囲を包含するものとして解釈されるものである。

Claims (19)

  1. 複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリから複数の部分クエリを生成するように、かつ、複数の中間結果に基づきクエリ結果を構築するように構成されているゲートウェイ・サーバと、
    複数のワーカ・ノードと、を備え、前記複数のワーカ・ノードの各ワーカ・ノードは、前記複数の部分クエリのそれぞれの部分クエリを、前記それぞれの部分クエリに関係し前記分散型ストレージ・クラスタの少なくとも1つのデータ・ノード上に記憶されているデータを走査することによって処理するように構成されており、前記複数のワーカ・ノードの各ワーカ・ノードは、そのワーカ・ノードのメモリに記憶されている前記複数の中間結果のうちの1つの中間結果を生成するようにさらに構成されている、システム。
  2. 前記複数のワーカ・ノードの各ワーカ・ノードは、前記複数の部分クエリの前記それぞれの部分クエリを、前記分散型ストレージ・クラスタの前記少なくとも1つのデータ・ノード上に記憶されている前記それぞれの部分クエリに関係している前記データの一部を走査することによって処理するように、かつ、ワーカ・ノードの前記メモリに記憶されている近似の中間結果を生成するようにさらに構成されており、
    好適には、前記ゲートウェイ・サーバは、少なくとも1つの近似の中間結果に基づき近似のクエリ結果を構築するようにさらに構成されている、請求項1に記載のシステム。
  3. 前記ゲートウェイ・サーバは、前記複数の中間結果の一部に基づき近似のクエリ結果を構築するようにさらに構成されている、請求項1または2に記載のシステム。
  4. 前記ゲートウェイ・サーバは、散在するワーカ・ノードを識別し、前記散在するワーカ・ノードに割り当てられている部分クエリを複数の下位の部分クエリにさらに分割し、前記複数の下位の部分クエリを前記複数のワーカ・ノードの一部に割り当てるように、さらに構成されており、前記散在するワーカ・ノードは、前記ゲートウェイ・サーバに進行割合を報告しないか、所定期間の後に所定値未満の前記進行割合を前記ゲートウェイ・サーバに報告するワーカ・ノードである、請求項1〜3のいずれか一項に記載のシステム。
  5. 前記複数のワーカ・ノードの各ワーカ・ノードは、前記分散型ストレージ・クラスタ内のそれぞれのデータ・ノードを動かすサービスである、請求項1〜4のいずれか一項に記載のシステム。
  6. 前記データベースのテーブル・レベル・メタデータおよび前記分散型ストレージ・クラスタのファイル・レベル・メタデータをキャッシュするように構成されているメタデータ・キャッシュをさらに備え、好適には、前記メタデータ・キャッシュは、前記データベース・クエリ用に以前のデータベース・クエリからキャッシュされたメタデータを保持するように構成されている、請求項1〜5のいずれか一項に記載のシステム。
  7. 前記複数のワーカ・ノードの各ワーカ・ノードは、そのワーカ・ノードによる部分クエリ処理の状態を報告するために、前記ゲートウェイ・サーバにハートビート・メッセージを周期的に送る、請求項1〜6のいずれか一項に記載のシステム。
  8. 前記ゲートウェイ・サーバは、近似のクエリ結果を返すかまたは前記データベース・クエリの処理を終了する命令をクライアント・デバイスから受け取るようにさらに構成されている、請求項1〜7のいずれか一項に記載のシステム。
  9. 前記ゲートウェイ・サーバは、前記ワーカ・ノードに対し、近似の中間結果を直ちに返
    し、クライアント・デバイスに対する前記近似の中間結果に基づき、近似のクエリ結果を返すようにさらに構成されている、請求項1〜8のいずれか一項に記載のシステム。
  10. 前記データベース・クエリは、近似のクエリ結果の要求を含む、請求項1〜9のいずれか一項に記載のシステム。
  11. 前記クエリ結果は、前記クエリ結果について走査されたデータ・ノードに記憶されている関連するデータの一部を示す標識を伴う、請求項1〜10のいずれか一項に記載のシステム。
  12. 前記データベースは、Hiveデータ・ウェアハウス・システムであり、前記分散型ストレージ・クラスタはHadoopクラスタである、請求項1〜11のいずれか一項に記載のシステム。
  13. 請求項1〜12のいずれか一項に記載のシステムを用いる方法。
  14. クライアント・デバイスから複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリを受信する工程と、
    前記データベース・クエリを複数の部分クエリに分割する工程と、
    複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程であって、各ワーカ・ノードは前記分散型ストレージ・クラスタのデータ・ノード上で動くサービスである、部分クエリ送信工程と、
    前記ワーカ・ノードから前記部分クエリに対する複数の中間結果を取り出す工程であって、各中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータを走査することによって処理される、中間結果取出工程と、
    前記複数の中間結果に基づきクエリ結果を生成する工程と、を備える方法。
  15. 前記クライアント・デバイスに前記クエリ結果および部分インジケータを返す工程であって、前記部分インジケータは、前記クエリ結果に対して走査された前記データ・ノードに記憶されている関連するデータの部分を示す、工程をさらに備える、請求項14に記載の方法。
  16. 前記ワーカ・ノードに対し近似のクエリ結果を直ちに返すように命令する工程をさらに備え、
    前記中間結果取出工程は、前記ワーカ・ノードから前記部分クエリに対する複数の近似の中間結果を取り出す工程であって、各近似の中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータの一部を走査することによって処理される、工程をさらに備える、請求項14に記載の方法。
  17. 各部分クエリについて、前記部分クエリに関連するデータを記憶するデータ・ノードに関するメタデータを取り出す工程をさらに備え、
    前記部分クエリ送信工程は、前記メタデータに基づき複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程を含む、請求項14に記載の方法。
  18. クライアント・デバイスから複数のデータ・ノードを有する分散型ストレージ・クラスタに記憶されているデータを格納しているデータベースに対するデータベース・クエリを
    受信する工程と、
    前記データベース・クエリを複数の部分クエリに分割する工程と、
    複数のワーカ・ノードのそれぞれのワーカ・ノードに前記部分クエリの各々を送信する工程であって、各ワーカ・ノードは前記分散型ストレージ・クラスタのデータ・ノード上で動くサービスである、部分クエリ送信工程と、
    散在するワーカ・ノードを識別するワーカ・ノード識別工程と、
    前記散在するワーカ・ノードに割り当てられている部分クエリを複数の下位の部分クエリに分割し、前記複数の下位の部分クエリを前記複数のワーカ・ノードの一部に割り当てる工程と、
    前記ワーカ・ノードから前記部分クエリに対する複数の中間結果を取り出す工程であって、各中間結果は前記ワーカ・ノードのそれぞれのワーカ・ノードが該それぞれのワーカ・ノードが動いているデータ・ノードに記憶されている関連するデータを走査することによって処理される、中間結果取出工程と、
    前記複数の中間結果に基づきクエリ結果を生成する工程と、を備える方法。
  19. ワーカ・ノード識別工程は、前記ワーカ・ノードが周期的に送信するハートビート・メッセージを監視することによって散在するワーカ・ノードを識別する工程であって、前記散在するワーカ・ノードは、前記散在するワーカ・ノードからのハートビート・メッセージが所定期間のあいだ受信されないとき、または、前記散在するワーカ・ノードから、前記散在するワーカ・ノードによる部分クエリ処理の状態を表す、閾値未満である数を含むハートビート・メッセージが受信されるときに識別される、工程と、を備える請求項18に記載の方法。
JP2015551711A 2013-01-07 2013-12-20 分散型データベースクエリ・エンジン用のシステムおよび方法 Active JP6117378B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/735,820 2013-01-07
US13/735,820 US9081826B2 (en) 2013-01-07 2013-01-07 System and method for distributed database query engines
EP13198563.2 2013-12-19
EP13198563.2A EP2752779B1 (en) 2013-01-07 2013-12-19 System and method for distributed database query engines
PCT/US2013/077240 WO2014107359A1 (en) 2013-01-07 2013-12-20 System and method for distributed database query engines

Publications (3)

Publication Number Publication Date
JP2016509294A true JP2016509294A (ja) 2016-03-24
JP2016509294A5 JP2016509294A5 (ja) 2016-12-15
JP6117378B2 JP6117378B2 (ja) 2017-04-19

Family

ID=49886706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015551711A Active JP6117378B2 (ja) 2013-01-07 2013-12-20 分散型データベースクエリ・エンジン用のシステムおよび方法

Country Status (11)

Country Link
US (5) US9081826B2 (ja)
EP (2) EP3096250B1 (ja)
JP (1) JP6117378B2 (ja)
KR (2) KR102037232B1 (ja)
CN (2) CN104903894B (ja)
AU (1) AU2013371448B2 (ja)
BR (1) BR112015016352A2 (ja)
CA (1) CA2896855C (ja)
IL (1) IL239717A (ja)
MX (1) MX349042B (ja)
WO (1) WO2014107359A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016071837A (ja) * 2014-09-30 2016-05-09 Kddi株式会社 データ仮想化装置及び大規模データ処理プログラム
JP2019204433A (ja) * 2018-05-25 2019-11-28 Zホールディングス株式会社 演算システムおよび演算方法
US10698913B2 (en) 2013-01-07 2020-06-30 Facebook, Inc. System and methods for distributed database query engines

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495381B2 (en) 2005-01-12 2016-11-15 Wandisco, Inc. Geographically-distributed file system using coordinated namespace replication over a wide area network
US9332069B2 (en) 2012-12-28 2016-05-03 Wandisco, Inc. Methods, devices and systems for initiating, forming and joining memberships in distributed computing systems
US9424272B2 (en) * 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US9361311B2 (en) * 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
US9317572B2 (en) 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US9082127B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
US8874526B2 (en) 2010-03-31 2014-10-28 Cloudera, Inc. Dynamically processing an event using an extensible data model
US20120239681A1 (en) 2011-03-14 2012-09-20 Splunk Inc. Scalable interactive display of distributed data
US9128949B2 (en) 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster
US9405692B2 (en) 2012-03-21 2016-08-02 Cloudera, Inc. Data processing performance enhancement in a distributed file system
US9338008B1 (en) 2012-04-02 2016-05-10 Cloudera, Inc. System and method for secure release of secret information over a network
US9842126B2 (en) 2012-04-20 2017-12-12 Cloudera, Inc. Automatic repair of corrupt HBases
US9607045B2 (en) 2012-07-12 2017-03-28 Microsoft Technology Licensing, Llc Progressive query computation using streaming architectures
US9264516B2 (en) 2012-12-28 2016-02-16 Wandisco, Inc. Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment
US9454573B1 (en) 2013-02-25 2016-09-27 Emc Corporation Parallel processing database system with a shared metadata store
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9009215B2 (en) 2013-03-15 2015-04-14 Wandisco, Inc. Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment
US9292373B2 (en) * 2013-03-15 2016-03-22 International Business Machines Corporation Query rewrites for data-intensive applications in presence of run-time errors
US9448851B2 (en) * 2013-06-19 2016-09-20 International Business Machines Corporation Smarter big data processing using collaborative map reduce frameworks
US9442967B2 (en) * 2013-07-25 2016-09-13 Facebook, Inc. Systems and methods for efficient data ingestion and query processing
US9477731B2 (en) * 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US9934382B2 (en) 2013-10-28 2018-04-03 Cloudera, Inc. Virtual machine image encryption
US10491663B1 (en) * 2013-10-28 2019-11-26 Amazon Technologies, Inc. Heterogeneous computations on homogeneous input data
US9690671B2 (en) 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
US10628417B2 (en) * 2013-12-01 2020-04-21 Paraccel Llc Physical planning of database queries using partial solutions
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US10635669B1 (en) * 2014-01-27 2020-04-28 Microstrategy Incorporated Data engine integration and data refinement
US9952894B1 (en) 2014-01-27 2018-04-24 Microstrategy Incorporated Parallel query processing
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US9715515B2 (en) 2014-01-31 2017-07-25 Microsoft Technology Licensing, Llc External data access with split index
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
CN104520815B (zh) * 2014-03-17 2019-03-01 华为技术有限公司 一种任务调度的方法及装置
CA2938768C (en) * 2014-03-31 2020-03-24 Wandisco, Inc. Geographically-distributed file system using coordinated namespace replication
US9667736B2 (en) * 2014-04-29 2017-05-30 International Business Machines Corporation Parallel I/O read processing for use in clustered file systems having cache storage
US20150347508A1 (en) * 2014-06-02 2015-12-03 Microsoft Corporation Partial result classification
US9836506B2 (en) * 2014-06-11 2017-12-05 International Business Machines Corporation Dynamic query optimization with pilot runs
US11487771B2 (en) * 2014-06-25 2022-11-01 Microsoft Technology Licensing, Llc Per-node custom code engine for distributed query processing
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) * 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US11474874B2 (en) 2014-08-14 2022-10-18 Qubole, Inc. Systems and methods for auto-scaling a big data system
US10599648B2 (en) * 2014-09-26 2020-03-24 Applied Materials, Inc. Optimized storage solution for real-time queries and data modeling
US10467569B2 (en) * 2014-10-03 2019-11-05 Datameer, Inc. Apparatus and method for scheduling distributed workflow tasks
US9747333B2 (en) 2014-10-08 2017-08-29 Cloudera, Inc. Querying operating system state on multiple machines declaratively
US10606478B2 (en) * 2014-10-22 2020-03-31 Qubole, Inc. High performance hadoop with new generation instances
US10298709B1 (en) * 2014-12-31 2019-05-21 EMC IP Holding Company LLC Performance of Hadoop distributed file system operations in a non-native operating system
JP2016159499A (ja) * 2015-02-27 2016-09-05 京セラドキュメントソリューションズ株式会社 機能提供システムおよび機能中継プログラム
US11294893B2 (en) * 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US10002153B2 (en) 2015-05-14 2018-06-19 Illumon Llc Remote data object publishing/subscribing system having a multicast key-value protocol
US11436667B2 (en) 2015-06-08 2022-09-06 Qubole, Inc. Pure-spot and dynamically rebalanced auto-scaling clusters
US20170004527A1 (en) * 2015-07-01 2017-01-05 Turn Inc. Systems, methods, and devices for scalable data processing
US20170060941A1 (en) * 2015-08-25 2017-03-02 Futurewei Technologies, Inc. Systems and Methods for Searching Heterogeneous Indexes of Metadata and Tags in File Systems
CN105302697B (zh) * 2015-11-13 2018-05-18 中国建设银行股份有限公司 一种密集数据模型数据库的运行状态监控方法及系统
CN106815254B (zh) * 2015-12-01 2020-08-14 阿里巴巴集团控股有限公司 一种数据处理方法和装置
US10394600B2 (en) * 2015-12-29 2019-08-27 Capital One Services, Llc Systems and methods for caching task execution
WO2017190757A1 (en) * 2016-05-02 2017-11-09 Norcom Information Technology Ag Distributed data analysis system and method
US11080207B2 (en) 2016-06-07 2021-08-03 Qubole, Inc. Caching framework for big-data engines in the cloud
US10740328B2 (en) 2016-06-24 2020-08-11 Microsoft Technology Licensing, Llc Aggregate-query database system and processing
US10331668B1 (en) * 2016-07-19 2019-06-25 Arcadia Data Inc. Apparatus and method for query processing using analytical view partitions and database partitions
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10262002B2 (en) 2016-08-11 2019-04-16 International Business Machines Corporation Consistent execution of partial queries in hybrid DBMS
CN106354765B (zh) * 2016-08-19 2020-06-26 广东亿迅科技有限公司 一种基于分布式采集的日志分析系统及方法
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US10467195B2 (en) * 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10606664B2 (en) 2016-09-07 2020-03-31 Qubole Inc. Heterogeneous auto-scaling big-data clusters in the cloud
KR101728873B1 (ko) 2016-09-07 2017-05-04 주식회사 비트나인 그래프 질의 언어 분산처리시스템 및 그 질의 언어 분산처리방법
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11416528B2 (en) * 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11232100B2 (en) * 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10482096B2 (en) * 2017-02-13 2019-11-19 Microsoft Technology Licensing, Llc Distributed index searching in computing systems
KR101856454B1 (ko) 2017-03-06 2018-05-10 주식회사 티맥스데이터 분산처리를 위한 컴퓨팅 장치
US10552435B2 (en) * 2017-03-08 2020-02-04 Microsoft Technology Licensing, Llc Fast approximate results and slow precise results
US10544955B2 (en) 2017-03-09 2020-01-28 Johnson Controls Technology Company Dynamically updatable building management system control platform
US10846318B1 (en) 2017-04-18 2020-11-24 Microstrategy Incorporated Natural language visualizations
US10209982B2 (en) 2017-05-16 2019-02-19 Bank Of America Corporation Distributed storage framework information server platform architecture
US10733024B2 (en) 2017-05-24 2020-08-04 Qubole Inc. Task packing scheduling process for long running applications
CN109213743B (zh) * 2017-06-30 2021-10-15 北京京东尚科信息技术有限公司 一种数据查询方法和装置
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US10198469B1 (en) 2017-08-24 2019-02-05 Deephaven Data Labs Llc Computer data system data source refreshing using an update propagation graph having a merged join listener
US11489355B2 (en) * 2017-09-04 2022-11-01 Envision Aesc Energy Devices Ltd. Battery pack, control device, control method, and program
US10552394B2 (en) 2017-09-07 2020-02-04 International Business Machines Corporation Data storage with improved efficiency
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
CN107784103A (zh) * 2017-10-27 2018-03-09 北京人大金仓信息技术股份有限公司 一种访问hdfs分布式存储系统的标准接口
KR101966201B1 (ko) * 2017-11-01 2019-04-05 (주)데이터스트림즈 빅 데이터의 실시간 저장 및 검색 시스템
US10467112B2 (en) 2017-11-09 2019-11-05 Bank Of America Corporation Distributed data monitoring device
US10331484B2 (en) 2017-11-14 2019-06-25 Bank Of America Corporation Distributed data platform resource allocator
US11228489B2 (en) * 2018-01-23 2022-01-18 Qubole, Inc. System and methods for auto-tuning big data workloads on cloud platforms
WO2019171327A1 (en) * 2018-03-07 2019-09-12 Open Text Sa Ulc Flexible and scalable artificial intelligence and analytics platform with flexible content storage and retrieval
US10904357B1 (en) * 2018-03-16 2021-01-26 Intuit Inc. Optimizing request dispatching between services
US11354696B1 (en) 2018-03-21 2022-06-07 84.51, Llc Systems and methods for implementing a rewards program
US11138230B2 (en) * 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
KR102038527B1 (ko) * 2018-03-28 2019-11-26 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
US10761891B2 (en) 2018-04-05 2020-09-01 International Business Machines Corporation Workload management with data access awareness by aggregating file locality information in a computing cluster
US10768998B2 (en) 2018-04-05 2020-09-08 International Business Machines Corporation Workload management with data access awareness in a computing cluster
US10585714B2 (en) 2018-04-05 2020-03-10 International Business Machines Corporation Workload management with data access awareness using an ordered list of hosts in a computing cluster
CN110309334B (zh) * 2018-04-20 2023-07-18 腾讯科技(深圳)有限公司 图数据库的查询方法、系统、计算机设备和可读存储介质
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
CN110457971B (zh) * 2018-05-07 2022-09-16 腾讯科技(深圳)有限公司 重复识别码信息的检测方法和装置
CN110866062B (zh) * 2018-08-09 2023-11-24 菜鸟智能物流控股有限公司 基于分布式集群的数据同步方法以及装置
CN108959660B (zh) * 2018-08-15 2021-07-27 东北大学 一种基于hdfs分布式文件系统的存储方法及使用方法
CN109766368B (zh) * 2018-11-14 2021-08-27 国云科技股份有限公司 一种基于Hive的数据查询多类型视图产出系统及方法
CN109767274B (zh) * 2018-12-05 2023-04-25 航天信息股份有限公司 一种对海量发票数据进行关联存储的方法及系统
CN111291040B (zh) * 2018-12-10 2022-10-18 中国移动通信集团四川有限公司 一种数据处理方法、装置、设备及介质
US10902069B2 (en) * 2018-12-18 2021-01-26 Runtime Collective Limited Distributed indexing and aggregation
CN111367954A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 数据查询处理方法、装置及系统、计算机可读存储介质
WO2020133391A1 (en) * 2018-12-29 2020-07-02 Alibaba Group Holding Limited Systems and methods for efficiently scanning a database using hardware acceleration
US11195050B2 (en) 2019-02-05 2021-12-07 Microstrategy Incorporated Machine learning to generate and evaluate visualizations
CN109815209A (zh) * 2019-03-20 2019-05-28 上海电力学院 一种用于医院后勤精益管理的分布式存储系统
CN110008257B (zh) * 2019-04-10 2024-04-16 深圳市腾讯计算机系统有限公司 数据处理方法、装置、系统、计算机设备和存储介质
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11100109B2 (en) * 2019-05-03 2021-08-24 Microsoft Technology Licensing, Llc Querying data in a distributed storage system
CN110175151A (zh) * 2019-05-22 2019-08-27 中国农业科学院农业信息研究所 一种农业大数据的处理方法、装置、设备和存储介质
US11144360B2 (en) 2019-05-31 2021-10-12 Qubole, Inc. System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system
CN110297827A (zh) * 2019-05-31 2019-10-01 国网上海市电力公司 一种集合Lucene和Hbase的电力数据检索系统
US11704316B2 (en) 2019-05-31 2023-07-18 Qubole, Inc. Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks
US11567957B2 (en) * 2019-09-25 2023-01-31 Salesforce.Com, Inc. Incremental addition of data to partitions in database tables
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11429441B2 (en) 2019-11-18 2022-08-30 Bank Of America Corporation Workflow simulator
US11106509B2 (en) 2019-11-18 2021-08-31 Bank Of America Corporation Cluster tuner
KR102178121B1 (ko) * 2019-12-03 2020-11-12 아이씨티웨이주식회사 웹 기반의 공간 빅데이터 관리 서비스를 제공하는 방법 및 이를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체
CN110909048A (zh) * 2019-12-03 2020-03-24 北京明略软件系统有限公司 数据查询方法、装置、服务器、客户端及存储介质
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
CN111061791B (zh) * 2019-12-12 2023-04-07 广东食品药品职业学院 一种中小型电商大数据平台
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
CN111414349A (zh) * 2020-03-18 2020-07-14 江苏鸿程大数据技术与应用研究院有限公司 交互式统一大数据编程计算平台
US11210288B2 (en) 2020-05-12 2021-12-28 Coupang Corp. Systems and methods for reducing database query latency
CN111756732B (zh) * 2020-06-23 2022-07-12 北京明朝万达科技股份有限公司 数据扫描、管控方法及装置、电子设备、可读存储介质
CN111988165B (zh) * 2020-07-09 2023-01-24 云知声智能科技股份有限公司 一种分布式存储系统使用情况的监控方法及系统
CN113254488A (zh) * 2020-08-05 2021-08-13 深圳市汉云科技有限公司 分布式数据库的数据排序方法及系统
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
CN112307066B (zh) * 2020-11-03 2023-04-07 平安普惠企业管理有限公司 分布式数据聚合方法、系统、设备及存储介质
CN112395308A (zh) * 2020-11-05 2021-02-23 深圳市中博科创信息技术有限公司 一种基于hdfs数据库的数据查询方法
KR102265085B1 (ko) * 2020-12-04 2021-06-14 김근석 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 저장된 프로그램
CN112835895A (zh) * 2021-01-27 2021-05-25 世纪龙信息网络有限责任公司 一种数据存储系统及其存储方法
US11513876B2 (en) 2021-02-23 2022-11-29 Sap Se Resolving data location for queries in a multi-system instance landscape
US11727022B2 (en) 2021-03-19 2023-08-15 International Business Machines Corporation Generating a global delta in distributed databases
US11704327B2 (en) * 2021-03-19 2023-07-18 International Business Machines Corporation Querying distributed databases
CN113590316A (zh) * 2021-07-23 2021-11-02 中共四川省委组织部 一种基于国产cpu的数据库集群处理方法
CN113609238A (zh) * 2021-07-24 2021-11-05 全图通位置网络有限公司 基于Hadoop平台的地理实体空间数据的处理方法及存储介质
US11645231B1 (en) * 2022-04-24 2023-05-09 Morgan Stanley Services Group Inc. Data indexing for distributed query execution and aggregation
US20230376485A1 (en) * 2022-05-17 2023-11-23 Sap Se Distributed query plan generation
CN115168474B (zh) * 2022-07-26 2023-04-14 成都智元汇信息技术股份有限公司 一种基于大数据模型的物联中台系统搭建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312504A (ja) * 2000-04-25 2001-11-09 Jarg Corp 知識抽出システム及びその方法
JP2002108670A (ja) * 2000-09-29 2002-04-12 Hitachi Kokusai Electric Inc データベースアクセス方法及び多次元データベースアクセスシステム
JP2002108899A (ja) * 2000-09-27 2002-04-12 Hitachi Kokusai Electric Inc データベースアクセス方法及び多次元データベースアクセスシステム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987449A (en) 1996-08-23 1999-11-16 At&T Corporation Queries on distributed unstructured databases
US6922791B2 (en) * 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
AUPR796701A0 (en) 2001-09-27 2001-10-25 Plugged In Communications Pty Ltd Database query system and method
EP1349082A1 (en) 2002-03-28 2003-10-01 LION Bioscience AG Method and apparatus for querying relational databases
US20040103087A1 (en) * 2002-11-25 2004-05-27 Rajat Mukherjee Method and apparatus for combining multiple search workers
WO2005076160A1 (en) 2004-02-06 2005-08-18 Critical Software, Sa Data warehouse distributed system and architecture to support distributed query execution
US7523118B2 (en) * 2006-05-02 2009-04-21 International Business Machines Corporation System and method for optimizing federated and ETL'd databases having multidimensionally constrained data
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
CN100573524C (zh) * 2007-07-31 2009-12-23 武汉大学 一种高效、透明的分布式空间数据库查询方法
US8468212B2 (en) * 2007-08-08 2013-06-18 Silicon Image, Inc. Network repository for metadata
JP4995750B2 (ja) 2008-02-06 2012-08-08 日本電信電話株式会社 Web検索装置、Web検索方法、プログラムおよび記録媒体
US8213924B2 (en) * 2008-10-06 2012-07-03 Facebook, Inc. Providing distributed online services for mobile devices
US20100115100A1 (en) * 2008-10-30 2010-05-06 Olga Tubman Federated configuration data management
US8392402B2 (en) 2008-12-03 2013-03-05 International Business Machines Corporation Hybrid push/pull execution of continuous SQL queries
US8219552B2 (en) 2009-10-07 2012-07-10 International Business Machines Corporation Information theory based result merging for searching hierarchical entities across heterogeneous data sources
US9043319B1 (en) * 2009-12-07 2015-05-26 Google Inc. Generating real-time search results
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
KR101183768B1 (ko) * 2010-08-13 2012-09-17 삼성에스디에스 주식회사 통합 뷰 제공 시스템 및 방법 그리고 이에 적용되는 뷰 생성 기능을 가지는 서버
US8775425B2 (en) * 2010-08-24 2014-07-08 International Business Machines Corporation Systems and methods for massive structured data management over cloud aware distributed file system
US10579634B2 (en) * 2012-08-30 2020-03-03 Citus Data Bilgi Islemleri Ticaret A.S. Apparatus and method for operating a distributed database with foreign tables
US9081826B2 (en) 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
US10185744B2 (en) * 2015-06-23 2019-01-22 Sap Se Caching views on historical data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312504A (ja) * 2000-04-25 2001-11-09 Jarg Corp 知識抽出システム及びその方法
JP2002108899A (ja) * 2000-09-27 2002-04-12 Hitachi Kokusai Electric Inc データベースアクセス方法及び多次元データベースアクセスシステム
JP2002108670A (ja) * 2000-09-29 2002-04-12 Hitachi Kokusai Electric Inc データベースアクセス方法及び多次元データベースアクセスシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698913B2 (en) 2013-01-07 2020-06-30 Facebook, Inc. System and methods for distributed database query engines
US11347761B1 (en) 2013-01-07 2022-05-31 Meta Platforms, Inc. System and methods for distributed database query engines
JP2016071837A (ja) * 2014-09-30 2016-05-09 Kddi株式会社 データ仮想化装置及び大規模データ処理プログラム
JP2019204433A (ja) * 2018-05-25 2019-11-28 Zホールディングス株式会社 演算システムおよび演算方法
JP7313123B2 (ja) 2018-05-25 2023-07-24 ヤフー株式会社 演算システムおよび演算方法

Also Published As

Publication number Publication date
IL239717A0 (en) 2015-08-31
JP6117378B2 (ja) 2017-04-19
CN110069526A (zh) 2019-07-30
AU2013371448B2 (en) 2017-02-16
BR112015016352A2 (pt) 2017-07-11
US20150261831A1 (en) 2015-09-17
US20160188677A1 (en) 2016-06-30
WO2014107359A1 (en) 2014-07-10
CN104903894A (zh) 2015-09-09
US20140195558A1 (en) 2014-07-10
CA2896855C (en) 2016-11-01
CN104903894B (zh) 2018-12-28
MX2015008799A (es) 2016-04-25
KR20150104585A (ko) 2015-09-15
EP3096250A1 (en) 2016-11-23
IL239717A (en) 2017-04-30
EP2752779A2 (en) 2014-07-09
US10210221B2 (en) 2019-02-19
MX349042B (es) 2017-07-07
KR101775433B1 (ko) 2017-09-06
AU2013371448A1 (en) 2015-07-23
CA2896855A1 (en) 2014-07-10
KR102037232B1 (ko) 2019-10-28
US10698913B2 (en) 2020-06-30
EP3096250B1 (en) 2019-02-20
US9081826B2 (en) 2015-07-14
US11347761B1 (en) 2022-05-31
EP2752779B1 (en) 2016-06-29
KR20170103021A (ko) 2017-09-12
EP2752779A3 (en) 2015-02-18
US20190121809A1 (en) 2019-04-25
US9361344B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
US11347761B1 (en) System and methods for distributed database query engines
JP7130600B2 (ja) ファーストクラスデータベース要素としての半構造データの実装
US10581957B2 (en) Multi-level data staging for low latency data access
US10223431B2 (en) Data stream splitting for low-latency data access
US10127275B2 (en) Mapping query operations in database systems to hardware based query accelerators
US10599648B2 (en) Optimized storage solution for real-time queries and data modeling
EP2765517B1 (en) Data stream splitting for low-latency data access
US11868352B2 (en) Systems and methods for spilling data for hash joins
CN112732704B (zh) 一种数据处理方法、装置及存储介质
CN113641750A (zh) 一种企业大数据分析平台

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161026

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161026

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170228

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: 20170314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170322

R150 Certificate of patent or registration of utility model

Ref document number: 6117378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250