JP2015531937A - 外部テーブルを伴う分散型データベースの操作 - Google Patents

外部テーブルを伴う分散型データベースの操作 Download PDF

Info

Publication number
JP2015531937A
JP2015531937A JP2015529895A JP2015529895A JP2015531937A JP 2015531937 A JP2015531937 A JP 2015531937A JP 2015529895 A JP2015529895 A JP 2015529895A JP 2015529895 A JP2015529895 A JP 2015529895A JP 2015531937 A JP2015531937 A JP 2015531937A
Authority
JP
Japan
Prior art keywords
query
data
data block
computer
distributed
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
JP2015529895A
Other languages
English (en)
Other versions
JP6165864B2 (ja
Inventor
オズグン アリ エルドアン,
オズグン アリ エルドアン,
スメドゥ スーハス パタク,
スメドゥ スーハス パタク,
ハディ モシャイェディ,
ハディ モシャイェディ,
Original Assignee
シータス データ ビルギ イスレムレリ トゥカレット アー.エス.
シータス データ ビルギ イスレムレリ トゥカレット アー.エス.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シータス データ ビルギ イスレムレリ トゥカレット アー.エス., シータス データ ビルギ イスレムレリ トゥカレット アー.エス. filed Critical シータス データ ビルギ イスレムレリ トゥカレット アー.エス.
Publication of JP2015531937A publication Critical patent/JP2015531937A/ja
Application granted granted Critical
Publication of JP6165864B2 publication Critical patent/JP6165864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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

Landscapes

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

Abstract

システムは、コーディネータノードと、コーディネータノードと通信しているワーカノードとを含む。各ワーカノードは、データブロックを記憶する。各データブロックは、半構造化形式でデータを有し、各データブロックは、クエリ言語によって解釈可能な表形式への半構造化形式のデータの変換を規定する関連外部テーブル宣言を有する。コーディネータノードによって実行されるクエリプロセッサは、クエリ言語クエリに応答して、分散型クエリプランを生成する。分散型クエリプランは、サブクエリを含む。サブクエリは、ワーカノードのうちの選択されたワーカノードによって実行される。選択されたワーカノードは、クエリ言語クエリに応答して、外部テーブル宣言を使用して半構造化形式のデータを分散型データベースの表形式に変換し、表形式データを提供する。

Description

(関連出願の引用)
本願は、米国特許出願第13/600,126号(2012年8月30日出願)を基礎とする優先権を主張する。該出願の内容は、参照により本明細書に引用される。
(発明の分野)
本発明は、概して、ソフトウェアベースのデータの記憶および読み出しに関する。より具体的には、本発明は、外部テーブルを伴う分散型データベースを動作させるための技法に関する。
分散型データベースは、データのパーティションが、個別的な計算リソースにわたって分散される、データベースである。分散型データベースは、同一の物理的場所に位置する複数のコンピュータ内に実装され得るか、または相互接続されたコンピュータのネットワークを経由して、分散させられ得る。分散型データベースは、インターネット、企業内イントラネットまたはエクストラネット、あるいは他のネットワーク上のネットワークサーバ上に常駐することができる。
データベースは、データの問い合わせされることが可能である前に、データをモデル化してロードするようにユーザに要求する。これは、近年、外部テーブルの概念を導入した、PostgreSQLによって若干変化した。この変化で、ユーザは、現在、半構造化外部データソースからデータを読み取る拡張機能を定義することができる。オンラインエンサイクロペディアWikipediaは、関係データベースまたは他の形態のデータテーブルに関連付けられるデータモデルの形式的構造に一致しないが、それでもなお、意味要素を分離して、データ内のレコードおよびフィールドの階層化を実施するためのタグまたは他のマーカを含む構造化データの形態として、半構造化データを特徴付ける(http://en.wikipedia.org/wiki/Semi−structured_dataを参照)。
外部テーブル拡張機能は、半構造化データを表形式に変換し、次いで、これは、Structured Query Language(SQL)等の標準クエリ言語を使用して問い合わせされることができる。以下の一般コード形式が、外部テーブルを作成するために使用され得る。
CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
{column_name data_type[ NULL │ NOT NULL]}
[,・・・]
[)
SERVER server_name
[OPTIONS(option‘value’[,・・・])]
このコードは、以下のパラメータを使用する。“IF NOT EXISTS”は、同一の名称を伴う関係がすでに存在する場合に、エラーをスローしないことを規定する。“table_name”は、作成されるテーブルの名称である。“column_name”は、新しいテーブルの中に作成される列の名称である。“data_type”は、列のデータタイプである。“NOT NULL”は、列がヌル値を含むことを許されないことを示す。“NULL”は、列がヌル値を含むことを許されることを示す。“server_name”は、外部テーブルのための既存のサーバの名称である。“OPTIONS(option‘値’[,・・・])”は、新しい外部テーブルに関連付けられるオプションを規定する。許されるオプション名および値は、外部テーブルに関連付けられる外部データラッパに特有である。これらのオプションは、外部データラッパのバリデータ機能を使用して正当性を立証される。
以下の外部テーブル宣言は、“music”と呼ばれるテーブルをインスタンス化する。
CREATE FOREIGN TABLE music[
code char(5) NOT NULL,
title varchar(40) NOT NULL,
did integer NOT NULL,
date_prod date,
kind varchar(10),
len interval hour to minute

SERVER music_server
OPTIONS(format‘text’,filename‘/home/user/music.txt’,delimiter‘:’,null‘’);
このテーブル作成コマンドは、単純に、データベース内に外部テーブルのメタデータを記憶し、これらのメタデータは、列名、列タイプ、および列オプションを含む。この特定のコマンドはまた、ディスク上のテキストファイルを新たに作成された外部テーブルに関連付け、このテキストファイル内のデータを解析するために必要とされるオプションを規定する。
musicテーブルがインスタンス化されると、テキストファイルのコンテンツは、実際にデータをデータベースにロードすることなく問い合わせされることができる。むしろ、データは、持続的にその半構造化形式のままである。SQLクエリをサポートするために、外部テーブルがインスタンス化されるにすぎない。
したがって、Apacheログファイルのための拡張機能を定義し、クエリ時間にログファイルを解析するための拡張機能を書き込み、データへのクエリを実行することができる。ユーザはまた、インターネットまたは他のデータベース上のデータにアクセスする拡張機能を書き込むこともできる。
問題は、ユーザが1つの外部データソースを1つのテーブルに関連付けることしかできないことである。したがって、ユーザが1日につき24個の(1時間毎の)Apacheログファイルを受信する場合には、ユーザは24個の外部テーブルを作成する必要がある。したがって、クエリ処理が困難になる。さらに、多数のウェブサーバが、Apacheログファイルを並行して生成していることがあり、これらのログファイルを処理することは、典型的には、単一のデータベースサーバの能力を超えて拡張するリソースを必要とする。
前述を考慮すると、外部テーブルを伴う分散型データベースを動作させるための効率的な技法を提供することが望ましいであろう。より具体的には、分散型データベース内の半構造化データのクエリ言語クエリのための技法を提供することが望ましいであろう。
システムは、コーディネータノードと、コーディネータノードと通信しているワーカノードとを含む。各ワーカノードは、データブロックを記憶する。各データブロックは、半構造化形式でデータを有し、各データブロックは、クエリ言語によって解釈可能な表形式への半構造化形式のデータの変換を規定する関連外部テーブル宣言を有する。コーディネータノードによって実行されるクエリプロセッサは、クエリ言語クエリに応答して、分散型クエリプランを生成する。分散型クエリプランは、サブクエリを含む。サブクエリは、ワーカノードのうちの選択されたワーカノードによって実行される。選択されたワーカノードは、クエリ言語クエリに応答して、外部テーブル宣言を使用して半構造化形式のデータを分散型データベースの表形式に変換し、表形式データを提供する。
コンピュータ実装方法は、ネットワークワーカノード上にデータブロックを記憶することを含む。データブロックは、半構造化形式でデータを有する。データブロックは、クエリ言語によって解釈可能な表形式への半構造化形式のデータの変換を規定する関連外部テーブル宣言に関連付けられる。分散型クエリプランが、クエリ言語クエリに応答して生成される。分散型クエリプランは、サブクエリを含む。サブクエリは、ネットワークワーカノードのうちの選択されたワーカノードに向かわせられる。サブクエリは、選択されたワーカノードにおいて実行される。実行は、クエリ言語クエリに応答して、外部テーブル宣言を使用して半構造化形式のデータを表形式に変換し、表形式データを生成することを含む。表形式データは、クエリ結果を生成するようにマージされる。
本発明は、付随の図面と関連して検討される、以下の発明を実施するための形態と併せて、より完全に理解される。
図1は、本発明のある実施形態に従って構成される、システムを図示する。 図2は、本発明のある実施形態に関連付けられる処理動作を図示する。 図3は、本発明のある実施形態に従って行われる、外部テーブルメタデータ同期化動作を図示する。 図4は、本発明のある実施形態による、外部テーブルメタデータおよびデータブロック場所の同期化を図示する。 図5は、本発明のある実施形態による、クエリ実行の実施例を図示する。
類似参照番号は、図面のいくつかの図全体を通して、対応する部分を指す。
図1は、本発明のある実施形態に従って構成される、システム100を図示する。システム100は、分散型データベースを実装する、コーディネータノード102と、一組のワーカノード104_1から104_Nとを含む。コーディネータノード102は、マスタノードであり得るか、またはマスタノードにアタッチされ得る(図示せず)。有線または無線ネットワーク接続106が、コーディネータノード102とワーカノード104とを連結する。
コーディネータノード102は、バス114を介して、一組の入力/出力デバイス112に接続される中央処理ユニット110等の標準的構成要素を含む。入力/出力デバイス112は、キーボード、マウス、ディスプレイ、プリンタ等を含み得る。ネットワークインターフェース回路(NIC)116もまた、バス114に接続され、ネットワーク接続106を通して、ワーカノード104へのアクセスを提供する。メモリ120もまた、バス114に接続される。メモリ120は、開示される動作を実装するための実行可能な命令を記憶する。特に、メモリは、以下に開示される分散型データベース動作を実装するための実行可能な命令を含むコーディネータノードモジュール122を記憶する。一実施形態では、コーディネータノードモジュール122は、以下に論じられるように、クエリプロセッサ124と、外部テーブルメタデータ126とを含む。
各ワーカノード104も、中央処理ユニット160、バス162、入力/出力デバイス164、およびネットワークインターフェース回路166等の標準的構成要素を含む。各ワーカノードコンピュータ104はまた、ワーカノードモジュール172の形態における実行可能な命令を伴う、メモリ170を含む。ワーカノードモジュール172は、コーディネータノードモジュール122からのコマンドに応答する、実行可能な命令を含む。そのようなコマンドは、以下に論じられるように、分散型データベースパーティションの記憶、アクセス、複製、および重複に関連する。追加のコマンドは、データから洞察を導き出すように分散型データベースパーティションにクエリを行うことに関する。一実施形態では、ワーカノードモジュール172は、データブロック174を含む。いくつかのデータブロックが、半構造化データである一方で、他のデータブロックは、構造化され得る(すなわち、表形式データまたはデータベーステーブル)。ワーカノードモジュール172はまた、外部テーブル宣言176も含む。外部テーブル宣言の各々は、半構造化データブロックから外部テーブルをインスタンス化するために使用される。
システム100はまた、1つ以上のクライアントコンピュータ180を含み得る。各クライアントコンピュータ180は、分散型データベースの関連付けられたユーザを有する。クライアントコンピュータ180はまた、中央処理ユニット190、バス194、入力/出力デバイス192、およびネットワークインターフェース回路196等の標準的構成要素を含む。各クライアントコンピュータ180はまた、クライアントモジュール199の形態における実行可能な命令を伴うメモリ198を含む。クライアントモジュール199は、分散型データベースにアクセスするために使用される、ブラウザであり得る。代替として、クライアントモジュール199は、分散型データベースと相互作用するための専用アプリケーションであり得る。本専用アプリケーションは、Structured Query Language(SQL)、Open Database Connectively(ODBC)、およびJava(登録商標)−based Database Connectivity(JDBC)等の標準的プロトコルを通して、分散型データベースと通信し得る。最後に、クライアントモジュール199は、ワーカノード104上で実行され、データアップロード動作の間のデータ転送のコストを削減し得る。
システム100は、公知の分散型データベース構成に関連付けられた多くの属性を含み得るが、システム100は、基本的に、モジュール式データブロックのその概念化を通して、従来技術の分散型データベース構成と根本的に異なる。各モジュール式データブロックは、分散型データベースに関連付けられたデータのセグメントを保持する。コーディネータノード102は、モジュール式データブロックを定義し、種々のワーカノード104へのモジュール式データブロックの分散を管理する。各モジュール式データブロックは、5ギガバイト以下のサイズを有する。これは、データをワーカノードにパーティション化し、したがって、データベースパーティションサイズにハードな限界を課さない従来技術の分散型データベースと対照的である。その結果、従来技術のシステムは、約100ギガバイト〜約10,000ギガバイトのサイズに及ぶ、分散型データベースパーティションを有する。さらに、従来技術では、単一ワーカノードは、分散型データベースからのデータの単一パーティションを保持する。対照的に、本発明では、各ワーカノード104は、パーティション化されたデータの25個以上のモジュール式データブロックを保持する。
パーティション化は、異なる独立部分への論理データベースの分割である。各パーティションは、複数のノードにわたって拡散され得る。ローカルノードにおけるユーザは、ローカルトランザクションをそのパーティションに対して行なうことができる。開示されるモジュール式データブロックは、パーティションであるが、モジュール式データブロックという用語は、分散型データベースの従来技術の実装と比較して、サイズ区別を強調するために使用される。本構成は、リソース障害の場合、およびリソースがシステムに追加されるとき、利点を有する。これらの利点は、以下の共有に係る出願、すなわち、それぞれ、2012年1月6日に出願された、第13/345,620号、第13/345,621号、第13/345,625号、および第13/345,626号に記載され、その各々は、参照することにより本明細書に組み込まれる。
本発明の実施形態によると、ユーザは、分散型外部テーブルを定義することを許され、モジュール式データブロックは、PostgreSQLにおける1つの外部データソースに対応する。次いで、ユーザは、典型的なSQLクエリを実行し、データベースは、これらのクエリをより小さいクエリにパーティション化し、これらのより小さいクエリをワーカノードにプッシュ配信し、それらを外部データソース上で実行し、結果をマージする。データベースはまた、最小/最大パーティションプルーニング、結合プルーニング、結合順選択等の最適化も適用する。
したがって、本発明の実施形態は、個々のパーティション(またはデータブロック)として外部データソースをモデル化する。パーティションに関するメタデータは、ノードのうちの1つ(例えば、コーディネータノードまたはマスタノード)の上で維持される。クエリ言語クエリは、各々が外部データソース上で作動する、より小さいクエリに分割される。
本実施形態の主要な利点は、分散型およびローカルクエリ計画と実行との間の明確な分離である。第1に、分散型クエリプロセッサは、クエリのための代替クエリプランを考慮し、異なるプランに関連付けられるネットワーク入力/出力(I/O)コストを比較する。例えば、クエリが4つのテーブルを結合する場合、クエリプランナは、結合順の6つの組み合わせを考慮し、各結合順のネットワークI/Oコストを決定し、最も効率的なクエリプランを構築する。次いで、分散型クエリプロセッサは、クエリ実行プランを決定し、クエリをより小さいサブクエリにパーティション化し、サブクエリをワーカノードに向かわせる。サブクエリ自体が典型的なSQLクエリであり得るため、次いで、ワーカノードは、これらのサブクエリをローカルで計画して実行することができる。この段階で、ワーカノードは、データブロックインデックスおよび統計を考慮し、それらのディスクI/Oコストに従ってサブクエリを計画し、それらを効率的に実行することができる。
加えて、一実施形態では、本システムは、外部データソースがワーカノードにとってローカルであるという制約を課す。つまり、サブクエリは、外部データソースがそのノード上にすでに存在する場合、ワーカノードに送信されるのみである。結果として、サブクエリは、ローカルディスクから基礎的データを直接読み取り、いかなるデータもネットワークにわたってシャッフルされることを要求しない。
有利には、ユーザは、データベースにロードする前に、構造化または半構造化データをモデル化または解析する必要がない。ユーザは、単に、データを解析するための拡張機能を書き込む必要のみがある。したがって、データセット全体は、SQL等のクエリ言語を通して即時にアクセス可能となる。
図2は、本発明のある実施形態に関連付けられる処理動作を図示する。半構造化形式のデータを伴うデータブロックが記憶される200。データブロックは、ワーカノード104上に記憶される。構造化形式のデータブロックもまた、分散型データベースの一部分を形成し得る。半構造化形式のデータを伴うデータブロックについては、外部テーブル宣言との関連付けが行われる202。例えば、上記で議論されるタイプの外部テーブル宣言が使用され得る。
次いで、サブクエリによる分散型クエリプランが生成される204。つまり、受信されたクエリが、異なるワーカノード104上で実行されるサブクエリを有するクエリプランを形成するように処理される。例えば、テーブル結合を伴うサブクエリを用いるある場合において、データブロックは、分散型クエリプランを効率的に実行するために、ワーカノード104にわたって移動または再パーティション化される必要があり得る。例として、1つの大きいテーブルおよび1つの小さいテーブルを結合する、分散型クエリプランについては、小さいテーブルのデータブロックは、サブクエリを実行することに先立って、全てのワーカノード104にわたって複製され得る。同様に、分散型クエリプランが2つの大きいテーブルの間の結合を伴う場合、サブクエリ自体は、異なるテーブル次元(テーブル列)にブロックデータを再パーティション化する分散型実行基本要素を組み込み得る。
サブクエリが計画されると、次いで、それらは、選択されたワーカノードに向かわせられる206。次いで、サブクエリは、外部テーブル宣言を頼りにすることによって実行される208。例えば、第1のサブクエリが、第1のワーカノードに送信され、第1のワーカノードは、第1の半構造化データブロックからデータを読み取り、データを第1のテーブルの表形式に変換し、第1のテーブルの表形式データに対して第1のサブクエリを実行するために第1の外部テーブル宣言を使用する。同時に、第2のサブクエリが、第2のワーカノードに送信され、第2のワーカノードは、第2の半構造化データブロックからデータを読み取って変換し、第2のサブクエリを実行するために第2の外部テーブル宣言を使用する。
次いで、サブクエリ結果からの表形式データが、クエリ結果を生成するようにマージされる210。コーディネータノード102のクエリプロセッサ124は、この動作を実装し得る。
図3は、外部テーブル宣言およびコーディネータノードも有する、Hadoop File System(HDFS)クラスタを図示する。本実施例では、マスタノード300は、HDFSマスタであり、HDFSマスタは、ワーカノードにわたるブロックの割付を制御し、ブロック場所についてのメタデータを保ち、これらのデータブロックに対するHadoopジョブを実行することに役立つ。ワーカノード104_1、104_2、および104_3は、これらのデータブロックを記憶し、また、これらのブロックに対してHadoopタスクを実行する。しかしながら、これらのタスクは、プログラミング言語で書かれる必要があり、並列プログラミングパラダイムMapReduce(登録商標)に従うべきである。
分析をより容易にするために、クエリ言語を使用してデータを分析することができる。しかしながら、クエリ言語は、典型的には、組計算法のために設計され、したがって、半構造化データは、表形式で表される必要がある。この表現のために、外部テーブル宣言およびラッパが使用される。例えば、ワーカノード104_1は、データブロック302および304を有する。半構造化データを伴うデータブロックの場合、関連外部テーブル宣言がある。ローカルメタデータ126は、外部テーブル宣言上で維持される。本実施例では、ブロック302のための外部テーブル宣言が、ライン312で示されている一方で、ブロック304のための外部テーブル宣言は、ライン314で示されている。
これらの宣言は、ワーカノードが個々のデータブロックに対するサブクエリを実行することを可能にする。システムの全体の上でクエリを実行するために、コーディネータノード102はまた、システム内のデータブロックのネットワーク場所を把握する必要もある。このメタデータは、連続的に、または規則的な間隔で、マスタノード300から同期化されることができ、またはコーディネータノード102は、この情報を再構築するように、ワーカノード104_1、104_2、および104_3をポーリングすることができる。コーディネータノード102がブロックメタデータを有すると、次いで、クエリプロセッサ124は、クエリをサブクエリにパーティション化し、これらのサブクエリをワーカノードに向かわせることができる。例えば、クエリプロセッサは、例示的クエリを、データブロック302および304に対して実行する必要がある2つのサブクエリにパーティション化し、実行するためにそれらをワーカノード104_1に向かわせる。次いで、ワーカノード104_1は、表形式データに対するこれらのサブクエリを実行するために外部テーブル宣言312および314を使用し、コーディネータノード102を通してこれらの結果を返す。
本実施例では、ブロックデータは、テキストのみのファイルとしてHDFSにすでにロードされており、これらのブロックのメタデータは、HDFSマスタノードから同期化される。別の実施形態では、基礎的データは、バイナリファイルとしてMongoDBシャードまたはチャンクの中で存続し、それらのメタデータは、MongoDB configサーバから同期化される。代替実施形態では、ブロックデータは、通常ログファイルを表し、これらのデータは、既存のシステムによって管理されない。次いで、ユーザは、外部テーブルを作成し、これらのファイルについてのメタデータをコーディネータノードにアップロードする。3つ全ての実施例では、基礎的データの形式が知られており、ブロック場所についてのメタデータがコーディネータノードにアップロードされる限り、コーディネータノードは、クエリ言語を通して基礎的データをアクセス可能にすることができる。
図4は、マスタノード300およびコーディネータノード102に関連付けられたメタデータの一実施形態を図示する。マスタノード300は、ブロック識別情報400、およびブロックの関連場所402、404を維持する。場所402がノード104_1に対応する一方で、場所404は、図3のノード104_2に対応する。ブロック識別406は、ブロック74に対応し、場所408は、この場合は、図3のノード104_3上にある。ブロック識別410は、ブロック80に対応し、場所412は、この場合は、図3のノード104_上にある。
コーディネータノード104は、メタデータの種々の形態を保ってもよい。例えば、ライン414は、最小および最大タイムスタンプ値によるパーティション識別を図示する。ライン416は、一組の関連最小および最大タイムスタンプ値を伴う図3のブロック71を図示する。これらのタイムスタンプ値は、ユーザによって手動で規定され得、外部ソースからフェッチされ得、またはブロックデータを問い合わせることによって自動的にコーディネータノード104によって収集され得る。図4の他のメタデータは、パーティションの場所に関する。例えば、ライン418は、ブロック71がノード1(図3の104_1)上にあることを示し、ライン420は、ブロック71がノード2(図3の104_2)上にもあることを示す。
図5は、ワーカノード104によって行われる処理を図示する。ワーカノード104は、ブロック71に対応するローカルテーブルに対するSQLサブクエリ500を受信する、ローカルクエリプロセッサ550を含む。本実施例では、SQLサブクエリは、カテゴリ別にグループ化されるように、特定の日付後のウェブページビューを要求する。ローカルクエリプロセッサ550は、矢印501で示されるように、ローカル外部テーブルメタデータ126にアクセスする。本実施例では、ローカル外部テーブルメタデータ126は、テーブルタイプが外部テーブルであることを規定する、入力502を含む。関連外部テーブル宣言は、ライン504で規定される。外部テーブルオプションは、ライン506で規定される。外部テーブル場所は、ライン508で定義される。この場合、ファイルパスが、ページビューウェブサーバログを規定する。入力510は、外部テーブルの構造を定義する。次いで、関連メタデータが、矢印512で示されるように、ローカルクエリプロセッサ550に返される。
ローカルクエリプロセッサ550は、外部テーブル宣言および外部データラッパ514を使用して、サブクエリの最適なプランを生成する。外部データラッパ514は、ウェブサーバログ518内の半構造化データを表形式516に変換する。表形式は、サブクエリに応答して表形式データを提供する。本実施例では、ローカルクエリプロセッサ550は、ウェブサーバログのデータを反復するように順次テーブルスキャンを選択し、関数呼び出し520および522を用いて次のタプルを求める。次いで、外部データラッパ514は、タプル524および526を返す。ローカルクエリプロセッサ550は、表形式データをマージし、そのフィルタリングおよびグルーピング動作を適用し、サブクエリ結果528を提供する。
データ518が、その元の形式でノード104において処理されることに留意されたい。データ518は、統合され、次いで、後にコーディネータノードにおいて処理される必要がない。さらに、JAVA(登録商標)またはある他の言語へのSQLの変換ではなく、SQLを使用して、データ518が処理されることに留意されたい。
MapReduce(登録商標)等の並列プログラミングパラダイムを使用してクエリを実行することとは対照的に、クエリをより小さいSQLサブクエリにパーティション化するという本アプローチは、3つの明確な利点を有する。第1に、MapReduce(登録商標)等のパラダイムは、高レベルクエリプロセッサからデータブロック場所を抽出する。その結果、4つのテーブルを結合するクエリが、3つのMapReduce(登録商標)結合ジョブを生成する一方で、ブロック場所を把握しているクエリプロセッサは、単一のステップでクエリを実行し得る。
サブクエリでSQLを使用することの第2の利点は、該言語ですでに利用可能である豊富な組のユーザ定義された関数である。対照的に、クエリをMapReduce(登録商標)ジョブに変換することはまた、数学演算、文字列操作、データおよび時間フォーマット、パターン合致等のための関数を実装することも必要とし得る。
最後に、SQLサブクエリは、ワーカノードレベルで顕著な性能利点をもたらす。これらのワーカノードにおける外部データラッパは、データブロックインデックスを利用し、データを処理するための代替クエリプランおよびプランコストをデータベースに知らせ、また、基礎的データについての統計を収集することもできる。これは、SQLサブクエリを実行するために必要とされるディスクI/Oを顕著に最小化する。対照的に、MapReduce(登録商標)プログラミングパラダイムは、主に、データセット全体を常に連続的に処理するように設計されている。
SQLがもたらす、これらの全ての利点の結果として、1つの可能性は、その半構造化形式からデータを変換し、それをMapReduce(登録商標)ベースのシステムから分散型データベースシステムに規則的にロードすることを伴う。比較すると、ネイティブ半構造化データおよび関連外部テーブル宣言の開示される方法の使用は、データベーステーブルにデータをロードすること、およびネットワークにわたるデータ重複およびデータシャッフリングの関連費用を回避する。さらに、開示されるアプローチは、基礎的データの変化により容易に適応する。例えば、新しいフィールドが半構造化データに追加されるとき、それをデータベースに直接ロードすることは、この新しいフィールドの値を中間ファイルに放出するために変換スクリプトを必要とする。対照的に、外部データラッパは、ユーザが新しいフィールドを含むように外部テーブルのスキーマを変更すると、基礎的データからこのフィールドをすぐに取り出すことができる。
したがって、開示される技法は、半構造化データにアクセスするためにクエリ言語を使用することを可能にするために、外部テーブルを使用する。有利には、1つのシステムからデータをエクスポートし、それを別のシステムにインポートする必要がない。例えば、一実施形態では、MongoDBが、リアルタイム更新に使用され得る一方で、Hadoopは、バッチ分析ジョブに使用される。現在の技法を使用する場合、同一のデータセットに対するMongoDBおよびHadoopの組み合わせは、高価なオプションを必要とする。1つのオプションは、Hadoopジョブが理解することができる形式で、MongoDBからHadoopへデータを複製することである。別のオプションは、MongoDBにおいてHadoopの実行基本要素を実装することである。第1のオプションが、テラバイト単位のデータの移動を必要とする一方で、第2のオプションは、MongoDB上で多くのコードを実装するためにプログラマを必要とする。
対照的に、開示される技術の場合、単純に、1つのシステムが理解する形式から、別のシステムが理解する形式へデータを変換するように、外部データラッパを書き込む必要がある。外部データラッパは、2つのシステムの間で同期化されるメタデータによって達成される。メタデータは、データがそれのものであるかのように、第2のシステムがデータにアクセスすることができるように、ネットワークにわたるブロック場所を含む。さらに、第2のシステムによって使用される実行基本要素は、計算が分散型データにプッシュ配信されるものである場合、ワーカノード上でアクセス可能である必要がある。
本発明の実施形態は、他のデータ記憶部からブロックメタデータをフェッチし、メタデータをコーディネータノードおよび/またはマスタノードにアップロードする、アプリケーションを含む。後に、半構造化データに対するSQLクエリを実行することができる。本発明の技法はまた、テキストのみのファイルとともに使用され得る。
本発明の実施形態は、種々のコンピュータ実装動作を行なうために、その上にコンピュータコードを有する、コンピュータ読み取り可能なストレージ媒体を伴う、コンピュータストレージ製品に関する。媒体およびコンピュータコードは、本発明の目的のために、特別に設計および構築されたものであり得、またはコンピュータソフトウェア技術分野における当業者に周知かつ利用可能な種類であり得る。コンピュータ読み取り可能な媒体の実施例として、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープ等の磁気媒体;CD−ROM、DVD、およびホログラフィックデバイス等の光学媒体;磁気光学媒体;ならびに特定用途向け集積回路(「ASIC」)、プログラマブル論理デバイス(「PLD」)、ならびにROMおよびRAMデバイス等のプログラムコードを記憶および実行するように特別に構成される、ハードウェアデバイスが挙げられるが、それらに限定されない。コンピュータコードの実施例として、コンパイラによって生成されるような機械コード、およびインタープリタを使用して、コンピュータによって実行される、高次コードを含むファイルが挙げられる。例えば、本発明の実施形態は、JAVA(登録商標)、C++、または他のオブジェクト指向プログラミング言語および開発ツールを使用して、実装され得る。本発明の別の実施形態は、機械実行可能ソフトウェア命令の代わりに、またはそれと組み合わせて、有線回路内に実装され得る。
前述の説明は、説明目的のために、本発明の完全理解を提供するために具体的専門用語を使用した。しかしながら、具体的詳細が本発明を実践するために要求されないことが、当業者に明白となるであろう。したがって、本発明の具体的実施形態の前述の説明は、例証および説明目的のために提示される。それらは、包括的である、または本発明を開示される精密な形態に限定することを意図するものではない。明らかに、多くの修正および変形例が、前述の教示に照らして、可能性として考えられる。実施形態は、本発明の原理およびその実践的用途を最も良く説明するために選定および説明され、それによって、他の当業者が、想定される特定の使用に好適な種々の修正を伴って、本発明および種々の実施形態を最も良く利用することを可能にする。以下の請求項およびその均等物は、本発明の範囲を定義することが意図される。

Claims (37)

  1. コーディネータノードと、
    前記コーディネータノードと通信している複数のワーカノードであって、各ワーカノードは、データブロックを記憶し、各データブロックは、半構造化形式でデータを有し、各データブロックは、クエリ言語によって解釈可能な表形式への前記半構造化形式の前記データの変換を規定する関連外部テーブル宣言を有する、ワーカノードと、
    前記コーディネータノードによって実行されるクエリプロセッサであって、前記クエリプロセッサは、クエリ言語クエリに応答して分散型クエリプランを生成し、前記分散型クエリプランは、サブクエリを含む、クエリプロセッサと
    を備え、
    前記サブクエリは、前記複数のワーカノードのうちの選択されたワーカノードによって実行され、
    前記選択されたワーカノードは、前記クエリ言語クエリに応答して、外部テーブル宣言を使用して半構造化形式のデータを分散型データベースの表形式に変換し、表形式データを提供する、システム。
  2. 前記コーディネータノードは、前記選択されたワーカノードからの前記表形式データをマージしてクエリ結果を提供する、請求項1に記載のシステム。
  3. 各サブクエリは、関連データブロックに関連付けられている、請求項1に記載のシステム。
  4. 前記クエリプロセッサは、各サブクエリを、前記関連データブロックを含むワーカノードに向かわせる、請求項3に記載のシステム。
  5. 前記コーディネータノードは、外部テーブルメタデータを維持し、前記外部テーブルメタデータは、前記表形式を特徴付ける、請求項1に記載のシステム。
  6. 前記クエリプロセッサは、前記外部テーブルメタデータにアクセスして前記分散型クエリプランを作成する、請求項5に記載のシステム。
  7. 前記コーディネータノードは、前記データブロックについてのメタデータを維持し、前記メタデータは、前記複数のワーカノードにわたる前記データブロックの場所を含む、請求項1に記載のシステム。
  8. 前記クエリプロセッサは、前記データブロックについての前記メタデータにアクセスして前記分散型クエリプランを作成する、請求項7に記載のシステム。
  9. 前記クエリプロセッサは、代替ネットワーク入力/出力コストを評価して前記分散型クエリプランを作成する、請求項1に記載のシステム。
  10. 前記クエリプロセッサは、前記データブロックについての統計を評価して前記分散型クエリプランを作成する、請求項1に記載のシステム。
  11. 前記クエリプロセッサは、前記複数のワーカノードの間で1つ以上のデータブロックをコピーするコマンドを発行して前記分散型クエリプランを実行する、請求項1に記載のシステム。
  12. 前記クエリプロセッサは、前記データブロック内の前記データを再パーティション化して前記分散型クエリプランを実行する、請求項1に記載のシステム。
  13. データブロックは、前記複数のワーカノードにわたって複製される、請求項1に記載のシステム。
  14. データブロックは、テキストファイルとして記憶されている、請求項1に記載のシステム。
  15. データブロックは、バイナリファイルとして記憶されている、請求項1に記載のシステム。
  16. 前記選択されたワーカノードは、前記データブロックについての統計を評価してサブクエリプランを作成する、請求項1に記載のシステム。
  17. 前記選択されたワーカノードは、データブロックインデックスを評価してサブクエリプランを作成する、請求項1に記載のシステム。
  18. 前記クエリ言語クエリは、Structured Query Language(SQL)クエリである、請求項1に記載のシステム。
  19. 前記クエリ言語サブクエリは、Structured Query Language(SQL)クエリである、請求項1に記載のシステム。
  20. ネットワークワーカノード上にデータブロックを記憶することであって、前記データブロックは、半構造化形式でデータを有する、ことと、
    前記データブロックをクエリ言語によって解釈可能な表形式への前記半構造化形式の前記データの変換を規定する関連外部テーブル宣言と関連付けることと、
    クエリ言語クエリに応答して分散型クエリプランを生成することであって、前記分散型クエリプランは、サブクエリを含む、ことと、
    前記サブクエリを前記ネットワークワーカノードのうちの選択されたワーカノードに向かわせることと、
    前記選択されたワーカノードにおいて前記サブクエリを実行することであって、実行することは、前記クエリ言語クエリに応答して、前記外部テーブル宣言を使用して半構造化形式のデータを表形式に変換し、表形式データを生成することを含む、ことと、
    前記表形式データをマージしてクエリ結果を生成することと
    を含む、コンピュータ実装方法。
  21. 各サブクエリを関連データブロックに関連付けることをさらに含む、請求項20に記載のコンピュータ実装方法。
  22. 各サブクエリを前記関連データブロックを含むワーカノードに向かわせることをさらに含む、請求項21に記載のコンピュータ実装方法。
  23. 外部テーブルメタデータを生成することをさらに含み、前記外部テーブルメタデータは、前記表形式を特徴付ける、請求項20に記載のコンピュータ実装方法。
  24. 前記外部テーブルメタデータにアクセスして前記分散型クエリプランを作成することをさらに含む、請求項23に記載のコンピュータ実装方法。
  25. 前記データブロックについてのメタデータを生成することをさらに含み、前記メタデータは、前記ネットワークワーカノードにわたる前記データブロックの場所を含む、請求項20に記載のコンピュータ実装方法。
  26. 前記データブロックについての前記メタデータにアクセスして前記分散型クエリプランを作成することをさらに含む、請求項25に記載のコンピュータ実装方法。
  27. 代替ネットワーク入力/出力コストを評価して前記分散型クエリプランを作成することをさらに含む、請求項20に記載のコンピュータ実装方法。
  28. 前記データブロックについての統計を評価して前記分散型クエリプランを作成することをさらに含む、請求項20に記載のコンピュータ実装方法。
  29. 1つ以上のデータブロックをコピーするコマンドを発行して前記分散型クエリプランを実行することをさらに含む、請求項20に記載のコンピュータ実装方法。
  30. 前記データブロック内の前記データを再パーティション化して前記分散型クエリプランを実行することをさらに含む、請求項20に記載のコンピュータ実装方法。
  31. データブロックは、前記ネットワークワーカノードにわたって複製される、請求項20に記載のコンピュータ実装方法。
  32. テキストファイルとしてデータブロックを記憶することをさらに含む、請求項20に記載のコンピュータ実装方法。
  33. バイナリファイルとしてデータブロックを記憶することをさらに含む、請求項20に記載のコンピュータ実装方法。
  34. 前記データブロックについての統計を評価してサブクエリプランを作成することをさらに含む、請求項20に記載のコンピュータ実装方法。
  35. データブロックインデックスを評価してサブクエリプランを作成することをさらに含む、請求項20に記載のコンピュータ実装方法。
  36. 前記クエリ言語クエリは、Structured Query Language(SQL)クエリである、請求項20に記載のコンピュータ実装方法。
  37. 前記クエリ言語サブクエリは、Structured Query Language(SQL)クエリである、請求項20に記載のコンピュータ実装方法。
JP2015529895A 2012-08-30 2013-08-26 外部テーブルを伴う分散型データベースの操作 Active JP6165864B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/600,126 2012-08-30
US13/600,126 US10579634B2 (en) 2012-08-30 2012-08-30 Apparatus and method for operating a distributed database with foreign tables
PCT/US2013/056615 WO2014035879A2 (en) 2012-08-30 2013-08-26 Apparatus and method for operating a distributed database with foreign tables

Publications (2)

Publication Number Publication Date
JP2015531937A true JP2015531937A (ja) 2015-11-05
JP6165864B2 JP6165864B2 (ja) 2017-07-19

Family

ID=50184592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015529895A Active JP6165864B2 (ja) 2012-08-30 2013-08-26 外部テーブルを伴う分散型データベースの操作

Country Status (4)

Country Link
US (1) US10579634B2 (ja)
EP (1) EP2891085A4 (ja)
JP (1) JP6165864B2 (ja)
WO (1) WO2014035879A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017138062A1 (ja) * 2016-02-08 2017-08-17 株式会社日立製作所 分散データベースシステム、及び、分散データベースシステムの管理方法

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195701B2 (en) * 2012-10-29 2015-11-24 Futurewei Technologies, Inc. System and method for flexible distributed massively parallel processing (MPP) database
US9087098B2 (en) * 2012-12-17 2015-07-21 General Electric Company System and method for storage, querying, and analysis service for time series data
US9152671B2 (en) 2012-12-17 2015-10-06 General Electric Company System for storage, querying, and analysis of time series data
US9152672B2 (en) * 2012-12-17 2015-10-06 General Electric Company Method for storage, querying, and analysis of time series data
US9081826B2 (en) * 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
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
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
US10310903B2 (en) * 2014-01-17 2019-06-04 Red Hat, Inc. Resilient scheduling of broker jobs for asynchronous tasks in a multi-tenant platform-as-a-service (PaaS) system
US9910888B2 (en) 2014-10-01 2018-03-06 Red Hat, Inc. Map-reduce job virtualization
US10678788B2 (en) * 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
EP3493475B1 (en) * 2015-12-23 2021-03-10 Huawei Technologies Co., Ltd. Distributed database for network functions
US11146613B2 (en) 2016-07-29 2021-10-12 International Business Machines Corporation Distributed computing on document formats
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11663227B2 (en) * 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US10977260B2 (en) * 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
CN106844545A (zh) * 2016-12-30 2017-06-13 江苏瑞中数据股份有限公司 一种基于标准sql的双引擎数据库系统的实现方法
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
CN107491510A (zh) * 2017-08-03 2017-12-19 国网江苏省电力公司信息通信分公司 一种混合异构数据源统一查询系统及分布式查询方法
CN107665246B (zh) * 2017-09-13 2021-03-30 北京知道未来信息技术有限公司 基于图数据库的动态数据迁移方法及图数据库集群
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US11907299B2 (en) 2017-10-13 2024-02-20 Kpmg Llp System and method for implementing a securities analyzer
US11321364B2 (en) 2017-10-13 2022-05-03 Kpmg Llp System and method for analysis and determination of relationships from a variety of data sources
US10846341B2 (en) 2017-10-13 2020-11-24 Kpmg Llp System and method for analysis of structured and unstructured data
WO2019100063A1 (en) * 2017-11-20 2019-05-23 Moshe Shadmon A system and apparatus to manage data using a peer-to-peer network and the blockchain
US11138230B2 (en) 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
CN109522370A (zh) * 2018-10-29 2019-03-26 珠海迎迎科技有限公司 一种基于sql的自动表格生成方法及装置
US11012443B2 (en) * 2018-10-30 2021-05-18 Salesforce.Com, Inc. Dynamic deployment of access controls anchored on request actions
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
CN111209305B (zh) * 2019-11-19 2023-07-18 华为云计算技术有限公司 查询数据的方法、数据节点、分布式数据库、计算设备
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11372871B1 (en) * 2020-02-21 2022-06-28 Rapid7, Inc. Programmable framework for distributed computation of statistical functions over time-based data
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
JP7472078B2 (ja) * 2021-05-20 2024-04-22 株式会社東芝 データ仮想化装置及び方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326216A (ja) * 1998-06-22 1998-12-08 Hitachi Ltd データベース管理システムおよび問合せの処理方法
US5913214A (en) * 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
JP2000348061A (ja) * 1998-06-10 2000-12-15 Nippon Telegr & Teleph Corp <Ntt> 半構造化文書情報統合検索装置および半構造化文書情報抽出装置、その方法、ならびにそのプログラムを格納する記録媒体
JP2001034619A (ja) * 1999-07-16 2001-02-09 Fujitsu Ltd Xmlデータの格納/検索方法およびxmlデータ検索システム
JP2001109758A (ja) * 1999-10-06 2001-04-20 Hitachi Ltd 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
JP2004206640A (ja) * 2002-12-26 2004-07-22 Nippon Telegr & Teleph Corp <Ntt> 木構造代数モデルを利用した統合検索方法、装置、プログラム、および記録媒体
JP2004348479A (ja) * 2003-05-22 2004-12-09 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索方法、検索プログラム、および検索プログラム記録媒体
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
JP2009080849A (ja) * 1996-10-02 2009-04-16 Amazon.Com Inc 単一の高水準構造化ユーザ照会に応答する方法
US20100070500A1 (en) * 2006-10-31 2010-03-18 Zhan Cui Data processing
WO2010098034A1 (ja) * 2009-02-24 2010-09-02 日本電気株式会社 分散データベース管理システムおよび分散データベース管理方法
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US20110258178A1 (en) * 2010-04-19 2011-10-20 Salesforce.Com Methods and systems for performing cross store joins in a multi-tenant store

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600831A (en) 1994-02-28 1997-02-04 Lucent Technologies Inc. Apparatus and methods for retrieving information by modifying query plan based on description of information sources
JPH10236216A (ja) 1997-02-25 1998-09-08 Shuichi Kaneko 車いす用水平維持装置付雪上及び悪路クローラ走行移送車
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7552149B2 (en) 2003-09-06 2009-06-23 Oracle International Corporation Querying past versions of data in a distributed database
WO2006096939A1 (en) 2005-03-18 2006-09-21 Kwok Kay Wong Remote access of heterogeneous data
US20060242102A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Relaxation-based approach to automatic physical database tuning
US7647590B2 (en) * 2006-08-31 2010-01-12 International Business Machines Corporation Parallel computing system using coordinator and master nodes for load balancing and distributing work
US8862617B2 (en) 2010-02-09 2014-10-14 Google Inc. System and method for replicating objects in a distributed storage system
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
US8935232B2 (en) * 2010-06-04 2015-01-13 Yale University Query execution systems and methods
US9495427B2 (en) * 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
US9026658B2 (en) * 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
US8682876B2 (en) * 2012-04-03 2014-03-25 Sas Institute, Inc. Techniques to perform in-database computational programming

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913214A (en) * 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
JP2009080849A (ja) * 1996-10-02 2009-04-16 Amazon.Com Inc 単一の高水準構造化ユーザ照会に応答する方法
JP2000348061A (ja) * 1998-06-10 2000-12-15 Nippon Telegr & Teleph Corp <Ntt> 半構造化文書情報統合検索装置および半構造化文書情報抽出装置、その方法、ならびにそのプログラムを格納する記録媒体
JPH10326216A (ja) * 1998-06-22 1998-12-08 Hitachi Ltd データベース管理システムおよび問合せの処理方法
JP2001034619A (ja) * 1999-07-16 2001-02-09 Fujitsu Ltd Xmlデータの格納/検索方法およびxmlデータ検索システム
JP2001109758A (ja) * 1999-10-06 2001-04-20 Hitachi Ltd 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
JP2004206640A (ja) * 2002-12-26 2004-07-22 Nippon Telegr & Teleph Corp <Ntt> 木構造代数モデルを利用した統合検索方法、装置、プログラム、および記録媒体
JP2004348479A (ja) * 2003-05-22 2004-12-09 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索方法、検索プログラム、および検索プログラム記録媒体
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
US20100070500A1 (en) * 2006-10-31 2010-03-18 Zhan Cui Data processing
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
WO2010098034A1 (ja) * 2009-02-24 2010-09-02 日本電気株式会社 分散データベース管理システムおよび分散データベース管理方法
US20110258178A1 (en) * 2010-04-19 2011-10-20 Salesforce.Com Methods and systems for performing cross store joins in a multi-tenant store

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017138062A1 (ja) * 2016-02-08 2017-08-17 株式会社日立製作所 分散データベースシステム、及び、分散データベースシステムの管理方法
JPWO2017138062A1 (ja) * 2016-02-08 2018-04-26 株式会社日立製作所 分散データベースシステム、及び、分散データベースシステムの管理方法

Also Published As

Publication number Publication date
US10579634B2 (en) 2020-03-03
JP6165864B2 (ja) 2017-07-19
EP2891085A4 (en) 2016-06-08
US20140067792A1 (en) 2014-03-06
EP2891085A2 (en) 2015-07-08
WO2014035879A2 (en) 2014-03-06
WO2014035879A3 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
JP6165864B2 (ja) 外部テーブルを伴う分散型データベースの操作
US10872093B2 (en) Dynamically switching between data sources
US10521427B2 (en) Managing data queries
US11593369B2 (en) Managing data queries
Friedman et al. SQL/MapReduce: A practical approach to self-describing, polymorphic, and parallelizable user-defined functions
US8935232B2 (en) Query execution systems and methods
Prasser et al. Efficient distributed query processing for autonomous RDF databases
Su et al. Supporting user-defined subsetting and aggregation over parallel netcdf datasets
Sreemathy et al. Data validation in ETL using TALEND
Kolev et al. Parallel polyglot query processing on heterogeneous cloud data stores with LeanXcale
Chen et al. Paralite: Supporting collective queries in database system to parallelize user-defined executable
Kalavri et al. m2r2: A framework for results materialization and reuse in high-level dataflow systems for big data
Carman et al. A scalable parallel XQuery processor
US11449504B2 (en) Database partition pruning using dependency graph
US20200311067A1 (en) Database partition pruning using dependency graph
Benhamed et al. Classification of knowledge processing by MapReduce
Haque A MapReduce Approach to NoSQL RDF Databases
AU2017202899B2 (en) Managing data queries
Selvaraj Advanced Database Techniques and Optimization
Bondiombouy Query Processing in Multistore Systems
Levchenko Parallel Polyglot Query Processing on Heterogeneous Cloud Data Stores with LeanXcale
Eftekhari Kingston, Ontario, Canada (April 2016)
Pal et al. Interactive SQL—Architecture
Πλαγάκης Hadoop framework
Kiryakov et al. 7 Storing the Semantic

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170621

R150 Certificate of patent or registration of utility model

Ref document number: 6165864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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