JP2015072688A - Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 - Google Patents

Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 Download PDF

Info

Publication number
JP2015072688A
JP2015072688A JP2014203042A JP2014203042A JP2015072688A JP 2015072688 A JP2015072688 A JP 2015072688A JP 2014203042 A JP2014203042 A JP 2014203042A JP 2014203042 A JP2014203042 A JP 2014203042A JP 2015072688 A JP2015072688 A JP 2015072688A
Authority
JP
Japan
Prior art keywords
data
query
format
stored
engine
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
JP2014203042A
Other languages
English (en)
Other versions
JP6113693B2 (ja
JP2015072688A5 (ja
Inventor
コーナッカー マーセル
Kornacker Maecel
コーナッカー マーセル
エリクソン ジャスティン
Erickson Justin
エリクソン ジャスティン
リ ノン
Nong Li
リ ノン
クフ レンニ
Kuff Lenni
クフ レンニ
ノエル ロビンソン ヘンリー
Noel Robinson Henry
ノエル ロビンソン ヘンリー
チョイ アラン
Choi Alan
チョイ アラン
ベイム アレックス
Behm Alex
ベイム アレックス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudera Inc
Original Assignee
Cloudera Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloudera Inc filed Critical Cloudera Inc
Publication of JP2015072688A publication Critical patent/JP2015072688A/ja
Publication of JP2015072688A5 publication Critical patent/JP2015072688A5/ja
Application granted granted Critical
Publication of JP6113693B2 publication Critical patent/JP6113693B2/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • 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
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2379Updates performed during online database operations; commit processing
    • 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/24532Query optimisation of parallel 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/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
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/435Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Abstract

【課題】Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマットの最適化を提供する。
【解決手段】環境100は、Hadoopクラスタを含む複数のデータノード120a〜120cを含む。またHadoopクラスタに接続及び/又はアクセスするためのAPI及びその他のツールを提供するクライアント104を含む。SQLアプリケーション102は、クエリ又はジョブの実行、HDFSの閲覧、及びワークフローの作成などのためのHadoop用のユーザインターフェイスを提供する。環境100は、クエリを発行するためのコマンドラインインターフェイス116も含む。低レイテンシクエリエンジンデーモン114a〜114cは、各データノード上で動作する。各低レイテンシクエリエンジンデーモン114a〜114cは、クライアント102/104を介して受け取られるクエリを受け取り設計し協調させることができる。
【選択図】図1

Description

Apache Hadoopプロジェクト(以下、「Hadoop」)は、コモディティマシンのクラスタにわたる大規模データセットを確実かつスケーラブルに分散処理するソフトウェアを開発するためのオープンソースソフトウェアフレームワークである。Hadoopは、Hadoop分散ファイルシステム(HDFS)として知られている分散ファイルシステムを含む。HDFSは、ローカルノード上のファイルシステムを相互にリンクして、Hadoopクラスタ全体にわたる統一ファイルシステムを形成する。Hadoopは、MapReduceとして知られているプログラミングフレームワークが利用するジョブスケジューリング及びクラスタリソース管理のためのフレームワークを提供するHadoop YARNも含む。Hadoopは、Apache Hive(以下、「Hive」)、及びApache HBase(以下、「HBase」)を含むその他のApacheプロジェクトによっても補完される。Hiveは、データ要約及びアドホッククエリを提供するデータウェアハウス基盤である。HBaseは、大規模テーブルのための構造化データストレージをサポートするスケーラブルな分散NoSQL(非構造化クエリ言語)データベース又はデータストアである。
現在、Hadoopは、リレーショナルデータベース管理システム(RDBMS)に対応していない。リレーショナルデータベースでは、スキーマ、すなわち特定のカラムと、各テーブルの各カラム間の整合性を保証する一連の整合性制約とを有するテーブル内へのデータの構造化を規定することができる。典型的なRDBMSは、データベース内にデータが書き込まれた時にデータにスキーマが実行されるスキーマ・オン・ライトモデルを実装する。具体的には、データベースにデータが記憶される前に、整合性制約を用いてデータの再構成及びフィルタ処理を行う。スキーマ・オン・ライトモデルは、既知の問いかけに応答することに関してはうまく機能する。それまで知られていなかった問いかけに応答する必要がある場合には、新たなデータを取り込む必要が生じ得る。
しかしながら、RDBMSは、スキーマに適合しない新たなデータを受け入れることができない。新たなデータに対応するには、通常はデータベースから古いデータを削除し、スキーマを変更し、新たなデータを解析してデータベースに書き込む必要がある。また、通常、データ設計者は、RDBMSに接続された全てのシステムが、更新されたスキーマと共に動作することを保証する必要がある。この新たなデータに対応する処理には長い時間が掛かることもある。その時点まで、新たなデータを取り込んで、それまで知られていなかった問いかけに応答することはできない。
一方、Hadoopは、現在、データベースからデータが読み取られるまでスキーマがデータに実行されないスキーマ・オン・リードモデルを採用している。この場合、一般的には、スキーマがファイルフォーマットに関してデータの構造化を指定する。この結果、データの処理とデータの記憶を切り離すことができる。具体的には、Hadoopの基本的なストレージシステムは、ファイルをそのオリジナルフォーマット(タブ区切りテキストファイル、CSV、XML、JSON、画像など)で解釈しながら、関連するスキーマを後で設計して別個に記憶できるようにする。その後、クエリに応答して、別個に記憶されたスキーマに従って、記憶されたデータをメモリ内で転換する。このスキーマ・オン・リードモデルにより、入力データをデータベース内で素早く更新し、ユーザに異なるスキーマを試みるように促すことができる。
スキーマ・オン・リードモデル及びスキーマ・オン・ライトモデルにはそれぞれの利点がある。Hadoopが、特定の必要性及び要件に応じてこれらのモデルの一方又はその組み合わせを使用するという柔軟性をユーザに提供することが有用と思われる。
低レイテンシクエリエンジン及びフォーマット変換エンジンを展開できる環境例を示す図である。 バッチ指向のリアルタイムアドホッククエリをサポートする統合プラットフォームのコンポーネント例を示すブロック図である。 インストールマネージャのコンポーネント例を示すブロック図である。 Hadoopクラスタ内の各データノードにインストールされる低レイテンシ(LL)クエリエンジンデーモンのコンポーネント例を示すブロック図である。 Hadoopクラスタ内の各データノードにインストールされるフォーマット変換エンジンデーモンのコンポーネント例を示すブロック図である。 クエリ実行エンジンが一群のクエリフラグメントを実行する前のクエリ実行エンジンの動作例を示すフロー図である。 本明細書で説明する方法のいずれか1つ又はそれ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表現である。
以下の説明及び図面は例示的なものであり、限定的なものと解釈すべきではない。本開示を完全に理解できるように数多くの具体的な詳細について説明する。しかしながら、いくつかの例では、説明を曖昧にしないために周知の又は従来の詳細については説明していない。本開示における1つの実施形態又はある実施形態に対する言及は、必ずしもそうではないが同じ実施形態に対する言及とすることができ、このような言及は実施形態の少なくとも1つを意味する。
本明細書における「1つの実施形態」又は「ある実施形態」に対する言及は、実施形態に関連して説明する特定の特徴、構造又は特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所に出現する「1つの実施形態では」という表現は、必ずしも全てが同じ実施形態について言及するものではなく、他の実施形態を互いに排除する別個の又は代替の実施形態について言及するものでもない。さらに、実施形態によって示すことも示さないこともある様々な特徴についても説明する。同様に、実施形態によって要件になることもならないこともある様々な要件についても説明する。
一般に、本明細書で使用する用語は、本開示の文脈及び個々の用語を使用する特定の文脈での当技術における通常の意味を有する。0
従って、本明細書で1つの用語について詳述又は説明しているかどうかに関わらず、本明細書で説明する用語のいずれか1つ又はそれ以上には別の言語及び同義語を使用することができ、またいずれかの特別な意味が置かれることもない。いくつかの用語については同義語を使用している。1又はそれ以上の同義語の記述は、他の同義語の使用を排除するものではない。本明細書で説明するいずれかの用語の例を含め、本明細書のいずれかの箇所で用例を使用していたとしても、これらは例示的なものにすぎず、本開示又はいずれかの例示する用語の範囲及び意味をさらに限定することを意図するものではない。同様に、本開示は、本明細書で示す様々な実施形態に限定されるものではない。
以下、本開示の範囲をさらに限定することを意図せずに、本開示の実施形態による機器、装置、方法及びこれらの関連する結果の例を示す。なお、これらの例では、読者の便宜を図って表題又は副題を使用することがあるが、これらは決して本開示の範囲を限定すべきものではない。特に定義していない限り、本明細書で使用する全ての技術用語及び科学用語は、本開示が属する技術の当業者によって一般的に理解されるものと同じ意味を有する。不一致が生じた場合、定義を含めて本明細書が優先する。
本開示の実施形態は、Hadoopのためのフォーマット変換エンジンを含む。本開示の実施形態は、Hadoopに記憶されたデータに対してリアルタイム又はほぼリアルタイムでフォーマット変換を実行するためのシステム及び方法も含む。
1つの実施形態では、フォーマット変換エンジンが、容易にクエリ可能なフォーマットでデータを準備することによって高速検索を可能にする機構を提供する。別の実施形態では、フォーマット変換エンジンが、データを素早く更新して、安定したデータを用いて効果的に作業できる柔軟性をユーザに提供する。
図1は、低レイテンシ(LL)クエリエンジン及びフォーマット変換エンジンを展開できる環境例100を示す図面である。環境100は、Hadoopクラスタを含む複数のデータノード120a〜120cを含む。データノード120a〜120cの中には、HDFSのみを実行できるものもあれば、HBase領域サーバ122a〜122cを実行できるものもある。
環境100は、Java(登録商標)データベースコネクティビティ(JDBC)クライアント、及びオープンデータベースコネクティビティ(ODBC)クライアントなどの、Hadoopクラスタに接続及び/又はアクセスするためのAPI及びその他のツールを提供するクライアント104を含む。HueなどのSQLアプリケーション102は、クエリ又はジョブの実行、HDFSの閲覧、及びワークフローの作成などのためのHadoop用のユーザインターフェイスを提供する。環境100は、クエリを発行するためのコマンドラインインターフェイス116も含む。1つの実施形態では、一般にクライアント104、SQLアプリケーション102及びコマンドラインインターフェイス116を個別に又はまとめてクライアントと呼ぶことができる。
低レイテンシ(LL)クエリエンジンデーモン114a〜114cは、各データノード上で動作する。低レイテンシ(LL)クエリエンジンデーモンは、クエリを協調して実行する長時間処理である。各低レイテンシ(LL)クエリエンジンデーモン114a〜114cは、クライアント102/104を介して受け取られるクエリを受け取り、設計し、協調させることができる。例えば、低レイテンシ(LL)クエリエンジンデーモンは、クエリをフラグメントに分割し、さらなる低レイテンシ(LL)クエリエンジンデーモンを実行する遠隔ノード間で同時に実行されるように分散することができる。これらのクエリは、HDFS(例えば、120a〜120c)及び/又はHBase(例えば、122a〜122c)上で直接実行される。
各データノード上では、フォーマット変換エンジンデーモン118a〜118cも実行される。フォーマット変換エンジンデーモン118a〜118cは、データをそのオリジナルフォーマットからカラム型フォーマットのParquetなどのリレーショナルデータベース処理につながる圧縮フォーマットに変換するための長時間処理である。この変換は、1又はそれ以上の時点で実行することができる。変換データは、元々の未変換のデータと共にデータノードに保存され、低レイテンシ(LL)クエリエンジンはこれらの両方を利用することができる。
環境100は、Hiveメタストア106、HDFSネームノード110及び/又は状態ストア112などの統合メタデータコンポーネントをさらに含む。Hiveメタストア106は、環境100内の様々なエンジンが利用できるデータに関する情報を含む。具体的には、Hiveメタストア106は、データノード120a〜120cに記憶されているデータのためのスキーマを含む。HDFSネームノード(NN)110は、ローカルな読み取りを最適化するために、データノード120a〜120cにわたるファイル分散の詳細を含む。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は、ビッグデータに対するクエリ及び分析の両方をサポートすることができる。
図3は、統合ストレージ層に対して対話型のリアルタイムSQLクエリを直接提供するように様々なエンジンのコンポーネントをHadoopクラスタにインストールするためのインストールマネージャ302のコンポーネント例を示すブロック図である。インストールマネージャ302は、様々なエンジンを自動的にインストールし、構成し、管理し、モニタすることができる。或いは、これらのエンジンを手動でインストールすることもできる。インストールマネージャ302は、低レイテンシ(LL)クエリエンジンデーモン304、状態ストアデーモン306、低レイテンシ(LL)クエリエンジンシェル308及びフォーマット変換エンジンデーモン310を含む4つのバイナリをインストールする。上述したように、低レイテンシ(LL)クエリエンジンデーモン304は、HDFS及び/又はHBaseデータに対するクエリを計画して実行するサービス又は処理である。低レイテンシ(LL)クエリエンジンデーモン304は、クラスタ内の各データノードにインストールされる。フォーマット変換エンジンデーモンは、データをそのオリジナルフォーマットから圧縮フォーマットに変換するサービス又は処理である。フォーマット変換エンジンデーモンも、クラスタ内の各データノードにインストールされる。状態ストアデーモン306は、クラスタ内の全ての低レイテンシ(LL)クエリエンジンデーモンの位置及び状態を追跡するネームサービスである。いくつかの実装では、状態ストアデーモン306を、メタデータ及び/又は別の診断情報を提供するためのメタデータストアとすることもできる。低レイテンシ(LL)クエリエンジンシェル308は、低レイテンシ(LL)クエリエンジンデーモンにクエリを発行するためのコマンドラインインターフェイスであり、クライアントにインストールされる。
図4は、Hadoopクラスタ内の各データノードにインストールされた低レイテンシ(LL)クエリエンジンデーモンのコンポーネント例を示すブロック図である。1つの実施形態では、低レイテンシ(LL)クエリエンジンデーモンが、クエリプランナ316、クエリコーディネータ318及びクエリ実行エンジン320を含む。
クエリプランナ316は、記憶されているスキーマに基づいて、クライアントからのクエリ要求を一群のプランフラグメントに変化させ、これらのプランフラグメントをクエリコーディネータ318に提供する。クエリプランナ316は、Hiveメタストア、状態ストア及びAPIなどのHadoop環境の残り部分とのやりとりが容易になるようにJava(登録商標)又は別の好適な言語で書かれた低レイテンシ(LL)クエリエンジンデーモンのフロントエンドを構築することができる。クエリプランナ316は、Scan、HashJoin、HashAggregation、Union、TopN及びExchangeなどの様々な演算子を使用してクエリプランを構築することができる。各演算子は、何らかの方法でデータを実体化又は生成し、或いはデータを組み合わせることができる。1つの実装では、例えば、クエリプランナが、1又はそれ以上の演算子のレフティプラン又はツリーを(例えば、手動で又はオプティマイザを使用して)作成することができる。scan演算子は、走査行又は境界に沿ってプランを分割することができる。異なるストレージマネージャには、専用のスキャンノードが存在することができる。例えば、HDFS走査ノード及びHBase走査ノードが存在することができ、これらは各々、内部的に、異なるファイルフォーマットに異なる処理を使用することができる。プランによっては、ハッシュテーブルを満たした後に集約結果を出力できるハッシュアグリゲーションのためにデータを組み合わせるものもある。union演算子は、異なるプランフラグメントからの出力を結合することができる。TopN演算子は、制限付きorder by句に相当することができる。交換演算子は、異なる2つのノード上で実行される2つのプランフラグメント間におけるデータ交換に対処することができる。
クエリコーディネータ318は、クエリに関与する全ての低レイテンシ(LL)クエリエンジンデーモンにわたってプランフラグメントの実行を開始する。クエリコーディネータ318は、状態ストアからのメンバーシップ情報及び/又はHDFSネームノードからのデータブロックの位置情報を使用して、プランフラグメントを実行するための低レイテンシ(LL)クエリエンジンデーモンを決定又は識別する。1つの実装では、クエリコーディネータ318が、クエリからの何らかの述語を適用して、プランフラグメントを実行すべきファイルセット及びブロックセットに範囲を絞り込むこともできる。クエリコーディネータ318は、遠隔データノードにおける低レイテンシ(LL)クエリエンジンデーモンからのデータの最終的な集約又は結合を行うこともできる。1つの実装では、低レイテンシ(LL)クエリエンジンデーモンが、データの一部を事前に集約することにより、データノード全体に集約を分散させてクエリ処理を高速化する。
クエリ実行エンジン320は、HDFS及びHBaseに対し、計画したクエリフラグメントをローカルに実行する。例えば、クエリ実行エンジン320は、scan演算子及び/又は他のいずれかのクエリ演算子を実行する。クエリ実行エンジン320はC++で書かれているが、Java(登録商標)などの他のいずれかの好適な言語で書くこともできる。クエリ実行エンジン320は、MapReduceとは別の実行エンジンである。クエリ実行エンジン320は、データを提供する基盤(例えば、HDFS及びHBase)にアクセスするが、ジョブトラッカ及びタスクトラッカなどの、マップリダクションをサポートする基盤は利用しない。
1つの実施形態では、最初にデータが到来し、そのオリジナルフォーマットでHDFSデータノードに記憶される。ユーザ又は管理者が作成することができる、データを記憶する際のファイルフォーマット情報を含む1又はそれ以上の関連スキーマは、データが記憶されると同時に、又はその後にHiveメタストア106に別々に保存される。1つの実施形態では、クエリが提出された後に、まずいくつかの計画されたクエリフラグメントをローカルで実行するデータノード上のクエリ実行エンジン320が、スキーマに従ってそのデータノード上のファイルを転換する。具体的には、クエリ実行エンジン320は、例えば、Hiveメタストアからのファイルの行及び列の終端に関する情報を含むスキーマを読み取る。次に、クエリ実行エンジン320は、データノードからファイルを読み取り、スキーマ内で指定されたファイルフォーマットに従ってこのファイルを解析し、この解析したデータを、スキーマ内のさらなる情報に従って一連のメモリ内タプルに転換する。この時、クエリ実行エンジン320は、計画されたクエリフラグメントをこの転換結果に対してローカルで実行できる状態になっている。
1つの実施形態では、クエリ実行エンジン320が、中央処理装置(CPU)が効率的に実行できるフォーマットに解釈コードを転換するために、低水準仮想機械(LLVM)322、オプティマイザ、又はランタイムコードを生成するためのその他のコンパイラ基盤を含むことができる。例えば、典型的なRDBMSは、インデックスなどからデータを抽出するために、式を評価するための解釈コードを有する。クエリ実行エンジン320は、低水準仮想機械(LLVM)を使用してコードをハードウェアに密接に結合することによってこの問題に対処する。例えば、クエリ内のA=B/(A+B)=Cという式は、3つの関数呼び出しを行うことによって評価することができる。LLVMは、この式を評価して速度を高めるために、3つの関数呼び出しを行う代わりにCPUが提供する演算を使用する。
さらなる実施形態では、低レイテンシ(LL)クエリエンジンデーモンが、例えばテキスト処理及び/又はその他のリソース集約的な処理を行うために特定のCPU命令を使用することもできる。別の例として、速度を高めるために、特別な巡回冗長検査(CRC32)命令を使用してハッシュ値計算を実行することもできる。
1つの実施形態では、低レイテンシ(LL)クエリエンジンが、ユーザが大量のデータにクエリを行い、Hive及びMapReduceの既存のバッチ処理フレームワークを用いて実現可能な速度よりもはるかに早い速度で応答を得られるようにするという低レイテンシの利点をもたらす。さらなる実施形態では、リアルタイムクエリエンジンが、大量のデータに埋もれた洞察を検索するために使用するスキーマを適用する上で柔軟性をもたらす。
クエリ実行エンジンが異なるファイルフォーマットのデータを解析して転換するのに掛かる時間は様々である。一般に、この時間は、SQLライクなクエリに応答するリレーショナルデータベースの処理に対するファイルフォーマットの貢献度が高い場合には減少する。従って、フォーマット変換エンジンは、データをこのようなファイルフォーマットにバックグラウンドで変換してランタイムクエリ処理の効率を高める。図5は、Hadoopクラスタ内の各データノードにインストールされたフォーマット変換エンジンデーモンのコンポーネント例を示すブロック図である。1つの実施形態では、フォーマット変換エンジンデーモンが、スケジューラ412及びコンバータ414を含む。スケジューラ412は、管理者又はユーザによる入力に基づいてフォーマット変換をいつ行うべきかを決定し、この時間が来た時にコンバータに通知する。1つの例では、スケジューラ412が、周期的に又は将来の特定の時点でフォーマット変換を行えるようにタイマを使用する。この将来の特定の時点は、データの作成、その最初の更新又は最後の更新などのイベントの発生から測定することができる。他の例では、データが更新された時、検索された時、及び同じクエリを用いて検索された時などに、変換が何回か行われる。従って、スケジューラ412は、総更新回数、全てのクエリの総数、特定のクエリの総数、異なるクエリの総数などのカウンタを保持し、これらの回数に関する基準が満たされた時にフォーマット変換を行うことができる。さらなる例では、フォーマット変換をスケジュールする際に、データノード上のリソースの利用状態を考慮する。
1つの実施形態では、スケジューラ412が、データノード上のデータ毎、オリジナルフォーマット毎、対象フォーマット毎、オリジナルフォーマットと対象フォーマットのペア毎などに1つのスケジュールを維持する。別の実施形態では、スケジューラ412が、フォーマット変換をいつ行うべきかについての決定と同様に、変換結果をいつデータノードから削除すべきかを決定し、この時間が来た時にコンバータ414に通知する。フォーマット変換エンジンデーモンのスケジューラ412は、単独で動作できる一方で、別のフォーマット変換エンジンデーモンのスケジューラと連動して、複数のデータノード、さらにはクラスタ全体にわたって系統的にフォーマット変換を行うこともできる。
コンバータ414は、スケジューラ412から通知を受け取った時にフォーマット変換を行う。1つの実施形態では、コンバータ414が、1又はそれ以上の対象フォーマットのリストを保持する。コンバータ414は、管理者又はユーザによる入力に基づいて、データノード上のデータを対象フォーマットの1つに変換し、この変換したデータをオリジナルデータと共にデータノードに保存する。例えば、コンバータ414は、CSVフォーマットのファイルをデータノードからメモリに読み取り、このファイルをCSVフォーマットに従って解析し、これを選択したParquetフォーマットに変換して、このParquetフォーマットのファイルをCSVフォーマットのファイルと共にデータノードに保存することができる。1つの実施形態では、いくつかのオリジナルフォーマットと対象フォーマットの間の変換を、場合によってはHiveメタストアに記憶されている特定のスキーマに基づいて完全に自動化することができる。例えば、CSVファイル内の全てのフィールドをParquetファイル内の列に自動的に変換することができる。この変換を管理者又はユーザがカスタマイズし、入力ファイルを、例えば特定の順番で配列された入力ファイル内の選択フィールドを各々が有する同じ又は異なる対象フォーマットの複数の出力ファイルに変換すると決定することもできる。別の実施形態では、コンバータ414が、スケジューラ412から通知を受け取った時にいくつかの変換結果の削除も行う。
通常、対象フォーマットは、リレーショナルデータベースの処理に寄与する圧縮フォーマットであるため、データを対象フォーマットで準備することによってSQLライクなクエリの処理速度が増す。フォーマット変換は、厳選された時点にバックグラウンドで行われるので、リソースの使用、及びデータノードにおける他の動作との干渉を最小限に抑える傾向にある。
1つの実施形態では、フォーマット変換エンジンデーモンと共に、クエリプランナが、クエリの提出後にプランフラグメントをセットアップして、変換したデータが利用可能であることを示す。この結果、データノード上のクエリ実行エンジンは、もはやデータノード上のデータの複雑な転換を行う必要がなくなる。クエリ実行エンジンは、基本的にタプル形式の変換データをデータノードから単純に読み取ればよい。従って、フォーマット変換エンジンデーモンは、データのアップロード時及び更新時に長い処理時間を必要とするモデルの何らかのコストを被ることなく、クエリ処理でデータを使用する際の処理時間を短縮することにより、スキーマ・オン・ライトモデルのいくつかの利点をもたらす。
図6は、フォーマット変換エンジンの存在下におけるクエリの設計及び実行の動作例を示すフローチャートである。ステップ602において、クエリプランナがクエリを受け取る。ステップ603において、クエリプランナは、関連するスキーマ情報を見直して、データを記憶する際の利用可能なファイルフォーマットを識別する。オリジナルフォーマットのデータのみが利用可能である場合、クエリプランナは、ステップ604において、このオリジナルフォーマットのためのプランフラグメントを定める。一方、変換された対象フォーマットのデータも利用可能である場合、クエリプランナは、ステップ606において、この対象フォーマットのためのプランフラグメントを定める。
データノード上のクエリ実行エンジンは、ステップ608において、一群の計画されたクエリフラグメントを受け取ると、データノードから適当なファイルフォーマットのデータを読み取る。ステップ610において、クエリ実行エンジンは、スキーマ情報に従ってデータを一連のメモリ内タプルに転換する。ステップ612において、クエリ実行エンジンは、メモリ内タプルを用いて一群の計画されたクエリフラグメントを実行する。これらの特徴により、データのアップロード及び更新時に大きなオーバーヘッドを招かずに異なる構造のデータセットを試行できると同時に、データセットから特定の洞察を効率的に抽出できるという柔軟性がユーザに与えられる。
図7は、本明細書で説明する方法のいずれか1つ又はそれ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形の機械の図形表現である。
図7の例では、コンピュータシステム700が、プロセッサ、メモリ、不揮発性メモリ及びインターフェイス装置を含む。説明を簡単にするために、様々な一般的なコンポーネント(キャッシュメモリなど)は省略している。コンピュータシステム700は、図1の例に示すコンポーネントのいずれか(及び本明細書で説明した他のいずれかのコンポーネント)を実装できるハードウェア装置を示すことを意図したものである。コンピュータシステム700は、あらゆる適用可能な既知の又は好都合なタイプとすることができる。コンピュータシステム700のコンポーネントは、バスを介して、又は他の何らかの既知の又は好都合な装置を介して共に結合することができる。
プロセッサは、例えば、Intel Pentium(登録商標)マイクロプロセッサ又はMotorolaパワーPCマイクロプロセッサなどの従来のマイクロプロセッサとすることができる。当業者であれば、「機械可読(記憶)媒体」又は「コンピュータ可読(記憶)媒体」という用語は、プロセッサがアクセス可能なあらゆる種類の装置を含むと認識するであろう。
メモリは、例えばバスによってプロセッサに結合される。メモリは、限定ではなく一例として、ダイナミックRAM(DRAM)及びスタティックRAM(SRAM)などのランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカルメモリ、遠隔メモリ、又は分散メモリとすることができる。
バスは、プロセッサを不揮発性メモリ及びドライブユニットにも接続する。多くの場合、不揮発性メモリは、磁気フロッピー(登録商標)又はハードディスク、磁気光学ディスク、光学ディスク、CD−ROM、EPROM、又はEEPROMなどのリードオンリメモリ(ROM)、磁気又は光学カード、或いは大量データのための別の形の記憶装置である。多くの場合、このデータの一部は、コンピュータ700内のソフトウェアの実行中に、直接メモリアクセス処理によってメモリに書き込まれる。不揮発性ストレージは、ローカルストレージ、遠隔ストレージ、又は分散ストレージとすることができる。全ての適用可能なデータをメモリ内で利用できる状態でシステムを構築できるので、不揮発性メモリは任意である。通常、典型的なコンピュータシステムは、少なくともプロセッサ、メモリ、及びメモリをプロセッサに結合する装置(バスなど)を含む。
通常、ソフトウェアは、不揮発性メモリ及び/又はドライブユニットに記憶される。実際には、大きなプログラムの場合、プログラム全体をメモリに記憶することさえ不可能なこともある。それにもかかわらず、ソフトウェアは、必要時には実行のために処理に適したコンピュータ可読の場所に移動され、本明細書ではこの場所のことを例示的にメモリと呼ぶ。ソフトウェアを実行のためにメモリに移した場合でも、通常、プロセッサはソフトウェアに関連する値を記憶するためにハードウェアレジスタを利用し、理想的には実行速度を上げるように機能するローカルキャッシュを利用する。ソフトウェアプログラムが「コンピュータ可読媒体に実装される」と言う場合、本明細書で使用するソフトウェアプログラムは、(不揮発性記憶装置からハードウェアレジスタまでの)いずれかの既知の又は好都合な場所に記憶されることが想定される。プログラムに関連する少なくとも1つの値がプロセッサ可読レジスタに記憶されている場合、プロセッサは、「そのプログラムを実行するように構成されている」と見なされる。
バスは、プロセッサをネットワークインターフェイス装置にも結合する。インターフェイスは、モデム又はネットワークインターフェイスの一方は両方を含むことができる。モデム又はネットワークインターフェイスは、コンピュータシステムの一部であると見なすこともできる。インターフェイスは、アナログモデム、isdnモデム、ケーブルモデム、トークンリングインターフェイス、衛星送信インターフェイス(「ダイレクトPC」など)、又はコンピュータシステムを他のコンピュータシステムに結合するためのその他のインターフェイスを含むこともできる。インターフェイスは、1又はそれ以上の入力及び/又は出力装置を含むこともできる。I/O装置は、限定ではなく一例として、キーボード、マウス又はその他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、及びディスプレイ装置を含むその他の入力及び/又は出力装置を含むことができる。ディスプレイ装置は、限定ではなく一例として、ブラウン管(CRT)、液晶ディスプレイ(LCD)、又は他の何らかの適用可能な既知の又は好都合なディスプレイ装置を含むことができる。説明を簡単にするために、インターフェイス内には、図7の例には示していないいずれかの装置のコントローラが存在すると想定される。
動作時には、コンピュータシステム700を、ディスクオペレーティングシステムなどのファイル管理システムを含むオペレーティングシステムソフトウェアによって制御することができる。関連するファイル管理システムソフトウェアを含むオペレーティングシステムソフトウェアの一例として、ワシントン州レドモンドの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 (19)

  1. 複数のデータノードからなる分散コンピューティングクラスタに記憶されたデータに対してクエリを実行するためのシステムであって、
    各データノードのためのクエリエンジンを備え、該クエリエンジンは、
    クライアントからのクエリを解析し、前記データノードにデータを記憶する際の1又はそれ以上のフォーマットを特定するスキーマに基づいて、対象フォーマットのデータが記憶されている場合には該対象フォーマットに合わせて生成され、前記対象フォーマットのデータが記憶されていない場合には別のフォーマットに合わせて生成されるクエリフラグメントを生成するためのクエリプランナと、
    前記クエリフラグメントを前記複数のデータノード間で分散させるためのクエリコーディネータと、
    クエリ実行エンジンと、
    を有し、前記クエリ実行エンジンは、
    前記スキーマに基づいて、前記データを、前記クエリフラグメントが生成されるフォーマットに転換する転換モジュールと、
    前記転換されたデータに前記クエリフラグメントを実行し、集約されて前記クライアントに戻された中間結果を取得する実行モジュールと、
    を備える、
    ことを特徴とするシステム。
  2. 前記分散コンピューティングクラスタは、Hadoopクラスタである、
    ことを特徴とする請求項1に記載のシステム。
  3. 前記対象フォーマットは、カラム型フォーマットである、
    ことを特徴とする請求項1に記載のシステム。
  4. 前記対象フォーマットは、リレーショナルデータベースの処理に対して最適化される、
    ことを特徴とする請求項1に記載のシステム。
  5. クエリを実行するためのデータ処理方法であって、
    初期データをオリジナルフォーマットで記憶するステップと、
    所定のスケジュールに従って、前記初期データを、リレーショナルデータベースの処理に対して最適化された対象フォーマットに変換するステップと、
    前記変換されたデータを前記初期データと共に記憶するステップと、
    を含むことを特徴とする方法。
  6. 前記変換されたデータが記憶された後に1又はそれ以上のクエリフラグメントの組を受け取るステップと、
    前記受け取りに応答して、前記変換されたデータを転換するステップと、
    前記転換されたデータに前記1又はそれ以上のクエリフラグメントの組を実行するステップと、
    をさらに含むことを特徴とする請求項5に記載の方法。
  7. 前記所定のスケジュールは、定期的なものである、
    ことを特徴とする請求項5に記載の方法。
  8. 前記所定のスケジュールは、受け取ったクエリフラグメントの組の数に基づく、
    ことを特徴とする請求項6に記載の方法。
  9. 新たなデータを前記オリジナルフォーマットで記憶して前記初期データと置き換えるステップをさらに含み、
    前記所定のスケジュールは、前記オリジナルフォーマットで記憶されたデータが置き換えられた回数に基づく、
    ことを特徴とする請求項5に記載の方法。
  10. 前記対象フォーマットは、カラム型フォーマットである、
    ことを特徴とする請求項5に記載の方法。
  11. スケジュールに従って、前記変換されたデータを削除するステップをさらに含む、
    ことを特徴とする請求項5に記載の方法。
  12. 前記初期データ及び前記変換されたデータは、分散コンピューティングクラスタ内のデータノードに記憶され、
    前記1又はそれ以上のクエリフラグメントの組は、前記データノード上で実行される、
    ことを特徴とする請求項6に記載の方法。
  13. クエリを実行するためのデータ処理システムであって、
    初期データをオリジナルフォーマットで記憶する第1の記憶ユニットと、
    所定のスケジュールに従って、前記初期データを、リレーショナルデータベース処理に対して最適化された対象フォーマットに変換する変換ユニットと、
    前記変換されたデータを記憶する第2の記憶ユニットと、
    を備えることを特徴とするシステム。
  14. 前記変換されたデータが記憶された後に、1又はそれ以上のクエリフラグメントセットを受け取る受信ユニットと、
    前記受け取りに応答して、前記変換されたデータを転換する転換ユニットと、
    前記転換されたデータに前記1又はそれ以上のクエリフラグメントの組を実行する実行ユニットと、
    をさらに備えることを特徴とする請求項13に記載のシステム。
  15. 前記対象フォーマットは、カラム型フォーマットである、
    ことを特徴とする請求項13に記載のシステム。
  16. 前記システムは、分散コンピューティングクラスタ内のノードである、
    ことを特徴とする請求項13に記載のシステム。
  17. 命令を記憶する機械可読記憶媒体であって、前記命令は、1又はそれ以上のプロセッサによる実行時に、
    初期データをオリジナルフォーマットで記憶するステップと、
    所定のスケジュールに従って、前記初期データを、リレーショナルデータベース処理に対して最適化された対象フォーマットに変換するステップと、
    前記変換されたデータを記憶するステップと、
    を含む方法を実行する、
    ことを特徴とする機械可読記憶媒体。
  18. 前記方法は、
    前記変換されたデータが記憶された後に、1又はそれ以上のクエリフラグメントの組を受け取るステップと、
    前記受け取りに応答して、前記変換されたデータを転換するステップと、
    前記転換されたデータに前記1又はそれ以上のクエリフラグメントの組を実行するステップと、
    をさらに含むことを特徴とする請求項17に記載の機械可読記憶媒体。
  19. 前記対象フォーマットは、カラム型フォーマットである、
    ことを特徴とする請求項17に記載の機械可読記憶媒体。
JP2014203042A 2013-10-01 2014-10-01 Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 Active JP6113693B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/043,753 2013-10-01
US14/043,753 US9477731B2 (en) 2013-10-01 2013-10-01 Background format optimization for enhanced SQL-like queries in Hadoop

Publications (3)

Publication Number Publication Date
JP2015072688A true JP2015072688A (ja) 2015-04-16
JP2015072688A5 JP2015072688A5 (ja) 2016-11-17
JP6113693B2 JP6113693B2 (ja) 2017-04-12

Family

ID=51687820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014203042A Active JP6113693B2 (ja) 2013-10-01 2014-10-01 Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化

Country Status (7)

Country Link
US (4) US9477731B2 (ja)
EP (2) EP2857995A3 (ja)
JP (1) JP6113693B2 (ja)
KR (1) KR101719399B1 (ja)
AU (1) AU2014240211B2 (ja)
CA (1) CA2865451C (ja)
GB (1) GB2520411A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101699176B1 (ko) * 2015-09-22 2017-01-23 전북대학교산학협력단 Hdfs 데이터 암호화 및 복호화 방법
JP2019527441A (ja) * 2016-09-21 2019-09-26 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. 分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method)
JP2021502655A (ja) * 2017-11-30 2021-01-28 新華三大数据技術有限公司New H3C Big Data Technologies Co., Ltd. データクエリ
CN112805705A (zh) * 2018-10-19 2021-05-14 甲骨文国际公司 通用治理
JP2021522570A (ja) * 2018-04-19 2021-08-30 リスク マネジメント ソリューションズ, インコーポレイテッド 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454548B1 (en) * 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US10262078B2 (en) * 2014-02-10 2019-04-16 Apple Inc. Systems and methods for optimizing performance of graph operations
US10928970B2 (en) 2014-07-18 2021-02-23 Apple Inc. User-interface for developing applications that apply machine learning
US9813528B2 (en) * 2014-07-31 2017-11-07 Splunk Inc. Priority-based processing of messages from multiple servers
US9734180B1 (en) 2014-09-30 2017-08-15 EMC IP Holding Company LLC Object metadata query with secondary indexes
CA2973234C (en) * 2015-03-26 2018-05-15 Caswil Corporation System and method for querying data sources
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
US9961068B2 (en) 2015-07-21 2018-05-01 Bank Of America Corporation Single sign-on for interconnected computer systems
CN106484691B (zh) * 2015-08-24 2019-12-10 阿里巴巴集团控股有限公司 移动终端的数据存储方法和装置
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
US10169409B2 (en) * 2015-10-01 2019-01-01 International Business Machines Corporation System and method for transferring data between RDBMS and big data platform
US10496545B2 (en) * 2015-11-24 2019-12-03 Hewlett Packard Enterprise Development Lp Data caching in a large-scale processing environment
US9575749B1 (en) * 2015-12-17 2017-02-21 Kersplody Corporation Method and apparatus for execution of distributed workflow processes
CN107087010B (zh) * 2016-02-14 2020-10-27 阿里巴巴集团控股有限公司 中间数据传输方法及系统、分布式系统
CN105808354B (zh) * 2016-03-10 2019-02-15 西北大学 利用WLAN网络组建临时Hadoop环境的方法
US10157021B2 (en) * 2016-06-29 2018-12-18 International Business Machines Corporation Processing incomplete data access transactions
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
US9864785B2 (en) * 2016-10-24 2018-01-09 Interntaional Business Machines Corporation Processing a query via a lambda application
US11074261B1 (en) * 2016-12-16 2021-07-27 Amazon Technologies, Inc. Format independent processing for distributed data
US10528599B1 (en) 2016-12-16 2020-01-07 Amazon Technologies, Inc. Tiered data processing for distributed data
US10572506B2 (en) * 2017-03-07 2020-02-25 Salesforce.Com, Inc. Synchronizing data stores for different size data objects
US10585913B2 (en) * 2017-03-20 2020-03-10 Datameer, Inc. Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps
CN107330024B (zh) * 2017-06-21 2020-10-09 华为机器有限公司 标签系统数据的存储方法和装置
CN107515927A (zh) * 2017-08-24 2017-12-26 深圳市云房网络科技有限公司 一种房地产用户行为分析平台
US10681106B2 (en) 2017-09-26 2020-06-09 Oracle International Corporation Entropy sharing across multiple compression streams
CN109558433B (zh) * 2017-09-27 2022-04-12 北京京东尚科信息技术有限公司 一种请求访问hdfs的方法和装置
EP3474160A1 (en) 2017-10-17 2019-04-24 Palantir Technologies Inc. Data analytic systems
US10437643B2 (en) * 2017-11-10 2019-10-08 Bank Of America Corporation Independent storage and processing of data with centralized event control
CN110765123A (zh) * 2018-07-09 2020-02-07 株式会社日立制作所 基于树形结构的材料数据的存储方法、装置和系统
CN109189753B (zh) * 2018-10-18 2021-02-19 浪潮云信息技术股份公司 一种在hue中添加用户信息的方法及装置
US11562085B2 (en) 2018-10-19 2023-01-24 Oracle International Corporation Anisotropic compression as applied to columnar storage formats
GB201821248D0 (en) 2018-12-27 2019-02-13 Palantir Technologies Inc Data pipeline management system and method
US11074248B2 (en) 2019-03-31 2021-07-27 Oracle International Corporation Map of operations for ingesting external data
US11580444B2 (en) 2019-04-16 2023-02-14 Apple Inc. Data visualization machine learning model performance
CN110321335B (zh) * 2019-06-18 2023-09-22 中国平安财产保险股份有限公司 建模数据下载方法、装置、电子设备及计算机存储介质
US11341090B2 (en) * 2019-09-26 2022-05-24 American Express Travel Related Services Company, Inc. Seamless data movement and metadata management in a hybrid cloud setting using a configurable micro services based architecture
CN110837515A (zh) * 2019-11-06 2020-02-25 北京天融信网络安全技术有限公司 一种基于数据库的数据处理方法及电子设备
CN111597390A (zh) * 2020-03-17 2020-08-28 用友网络科技股份有限公司 一种数据格式转换框架
CN111694828A (zh) * 2020-06-08 2020-09-22 山东伏羲智库互联网研究院 数据处理方法、设备、系统及存储介质
US11586608B1 (en) 2020-06-23 2023-02-21 Amazon Technologies, Inc. Handling requests to access separately stored items in a non-relational database
CN112015795A (zh) * 2020-08-21 2020-12-01 广州欢网科技有限责任公司 一种大数据量即席查询的系统和方法
US11693816B2 (en) * 2020-09-17 2023-07-04 ActionIQ, Inc. Flexible data ingestion
US11093492B1 (en) * 2021-02-25 2021-08-17 Ravishankar Narayanan Nair System and method of fetching data from an external program
CN113704340B (zh) * 2021-08-30 2023-07-21 远景智能国际私人投资有限公司 数据处理方法、装置、服务器及存储介质
US11775791B2 (en) 2022-03-02 2023-10-03 Ricoh Company, Ltd. Cloud-based parallel ink estimation for production printers
US11755863B1 (en) 2022-03-02 2023-09-12 Ricoh Company, Ltd. Ink estimation model updates for production printers
US11645231B1 (en) 2022-04-24 2023-05-09 Morgan Stanley Services Group Inc. Data indexing for distributed query execution and aggregation
US11520739B1 (en) 2022-04-24 2022-12-06 Morgan Stanley Services Group Inc. Distributed query execution and aggregation
US11500889B1 (en) 2022-04-24 2022-11-15 Morgan Stanley Services Group Inc. Dynamic script generation for distributed query execution and aggregation
CN116501764B (zh) * 2023-06-27 2023-08-25 深圳联友科技有限公司 一种基于生成式预训练模型的自动化sql优化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099441A (ja) * 2001-09-21 2003-04-04 Hitachi Ltd データ検索手順探索方法

Family Cites Families (138)

* 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
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
JP2002521752A (ja) * 1998-07-24 2002-07-16 ジャーグ コーポレーション オブジェクト検索を実行するための分散コンピュータ・データベースシステム及びその方法
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
US6687847B1 (en) 1999-04-21 2004-02-03 Cornell Research Foundation, Inc. Failure detector with consensus protocol
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
AU6108901A (en) 2000-04-27 2001-11-07 Webfeat Inc Method and system for retrieving search results from multiple disparate databases
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
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
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
CA2466683C (en) 2001-11-13 2016-01-12 Prometric, A Division Of Thomson Learning, Inc. Method and system for computer based testing using plugins to expand functionality of a test driver
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
US7392421B1 (en) 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
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
US6931530B2 (en) 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
US6678828B1 (en) 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
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
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 ソニー株式会社 情報記録媒体、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7139772B2 (en) 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
US7194589B2 (en) 2003-08-22 2007-03-20 Oracle International Corporation Reducing disk IO by full-cache write-merging
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
US20050108203A1 (en) 2003-11-13 2005-05-19 Chunqiang Tang Sample-directed searching in a peer-to-peer system
US8060743B2 (en) 2003-11-14 2011-11-15 Certicom Corp. Cryptographic method and apparatus
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
CA2615659A1 (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
EP1949270B1 (en) 2005-10-12 2011-04-06 Datacastle Corporation Method and system for data backup
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
US8554758B1 (en) 2005-12-29 2013-10-08 Amazon Technologies, Inc. Method and apparatus for monitoring and maintaining health 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
US20090307783A1 (en) 2006-04-24 2009-12-10 Manabu Maeda Data processing device, method, program, integrated circuit, and program generating device
US8296413B2 (en) 2006-05-31 2012-10-23 Sap Ag Device registration in a hierarchical monitor service
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
JP4997950B2 (ja) 2006-12-11 2012-08-15 富士通株式会社 ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
US9015301B2 (en) 2007-01-05 2015-04-21 Digital Doors, Inc. Information infrastructure management tools with extractor, secure storage, content analysis and classification and method therefor
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
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
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
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
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
US7961878B2 (en) 2007-10-15 2011-06-14 Adobe Systems Incorporated Imparting cryptographic information in network communications
US20090177697A1 (en) 2008-01-08 2009-07-09 International Business Machines Corporation Correlation and parallelism aware materialized view recommendation for heterogeneous, distributed database systems
JP5060345B2 (ja) * 2008-02-29 2012-10-31 株式会社東芝 データベース処理装置、情報処理方法及びプログラム
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
MX353765B (es) 2008-05-26 2018-01-24 Nxp Bv Disociador de medida del tiempo de respuesta de un transpondedor y su autenticacion.
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
EP2347345A2 (en) * 2008-10-13 2011-07-27 Faroo Assets Limited System and method for distributed index searching of electronic content
US8150723B2 (en) 2009-01-09 2012-04-03 Yahoo! Inc. Large-scale behavioral targeting for advertising over a network
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
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 中兴通讯股份有限公司 一种分布式文件系统及其文件处理方法
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
US8560855B2 (en) 2009-08-27 2013-10-15 Cleversafe, Inc. Verification of dispersed storage network access control information
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
JP5505009B2 (ja) 2010-03-19 2014-05-28 富士通株式会社 通信端末装置、コンピュータプログラムおよびコンテンツ検索方法
US8874961B2 (en) 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
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
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
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
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
US8667267B1 (en) 2011-01-31 2014-03-04 Gazzang, Inc. System and method for communicating with a key management system
US8543538B2 (en) * 2011-06-01 2013-09-24 Clustrix, Inc. Systems and methods for redistributing data in a relational database
TW201251376A (en) * 2011-06-09 2012-12-16 Ind Tech Res Inst Method and device for distribution of nodes, and computer program products thereof
US20130031240A1 (en) 2011-07-29 2013-01-31 Cisco Technology, Inc. Capacity Evaluation of Computer Network Capabilities
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
WO2013025655A2 (en) 2011-08-12 2013-02-21 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
EP2780834B1 (en) 2011-11-14 2020-07-08 Google LLC Processing changes to distributed replicated databases
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
US9158768B2 (en) * 2012-07-25 2015-10-13 Paypal, Inc. System and methods to configure a query language using an operator dictionary
US9081821B2 (en) * 2012-07-25 2015-07-14 Ebay Inc. Spell check using column cursor
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
US9679012B1 (en) 2014-02-28 2017-06-13 Pivotal Software, Inc. Parallel streaming of external data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099441A (ja) * 2001-09-21 2003-04-04 Hitachi Ltd データ検索手順探索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015008751; トム ホワイト: Hadoop 第2版 初版, 20110722, pp.397-419, 株式会社オライリー・ジャパン *
JPN6016003862; 幸田 和久,外1名: '「数十テラバイトのXMLデータを高速検索できるXMLデータベースTX1の分散並列検索技術」' 東芝レビュー 第65巻第1号(通巻727号), 20100101, pp.59-63, 株式会社東芝 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101699176B1 (ko) * 2015-09-22 2017-01-23 전북대학교산학협력단 Hdfs 데이터 암호화 및 복호화 방법
JP2019527441A (ja) * 2016-09-21 2019-09-26 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. 分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method)
JP2021502655A (ja) * 2017-11-30 2021-01-28 新華三大数据技術有限公司New H3C Big Data Technologies Co., Ltd. データクエリ
JP7018516B2 (ja) 2017-11-30 2022-02-10 新華三大数据技術有限公司 データクエリ
US11269881B2 (en) 2017-11-30 2022-03-08 New H3C Big Data Technologies Co., Ltd. Data query
JP2021522570A (ja) * 2018-04-19 2021-08-30 リスク マネジメント ソリューションズ, インコーポレイテッド 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム
JP7053885B2 (ja) 2018-04-19 2022-04-12 リスク マネジメント ソリューションズ, インコーポレイテッド 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム
JP2022088603A (ja) * 2018-04-19 2022-06-14 リスク マネジメント ソリューションズ, インコーポレイテッド 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム
CN112805705A (zh) * 2018-10-19 2021-05-14 甲骨文国际公司 通用治理
JP2022505223A (ja) * 2018-10-19 2022-01-14 オラクル・インターナショナル・コーポレイション ユニバーサルガバナンス
JP7465869B2 (ja) 2018-10-19 2024-04-11 オラクル・インターナショナル・コーポレイション ユニバーサルガバナンス

Also Published As

Publication number Publication date
AU2014240211A1 (en) 2015-04-16
US20150095308A1 (en) 2015-04-02
US20200334247A1 (en) 2020-10-22
CA2865451A1 (en) 2015-04-01
US9477731B2 (en) 2016-10-25
JP6113693B2 (ja) 2017-04-12
US20200334248A1 (en) 2020-10-22
EP2857995A2 (en) 2015-04-08
US11630830B2 (en) 2023-04-18
GB201417283D0 (en) 2014-11-12
EP2857995A3 (en) 2015-08-12
CA2865451C (en) 2018-02-27
KR101719399B1 (ko) 2017-03-23
GB2520411A (en) 2015-05-20
AU2014240211B2 (en) 2017-02-02
US10706059B2 (en) 2020-07-07
US20170032003A1 (en) 2017-02-02
EP3901781A1 (en) 2021-10-27
KR20150039118A (ko) 2015-04-09
US11567956B2 (en) 2023-01-31

Similar Documents

Publication Publication Date Title
JP6113693B2 (ja) Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化
JP6050272B2 (ja) Apache hadoop用の低レイテンシクエリエンジン
US20230315730A1 (en) Self-service data platform
US9633052B2 (en) System and method for decomposition of code generation into separate physical units though execution units
JP2014194769A6 (ja) Apache hadoop用の低レイテンシクエリエンジン
US11853314B2 (en) Systems and methods for generating, deploying, and managing data infrastructure stacks
EP3474158A1 (en) Method and device for executing distributed computing task
US20160140117A1 (en) Asynchronous sql execution tool for zero downtime and migration to hana
CN112732704B (zh) 一种数据处理方法、装置及存储介质
JP5673246B2 (ja) データストア制御装置、データストア制御プログラムおよびデータストア制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160929

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160929

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170315

R150 Certificate of patent or registration of utility model

Ref document number: 6113693

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250