JP2014194769A6 - Apache hadoop用の低レイテンシクエリエンジン - Google Patents

Apache hadoop用の低レイテンシクエリエンジン Download PDF

Info

Publication number
JP2014194769A6
JP2014194769A6 JP2014049703A JP2014049703A JP2014194769A6 JP 2014194769 A6 JP2014194769 A6 JP 2014194769A6 JP 2014049703 A JP2014049703 A JP 2014049703A JP 2014049703 A JP2014049703 A JP 2014049703A JP 2014194769 A6 JP2014194769 A6 JP 2014194769A6
Authority
JP
Japan
Prior art keywords
query
data
execution
low latency
data node
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
JP2014049703A
Other languages
English (en)
Other versions
JP6050272B2 (ja
JP2014194769A (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
Priority claimed from US13/800,280 external-priority patent/US9342557B2/en
Application filed by クラウデラ インコーポレイテッド filed Critical クラウデラ インコーポレイテッド
Publication of JP2014194769A publication Critical patent/JP2014194769A/ja
Publication of JP2014194769A6 publication Critical patent/JP2014194769A6/ja
Application granted granted Critical
Publication of JP6050272B2 publication Critical patent/JP6050272B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】MapReduceのバッチ処理を完了させながら、リアルタイム又はほぼリアルタイムのアドホッククエリ機能を提供するApache Hadoop用の低レイテンシクエリエンジンを提供する。
【解決手段】クエリ要求、及びクエリの実行に関連する全ての内部要求を処理するための、Hadoopクラスタのデータノードにインストールされたデーモンを含む。クライアントを介してクエリ要求を受け取り、この要求を一群のプランフラグメントに変化させるとともに、遠隔デーモン上におけるプランフラグメントの最適化された並列実行を調整して結果を生成する。
【選択図】図1

Description

Apache Hadoopプロジェクト(以下、「Hadoop」)は、商品機械のクラスタにわたる大規模データセットを確実かつスケーラブルに分散処理するソフトウェアを開発するためのオープンソースソフトウェアフレームワークである。Hadoopは、Hadoop分散ファイルシステム(HDFS)として知られている分散ファイルシステムを含む。HDFSはローカルノード上のファイルシステムを相互にリンクして、Hadoopクラスタ全体にわたる統一ファイルシステムを形成する。Hadoopは、MapReduceとして知られているプログラミングフレームワークが利用するジョブスケジューリング及びクラスタリソース管理のためのフレームワークを提供するHadoop YARNも含む。Hadoopは、ApacheHive(以下、「Hive」)及びApacheHBase(以下、「HBase」)を含むその他のApacheプロジェクトによっても補完される。Hiveは、データ要約及びアドホッククエリを提供するデータウェアハウスインフラである。HBaseは、大型テーブルのための構造化データストレージをサポートするスケーラブルな分散NoSQL(非構造化照会言語)データベース又はデータストアである。
MapReduceは、作業をより小さな部分問題にマッピング(map)又は分割し、これらの部分問題をクラスタ内のワーカノードに割り当てることによりデータを並列処理する。これらのワーカノードは、部分問題を処理して結果を戻し、これらの結果が組み合わさって出力へと「帰着(reduce)」し、これが解に受け継がれる。MapReduceはバッチ処理フレームワークであり、作業負荷を異なる機械に分散することにより大量のデータを並列処理するように最適化される。MapReduceは、耐障害性を含む利点を提供するが、高レイテンシなどの深刻な不利点もある。
MapReduceのレイテンシは、そのバッチ指向のmap/reduceモデルに起因する。MapReduceでは、実行中、「map」段階の出力が「reduce」段階の入力として提供されるため、実行中の「map」段階が完了するまで「reduce」段階を終えることができない。さらに、全ての中間データがディスクに記憶されてからリデューサにダウンロードされる。このため、MapReduceではレイテンシが加わり、MapReduceを通じて開始された単純なクエリの実行に長い時間がかかる場合がある。
Hiveは、MapReduceの上位に位置するフレームワークである。Hiveは、構造化照会言語(SQL)のように見える言語をMapReduceコードに変換し、Hadoopクラスタ内のデータアクセスをユーザに対して大幅に容易にする。しかしながら、Hiveは、内部的にはその実行エンジンとしてMapReduceを使用しており、MapReduceの全ての不利点を受け継いでいる。このため、単純なHiveクエリの実行に長い時間がかかる場合がある。
MapReduceのバッチ処理を完了させながら、リアルタイム又はほぼリアルタイムのアドホッククエリ機能を提供するApache Hadoop用の低レイテンシクエリエンジンを提供する。
低レイテンシクエリエンジンを展開できる環境例を示す図である。 バッチ指向のリアルタイムアドホッククエリをサポートする統合プラットフォームのコンポーネント例を示すブロック図である。 Hadoopクラスタ内のデータノードにインストールされて統合ストレージ層上に対話型のリアルタイム構造化照会言語(SQL)クエリを直接提供するインストールマネージャ及び低レイテンシクエリエンジンのコンポーネント例を示すブロック図である。 Hadoopクラスタ内のデータノードにインストールされて統合ストレージ層上に対話型のリアルタイム構造化照会言語(SQL)クエリを直接提供するインストールマネージャ及び低レイテンシクエリエンジンのコンポーネント例を示すブロック図である。 Hadoop用の低レイテンシクエリエンジンによってSQLクエリを処理する方法例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンを使用したクエリ実行のフロー例を示す図である。 Hadoop用の低レイテンシクエリエンジンによるクエリプラン例の実行を示すブロック図である。 Hive及び低レイテンシクエリエンジンを使用してデータセットに対して行ったクエリの実行時間例を示すスクリーンショットである。 ビジネスインテリジェンス環境におけるリアルタイムアドホッククエリのための低レイテンシクエリエンジンを示すブロック図である。 本明細書で説明する方法のいずれか1つ又はそれ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表現である。
以下の説明及び図面は例示的なものであり、限定的なものと解釈すべきではない。本開示を完全に理解できるように数多くの具体的な詳細について説明する。しかしながら、いくつかの例では、説明を曖昧にしないために周知の又は従来の詳細については説明していない。本開示における1つの実施形態又はある実施形態に対する言及は、必ずしもそうではないが同じ実施形態に対する言及とすることができ、このような言及は実施形態の少なくとも1つを意味する。
本明細書における「1つの実施形態」又は「ある実施形態」に対する言及は、実施形態に関連して説明する特定の特徴、構造又は特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所に出現する「1つの実施形態では」という表現は、必ずしも全てが同じ実施形態について言及するものではなく、他の実施形態を互いに排除する別個の又は代替の実施形態について言及するものでもない。さらに、実施形態によって示すことも示さないこともある様々な特徴についても説明する。同様に、実施形態によって要件になることもならないこともある様々な要件についても説明する。
一般に、本明細書で使用する用語は、本開示の文脈及び個々の用語を使用する特定の文脈での当技術における通常の意味を有する。以下では、又は本明細書の別の箇所では、本開示の説明に関するさらなる指針を実務者に与えるために、本開示の説明に使用する用語について説明している箇所もある。便宜上、イタリック体及び/又は引用符などを使用していくつかの用語を強調表示していることもある。強調表示の使用によって用語の範囲及び意味に影響が及ぶものではなく、強調表示されているかどうかに関わらず、同じ文脈では用語の範囲及び意味は同じものである。同じ事柄を2通り以上の言い方で述べることもできる。
従って、本明細書で1つの用語について詳述又は説明しているかどうかに関わらず、本明細書で説明する用語のいずれか1つ又はそれ以上には別の言語及び同義語を使用することができ、またいずれかの特別な意味が置かれることもない。いくつかの用語については同義語を使用している。1又はそれ以上の同義語の記述は、他の同義語の使用を排除するものではない。本明細書で説明するいずれかの用語の例を含む例を本明細書のいずれかの箇所で使用していたとしても、これらは例示的なものにすぎず、本開示又はいずれかの例示する用語の範囲及び意味をさらに限定することを意図するものではない。同様に、本開示は、本明細書で示す様々な実施形態に限定されるものではない。
以下、本開示の範囲をさらに限定することを意図せずに、本開示の実施形態による機器、装置、方法及びこれらの関連結果の例を示す。なお、例では読者の便宜を図って表題又は副題を使用することがあるが、これらは決して本開示の範囲を限定すべきものではない。特に定義していない限り、本明細書で使用する全ての技術用語及び科学用語は、本開示が属する技術の当業者によって一般的に理解されるものと同じ意味を有する。不一致が生じた場合、定義を含めて本明細書が優先する。
本開示の実施形態は、Hadoop用の低レイテンシ(LL)クエリエンジンを含む。本開示の実施形態は、Hadoopに記憶されたデータに対してリアルタイム又はほぼリアルタイムでクエリを実行するためのシステム及び方法も含む。本開示の実施形態は、Hadoopに記憶されたあらゆるフォーマットのデータに対してアドホッククエリを実行するためのシステム及び方法をさらに含む。
開示するHadoop用の低レイテンシ(LL)クエリエンジンは、高速な対話型のクエリ結果を提供する別の処理フレームワークを提供し、よく知られたSQLクエリ構文を使用する。この低レイテンシ(LL)クエリエンジンは、結果の生成にMapReduceを使用せず、代わりにHadoopクラスタに散在するそのデーモンを介してデータに対して直接クエリを行う。
1つの実施形態では、低レイテンシ(LL)クエリエンジンが、構造化されていない及び/又は構造化されているビッグデータの高速クエリを行うための機構を提供する。低レイテンシ(LL)クエリエンジンは、クエリに応答して素早く情報を戻すことができる。多くの場合、大量のデータの場合でも、クエリに対する結果をリアルタイム又はほぼリアルタイムで戻すことができる。この低レイテンシ(LL)クエリエンジンは、ジョブを開始してからデータにクエリを行うMapReduceとは異なり、HDFS及び/又はHBaseテーブルに記憶されているデータに対して直接クエリを行う。この直接クエリ機能は、システムにデータが取り込まれる際にデータに対して高速クエリを実行する能力をユーザに提供する。
1つの実施形態では、低レイテンシ(LL)クエリエンジンの低レイテンシという利点により、ユーザが対話式にクエリを実行することができる。MapReduceなどの既存のクエリエンジンでは、単純なクエリでも数十分かかることがある。従って、ユーザは、結果を見るまで長い間待ってから別のクエリを開始する必要がある。
別の実施形態では、低レイテンシ(LL)クエリエンジンが、データストレージから処理を分離するスキーマオンリードモデルを実装する。低レイテンシ(LL)クエリエンジンは、HDFS及びHBaseの基本ストレージ層にデータを記憶するフォーマットに関わらず、ランタイムで抽出された関連スキーマを使用してこのようなデータに対して直接クエリを行う。低レイテンシ(LL)クエリエンジンは、柔軟性に欠けるスキーマに結合されていないので、ユーザは、洞察及びその他の発見をもたらし得るアドホックな探索的質問を行うことができる。
低レイテンシ(LL)クエリエンジンを配置するための環境例
図1は、低レイテンシ(LL)クエリエンジンを配置できる環境例100を示す図である。環境100には、Java(登録商標)データベースコネクティビティ(JDBC)クライアント、オープンデータベースコネクティビティ(ODBC)クライアント、及びHadoopクラスタに接続及び/又はアクセスするためのAPI及びその他のツールを提供する同様のものなどのクライアント104を示している。HueなどのSQLアプリケーション102は、クエリ又はジョブの実行、HDFSの閲覧、ワークフローの作成などを行うための、Hadoop用のユーザインターフェイスを提供する。環境100は、Hadoopクラスタを含むデータノード120a〜c上で実行される低レイテンシ(LL)クエリエンジンデーモンにクエリを発行するためのコマンドラインインターフェイス116も含む。1つの実施形態では、クライアント104、ウェブアプリケーション102及びコマンドラインインターフェイス116を、個別に又はまとめて一般にクライアントと呼ぶことができる。
環境100には、複数のデータノード120a〜cを示している。低レイテンシ(LL)クエリエンジンデーモンは、各データノード上で実行される。低レイテンシ(LL)クエリエンジンデーモンは、クエリを調整して実行する長期にわたる処理である。低レイテンシ(LL)クエリエンジンデーモンの各インスタンスは、クライアント102/104を介して受け取られるクエリを受け取り、計画し、調整することができる。例えば、低レイテンシ(LL)クエリエンジンは、クエリをフラグメントに分割することができ、これらのフラグメントが低レイテンシ(LL)クエリエンジンのインスタンスを実行する遠隔ノードに分散されて並列実行される。データノード120a〜cには、HDFSしか実行できないものもあれば、HBaseリージョンサーバ122a〜cを実行できるものもある。クエリは、(120a〜cなどの)HDFS及び/又は(122a〜cなど)HBaseに対して直接実行される。
環境100には、Hiveメタストア106、YARN108、HDFSネームノード110及び/又は状態ストア112などの統合メタデータ及びスケジューラコンポーネントを示している。Hiveメタストア106は、低レイテンシ(LL)クエリエンジンが利用できるデータに関する情報を含む。具体的には、Hiveメタストアは、テーブル定義、すなわち公表される論理テーブル内への物理データのマッピングを含む。YARN108は、ジョブスケジューリング及びクラスタリソース管理を行う。HDFSネームノード(NN)110は、ローカルな読み込みを最適化するためのデータノードにわたるファイルの分散の詳細を含む。1つの実装では、ネームノード110が、個々のノード上のファイルが存在するディスクボリュームに関する情報を含むこともできる。
状態ストア112は、クラスタ内の単一ノード上で実行されるグローバルシステムリポジトリである。1つの実装では、データストア112をネームサービスとして使用することができる。全ての低レイテンシ(LL)クエリエンジンデーモンは、起動時に状態ストアに登録してメンバーシップ情報を取得することができる。このメンバーシップ情報を使用して、クラスタ上で実行されている全ての低レイテンシ(LL)クエリエンジンデーモンに関する情報を得ることができる。さらなる実装では、状態ストア112を使用して、クエリを実行するためのメタデータを提供することができる。状態ストア112は、メタデータをキャッシュし、起動時又は別の時点に低レイテンシ(LL)クエリエンジンデーモンにメタデータを分散させることができる。状態ストアが故障した場合、システムの残り部分は、状態ストアから受け取った最後の情報に基づいて動作を継続することができる。さらなる実装では、状態ストアが、負荷情報、診断情報、及びHadoopクラスタの機能及び/又は性能を高めるために使用できる同様のものなどの他のシステム情報を記憶して分散させることができる。
図2は、バッチ指向のリアルタイムアドホッククエリをサポートする統合Hadoopプラットフォーム212のコンポーネント例を示すブロック図である。統合Hadoopプラットフォーム212は、分散処理及び分散ストレージをサポートする。統合Hadoopプラットフォーム212は、ユーザインターフェイス214、ストレージ220及びメタデータ222コンポーネントを含む。ユーザインターフェイス214は、ODBCドライバ、JDBCドライバ及びHue BeeswaxなどのHiveインターフェイスを含む。ユーザインターフェイス214はSQLサポートも含む。ユーザインターフェイス214を介して、クエリを発行すること、ストレージ220との間でデータの読み書きを行うことなどができる。ストレージ220は、HDFS及び/又はHBaseストレージを含む。HDFSは、以下に限定されるわけではないが、テキストファイル、シーケンスファイル、RCファイル、Avroなどを含む様々なファイルフォーマットをサポートすることができる。snappy、gzip、deflate、bzipなどを含む様々な圧縮コーデックをサポートすることもできる。メタデータ222は、例えば、テーブル、そのパーティション、スキーマオンリード、カラム、タイプ、テーブル/ブロック位置などの情報を含むことができる。メタデータ222は、HBaseテーブルのマッピング、開始/中止行内にマッピングされる行キーカラム上の述語、単一カラム値フィルタにマッピングされる他のカラム上の述語などを含む既存のHiveメタストアを利用することができる。
既存のHadoopプラットフォームは、Hadoopデータのバッチ処理216にバッチ指向のクエリエンジン(すなわち、MapReduce)を使用する。MapReduceのバッチ処理能力は、統合Hadoopプラットフォーム212内のリアルタイムアクセスコンポーネント218により補完される。リアルタイムアクセスコンポーネント218は、低レイテンシに最適化された分散低レイテンシ(LL)クエリエンジンを介して、統合ストレージ220に対してリアルタイムアドホックSQLクエリを直接実行できるようにする。従って、リアルタイムアクセスコンポーネント218は、ビッグデータに対するクエリ及び分析の両方をサポートすることができる。一方、(MapReduceなどの)既存のクエリエンジンは、ストレージ、メタデータ及びクエリの密接な結合を特徴とし、すなわちこのようなクエリエンジンは、この密接な結合に起因して、Hadoopから遠隔的にデータを読み取り、このデータをエンジンのストレージフォーマットに変換してからしかクエリを実行することができない。
図3Aは、統合ストレージ層に対して対話型のリアルタイムSQLクエリを直接提供するように低レイテンシ(LL)クエリエンジンのコンポーネントをHadoopクラスタにインストールするためのインストールマネージャ302のコンポーネント例を示すブロック図である。
マネージャ302は、低レイテンシ(LL)クエリエンジンを自動的にインストールし、構成し、管理し、モニタできるインストールマネージャである。或いは、低レイテンシ(LL)クエリエンジンを手動でインストールすることもできる。インストールマネージャ302は、低レイテンシ(LL)クエリエンジンデーモン304、状態ストアデーモン306及び低レイテンシ(LL)クエリエンジンシェル308を含む3つのバイナリをインストールする。上述したように、低レイテンシ(LL)クエリエンジンデーモン304は、HDFS及び/又はHBaseデータに対するクエリを計画して実行するサービス又は処理である。低レイテンシ(LL)クエリエンジンデーモンは、クラスタ内の各データノードにインストールされる。状態ストアデーモン306は、クラスタ内の全ての低レイテンシ(LL)クエリエンジンデーモンインスタンスの位置及び状態を追跡するネームサービスである。いくつかの実装では、状態ストアデーモン306を、メタデータ及び/又はその他の診断情報を提供するためのメタデータストアとすることもできる。低レイテンシ(LL)クエリエンジンシェル308は、低レイテンシ(LL)クエリエンジンデーモンにクエリを発行するためのコマンドラインインターフェイスであり、クライアントにインストールされる。
図3Bは、Hadoopクラスタ内の各データノードにインストールされた低レイテンシ(LL)クエリエンジンデーモンのコンポーネント例のブロック図である。図示のように、低レイテンシ(LL)クエリエンジンデーモン304は、各データノード314にインストールされる。1つの実施形態では、低レイテンシ(LL)クエリエンジンデーモン304が、クエリプランナ316、クエリコーディネータ318及びクエリ実行エンジン320を含む。クエリプランナ314は、クライアントからのクエリ要求を一群のプランフラグメントに変化させ、これらのプランフラグメントをクエリコーディネータ318に提供する。クエリプランナ314は、低レイテンシ(LL)クエリエンジンのフロントエンドを構築することができ、メタストア/状態ストア、APIなどのHadoop環境の残り部分とのやりとりが容易になるようにJava又は別の好適な言語で書くことができる。クエリプランナ314は、Scan、HashJoin、HashAggregation、Union、TopN、Exchangeなどの様々な演算子を使用してクエリプランを構築することができる。各演算子は、何らかの方法でデータを実体化又は生成し、或いはデータを組み合わせることができる。1つの実装では、例えば、クエリプランナが、1又はそれ以上の演算子のレフティプラン又はツリーを(例えば、手動で又はオプティマイザを使用して)作成することができる。走査演算子は、走査行又は境界に沿ってプランを分割することができる。全ての異なるストレージマネージャには特殊な走査ノードが存在することができる。従って、例えば、HDFS走査ノード及びHBase走査ノードが存在することができ、これらは各々、異なるファイルフォーマットのための異なる処理を内部的に利用することができる。プランによっては、ハッシュテーブルを満たした後に集約結果を出力できるハッシュアグリゲーションのためにデータを組み合わせるものもある。ユニオン演算子は、異なるプランフラグメントからの出力を結合することができる。TopN演算子は、制限付きのorder byに相当することができる。交換演算子は、異なる2つのノード上で実行される2つのプランフラグメント間におけるデータ交換に対処することができる。
クエリコーディネータ318は、クエリに関与する全ての低レイテンシ(LL)クエリエンジンデーモンにわたってプランフラグメントの実行を開始する。クエリコーディネータ318は、状態ストアからのメンバーシップ情報及び/又はネームノードからのデータブロックの位置情報を使用して、クエリプランフラグメントを実行するデータノード上の低レイテンシ(LL)クエリエンジンデーモンを決定又は識別する。1つの実装では、クエリコーディネータ318が、クエリからのあらゆる述語を適用して、プランフラグメントを実行すべきファイルセット及びブロックセットに範囲を絞り込むこともできる。クエリコーディネータ318は、遠隔ノードにおける低レイテンシ(LL)クエリエンジンデーモンからのデータの最終的な集約又は結合を行うこともできる。1つの実装では、低レイテンシ(LL)クエリエンジンデーモンが、データの一部を事前に集約してノード全体に集約が分散されるようにすることによりクエリを高速化する。
クエリ実行エンジン320は、HDFS及びHBaseに対し、計画したクエリフラグメントをローカルに実行する。例えば、クエリ実行エンジン320は、走査演算子及び/又は他のいずれかのクエリ演算子を起動する。クエリ実行エンジン320は、C++で書かれているが、Javaなどの他のいずれかの好適な言語で書くこともできる。クエリ実行エンジンは、MapReduceとは別個の実行エンジンである。クエリ実行エンジンは、データ(HDFS及びHBaseなど)を提供するインフラストラクチャを使用するが、ジョブトラッカ又はタスクトラッカなどの、マップリダクションを実行するインフラストラクチャは利用しない。
1つの実施形態では、クエリ実行エンジン320が、中央処理装置(CPU)が効率的に実行できるフォーマットに解釈コードを変換するために、コンポーネント322、低水準仮想マシン(LLVM)、オプティマイザ、又はランタイムコード生成のためのその他のコンパイラインフラを含むことができる。例えば、典型的なリレーショナルデータベースシステムは、インデックスなどからデータを抽出するために、式を評価するための解釈コードを有する。クエリ実行エンジンは、低水準仮想マシン(LLVM)を使用してコードをハードウェアに密接に結合することにより、この問題を回避する。例えば、クエリにおけるA=B/(A+B)=Cという式は、3つの関数呼出しを行うことにより評価することができる。LLVMは、この式を評価して速度を高めるために、3つの関数呼び出しを行う代わりにCPUが提供する演算を使用する。
さらなる実施形態では、低レイテンシ(LL)クエリエンジンが、例えばテキスト処理及び/又はその他のリソース集約的な処理を行うために特別なCPU命令を使用することもできる。別の例として、速度を高めるために、特別な巡回冗長検査(CRC32)命令を使用してハッシュ値計算を実行することもできる。
クエリ処理の例
図4に、Hadoop用の低レイテンシ(LL)クエリエンジンによるSQLクエリの処理方法例を示す。上述したように、Hadoopクラスタのデータ(HDFS及びHBaseなど)を有する各ノード上で低レイテンシ(LL)クエリエンジンのインスタンスが実行される。ユーザは、クライアント(ODBCクライアント/Hue/コマンドラインツールなど)を介して低レイテンシ(LL)クエリエンジンデーモンのいずれかにクエリを提出する。ユーザは、データノード上の特定の低レイテンシ(LL)クエリエンジンデーモンに直接接続することにより、クライアント(ODBCクライアントなど)を介して低レイテンシ(LL)クエリエンジンデーモンのいずれかを標的にすることができる。或いは、ラウンドロビン法を使用して、クラスタ内の全ての遠隔デーモンに負荷を分散させることもできる。
1つの実装では、ブロック402において、低レイテンシ(LL)クエリエンジンデーモンのユーザ対応側(すなわち、クエリプランナ)が、ユーザからのクエリ要求を受け取り又は受け付ける。クエリプランナは、ブロック406において、この要求を一群のプランフラグメントに変化させ、このクエリプランフラグメントを同じノード内のクエリコーディネータに受け渡す。クエリコーディネータは、このクエリに関与する他の全ての低レイテンシ(LL)クエリエンジンデーモン又は遠隔デーモンにわたって実行計画全体を調整する単一のインスタンスとして機能する。1つの実装では、クエリコーディネータが、実行計画全体を調整するために、ブロック408において、状態ストアからメンバーシップ情報を、(HDFSクエリの)ネームノードから位置情報を受け取り、又は取得する。クエリコーディネータは、メンバーシップ情報及びブロック位置情報を使用して、クラスタ内のいずれのデーモン又はノードが実行のためにクエリプランフラグメントを受け取るべきかを決定する。ブロック410において、クエリコーディネータは、関連データを有するノードにクエリプランフラグメントを分散して、各ノードにとってローカルなデータに対してプランフラグメントの実行を開始する。
実行中、全てのノードは、ストリーミング方式で互いにやりとりすることができる。1つの実装では、判定ブロック412において、クエリが集約演算子又はブロッキング演算子を含まないと判定された場合、ブロック414において、クエリ実行要素(すなわち、クエリプランフラグメントを受け取ったノードのクエリ実行エンジン)からストリーミングされた結果がクエリコーディネータにより受け取られる。その後、ブロック416において、クライアントを介してユーザに結果がストリーミングされる。
或いは、判定ブロック412において、クエリ内に集約演算子又はブロッキング演算子が存在すると判定された場合、ブロック418において、クエリ実行要素間で中間結果がストリーミングされ、1又はそれ以上のノードに事前に集約される。ブロック420において、クエリコーディネータは、事前に集約した結果の集約又は結合を行って最終結果を決定し、ブロック416において、この最終結果がクライアントを介してユーザに送信される。
図5A〜図5Fに、Hadoop用の低レイテンシ(LL)クエリエンジンを使用したクエリ実行のフロー例を示す。
図5Aを参照すると、低レイテンシ(LL)クエリエンジンを動作させるためのHadoop環境500が、SQLアプリケーション502と、ODBCクライアント、JDBCクライアントなどのクライアント504とを含む共通HiveSQL及びインターフェイスを含む。この環境は、Hiveメタストア506などの統合メタデータ及びスケジューラエンティティ、YARN508、HDFSネームコード510及び/又は状態ストア512を含む。この例に示すように、Hadoop環境は、3つのHDFSデータノード520a〜cのクラスタを含み、これらの各々は、上位で実行される低レイテンシ(LL)クエリエンジンデーモン526a〜cのインスタンスをそれぞれ有する。クライアントは、低レイテンシ(LL)クエリエンジンデーモンの1つのインスタンス(526bなど)のみに接続する。低レイテンシ(LL)クエリエンジンデーモンは、統合メタデータ及びスケジューラエンティティのうちの1つ又はそれ以上に接続し、又はこれと通信する。さらに、図示のように、低レイテンシ(LL)クエリエンジンデーモンは、分散された及び完全な超並列処理(MPP)のために互いに接続する。なお、データノード520a〜c上の低レイテンシ(LL)クエリエンジンデーモン526a〜c及び状態ストア512は、Hadoop内でリアルタイムなアドホッククエリ機能を提供する低レイテンシ(LL)クエリエンジンのコンポーネントである。低レイテンシ(LL)クエリエンジンは、既存の共通HiveSQL及びインターフェイス502及び504、Hiveメタストア506、YARN508、HDFSネームノード510、並びにHDFSデータノード520a〜c及びHBaseリージョンサーバ522a〜cを含む統合ストレージ層を利用する。
図5Bを参照して分かるように、SQLアプリケーション502を使用するユーザは、クライアント504を介してSQLクエリ要求524を提出する。SQLクエリ要求は、ノード526a〜cのいずれかに進むことができる。1つの実装では、クライアント/アプリケーションを介して、SQLクエリ要求を送信すべきノードを指定することができる。或いは、負荷バランシングのために、ラウンドロビン又はその他のスケジューリング方法に基づいてノードを選択することもできる。HDFSデータノード520bの低レイテンシ(LL)クエリエンジンデーモン526bのインスタンスをSQLクエリ要求524の受け手として示している。SQLクエリ要求524は、低レイテンシ(LL)クエリエンジンデーモン526bのクエリプランナ514bと相互作用する。
図5Cを参照して分かるように、クエリ要求524を受け取ったクエリプランナ514b及び/又はクエリコーディネータ516bは、統合メタデータ及びスケジューラエンティティの1つ又はそれ以上と通信して、このクエリ要求の計画の作成及び/又はクエリ要求の実行の調整を行うための情報を取得する。例えば、クエリプランナ及び/又はコーディネータは、どのデータノードが利用可能であるか、及びクエリに関連するデータブロックの位置を判断することができる。HDFSでは、様々なデータノードにデータブロックの複製が記憶される。クエリプランナ及び/又はコーディネータは、ネームノード510と通信して各データブロックの複製の各々がどこに記憶されているかを判断するとともに、クエリを実行する複製の1つを選択することができる。一群のデータブロックの複製から1つの複製を選択する際には、ラウンドロビン又は別の方法を使用することができる。クエリプランナ514bは、クエリ要求を解析及び分析して、クラスタ内の低レイテンシ(LL)クエリエンジンデーモンに分散できるタスクを決定することができる。
図5Dを参照して分かるように、クエリコーディネータ516bは、クエリ要求に関連するデータを保持しているノードの各々のクエリ実行エンジン518a〜cにクエリプランナ514bからタスク又はプランフラグメントを受け渡す。3つのクエリ実行エンジンは、全てが並列に、及び分散方式で実行される。図5Eを参照して分かるように、クエリ実行エンジン518a〜cは、関連データを保持しているノード上でプランフラグメントをローカルに実行する。例えば、クエリ実行エンジン518cは、HDFSデータノード520cに記憶されているHDFSデータのローカルダイレクトリードを実行する。同様に、クエリ実行エンジン518a及び518bは、HDFSデータノード520a及びHBase522bにそれぞれ記憶されているデータのローカルダイレクトリードを実行する。クエリ実行エンジン518a〜cは、プランフラグメント内に指定されている他のクエリ演算子を起動することもできる。
図5Fを参照して分かるように、クエリ実行エンジン518a〜cからの結果は、メモリ内転送を介してクエリコーディネータ516bに受け渡される。クエリがブロック演算(TopN、アグリゲーションなど)を必要とする場合、事前集約のためにRTクエリエンジンデーモンノード間で中間結果がストリーミングされ、クエリコーディネータ516bにおいて最終結果が集約される。クエリ結果又は中間結果をメモリ内に保持することにより、転送がディスクスピードに制約されなくなるので性能が向上する。その後、クエリコーディネータ516bにより、クライアント504及びSQLアプリケーション502を介してクエリ要求524に対する最終結果528がユーザに戻される。
図6は、Hadoop用の低レイテンシ(LL)クエリエンジンによるクエリプラン例の実行を示すブロック図である。
クエリプラン602は以下に示すクエリ例に対応する。

クエリプラン602は、HDFS走査及びHBase走査、これら2つの走査から得られたデータの結合、及びグルーピング(TopN)演算による集約の計算を含む。クエリプラン602は、別個のプランフラグメントを形成するように走査線に沿って分割される。例えば、1つのプランフラグメントはHBaseデータ走査を含むことができ、もう1つのプランフラグメントはHDFSデータ走査を含むことができる。HBase走査は、ブロック608に示すように、クエリに関連するHBaseデータを保持しているリージョンサーバにおいてローカルに実行される。HDFS走査は、ブロック606に示すように、関連するHDFSデータを保持しているデータノード上でローカルに実行される。
1つの実装では、実際のデータを生成するスキャナの近くで結合演算を実行した方が最適となり得る。ブロック606に示すように、データノードは、HBase走査からブロードキャストされたデータを受け取る交換ノード又は演算子を有する。データノードにおいては、ハッシュ結合演算によってメモリ内ハッシュテーブルが構築され、結合演算が行われ、その後に事前集約演算が行われる。次に、事前集約演算の出力が最終プランフラグメント604に送信される。最終プランフラグメントは、1回のみのインスタンスを有し、クエリを処理するクエリコーディネータ上で実行される。コーディネータにおいては、交換ノードが事前集約からのデータを受け取り、別のハッシュテーブル内で集約演算を実行する。その後、クライアントに提供する最終結果を生成するTopN演算を通じて集約演算の出力が実行される。図示のように、HDFS走査及びHBase走査の両方を並列に行うことができる。同様に、結合及び集約演算も、関連データを保持しているデータノードにおいて並列に行うことができる。この並列実行と中間データのメモリ内転送により、クエリに対する低レイテンシ応答が可能になる。
図5E〜図5Fに示すRTクエリエンジンが図6のクエリを処理した場合について考察する。図5Eを参照すると、クエリ実行エンジン518a及び518cは、HDFSデータノード520a及び520cのHDFSデータをそれぞれ走査する。クエリエンジン518bは、HBaseデータ522bを走査する。図5Fを参照すると、HBase走査を行うクエリ実行エンジン518bは、図示のように、HDFS走査を行う2つの実行エンジン518a及び518cに走査から得られたデータをブロードキャストする。次に、クエリ実行エンジン518a及び518cの各々は結合演算を実行し、事前集約結果を開始クエリコーディネータ516bに送信する。次に、開始クエリコーディネータは、結果を集約し、TopN演算を実行して最終結果を取得し、この結果がSQL結果528としてクライアント504に提供される。集約の必要がない実装では、クエリ実行エンジンからクエリコーディネータにストリーミングされたデータを、非常に高速かつ効率的にクライアントにストリーミングすることができる。
図7は、Hive及び低レイテンシ(LL)クエリエンジンを使用してデータセットに対して行われるクエリの実行時間例を示すスクリーンショットである。Hive/MapReduce及び低レイテンシ(LL)クエリエンジンを使用して、例示的なデータセットを有する仮想マシンにクエリを実行してテーブル内のエントリ数を特定する。Hiveで実行されるクエリは、結果を得るために1又はそれ以上のMapReduceジョブを実行しなければならないので、Hiveが単一のCOUNTクエリを実行するには約40秒かかる。実際には、この40秒の大半は、MapReduceジョブの起動及び解体に使用される。低レイテンシ(LL)クエリエンジンを使用して同じCOUNTクエリを同じデータセットに実行した場合、図示のように実行時間は約0.5秒にまで大幅に短縮される。このクエリ実行時間の大幅な短縮により、Hadoopクラスタとリアルタイムにやりとりしてクエリの合間に長時間待つ必要なく、分析、トランザクション、及び他のいずれかのクエリを実行する上での低レイテンシ(LL)クエリエンジンの利点が示される。
データ管理
1つの実施形態では、低レイテンシ(LL)クエリエンジンが、ユーザが大量のデータにクエリを行い、Hive及びMapReduceという既存のバッチ処理フレームワークを使用するよりも大幅に早く回答を得ることができるという低レイテンシの利点を提供する。さらなる実施形態では、RTクエリエンジンが、大量のデータ内の隠れたインサイトを検索するために使用できるスキーマを定義する柔軟性を提供する。
リレーショナルデータベース管理システム(RDBMS)では、最初にスキーマが定義される(すなわち、スキーマオンライトモデル)。入力データを記憶する前に、入力データのフォーマットがデータベースの専用フォーマットに変換される。スキーマオンライトモデルは、既知の質問への回答には上手く機能する。これまでに知られていない質問に回答する必要がある場合には、新たなデータを取り込む必要性が生じ得る。しかしながら、柔軟性に欠けるスキーマでは、データベースシステムが、スキーマに一致しない新たなデータの受理を開始することができない。これらの新たなデータに適合するには、スキーマを修正又は補正しなければならない。新たなデータを取り込むようにスキーマを修正又はアップグレードするには、通常、データアーキテクトが、例えば、新たなデータの正しい解析及びロード、新たなデータの読み取り又は認識などを行うように、データベースシステムに接続された全てのシステムを変更する必要がある。このスキーマをアップグレードして、データベースシステムに強固に結合された全てのシステムが共に確実に機能するようにする処理には長い時間がかかる場合がある。それまで、質問に回答するために新たなデータを取り込むことはできない。
低レイテンシ(LL)クエリエンジンでは、データの処理とデータの記憶が分離される。例えば、Hadoop内の基本ストレージシステムは、元々のネイティブフォーマット(例えば、タブ区切りテキストファイル、CSV、XML、JSON、画像など)のファイルを受け入れることができる。低レイテンシ(LL)クエリエンジンは、スキーマオンリードモデルを使用して、あらゆるフォーマットで記憶されたデータを効率的なメモリ内フォーマット(タプルフォーマットなど)にオンザフライで変換する。例えば、低レイテンシ(LL)クエリエンジンは、テキストデータと相互作用する場合、一旦テキストデータを読み取って変換を行うことができ、全ての処理が完了するまで、変換からのデータを効率的なメモリ内フォーマットで処理することができる。
低レイテンシ(LL)クエリエンジンは、Hiveメタストア及び基本統合ストレージ(HDFS及びHBase)などの既存のHadoopコンポーネントを利用する。低レイテンシ(LL)クエリエンジンがクエリを行うデータは、同時にMapReduceでも利用することができる。例えば、クエリの実行中に、低レイテンシ(LL)クエリエンジンは、ファイル(あらゆるフォーマット)を解析し、実行時にメタストアから関連スキーマを抽出する。他のデータベースシステムでは、このことがデータのフォーマットとして不可能であり、ユーザがデータとどのように相互作用するかについての定義(すなわち、メタストア内のスキーマ)が強固に結合される。従って、Oracleデータベースに記憶されたデータベースファイルは、Oracleによって読み取ることはできるが、他のフレームワークによって読み取ることはできない。
図8は、ビジネスインテリジェンス環境におけるリアルタイムアドホッククエリのための低レイテンシ(LL)クエリエンジンを示すブロック図である。図示のように、Hadoop804は、オリジナルデータ810をネイティブフォーマットで記憶する。オリジナルデータ810は、柔軟性に欠けるスキーマに適合するデータを収集する従来のリレーショナルデータベースとは異なり、いずれの柔軟性に欠けるスキーマにも従わず、実際には処理態様から分離される。Hadoop内のデータノード上で実行される低レイテンシ(LL)クエリエンジン806は、クライアント(ODBC/JDBCドライバなど)を介して、ビジネスインテリジェンス(BI)ツール816などのアプリケーションからのクエリ808を受け付けることができる。
クエリ808は、データ801から新たな値を抽出するように定義し、適合し、及び/又は再適合することができる柔軟なスキーマオンリードモデルを使用して作成することができ、これは柔軟性に欠けるスキーマでは不可能であったと思われる。低レイテンシ(LL)クエリエンジン806は、関連データを一旦読み取って解析し、変換を行い、変換済みのデータ812を最適化されたメモリ内フォーマットで記憶してクエリ808に対する高速応答を提供することができる。
図9は、本明細書で説明する方法のいずれか1つ又はそれ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表現である。
図9の例では、コンピュータシステム900が、プロセッサ、メモリ、不揮発性メモリ、及びインターフェイス装置を含む。説明を簡単にするために、様々な共通コンポーネント(キャッシュメモリなど)は省略している。コンピュータシステム900は、図1の例に示すコンポーネントのいずれか(及び本明細書で説明した他のいずれかのコンポーネント)を実装できるハードウェア装置を示すことを意図したものである。コンピュータシステム900は、いずれの適用可能な既知の又は好都合なタイプであってもよい。コンピュータシステム900のコンポーネントは、バスを介して、又は他の何らかの既知の又は好都合な装置を介して共に結合することができる。
プロセッサは、例えば、Intel Pentium(登録商標)マイクロプロセッサ又はMotorolaパワーPCマイクロプロセッサなどの従来のマイクロプロセッサとすることができる。当業者であれば、「機械可読(記憶)媒体」又は「コンピュータ可読(記憶)媒体」という用語は、プロセッサがアクセス可能なあらゆる種類の装置を含むと認識するであろう。
メモリは、例えばバスによってプロセッサに結合される。メモリは、限定ではなく一例として、動的RAM(DRAM)及び静的RAM(SRAM)などのランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカルメモリであっても、遠隔メモリであっても、又は分散メモリであってもよい。
バスは、プロセッサを不揮発性メモリ及びドライブユニットにも接続する。多くの場合、不揮発性メモリは、磁気フロッピー(登録商標)又はハードディスク、磁気光学ディスク、光学ディスク、CD−ROM、EPROM、又はEEPROMなどのリードオンリメモリ(ROM)、磁気又は光学カード、或いは大量データのための別の形の記憶装置である。多くの場合、このデータの一部は、コンピュータ800内のソフトウェアの実行中に、直接メモリアクセス処理によってメモリに書き込まれる。不揮発性ストレージは、ローカルストレージであっても、遠隔ストレージであっても、又は分散ストレージであってもよい。全ての適用可能なデータをメモリ内で利用できる状態でシステムを構築できるので、不揮発性メモリは任意である。通常、典型的なコンピュータシステムは、少なくともプロセッサ、メモリ、及びメモリをプロセッサに結合する装置(バスなど)を含む。
通常、ソフトウェアは、不揮発性メモリ及び/又はドライブユニットに記憶される。実際には、大きなプログラムの場合、プログラム全体をメモリに記憶することが不可能なこともある。にもかかわらず、ソフトウェアは、必要時には実行のために処理に適したコンピュータ可読の場所に移動され、本明細書ではこの場所のことを例示的にメモリと呼ぶ。ソフトウェアを実行のためにメモリに移した場合でも、通常、プロセッサはハードウェアレジスタを利用して、ソフトウェアに関連する値、及び理想的には実行速度を上げるように機能するローカルキャッシュを記憶する。ソフトウェアプログラムが「コンピュータ可読媒体に実装される」と言う場合、本明細書で使用するソフトウェアプログラムは、(不揮発性記憶装置からハードウェアレジスタまでの)いずれかの既知の又は好都合な場所に記憶されることが想定されている。プログラムに関連する少なくとも1つの値がプロセッサ可読レジスタに記憶されている場合、プロセッサは、「そのプログラムを実行するように構成されている」と見なされる。
バスは、プロセッサをネットワークインターフェイス装置にも結合する。インターフェイスは、モデム又はネットワークインターフェイスの一方は両方を含むことができる。モデム又はネットワークインターフェイスは、コンピュータシステムの一部であると見なすこともできる。インターフェイスは、アナログモデム、isdnモデム、ケーブルモデム、トークンリングインターフェイス、衛星送信インターフェイス(「ダイレクトPC」など)、又はコンピュータシステムを他のコンピュータシステムに結合するためのその他のインターフェイスを含むことができる。インターフェイスは、1又はそれ以上の入力及び/又は出力装置を含むことができる。I/O装置は、限定ではなく一例として、キーボード、マウス又はその他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、及びディスプレイ装置を含むその他の入力及び/又は出力装置を含むことができる。ディスプレイ装置は、限定ではなく一例として、ブラウン管(CRT)、液晶ディスプレイ(LCD)、又は他の何らかの適用可能な既知の又は好都合なディスプレイ装置を含むことができる。説明を簡単にするために、インターフェイス内には、図8の例には示していないいずれかの装置のコントローラが存在すると想定される。
動作時には、コンピュータシステム800を、ディスクオペレーティングシステムなどのファイル管理システムを含むオペレーティングシステムソフトウェアによって制御することができる。関連するファイル管理システムソフトウェアを含むオペレーティングシステムソフトウェアの一例として、ワシントン州レドモンドのMicrosoft社製のWindows(登録商標)として知られているオペレーティングシステムのファミリ、及びこれらの関連するファイル管理システムがある。この関連するファイル管理システムソフトウェアを含むオペレーティングシステムソフトウェアの別の例には、Linux(登録商標)オペレーティングシステム及びこの関連するファイル管理システムがある。通常、ファイル管理システムは、不揮発性メモリ及び/又はドライブユニットに記憶され、オペレーティングシステムが必要とする様々な行為をプロセッサに実行させてデータを入出力するとともに、ファイルを不揮発性メモリ及び/又はドライブユニットに記憶することを含めてデータをメモリに記憶する。
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットにおける演算のアルゴリズム及び記号表現の観点から示すことができる。これらのアルゴリズムによる記述及び表現は、データ処理技術における当業者が自らの研究内容を他の当業者に最も効果的に伝えるために使用する手段である。ここでは、及び一般的に、アルゴリズムとは、望ましい結果をもたらす首尾一貫した一連の演算であると考えられる。これらの演算は、物理量の物理的操作を必要とするものである。必ずしもそうではないが、通常、これらの量は、記憶、転送、合成、比較、及び別様に操作できる電気又は磁気信号の形をとる。主に共通使用という理由で、時にはこれらの信号を、ビット、値、要素、記号、文字、用語、番号などと呼ぶことが便利であることが分かっている。
しかしながら、これらの及び同様の用語は、全て適当な物理量に関連付けられるべきものであり、またこれらの量に与えられた便利な表記に過ぎないことに留意されたい。以下の説明から明らかなように、特に別途述べていない限り、本発明全体を通じて「processing(処理する)」又は「computing(算出する)」又は「calculating(計算する)」又は「determining(決定する)」又は「displaying(表示する)」などの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又はその他のこのような情報記憶装置、送信又は表示装置内の物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子コンピュータ装置の動作及び処理を意味するものである。
本明細書で示すアルゴリズム及び表示は、本質的にいずれかの特定のコンピュータ又はその他の装置に関連するものではない。本明細書の教示に従うプログラムとともに様々な汎用システムを使用することができ、或いはいくつかの実施形態の方法を実行するために、より特殊化した装置を構成することが便利であると証明することができる。以下の説明から様々なこれらのシステムに必要な構造が明らかになるであろう。また、いずれかの特定のプログラミング言語に関連して技術を説明しているわけではなく、従って様々なプログラミング言語を使用して様々な実施形態を実施することができる。
代替の実施形態では、機械が独立装置として動作することも、又は他の機械に接続する(例えば、ネットワーク化する)こともできる。ネットワーク化した展開では、この機械は、クライアント−サーバのネットワーク環境ではサーバ又はクライアントマシンとして、又はピアツーピア(又は分散型)ネットワーク環境ではピアマシンとして動作することができる。
この機械は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、iPhone、Blackberry、プロセッサ、電話機、ウェブ機器、ネットワークルータ、スイッチ又はブリッジ、又はこの機械が取るべき行動を指定する(順次的な又はそれ以外の)命令セットを実行できるいずれの機械であってもよい。
例示的な実施形態では、機械可読媒体又は機械可読記憶媒体を単一の媒体として示しているが、「機械可読媒体」及び「機械可読記憶媒体」という用語は、1又はそれ以上の命令セットを記憶する単一の媒体又は複数の媒体(集中型又は分散型データベース及び/又は関連するキャッシュ及びサーバなど)を含むと理解されたい。また、この「機械可読媒体」及び「機械可読記憶媒体」という用語は、機械が実行するための命令セットを記憶し、コード化し、又は伝達することができ、本明細書で開示した技術及び技術革新の方法のいずれか1つ又はそれ以上を機械に実行させるいずれかの媒体を含むとも理解されたい。
一般に、本開示の実施形態を実施するために実行されるルーチンは、オペレーティングシステム又は特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」と呼ぶ一連の命令の一部として実現することができる。通常、コンピュータプログラムは、コンピュータ内の様々なメモリ及び記憶装置に様々な時点で設定され、コンピュータ内の1又はそれ以上の処理装置又はプロセッサに読み込まれて実行された場合に本開示の様々な態様に関する要素を実行するようにコンピュータを動作させる1又はそれ以上の命令を含む。
さらに、実施形態については、完全に機能するコンピュータ及びコンピュータシステムを背景として説明したが、当業者であれば、様々な実施形態を様々な形のプログラム製品として分散させることができ、また実際に分散を行うために、特定の種類の機械又はコンピュータ可読媒体に関係なく本開示が等しく適用されると認識するであろう。
機械可読記憶媒体、機械可読媒体、又はコンピュータ可読(記憶)媒体のさらなる例としては、以下に限定されるわけではないが、とりわけ揮発性及び不揮発性記憶装置、フロッピー及びその他のリムーバブルディスク、ハードディスクドライブ、(コンパクトディスク型リードオンリメモリ(CD―ROM)、デジタル多用途ディスク(DVD)などの)光ディスクなどの記録可能型媒体、及びデジタル及びアナログ通信リンクなどの送信型媒体が挙げられる。
文脈上明確に別の意味に解す場合を除き、説明及び特許請求の範囲を通じて、「備える(comprise、comprising)」という単語、及び同様の単語は、排他的又は網羅的な意味ではなく包括的な意味で、すなわち「含むけれども限定はされない」という意味で解釈すべきである。本明細書で使用する「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的な接続又は結合を意味し、要素間の接続の結合は、物理的なもの、論理的なもの、又はこれらの組み合わせとすることができる。また、「本明細書において(herein)」、「上記で(above)」、「以下で(below)」という単語、及び同様の趣旨の単語は、本出願において使用する場合、総じて本出願のことを意味し、本出願のいずれかの特定の部分を意味するものではない。状況によっては、上記の詳細な説明において単数形又は複数形を使用した単語が、それぞれ複数又は単数を含むこともある。2又はそれ以上の項目のリストに関する「又は(or)」という単語は、リスト内の項目のいずれか、リスト内の項目全て、及びリスト内の項目のいずれかの組み合わせという単語の解釈を全て含む。
上記の本開示の実施形態についての詳細な説明は網羅的なものではなく、又は本教示を上記で開示した形に限定するものでもない。上記では、例示を目的として本開示の特定の実施形態及び例について説明しているが、当業者であれば認識するように、本開示の範囲内で様々な同等の修正が可能である。例えば、処理又はブロックを所定の順序で示しているが、代替の実施形態では、ステップを有するルーチンを異なる順序で実施し、又は異なる順序のブロックを有するシステムを使用することができ、いくつかの処理又はブロックを削除、移動、追加、細分化、結合、及び/又は修正して代替例又は副結合を提供することができる。これらの処理又はブロックの各々は、様々な異なる方法で実施することができる。また、場合によって処理又はブロックが連続して実行されるように示しているが、代わりにこれらの処理又はブロックを並列に、又は異なる時点で実行することもできる。さらに、本明細書に示すあらゆる特定の数字は一例にすぎず、代替の実施構成では異なる値又は範囲を使用することができる。
本明細書で示した本開示の教示は、上述のシステムに限らず他のシステムにも適用することができる。上述した様々な実施形態の要素及び行為を組み合わせてさらなる実施形態を実現することもできる。
上述したあらゆる特許及び出願及びその他の引用文献は、添付の出願書類にリストできるあらゆるものを含め、引用により本明細書に組み入れられる。必要であれば、本開示の態様を、上述した様々な引用文献のシステム、機能及び概念を採用してさらに別の本開示の実施形態を提供するように修正することもできる。
本開示には、上記の詳細な説明に照らして、これらの及びその他の変更を行うことができる。上記の説明では本開示のいくつかの実施形態について説明し、また考えられる最良の形態について説明しているが、これらが本文中でいかに詳述されているように見えても、様々な方法で教示を実践することができる。システムの詳細は、その実装の詳細を大幅に変更することができるが、それでもなお本明細書で開示する主題に含まれる。上述したように、本開示のいくつかの特徴又は態様を説明する際に使用した特定の用語を、この用語が関連する本開示のいずれかの特定の特性、特徴又は態様に制約されるように本明細書で再定義されていることを意味すると理解すべきではない。一般に、以下の特許請求の範囲で使用する用語は、上記の詳細な説明で明確に定義していない限り、本開示を本明細書で開示する特定の実施形態に限定するものであると解釈すべきではない。従って、本開示の実際の範囲は、開示した実施形態のみならず、特許請求の範囲による開示を実践又は実施する全ての同等の方法も含むものである。
以下では、本開示のいくつかの態様をいくつかの請求項の形で示すが、本発明者らは、本開示の様々な態様をあらゆる数の請求項の形で企図する。例えば、米国特許法第112条第13段に基づき、本開示の1つの態様のみを手段プラス機能の請求項として記載しているが、他の態様も同様に、手段プラス機能の請求項として、又はコンピュータ可読媒体内で具体化されるような他の形で具体化することができる。(米国特許法第112条第13段に基づいて扱われると想定される請求項は、いずれも「〜のための手段(means for)」という単語で始まる。)従って、本出願人は、本願出願後に追加の請求項を加えて、このような本開示の他の態様のための追加の請求項形式を続行する権利を有するものである。

Claims (35)

  1. 分散コンピューティングクラスタ内の記憶データに対するクエリを実行するためのシステムであって、
    複数のデータノードを含み、各データノードは、
    クライアントからのクエリを解析してクエリフラグメントを作成するクエリプランナと、
    前記クエリフラグメントを前記複数のデータノード間で分散させるクエリコーディネータと、
    前記クエリフラグメントを実行して中間結果を取得し、該中間結果を集約してクライアントに戻すクエリ実行エンジンと、
    を有する、
    ことを特徴とするシステム。
  2. 前記分散コンピューティングクラスタは、Hadoopクラスタである、
    ことを特徴とする請求項1に記載のシステム。
  3. 前記複数のデータノードのうちの1つのクエリコーディネータ及びクエリプランナは、クライアントからのクエリのための開始クエリコーディネータ及び開始クエリプランナとしてそれぞれ選択される、
    ことを特徴とする請求項2に記載のシステム。
  4. 前記開始クエリコーディネータ及び前記開始クエリプランナは、負荷バランシングスキームを使用してクライアントからのクエリを前記複数のデータノード間に分散させるルーティングコンポーネントにより選択される、
    ことを特徴とする請求項3に記載のシステム。
  5. 前記開始クエリコーディネータ及び前記開始クエリプランナは、前記複数のデータノードのうちの前記クエリを送信すべき特定のデータノードを標的にする前記クライアントに基づいて選択される、
    ことを特徴とする請求項3に記載のシステム。
  6. 前記クエリフラグメントは、前記複数のデータノードのうちの前記クエリに関連するデータを有するデータノードのクエリ実行エンジンによって並列実行される、
    ことを特徴とする請求項3に記載のシステム。
  7. 前記開始クエリコーディネータは、前記クエリ実行エンジンからのクエリ結果を集約し、該集約されたクエリ結果を前記クライアントに提供する、
    ことを特徴とする請求項6に記載のシステム。
  8. 前記クエリ結果を前記開始クエリコーディネータに送信する前に、事前集約のために前記クエリ実行エンジン間で中間クエリ結果がストリーミングされる、
    ことを特徴とする請求項7に記載のシステム。
  9. 前記クエリ実行エンジンは、前記記憶データを含むApache HBaseデータ及びHadoop分散ファイルシステム(HDFS)データに対して前記クエリフラグメントを直接実行する、
    ことを特徴とする請求項6に記載のシステム。
  10. 前記クエリ実行エンジンは、前記記憶データをメモリ内フォーマットにランタイムで変換するためのスキーマオンリードを決定する、
    ことを特徴とする請求項9に記載のシステム。
  11. クエリプランナ、クエリコーディネータ及びクエリ実行エンジンを有する各データノードの状態を追跡してメタデータを分散させる状態ストアをさらに含む、
    ことを特徴とする請求項2に記載のシステム。
  12. 前記開始クエリプランナは、前記Hadoopクラスタ内のネームノードからの情報を使用して、前記クエリの関連データを有するデータノードを識別する、
    ことを特徴とする請求項2に記載のシステム。
  13. ランタイムコードの生成及びレイテンシの短縮のための低水準仮想機械コンポーネントをさらに含む、
    ことを特徴とする請求項2に記載のシステム。
  14. 複数のデータノードを有する分散コンピューティングクラスタにおけるクエリの実行方法であって、
    前記分散コンピューティングクラスタ内の調整データノードによってクエリを受け取るステップと、
    前記調整データノードにより、前記分散コンピューティングクラスタ内の前記クエリに関連するデータを有するデータノードに前記クエリのフラグメントを分散させるステップと、
    を含むことを特徴とする方法。
  15. 前記データノードは、前記分散コンピューティングクラスタの分散ファイルシステム又はデータストアに対して前記クエリのフラグメントを実行する、
    ことを特徴とする請求項14に記載の方法。
  16. 前記分散コンピューティングクラスタは、Apache Hadoopクラスタであり、前記分散ファイルシステムは、Hadoop分散ファイルシステム(HDFS)であり、前記データストアは、「NoSQL」(非構造化照会言語)データストアである、
    ことを特徴とする請求項15に記載の方法。
  17. 前記NoSQLデータストアは、Apache HBaseを含む、
    ことを特徴とする請求項16に記載の方法。
  18. 前記クエリを解析及び分析して、前記Apache Hadoopクラスタ内の前記データノード上で実行されるクエリ実行エンジンが実行すべきタスクを決定するステップをさらに含む、
    ことを特徴とする請求項16に記載の方法。
  19. 状態ストアから得られた前記データノードの状態を判断するステップをさらに含み、前記状態ストアは、起動時又は接続喪失後に前記データノードを登録する、
    ことを特徴とする請求項18に記載の方法。
  20. 前記状態ストアから得られた前記クエリに関連する前記データの位置を特定するステップをさらに含む、
    ことを特徴とする請求項19に記載の方法。
  21. 前記データノードにわたる前記クエリのフラグメントの並列実行中に、該実行から得られた中間結果が、前記データノード上で実行中のクエリ実行エンジン間でストリーミングされる、
    ことを特徴とする請求項16に記載の方法。
  22. 前記調整データノードにより、前記データノードから受け取った結果をクライアントに送信するステップをさらに含む、
    ことを特徴とする請求項16に記載の方法。
  23. 前記調整データノードにより、前記クエリの事前集約された結果を前記データノードから受け取るステップと、
    前記調整データノードにより、前記事前集約された結果に演算を実行して前記クエリの結果を決定するステップと、
    をさらに含むことを特徴とする請求項16に記載の方法。
  24. 前記演算は、集約演算又はTopN演算を含む、
    ことを特徴とする請求項23に記載の方法。
  25. 前記クエリのフラグメントは、走査境界に沿ったパーティションを含む計画に対応する、
    ことを特徴とする請求項16に記載の方法。
  26. 前記データノードは、前記調整データノードを含む、
    ことを特徴とする請求項16に記載の方法。
  27. 前記クエリ実行エンジンは、ランタイムコードの生成及びレイテンシの短縮のための低水準仮想機械を実装する、
    ことを特徴とする請求項18に記載の方法。
  28. 前記調整データノードにより、前記クエリのフラグメントの実行に対応する結果を前記データノードから受け取るステップをさらに含む、
    ことを特徴とする請求項15に記載の方法。
  29. 分散コンピューティングクラスタにおけるクエリ実行システムであって、
    クエリを受け取る手段と、
    前記クエリを解析及び分析する手段と、
    前記クエリのプランフラグメントを作成する手段と、
    前記分散コンピューティングクラスタ内の前記クエリに関連するデータを有するデータノードに前記クエリのプランフラグメントを分散させる手段と、
    を備えることを特徴とするシステム。
  30. 前記プランフラグメントを実行のために受け取る手段をさらに備える、
    ことを特徴とする請求項29に記載のシステム。
  31. 前記クエリのプランフラグメントをデータストレージ手段上で実行する手段をさらに備える、
    ことを特徴とする請求項30に記載のシステム。
  32. 前記クエリのプランフラグメントをデータストレージ手段上で実行する手段に分散させるためのメタデータをキャッシュする手段をさらに備える、
    ことを特徴とする請求項31に記載のシステム。
  33. 前記クエリに関連する前記データの位置を特定する手段をさらに備える、
    ことを特徴とする請求項29に記載のシステム。
  34. 前記クエリの結果を事前集約する手段と、
    前記事前集約されたクエリの結果を通信する手段と、
    をさらに備えることを特徴とする請求項31に記載のシステム。
  35. 前記事前集約されたクエリの結果を受け取る手段と、
    前記事前集約されたクエリの結果に演算を実行して前記クエリの結果を決定する手段と、
    をさらに備えることを特徴とする請求項34に記載のシステム。
JP2014049703A 2013-03-13 2014-03-13 Apache hadoop用の低レイテンシクエリエンジン Active JP6050272B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/800,280 US9342557B2 (en) 2013-03-13 2013-03-13 Low latency query engine for Apache Hadoop
US13/800,280 2013-03-13

Publications (3)

Publication Number Publication Date
JP2014194769A JP2014194769A (ja) 2014-10-09
JP2014194769A6 true JP2014194769A6 (ja) 2014-12-04
JP6050272B2 JP6050272B2 (ja) 2016-12-21

Family

ID=50241135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014049703A Active JP6050272B2 (ja) 2013-03-13 2014-03-13 Apache hadoop用の低レイテンシクエリエンジン

Country Status (7)

Country Link
US (2) US9342557B2 (ja)
EP (1) EP2778967A1 (ja)
JP (1) JP6050272B2 (ja)
KR (1) KR101621137B1 (ja)
AU (1) AU2014201441B2 (ja)
CA (2) CA2843459C (ja)
GB (1) GB2511935A (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9442967B2 (en) * 2013-07-25 2016-09-13 Facebook, Inc. Systems and methods for efficient data ingestion and query processing
US10324942B2 (en) * 2013-07-26 2019-06-18 Snap Inc. Segment data visibility and management in a distributed database of time stamped records
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US10776325B2 (en) 2013-11-26 2020-09-15 Ab Initio Technology Llc Parallel access to data in a distributed file system
US10417258B2 (en) 2013-12-19 2019-09-17 Exposit Labs, Inc. Interactive multi-dimensional nested table supporting scalable real-time querying of large data volumes
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US10095759B1 (en) * 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US9633120B2 (en) * 2014-01-29 2017-04-25 International Business Machines Corporation Continuously blocking query result data for a remote query
US9607073B2 (en) * 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
US10289723B1 (en) * 2014-08-21 2019-05-14 Amazon Technologies, Inc. Distributed union all queries
US10572478B2 (en) 2014-12-01 2020-02-25 Nec Corporation Multiple query optimization in SQL-on-Hadoop systems
KR101672901B1 (ko) 2014-12-03 2016-11-07 충북대학교 산학협력단 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US10198185B2 (en) * 2014-12-31 2019-02-05 Samsung Electronics Co., Ltd. Computing system with processing and method of operation thereof
US10572296B2 (en) * 2015-02-27 2020-02-25 Savi Technology, Inc. System and method for a data processing architecture
US11016946B1 (en) * 2015-03-31 2021-05-25 EMC IP Holding Company LLC Method and apparatus for processing object metadata
US10318491B1 (en) * 2015-03-31 2019-06-11 EMC IP Holding Company LLC Object metadata query with distributed processing systems
US11429609B2 (en) * 2015-04-15 2022-08-30 Microsoft Technology Licensing, Llc Geo-scale analytics with bandwidth and regulatory constraints
KR101918806B1 (ko) * 2015-06-30 2018-11-14 전자부품연구원 분산 파일 시스템의 읽기 성능 극대화를 위한 캐시 관리 방법
US9961068B2 (en) 2015-07-21 2018-05-01 Bank Of America Corporation Single sign-on for interconnected computer systems
KR101727508B1 (ko) * 2015-07-28 2017-04-18 서울과학기술대학교 산학협력단 하둡 기반 하드웨어 압축 고속화 장치 및 방법
US10121169B2 (en) * 2015-09-16 2018-11-06 Amobee, Inc. Table level distributed database system for big data storage and query
KR101699176B1 (ko) * 2015-09-22 2017-01-23 전북대학교산학협력단 Hdfs 데이터 암호화 및 복호화 방법
US11403318B2 (en) * 2015-10-01 2022-08-02 Futurewei Technologies, Inc. Apparatus and method for managing storage of a primary database and a replica database
US10114907B2 (en) 2015-11-13 2018-10-30 International Business Machines Corporation Query processing for XML data using big data technology
US20170154080A1 (en) * 2015-12-01 2017-06-01 Microsoft Technology Licensing, Llc Phasing of multi-output query operators
US10685134B1 (en) 2015-12-15 2020-06-16 Amazon Technologies, Inc. Database proxy service
US9886245B2 (en) * 2016-02-24 2018-02-06 Helix Data Solutions LLC Software development tool using a workflow pattern that describes software applications
US10956467B1 (en) * 2016-08-22 2021-03-23 Jpmorgan Chase Bank, N.A. Method and system for implementing a query tool for unstructured data files
US10496768B2 (en) 2016-09-01 2019-12-03 Paypal, Inc. Simulating a production environment using distributed computing technologies
US20180060133A1 (en) 2016-09-01 2018-03-01 Amazon Technologies, Inc. Event-driven resource pool management
CN106406985B (zh) * 2016-09-21 2019-10-11 北京百度网讯科技有限公司 分布式计算框架和分布式计算方法
US10768979B2 (en) 2016-09-23 2020-09-08 Apple Inc. Peer-to-peer distributed computing system for heterogeneous device types
US9864785B2 (en) 2016-10-24 2018-01-09 Interntaional Business Machines Corporation Processing a query via a lambda application
US10379835B2 (en) 2016-12-19 2019-08-13 International Business Machines Corporation Optimized creation of distributed storage and distributed processing clusters on demand
WO2018170276A2 (en) * 2017-03-15 2018-09-20 Fauna, Inc. Methods and systems for a database
US10585913B2 (en) * 2017-03-20 2020-03-10 Datameer, Inc. Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps
CN107463852A (zh) * 2017-06-28 2017-12-12 北京北信源软件股份有限公司 基于ApacheRanger对Hadoop集群数据的保护装置及保护方法
US10726006B2 (en) 2017-06-30 2020-07-28 Microsoft Technology Licensing, Llc Query optimization using propagated data distinctness
US10467112B2 (en) 2017-11-09 2019-11-05 Bank Of America Corporation Distributed data monitoring device
US10437643B2 (en) 2017-11-10 2019-10-08 Bank Of America Corporation Independent storage and processing of data with centralized event control
US10331484B2 (en) 2017-11-14 2019-06-25 Bank Of America Corporation Distributed data platform resource allocator
US10896176B1 (en) * 2018-02-15 2021-01-19 EMC IP Holding Company LLC Machine learning based query optimization for federated databases
CN108595156A (zh) * 2018-04-26 2018-09-28 宁波银行股份有限公司 一种基于Impala组件的批处理方法及系统
US20190364109A1 (en) * 2018-05-23 2019-11-28 Microsoft Technology Licensing, Llc Scale out data storage and query filtering using storage pools
US11030204B2 (en) 2018-05-23 2021-06-08 Microsoft Technology Licensing, Llc Scale out data storage and query filtering using data pools
US11321330B1 (en) * 2018-06-26 2022-05-03 Amazon Technologies, Inc. Combining nested data operations for distributed query processing
US10841377B2 (en) 2018-11-26 2020-11-17 Microsoft Technology Licensing, Llc Managing data resources
WO2020112993A1 (en) * 2018-11-28 2020-06-04 Jpmorgan Chase Bank, N.A. Systems and methods for data usage monitoring in multi-tenancy enabled hadoop clusters
US10628244B1 (en) 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
CN112749226A (zh) * 2019-10-30 2021-05-04 北京国双科技有限公司 Hive增量数据同步方法、装置、计算机设备和存储介质
US10715524B1 (en) 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
US11210288B2 (en) 2020-05-12 2021-12-28 Coupang Corp. Systems and methods for reducing database query latency
CN112612805B (zh) * 2020-12-24 2023-12-22 北京浪潮数据技术有限公司 一种hbase数据索引到查询引擎的方法和相关装置
CN112783927B (zh) * 2021-01-27 2023-03-17 浪潮云信息技术股份公司 一种数据库查询方法及系统
US11093492B1 (en) * 2021-02-25 2021-08-17 Ravishankar Narayanan Nair System and method of fetching data from an external program
US11138192B1 (en) * 2021-04-30 2021-10-05 Snowflake Inc. Invoking external table functions from a database system

Family Cites Families (160)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4908746A (en) 1986-10-15 1990-03-13 United States Data Corporation Industrial control system
JPH08202597A (ja) * 1995-01-24 1996-08-09 Nippon Telegr & Teleph Corp <Ntt> スキーマ変換機構編成方式
US5634053A (en) 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5825877A (en) 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US6553476B1 (en) 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
WO2000005663A2 (en) 1998-07-24 2000-02-03 Jarg Corporation Distributed computer database system and method for performing object search
US6901604B1 (en) 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US6910082B1 (en) 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6651242B1 (en) 1999-12-14 2003-11-18 Novell, Inc. High performance computing system for distributed applications over a computer
US6542930B1 (en) 2000-03-08 2003-04-01 International Business Machines Corporation Distributed file system with automated file management achieved by decoupling data analysis and movement operations
US7243299B1 (en) 2000-04-21 2007-07-10 Microsoft Corporation Methods and apparatus for displaying multiple contexts in electronic documents
CN100373377C (zh) 2000-04-27 2008-03-05 网上技术公司 用于检索来自多个不同数据库的搜索结果的方法
US6732101B1 (en) 2000-06-15 2004-05-04 Zix Corporation Secure message forwarding system detecting user's preferences including security preferences
US7080147B2 (en) 2000-09-04 2006-07-18 International Business Machines Corporation Computer network system, computer system, method for communication between computer systems, method for measuring computer system performance, and storage medium
US7403980B2 (en) 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
US6970891B1 (en) 2000-11-27 2005-11-29 Microsoft Corporation Smart card with volatile memory file subsystem
CA2327211A1 (en) 2000-12-01 2002-06-01 Nortel Networks Limited Management of log archival and reporting for data network security systems
KR100811419B1 (ko) 2000-12-07 2008-03-07 주식회사 케이티 공개키 암호화를 이용하는 인증 프로토콜에서의서비스거부공격에 대한 방어 방법
US7640512B1 (en) 2000-12-22 2009-12-29 Automated Logic Corporation Updating objects contained within a webpage
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1249981A1 (en) 2001-04-02 2002-10-16 NuMeme Limited A security service system and method
US7020687B2 (en) 2001-05-18 2006-03-28 Nortel Networks Limited Providing access to a plurality of e-mail and voice message accounts from a single web-based interface
US20020184535A1 (en) 2001-05-30 2002-12-05 Farah Moaven Method and system for accessing a resource in a computing system
US6985939B2 (en) 2001-09-19 2006-01-10 International Business Machines Corporation Building distributed software services as aggregations of other services
US6728855B2 (en) 2001-09-27 2004-04-27 Seagate Technology Llc Method and system for data path verification
WO2003042956A1 (en) 2001-11-13 2003-05-22 PROMETRIC (a division of Thomson Learning, Inc.) Method and system for computer based testing using a non-deterministic exam extensible language (xxl) protocol
US7031981B1 (en) 2001-12-21 2006-04-18 Unisys Corporation Tool supporting system log file reporting
US7406473B1 (en) 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
US7055097B1 (en) 2002-02-05 2006-05-30 Group 1 Software, Inc. Displaying a large amount of information in a browser window
US7392421B1 (en) 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
US7340770B2 (en) 2002-05-15 2008-03-04 Check Point Software Technologies, Inc. System and methodology for providing community-based security policies
JP2004015665A (ja) 2002-06-10 2004-01-15 Takeshi Sakamura 電子チケット流通システムにおける認証方法およびicカード
US20060143453A1 (en) 2002-06-19 2006-06-29 Secured Communications, Inc Inter-authentication method and device
US6889341B2 (en) 2002-06-28 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining data integrity using a system management processor
CN100342294C (zh) 2002-07-03 2007-10-10 富利科技有限公司 生物计量私用密钥基础结构
US6678828B1 (en) 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US6931530B2 (en) 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
US7069497B1 (en) 2002-09-10 2006-06-27 Oracle International Corp. System and method for applying a partial page change
US7143288B2 (en) 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7577730B2 (en) 2002-11-27 2009-08-18 International Business Machines Corporation Semi-hierarchical system and method for administration of clusters of computer resources
US8311980B2 (en) 2002-12-09 2012-11-13 Hewlett-Packard Development Company, L.P. Namespace consistency for a wide-area file system
US8561161B2 (en) 2002-12-31 2013-10-15 International Business Machines Corporation Method and system for authentication in a heterogeneous federated environment
US20040186832A1 (en) 2003-01-16 2004-09-23 Jardin Cary A. System and method for controlling processing in a distributed system
JP4265245B2 (ja) 2003-03-17 2009-05-20 株式会社日立製作所 計算機システム
JP3788438B2 (ja) 2003-03-24 2006-06-21 ソニー株式会社 情報記録媒体、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4504099B2 (ja) 2003-06-25 2010-07-14 株式会社リコー デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム
US7624421B2 (en) 2003-07-31 2009-11-24 Microsoft Corporation Method and apparatus for managing and displaying contact authentication in a peer-to-peer collaboration system
US7194589B2 (en) 2003-08-22 2007-03-20 Oracle International Corporation Reducing disk IO by full-cache write-merging
EP1510952B1 (en) 2003-08-28 2007-02-14 Accenture Global Services GmbH Capture, aggregation and/or visualisation of structural data of architectures
US20070172066A1 (en) 2003-09-12 2007-07-26 Secured Email Goteborg Ab Message security
US7278049B2 (en) 2003-09-29 2007-10-02 International Business Machines Corporation Method, system, and program for recovery from a failure in an asynchronous data copying system
US7457872B2 (en) 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US8060743B2 (en) 2003-11-14 2011-11-15 Certicom Corp. Cryptographic method and apparatus
US7552321B2 (en) 2003-11-20 2009-06-23 The Boeing Company Method and hybrid system for authenticating communications
US20080163075A1 (en) 2004-01-26 2008-07-03 Beck Christopher Clemmett Macl Server-Client Interaction and Information Management System
JP2005259113A (ja) 2004-02-12 2005-09-22 Ricoh Co Ltd プロセス編集装置、プロセス管理装置、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法
US7275175B2 (en) 2004-07-22 2007-09-25 International Business Machines Corporation Method and apparatus for high-speed network adapter failover
JP2006080642A (ja) 2004-09-07 2006-03-23 Sony Corp 情報処理装置および方法、プログラム並びに記録媒体
US8024560B1 (en) 2004-10-12 2011-09-20 Alten Alex I Systems and methods for securing multimedia transmissions over the internet
US7647643B2 (en) 2004-12-30 2010-01-12 Cisco Technology, Inc. Template access control lists
US7810153B2 (en) 2005-01-28 2010-10-05 Microsoft Corporation Controlling execution of computer applications
KR100643325B1 (ko) 2005-02-18 2006-11-10 삼성전자주식회사 네트워크 및 그의 도메인 설정방법
CN100449326C (zh) 2005-03-16 2009-01-07 西门子(中国)有限公司 监测日志的记录方法及系统
JP2006285809A (ja) 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
US7577900B2 (en) 2005-05-13 2009-08-18 Harris Corporation Mechanism for maintaining data format synchronization between different entities
US7487191B2 (en) 2005-06-10 2009-02-03 International Business Machines Corporation Method and system for model-based replication of data
US8069267B2 (en) 2005-06-28 2011-11-29 Microsoft Corporation Advertisement refresh rules for network applications
US7818313B1 (en) 2005-07-18 2010-10-19 Sybase, Inc. Method for distributing processing of queries over a cluster of servers in a continuous processing system
WO2007052285A2 (en) 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US7698321B2 (en) 2005-09-30 2010-04-13 At&T Intellectual Property I, L.P. Methods, systems, and products for updating web content
DE602006021217D1 (de) 2005-10-12 2011-05-19 Datacastle Corp Verfahren und system zur datensicherung
US20070113188A1 (en) 2005-11-17 2007-05-17 Bales Christopher E System and method for providing dynamic content in a communities framework
JP4435076B2 (ja) 2005-11-18 2010-03-17 フェリカネットワークス株式会社 携帯端末,データ通信方法,およびコンピュータプログラム
US7653668B1 (en) 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US7818432B2 (en) 2005-12-08 2010-10-19 International Business Machines Corporation Seamless reflection of model updates in a visual page for a visual channel in a composite services delivery system
US7685109B1 (en) 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
JP2007206739A (ja) 2006-01-30 2007-08-16 Toshiba Corp 情報処理装置および認証制御方法
CN101043319B (zh) 2006-03-22 2011-02-02 鸿富锦精密工业(深圳)有限公司 数字内容保护系统及方法
JP2007279890A (ja) 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US9094194B2 (en) 2006-04-18 2015-07-28 International Business Machines Corporation Method and system for automating the recovery of a credential store when a user has forgotten their password using a temporary key pair created based on a new password provided by the user
WO2007125911A1 (ja) 2006-04-24 2007-11-08 Panasonic Corporation データ処理装置、方法、プログラム、集積回路、プログラム生成装置
US8296413B2 (en) 2006-05-31 2012-10-23 Sap Ag Device registration in a hierarchical monitor service
US20100242102A1 (en) 2006-06-27 2010-09-23 Microsoft Corporation Biometric credential verification framework
JP2008071154A (ja) 2006-09-14 2008-03-27 Ricoh Co Ltd プログラム及び配置図作成装置
US20080104579A1 (en) * 2006-10-31 2008-05-01 Sap Ag Systems and methods of transforming XML schemas
WO2008127309A2 (en) 2006-11-07 2008-10-23 Security First Corporation Systems and methods for distributing and securing data
JP4997950B2 (ja) 2006-12-11 2012-08-15 富士通株式会社 ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8655939B2 (en) 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
JP2008234370A (ja) 2007-03-21 2008-10-02 Just Syst Corp 文書処理装置及び文書処理方法
US7802128B2 (en) 2007-03-26 2010-09-21 Oracle International Corporation Method to avoid continuous application failovers in a cluster
US20100070769A1 (en) 2007-03-28 2010-03-18 Shigeyoshi Shima Log acquisition system, log collection terminal, log acquisition terminal, and log acquisition method and program using the same system and terminals
KR101366332B1 (ko) 2007-04-19 2014-02-21 엘지전자 주식회사 통신 시스템에서의 데이터 블록 재전송 방법
US20080263006A1 (en) 2007-04-20 2008-10-23 Sap Ag Concurrent searching of structured and unstructured data
JP4073033B1 (ja) * 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US7734961B2 (en) 2007-05-01 2010-06-08 International Business Machines Corporation Distributed logging apparatus system and method
US8185551B2 (en) 2007-06-08 2012-05-22 Massachusetts Institute Of Technology Disk-resident streaming dictionary
US7904809B2 (en) 2007-06-29 2011-03-08 Microsoft Corporation Model-based editors for dynamic validation
US20090013029A1 (en) 2007-07-03 2009-01-08 Childress Rhonda L Device, system and method of operating a plurality of virtual logical sites
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US8108770B2 (en) 2007-08-27 2012-01-31 Yahoo! Inc. Secure inter-module communication mechanism
GB2453383A (en) 2007-10-05 2009-04-08 Iti Scotland Ltd Authentication method using a third party
GB2456290B (en) 2007-10-05 2011-03-30 Iti Scotland Ltd Distributed protocol for authorisation
US7961878B2 (en) 2007-10-15 2011-06-14 Adobe Systems Incorporated Imparting cryptographic information in network communications
JP5238219B2 (ja) * 2007-10-29 2013-07-17 株式会社東芝 情報処理システム及びパイプライン処理制御方法
US20090177697A1 (en) 2008-01-08 2009-07-09 International Business Machines Corporation Correlation and parallelism aware materialized view recommendation for heterogeneous, distributed database systems
EP2266026A4 (en) * 2008-03-11 2012-01-11 Univ Washington MULTITRAITEMENT DETERMINISTIC EFFECTIVE
US7937482B1 (en) 2008-03-27 2011-05-03 Amazon Technologies, Inc. Scalable consensus protocol
US8037295B2 (en) 2008-04-15 2011-10-11 Authenex, Inc. Hardware-bonded credential manager method and system
US10044512B2 (en) 2008-05-26 2018-08-07 Nxp B.V. Decoupling of measuring the response time of a transponder and its authentication
US11461785B2 (en) 2008-07-10 2022-10-04 Ron M. Redlich System and method to identify, classify and monetize information as an intangible asset and a production model based thereon
JP2010021888A (ja) 2008-07-11 2010-01-28 Toshiba Corp 通信装置、鍵サーバ及び管理サーバ
US7631034B1 (en) 2008-09-18 2009-12-08 International Business Machines Corporation Optimizing node selection when handling client requests for a distributed file system (DFS) based on a dynamically determined performance index
US8150723B2 (en) 2009-01-09 2012-04-03 Yahoo! Inc. Large-scale behavioral targeting for advertising over a network
US8775544B2 (en) 2009-02-04 2014-07-08 Citrix Systems, Inc. Methods and systems for dynamically switching between communications protocols
US20100332373A1 (en) 2009-02-26 2010-12-30 Jason Crabtree System and method for participation in energy-related markets
US9178935B2 (en) 2009-03-05 2015-11-03 Paypal, Inc. Distributed steam processing
CN101520805B (zh) 2009-03-25 2011-05-11 中兴通讯股份有限公司 一种分布式文件系统及其文件处理方法
US20100318516A1 (en) * 2009-06-10 2010-12-16 Google Inc. Productive distribution for result optimization within a hierarchical architecture
CN101621405B (zh) 2009-07-07 2012-02-29 中兴通讯股份有限公司 分布式管理监控系统及其监控方法、创建方法
US8484716B1 (en) 2009-08-07 2013-07-09 Adobe Systems Incorporated Hosting a server application on multiple network tiers
US8468609B2 (en) 2009-08-27 2013-06-18 Cleversafe, Inc. Authenticating use of a dispersed storage network
US7970861B2 (en) 2009-11-18 2011-06-28 Microsoft Corporation Load balancing in a distributed computing environment
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US20110179160A1 (en) 2010-01-21 2011-07-21 Microsoft Corporation Activity Graph for Parallel Programs in Distributed System Environment
JP5594460B2 (ja) * 2010-03-08 2014-09-24 日本電気株式会社 送信情報制御装置、方法及びプログラム
US8874961B2 (en) 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US9317572B2 (en) 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US9665868B2 (en) 2010-05-10 2017-05-30 Ca, Inc. One-time use password systems and methods
US20120016901A1 (en) 2010-05-18 2012-01-19 Google Inc. Data Storage and Processing Service
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US8260826B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. Data processing system and method
US8260803B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. System and method for data stream processing
EP2625820B1 (en) 2010-10-08 2021-06-02 Brian Lee Moffat Private data sharing system
US20120036146A1 (en) * 2010-10-26 2012-02-09 ParElastic Corporation Apparatus for elastic database processing with heterogeneous data
US8601265B2 (en) 2010-11-22 2013-12-03 Netapp, Inc. Method and system for improving storage security in a cloud computing environment
US8676710B2 (en) 2010-11-22 2014-03-18 Netapp, Inc. Providing security in a cloud storage environment
US8631277B2 (en) * 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9026525B2 (en) * 2010-12-27 2015-05-05 Sap Se Generic node including stored script
US8788815B1 (en) 2011-01-31 2014-07-22 Gazzang, Inc. System and method for controlling access to decrypted data
US8762413B2 (en) * 2011-04-25 2014-06-24 Cbs Interactive, Inc. User data store
US8543538B2 (en) 2011-06-01 2013-09-24 Clustrix, Inc. Systems and methods for redistributing data in a relational database
US20130031240A1 (en) 2011-07-29 2013-01-31 Cisco Technology, Inc. Capacity Evaluation of Computer Network Capabilities
EP2740041B1 (en) * 2011-08-02 2019-10-23 Jadhav, Ajay Cloud-based distributed persistence and cache data model
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
US8821602B2 (en) 2011-08-12 2014-09-02 Mcalister Technologies, Llc Systems and methods for providing supplemental aqueous thermal energy
US8543836B2 (en) 2011-08-23 2013-09-24 International Business Machines Corporation Lightweight document access control using access control lists in the cloud storage or on the local file system
US8713046B2 (en) 2011-11-08 2014-04-29 Sybase, Inc. Snapshot isolation support for distributed query processing in a shared disk database cluster
WO2013070873A1 (en) 2011-11-10 2013-05-16 Treasure Data, Inc. System and method for operating a big-data platform
WO2013074665A1 (en) * 2011-11-14 2013-05-23 Google Inc. Data processing service
US9613104B2 (en) 2012-02-17 2017-04-04 Netflix, Inc. System and method for building a point-in-time snapshot of an eventually-consistent data store
US8806595B2 (en) 2012-07-25 2014-08-12 Oracle International Corporation System and method of securing sharing of resources which require consent of multiple resource owners using group URI's
US8892599B2 (en) 2012-10-24 2014-11-18 Marklogic Corporation Apparatus and method for securing preliminary information about database fragments for utilization in mapreduce processing
US8732674B1 (en) * 2012-11-14 2014-05-20 Microsoft Corporation Revertable managed execution image instrumentation
US9311354B2 (en) * 2012-12-29 2016-04-12 Futurewei Technologies, Inc. Method for two-stage query optimization in massively parallel processing database clusters
US9081826B2 (en) * 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US10133800B2 (en) 2013-09-11 2018-11-20 Microsoft Technology Licensing, Llc Processing datasets with a DBMS engine
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop

Similar Documents

Publication Publication Date Title
JP6050272B2 (ja) Apache hadoop用の低レイテンシクエリエンジン
JP2014194769A6 (ja) Apache hadoop用の低レイテンシクエリエンジン
US11567956B2 (en) Background format optimization for enhanced queries in a distributed computing cluster
US9659012B2 (en) Debugging framework for distributed ETL process with multi-language support
US10073867B2 (en) System and method for code generation from a directed acyclic graph using knowledge modules
US9396018B2 (en) Low latency architecture with directory service for integration of transactional data system with analytical data structures
US9449188B2 (en) Integration user for analytical access to read only data stores generated from transactional systems
US20190138532A1 (en) Load plan generation
US9507838B2 (en) Use of projector and selector component types for ETL map design
US20160103914A1 (en) Offloading search processing against analytic data stores
KR20120068530A (ko) 공유 데이터베이스 관리장치 및 방법