JP2016508277A - カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 - Google Patents
カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 Download PDFInfo
- Publication number
- JP2016508277A JP2016508277A JP2015553801A JP2015553801A JP2016508277A JP 2016508277 A JP2016508277 A JP 2016508277A JP 2015553801 A JP2015553801 A JP 2015553801A JP 2015553801 A JP2015553801 A JP 2015553801A JP 2016508277 A JP2016508277 A JP 2016508277A
- Authority
- JP
- Japan
- Prior art keywords
- data
- column
- bucket
- buckets
- histogram
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
前述のように、様々なクライアント(または、顧客、組織、実体、もしくユーザー)は、データ管理サービスを使用してデータを格納および管理することを望み得る。図2は、いくつかの実施形態に従って、データ管理サービスをクライアントに提供し得る、分散データウェアハウスシステム例を示す。具体的には、データウェアハウスクラスタは、他の多くのデータ管理または記憶サービスとともに、データに対する格納要求(例えば、データの記憶装置への書込み)またはクエリー(例えば、選択データに対するサーバークエリー言語要求(SQL)など)に応答し得る。
上で説明してきたように、データベース管理システムは、もっと効率的なデータ管理機能を提供するためにカラムナデータベーステーブルを利用するように構成され得る。これらの機能をさらに効率的に実行するために、列内のデータのヒストグラムに基づき、カラムナデータベーステーブル内の列に対するデータを格納しているデータブロックに対して、確率的データ構造が生成され得る。少なくともいくつかの実施形態では、このヒストグラムは、高さのバランスを調整したヒストグラムである。図5は、いくつかの実施形態に従い、カラムナデータベーステーブル内の列に対するデータの分布を表すヒストグラムに対してバケット範囲サイズを判断するための方法を示す高レベル流れ図である。様々な異なるシステムおよび装置が、以下で説明する様々な方法および技法を実装し得る。図4に関して前述したヒストグラム生成器420などの、ヒストグラム生成器が、様々な方法を実装するために、クエリー実行モジュール460などの、クエリー実行モジュールとともに協力し得る。あるいは、例えば、共に動作する、図3に示す複数の計算ノードなどの、異なるシステムおよび装置の組合せも、以下の方法および技法を実行し得る。それ故、前述の例およびまたは、図示した方法を実行するとして参照された任意の他のシステムもしくは装置は、システムおよび装置の他の異なる個体または構成に関して制限することを意図しない。
本明細書で説明するようなカラムナデータベースの列に対するヒストグラムを使用する効率的なクエリー処理の実施形態が、1つ以上のコンピュータシステム上で実行され得、それらは様々な他の装置とやりとりし得る。1つのかかるコンピュータシステムを図11に示す。異なる実施形態では、コンピュータシステム1000は、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、もしくはネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、モバイル機器、消費者向け装置、ビデオゲーム機、ハンドヘルドビデオゲーム機、アプリケーションサーバー、記憶装置、周辺機器(スイッチ、モデム、ルーターなど)、または任意のタイプのコンピューティング装置もしくは電子装置一般を含むが、それらに限定されず、様々なタイプの装置のいずれかであり得る。
1.分散データウェアハウスシステムであって、
複数のノードを含み、
複数のノードの少なくともいくつかのノードの各々が:
カラムナデータベーステーブルのための記憶装置であって、前記記憶装置が複数のデータブロックを含む、記憶装置と、
クエリー実行モジュールと
を含み、
複数のノードの少なくとも1つのノードが、
カラムナデータベーステーブルの列内の複数のバケット間でのデータの分布を表す高さのバランスを調整したヒストグラムに対して複数のバケット範囲サイズを判断することであって、複数のバケットの各バケットが、列内のデータの1つ以上のデータ値が値の範囲内に存在することを表す、複数のバケット範囲サイズを判断することと、
列に対するデータを格納している1つ以上のデータブロックの各データブロックに対する確率的データ構造を生成することであって、確率的データ構造が、複数のバケットのどのバケットに対して、データブロック内に格納されているバケット範囲サイズ内のデータ値があるかを示す、確率的データ構造を生成することと
を行うように構成された、高さのバランスを調整したヒストグラム生成器を含み、
クエリー実行モジュールが:
選択データに対するカラムナデータベーステーブルの列を対象としたクエリーの指示を受信することと、
クエリーの指示の受信に応答して:
列に対するデータを格納している1つ以上のデータブロックの各々に対する確率的データ構造を検査して、選択データに対するクエリーに対応するために読み取る必要のない、1つ以上のデータブロックのうちの特定のものを判断することと、
読み取る必要のない1つ以上のデータブロックのうちの特定のものを除いて、列に対するデータを格納している1つ以上のデータブロックを読み取ることと
を行うように構成されている、
分散データウェアハウスシステム。
2.カラムナデータベーステーブルの列を表す高さのバランスを調整したヒストグラムに対する複数のバケットに対して複数のバケット範囲サイズを判断するために、高さのバランスを調整したヒストグラム生成器が:
列のデータを取得することと、
複数のバケットを生成することと、
列のデータがバケット間で均等に分布されるように、高さのバランスを調整したヒストグラムに対する各バケットに対して、複数のバケット範囲サイズのうちのバケット範囲サイズを設定することと
を行うように構成されている、付記項1に記載のシステム。
3.確率的データ構造が、複数のビットを含むビットマップであり、ビットマップの各ビットが、高さのバランスを調整したヒストグラムに対する複数のバケットの各バケットを表し、かつデータブロック内に格納されているバケット範囲サイズ内に含まれる全てのデータ値に対して、バケットに対応するビットマップのビットが設定される、付記項1に記載のシステム。
4.高さのバランスを調整したヒストグラム生成器が、1つ以上のデータブロックの各々の確率的データ構造を、1つ以上のデータブロックに関する情報を格納するブロックメタデータ構造内のそれぞれのエントリ内に格納するようにさらに構成されている、付記項1に記載のシステム。
5.少なくとも1つのノードが、分散データウェアハウスクラスタのリーダーノードであり、かつ、少なくともいくつかのノードのうちの少なくとも1つが、分散データウェアハウスクラスタの計算ノードである、付記項1に記載のシステム。
6.1つ以上のコンピューティング装置によって、
カラムナデータベーステーブルの列のヒストグラムに対する複数のバケットの各々に対してバケット範囲サイズを判断することであって、ヒストグラムが列内のデータの複数のバケット間での分布を表し、複数のバケットの各バケットが、列内のデータの1つ以上のデータ値が判断されたバケット範囲サイズに従って値の範囲内に存在することを表す、バケット範囲サイズを判断することと、
カラムナデータベーステーブルの列に対するデータを格納している1つ以上のデータブロックの各々に対して確率的データ構造を生成することであって、確率的データ構造が、複数のバケットのどの特定のバケットに対して、データブロック内に格納されたデータ値があるかを示す、確率的データ構造を生成することと、
選択データに対する列を対象としたクエリーの指示を受信することと、
クエリーの指示の受信に応答して、列に対するデータを格納している1つ以上のデータブロックの各々に対する確率的データ構造を検査して、選択データに対するクエリーに対応するために読み取る必要のない、1つ以上のデータブロックのうちの特定のものを判断することと
を実行することを含む、方法。
7.カラムナデータベーステーブルの列のヒストグラムに対する複数のバケットの各々に対してバケット範囲サイズを前記判断することが:
列のデータを取得することと、
複数のバケットを生成することと、
列のデータがバケット間で均等に分布されるように、各バケットに対して複数のバケット範囲サイズのうちのバケット範囲サイズを設定することと
を含む、付記項6に記載の方法。
8.カラムナデータベーステーブルの列に対するデータを格納している1つ以上のデータブロックの各々に対して確率的データ構造を前記生成することが:
複数のビットを含むデータブロックに対するビットマップを生成することであって、各ビットがヒストグラムに対する複数のバケットの異なるバケットを表す、ビットマップを生成することと、
ビットマップ内のそれぞれのビットを、データブロック内に格納されたデータ値がある、特定のバケットの各々に対して設定することと
を含む、付記項6に記載の方法。
9.1つ以上のデータブロックの各々の確率的データ構造を、1つ以上のデータブロックに関する情報を格納するブロックメタデータ構造内のそれぞれのエントリ内に格納することをさらに含む、付記項8に記載の方法。
10.列に対するデータを格納している1つ以上のデータブロックの各々に対する確率的データ構造を前記検査して、選択データに対するクエリーに対応するために読み取る必要のない1つ以上のデータブロックのうちの特定のものを判断することが:
選択データを含む値の範囲内の1つ以上のバケットを表す1つ以上のビットを判断することと、
1つ以上のデータブロックに対するブロックメタデータ構造内に格納されている各ビットマップ内の1つ以上のビットを検査して、1つ以上のビットのうちの1つも、選択データに対するクエリーに対応するために読み取る必要のない特定のものとして設定されていない、データブロックを識別することと
を含む、付記項9に記載の方法。
11.カラムナデータベーステーブルの列のヒストグラムが、高さのバランスを調整したヒストグラムである、付記項6に記載の方法。
12.列内のデータの複数のバケット間での分布に対するリバランス事象を検出することと、
リバランス事象の検出に応答して、
列の高さのバランスを調整したヒストグラムに対する複数のバケットの各々に対するバケット範囲サイズを修正することと、
複数のバケットの修正されたバケット範囲サイズに従って1つ以上のデータブロックの各々に対する各確率的データ構造を更新することと
をさらに含む、付記項11に記載の方法。
13.列内のデータの複数のバケット間での分布に対するリバランス事象を前記検出することが、1つ以上の新しいデータブロック内に格納されている列に対する追加のデータ量がリバランス閾値を上回っていると判断することを含む、付記項12に記載の方法。
14.列内のデータの複数のバケット間での分布に対するリバランス事象を前記検出することが、列内のデータの分布と比較したデータの追加量の分布間の変化が分布閾値を上回っていると判断するために、列に対するデータの追加量の分布を分析することを含む、付記項12に記載の方法。
15.各確率的データ構造を前記更新することに続いて、クエリーに対応するために1つ以上のデータブロックの1つから読み取ったデータが、1つのデータブロックに対する確率的データ構造によって示される通りのデータ値の範囲内のデータ値を含んでいないという指示を受信することと、
データ値がデータ値の範囲内に含まれているという指示を除去するために1つのデータブロックに対する確率的データ構造を更新することと
をさらに含む、付記項12に記載の方法。
16.列に対する1つ以上のデータブロック内に格納されているデータがソートされていない、付記項6に記載の方法。
17.コンピューティング装置の1つ以上が、分散データウェアハウスシステムを実装する膨大なコンピューティング装置の一部であり、1つ以上のコンピューティング装置が、データベースウェアハウスクラスタの1つ以上の計算ノードであり、膨大なコンピューティング装置の異なるコンピューティング装置が、データベースウェアハウスクラスタのリーダーノードであり、かつ方法が、リーダーノードによって、カラムナデータベーステーブルの列を対象とした1つ以上のクエリーを1つ以上の計算ノードに送信することを実行することをさらに含む、付記項6に記載の方法。
18.プログラム命令を格納している、持続性コンピュータ可読記憶媒体であって、プログラム命令が、1つ以上のコンピューティング装置によって実行される場合に:
カラムナデータベーステーブルの列のヒストグラムに対する複数のバケットの各々に対して、バケット範囲サイズを判断することであって、ヒストグラムが列内のデータの複数のバケット間での分布を表し、複数のバケットの各バケットが、列内のデータの1つ以上のデータ値が判断されたバケット範囲サイズに従って値の範囲内に存在することを表す、バケット範囲サイズを判断することと、
カラムナデータベーステーブルの列に対するデータを格納している1つ以上のデータブロックの各々に対してビットマップを生成することであって、ビットマップ内の各ビットが複数のバケットの異なる1つを表し、かつ、ビットマップ内の設定されたビットが、データブロック内に格納されたデータ値がある、ヒストグラム内の複数のバケットのうちの特定のバケットを示す、ビットマップを生成することと、
選択データに対する列を対象としたクエリーの指示を受信することと、
クエリーの指示の受信に応答して:
列に対するデータを格納している1つ以上のデータブロックの各々に対するビットマップを検査して、選択データに対するクエリーに対応するために読み取る必要のない、1つ以上のデータブロックのうちの特定のものを判断することと、
読み取る必要のない、1つ以上のデータブロックのうちの特定のものを除いて、列に対するデータを格納している1つ以上のデータブロックを読み取ることと
を実装する、持続性コンピュータ可読記憶媒体。
19.カラムナデータベーステーブルの列に対するヒストグラムが、高さのバランスを調整したヒストグラムである、付記項18に記載の持続性コンピュータ可読記憶媒体。
20.プログラム命令が、1つ以上のコンピューティング装置によってさらに実行される場合に:
列内のデータの複数のバケット間での分布に対するリバランス事象を検出することと、
リバランス事象の検出に応答して:
列の高さのバランスを調整したヒストグラムに対する複数のバケットの各々に対するバケット範囲サイズを修正することと、
複数のバケットの修正されたバケット範囲サイズに従って1つ以上のデータブロックの各々に対する各ビットマップを更新することと
を実装する、付記項19に記載の持続性コンピュータ可読記憶媒体。
21.列内のデータの複数のバケット間での分布に対するリバランス事象を前記検出する際に、プログラム命令が、1つ以上のコンピューティング装置によって実行される場合に、複数のバケットの各々に対するバケット範囲サイズが判断されてからの時間が、リバランス時間閾値を上回っていると判断することを実装する、付記項20に記載の持続性コンピュータ可読記憶媒体。
22.複数のバケットの修正されたバケット範囲サイズに従って1つ以上のデータブロックの各々に対する各ビットマップを前記更新する際に、プログラム命令が、1つ以上のコンピューティング装置によって実行される場合に:
修正されたバケット範囲サイズ内のデータブロック内に格納されたデータ値があることを示す、複数のバケットのうちのバケットを表すビットマップの1つ以上の未設定のビットを識別することと、
ビットマップの1つ以上の未設定のビットを設定することと
をさらに実装する、付記項20に記載の持続性コンピュータ可読記憶媒体。
23.各ビットマップが、1つ以上のデータブロックに関する情報を格納している現在のブロックメタデータ構造内のそれぞれのエントリ内に格納されていて、かつ、複数のバケットの修正されたバケット範囲サイズに従って1つ以上のデータブロックの各々に対する各ビットマップを前記更新する際に、プログラム命令が、1つ以上のコンピューティング装置によって実行される場合に:
現在のブロックメタデータ構造のそれぞれのエントリで満たされた新しいブロックメタデータ構造を生成することと、
複数のバケットの修正されたバケット範囲サイズに従って、1つ以上のデータブロックの各々に対する新しいブロックメタデータ構造内のそれぞれのエントリ内の各ビットマップを修正することと
を実装し、
新しいブロックメタデータ構造を前記生成すること、および新しいブロックメタデータ構造内のそれぞれのエントリ内の各ビットマップを修正することが完了するまで、クエリの指示に応答したビットマップの前記検査の実行が、現在のブロックメタデータ構造内に格納されているビットマップを利用する、
付記項20に記載の持続性コンピュータ可読記憶媒体。
様々な実施形態は、コンピュータアクセス可能媒体上での、前述の説明に従って実装された命令および/またはデータの受信、送信または格納をさらに含み得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光媒体、例えば、ディスクもしくはDVD/CD−ROM、不揮発性媒体(RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなど)などの記憶媒体またはメモリ媒体、ならびにネットワークおよび/または無線リンクなどの通信媒体を経由して伝達される、伝送媒体または、電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
Claims (15)
- 分散データウェアハウスシステムであって、
複数のノードを含み、
前記複数のノードの少なくともいくつかのノードの各々が、
カラムナデータベーステーブルのための記憶装置であって、前記記憶装置が複数のデータブロックを含む、記憶装置と、
クエリー実行モジュールと
を含み、
前記複数のノードの少なくとも1つのノードが、
前記カラムナデータベーステーブルの列内の複数のバケット間でのデータの分布を表す高さのバランスを調整したヒストグラムに対して複数のバケット範囲サイズを判断することであって、前記複数のバケットの各バケットが、前記列内の前記データの1つ以上のデータ値が値の範囲内に存在することを表す、複数のバケット範囲サイズを判断することと、
前記列に対するデータを格納している1つ以上のデータブロックの各データブロックに対する確率的データ構造を生成することであって、前記確率的データ構造が、前記複数のバケットのどのバケットに対して、前記データブロック内に格納された前記バケット範囲サイズ内のデータ値があるかを示す、確率的データ構造を生成することと
を行うように構成された、高さのバランスを調整したヒストグラム生成器を含み、
前記クエリー実行モジュールが、
選択データに対する前記カラムナデータベーステーブルの前記列を対象としたクエリーの指示を受信することと、
前記クエリーの前記指示の受信に応答して、
前記列に対するデータを格納している前記1つ以上のデータブロックの各々に対する前記確率的データ構造を検査して、前記選択データに対する前記クエリーに対応するために読み取る必要のない前記1つ以上のデータブロックのうちの特定のものを判断することと、
読み取る必要のない、前記1つ以上のデータブロックのうちの前記特定のものを除いて、前記列に対するデータを格納している前記1つ以上のデータブロックを読み取ることとを行うように構成されている、
分散データウェアハウスシステム。 - 前記カラムナデータベーステーブルの前記列を表す前記高さのバランスを調整したヒストグラムに対する前記複数のバケットに対して前記複数のバケット範囲サイズを判断するために、前記高さのバランスを調整したヒストグラム生成器が、
前記列の前記データを取得することと、
前記複数のバケットを生成することと、
前記列の前記データが前記バケット間で均等に分布されるように、前記高さのバランスを調整したヒストグラムに対する各バケットに対して、前記複数のバケット範囲サイズのうちのバケット範囲サイズを設定することとを行うように構成されている、請求項1に記載のシステム。 - 前記確率的データ構造が、複数のビットを含むビットマップであり、前記ビットマップの各ビットが、前記高さのバランスを調整したヒストグラムに対する前記複数のバケットの各バケットを表し、かつ前記データブロック内に格納されている前記バケット範囲サイズ内に含まれる全てのデータ値に対して、前記バケットに対応する前記ビットマップの前記ビットが設定される、請求項1に記載のシステム。
- 前記少なくとも1つのノードが、分散データウェアハウスクラスタのリーダーノードであり、かつ、前記少なくともいくつかのノードのうちの前記少なくとも1つが、前記分散データウェアハウスクラスタの計算ノードである、請求項1に記載のシステム。
- 1つ以上のコンピューティング装置によって、
カラムナデータベーステーブルの列のヒストグラムに対する複数のバケットの各々に対して、バケット範囲サイズを判断することであって、前記ヒストグラムが前記列内のデータの前記複数のバケット間での分布を表し、前記複数のバケットの各バケットが、前記列内の前記データの1つ以上のデータ値が前記判断されたバケット範囲サイズに従って値の範囲内に存在することを表す、バケット範囲サイズを判断することと、
前記カラムナデータベーステーブルの前記列に対するデータを格納している1つ以上のデータブロックの各々に対して確率的データ構造を生成することであって、前記確率的データ構造が、前記複数のバケットのどの特定のバケットに対して、前記データブロック内に格納されたデータ値があるかを示す、確率的データ構造を生成することと、
選択データに対する前記列を対象としたクエリーの指示を受信することと、
前記クエリーの前記指示の受信に応答して、前記列に対するデータを格納している前記1つ以上のデータブロックの各々に対する前記確率的データ構造を検査して、前記選択データに対する前記クエリーに対応するために読み取る必要のない、前記1つ以上のデータブロックのうちの特定のものを判断することとを実行することを含む、方法。 - 前記カラムナデータベーステーブルの前記列の前記ヒストグラムに対する複数のバケットの各々に対してバケット範囲サイズを前記判断することが:
前記列の前記データを取得することと、
前記複数のバケットを生成することと、
前記列の前記データが前記バケット間で均等に分布されるように、各バケットに対して前記複数のバケット範囲サイズのうちのバケット範囲サイズを設定することとを含む、請求項5に記載の方法。 - 前記カラムナデータベーステーブルの前記列に対するデータを格納している前記1つ以上のデータブロックの各々に対して前記確率的データ構造を前記生成することが、
複数のビットを含む前記データブロックに対するビットマップを生成することであって、各ビットが前記ヒストグラムに対する前記複数のバケットの異なるバケットを表す、ビットマップを生成することと、
前記ビットマップ内の前記それぞれのビットを、前記データブロック内に格納された前記データ値がある、前記特定のバケットの各々に対して設定することとを含む、請求項5に記載の方法。 - 前記1つ以上のデータブロックの各々の前記確率的データ構造を、前記1つ以上のデータブロックに関する情報を格納するブロックメタデータ構造内のそれぞれのエントリ内に格納することをさらに含む、請求項7に記載の方法。
- 前記列に対するデータを格納している前記1つ以上のデータブロックの各々に対する前記確率的データ構造を前記検査して、前記選択データに対する前記クエリーに対応するために読み取る必要のない、前記1つ以上のデータブロックのうちの前記特定のものを判断することが、
前記選択データを含む、前記値の範囲内の前記1つ以上のバケットを表す1つ以上のビットを判断することと、
前記1つ以上のデータブロックに対する前記ブロックメタデータ構造内に格納されている各ビットマップ内の前記1つ以上のビットを検査して、前記1つ以上のビットのうちの1つも、前記選択データに対する前記クエリーに対応するために読み取る必要のない前記特定のものとして設定されていない、データブロックを識別することとを含む、請求項8に記載の方法。 - 前記カラムナデータベーステーブルの前記列の前記ヒストグラムが、高さのバランスを調整したヒストグラムである、請求項5に記載の方法。
- 前記列内のデータの前記複数のバケット間での前記分布に対するリバランス事象を検出することと、
前記リバランス事象の検出に応答して、 前記列の前記高さのバランスを調整したヒストグラムに対する前記複数のバケットの各々に対する前記バケット範囲サイズを修正することと、
前記複数のバケットの前記修正されたバケット範囲サイズに従って、前記1つ以上のデータブロックの各々に対する各確率的データ構造を更新することをさらに含む、請求項10に記載の方法。 - 前記列内のデータの前記複数のバケット間での前記分布に対する前記リバランス事象を前記検出することが、1つ以上の新しいデータブロック内に格納されている前記列に対する追加のデータ量がリバランス閾値を上回っていると判断することを含む、請求項11に記載の方法。
- 各確率的データ構造を前記更新することに続いて、前記クエリーに対応するために前記1つ以上のデータブロックの1つから読み取ったデータが、前記1つのデータブロックに対する前記確率的データ構造によって示される通りのデータ値の前記範囲内のデータ値を含んでいないという指示を受信することと、
前記データ値がデータ値の前記範囲内に含まれているという前記指示を除去するために前記1つのデータブロックに対する前記確率的データ構造を更新することとをさらに含む、請求項11に記載の方法。 - 前記コンピューティング装置の1つ以上が、分散データウェアハウスシステムを実装する膨大なコンピューティング装置の一部であり、前記1つ以上のコンピューティング装置が、データベースウェアハウスクラスタの1つ以上の計算ノードであり、前記膨大なコンピューティング装置の異なるコンピューティング装置が、前記データベースウェアハウスクラスタのリーダーノードであり、かつ前記方法が、前記リーダーノードによって、前記カラムナデータベーステーブルの前記列を対象とした1つ以上のクエリーを前記1つ以上の計算ノードに送信することを実行することをさらに含む、請求項5に記載の方法。
- プログラム命令を格納している、持続性コンピュータ可読記憶媒体であって、前記プログラム命令が、1つ以上のコンピューティング装置によって実行される場合に、
カラムナデータベーステーブルの列のヒストグラムに対する複数のバケットの各々に対して、バケット範囲サイズを判断することであって、前記ヒストグラムが前記列内のデータの前記複数のバケット間での分布を表し、前記複数のバケットの各バケットが、前記列内の前記データの1つ以上のデータ値が前記判断されたバケット範囲サイズに従って値の範囲内に存在することを表す、バケット範囲サイズを判断することと、
前記カラムナデータベーステーブルの前記列に対するデータを格納している1つ以上のデータブロックの各々に対してビットマップを生成することであって、前記ビットマップ内の各ビットが前記複数のバケットの異なる1つを表し、かつ、前記ビットマップ内の設定されたビットが、前記データブロック内に格納されたデータ値がある、前記ヒストグラム内の前記複数のバケットのうちの特定のバケットを示す、ビットマップを生成することと、
選択データに対する前記列を対象としたクエリーの指示を受信することと、
前記クエリーの前記指示の受信に応答して、
前記列に対するデータを格納している前記1つ以上のデータブロックの各々に対する前記ビットマップを検査して、前記選択データに対する前記クエリーに対応するために読み取る必要のない、前記1つ以上のデータブロックのうちの特定のものを判断することと、
読み取る必要のない、前記1つ以上のデータブロックのうちの前記特定のものを除いて、前記列に対するデータを格納している前記1つ以上のデータブロックを読み取ることとを実装する、持続性コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/742,287 | 2013-01-15 | ||
US13/742,287 US8949224B2 (en) | 2013-01-15 | 2013-01-15 | Efficient query processing using histograms in a columnar database |
PCT/US2014/011686 WO2014113474A1 (en) | 2013-01-15 | 2014-01-15 | Efficient query processing using histograms in a columnar database |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017108105A Division JP6393805B2 (ja) | 2013-01-15 | 2017-05-31 | カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016508277A true JP2016508277A (ja) | 2016-03-17 |
JP6378207B2 JP6378207B2 (ja) | 2018-08-22 |
Family
ID=51165980
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015553801A Active JP6378207B2 (ja) | 2013-01-15 | 2014-01-15 | カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 |
JP2017108105A Active JP6393805B2 (ja) | 2013-01-15 | 2017-05-31 | カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017108105A Active JP6393805B2 (ja) | 2013-01-15 | 2017-05-31 | カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 |
Country Status (8)
Country | Link |
---|---|
US (4) | US8949224B2 (ja) |
EP (2) | EP2946333B1 (ja) |
JP (2) | JP6378207B2 (ja) |
KR (3) | KR101792582B1 (ja) |
CN (2) | CN107766568B (ja) |
AU (2) | AU2014207599B2 (ja) |
CA (1) | CA2898054C (ja) |
WO (1) | WO2014113474A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949224B2 (en) | 2013-01-15 | 2015-02-03 | Amazon Technologies, Inc. | Efficient query processing using histograms in a columnar database |
US9471629B2 (en) * | 2013-04-19 | 2016-10-18 | Software AG USA Inc. | Method and apparatus for visual dynamic discovery and analytics exploration application on static and/or real-time data using an a priori model-free process |
US10909117B2 (en) | 2013-12-20 | 2021-02-02 | Micro Focus Llc | Multiple measurements aggregated at multiple levels of execution of a workload |
WO2015094319A1 (en) * | 2013-12-20 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Generating a visualization of a metric at a level of execution |
US10140353B2 (en) | 2013-12-23 | 2018-11-27 | Teredata, US, Inc. | Techniques for query processing using high dimension histograms |
US10282371B1 (en) * | 2014-12-02 | 2019-05-07 | Western Digital Technologies, Inc. | Object storage device with probabilistic data structure |
US10133760B2 (en) * | 2015-01-12 | 2018-11-20 | International Business Machines Corporation | Hardware for a bitmap data structure for efficient storage of heterogeneous lists |
US10970285B2 (en) * | 2015-02-26 | 2021-04-06 | Red Hat, Inc. | Grid topology change in a distributed data grid when iterating on the contents of the data grid |
WO2016175861A1 (en) | 2015-04-30 | 2016-11-03 | Hewlett Packard Enterprise Development Lp | Consolidated metadata in databases |
WO2016195728A1 (en) * | 2015-05-29 | 2016-12-08 | Hewlett Packard Enterprise Development Lp | Generating test data based on histogram statistics |
US10191944B2 (en) * | 2015-10-23 | 2019-01-29 | Oracle International Corporation | Columnar data arrangement for semi-structured data |
US10152429B2 (en) * | 2015-10-27 | 2018-12-11 | Medallia, Inc. | Predictive memory management |
US9607062B1 (en) * | 2015-11-19 | 2017-03-28 | International Business Machines Corporation | Data locality in data integration applications |
US10719554B1 (en) | 2016-09-19 | 2020-07-21 | Amazon Technologies, Inc. | Selective maintenance of a spatial index |
US10324911B1 (en) * | 2016-09-30 | 2019-06-18 | Virtustream Ip Holding Company Llc | Storage system with bucket contents rebalancer providing adaptive partitioning for database buckets |
US10242055B2 (en) * | 2016-12-07 | 2019-03-26 | Medallia, Inc. | Dual filter histogram optimization |
US11507283B1 (en) * | 2016-12-20 | 2022-11-22 | Amazon Technologies, Inc. | Enabling host computer systems to access logical volumes by dynamic updates to data structure rules |
US10809920B1 (en) | 2016-12-20 | 2020-10-20 | Amazon Technologies, Inc. | Block store management for remote storage systems |
US10268593B1 (en) | 2016-12-20 | 2019-04-23 | Amazon Technologies, Inc. | Block store managamement using a virtual computing system service |
US10921991B1 (en) * | 2016-12-20 | 2021-02-16 | Amazon Technologies, Inc. | Rule invalidation for a block store management system |
US10185507B1 (en) * | 2016-12-20 | 2019-01-22 | Amazon Technologies, Inc. | Stateless block store manager volume reconstruction |
US11030177B1 (en) * | 2017-05-04 | 2021-06-08 | Amazon Technologies, Inc. | Selectively scanning portions of a multidimensional index for processing queries |
US11138076B2 (en) * | 2017-06-30 | 2021-10-05 | Redis Ltd. | Methods, systems, and media for controlling append-only file rewrites |
US10567992B2 (en) | 2018-01-25 | 2020-02-18 | Hewlett Packard Enterprise Development Lp | Network device KPI monitors based on bitmaps |
US10860576B2 (en) | 2018-01-26 | 2020-12-08 | Vmware, Inc. | Splitting a query into native query operations and post-processing operations |
US11016972B2 (en) | 2018-01-26 | 2021-05-25 | Vmware, Inc. | Splitting a time-range query into multiple sub-queries for serial execution |
US11016971B2 (en) | 2018-01-26 | 2021-05-25 | Vmware, Inc. | Splitting a time-range query into multiple sub-queries for parallel execution |
US11144570B2 (en) | 2018-01-26 | 2021-10-12 | Vmware, Inc. | Data ingestion by distributed-computing systems |
US10812332B2 (en) | 2018-02-28 | 2020-10-20 | Vmware Inc. | Impartial buffering in stream processing |
US10824623B2 (en) * | 2018-02-28 | 2020-11-03 | Vmware, Inc. | Efficient time-range queries on databases in distributed computing systems |
US11178213B2 (en) | 2018-02-28 | 2021-11-16 | Vmware, Inc. | Automated configuration based deployment of stream processing pipeline |
US11216706B2 (en) | 2018-03-15 | 2022-01-04 | Datorama Technologies Ltd. | System and method for visually presenting interesting plots of tabular data |
GB201816808D0 (en) * | 2018-10-16 | 2018-11-28 | Palantir Technologies Inc | Data storage method and system |
US10628442B1 (en) * | 2018-11-09 | 2020-04-21 | Hewlett Packard Enterprise Development Lp | Histograms based on varying data distribution |
CN109933592B (zh) * | 2019-03-22 | 2021-06-01 | 杭州复杂美科技有限公司 | 数据存储方法、数据回滚方法、设备和存储介质 |
US11693889B2 (en) * | 2019-03-28 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Effective materialization strategy utilizing statistical set-theoretic approach for generation of multi-interval multi-column histogram and histograms in general |
CN110647566B (zh) * | 2019-09-03 | 2023-04-14 | 平安科技(深圳)有限公司 | 模板表格的智能导入方法、装置及计算机可读存储介质 |
CN111177433B (zh) * | 2019-12-31 | 2021-07-20 | 北京百度网讯科技有限公司 | 用于并行处理信息的方法和装置 |
US20230221864A1 (en) * | 2022-01-10 | 2023-07-13 | Vmware, Inc. | Efficient inline block-level deduplication using a bloom filter and a small in-memory deduplication hash table |
CN114860848A (zh) * | 2022-07-06 | 2022-08-05 | 北京奥星贝斯科技有限公司 | 分布式数据库系统的选主方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761652A (en) * | 1996-03-20 | 1998-06-02 | International Business Machines Corporation | Constructing balanced multidimensional range-based bitmap indices |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226629B1 (en) * | 1997-02-28 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus determining and using hash functions and hash values |
US6278989B1 (en) | 1998-08-25 | 2001-08-21 | Microsoft Corporation | Histogram construction using adaptive random sampling with cross-validation for database systems |
US6460045B1 (en) | 1999-03-15 | 2002-10-01 | Microsoft Corporation | Self-tuning histogram and database modeling |
US6529872B1 (en) * | 2000-04-18 | 2003-03-04 | Matsushita Electric Industrial Co., Ltd. | Method for noise adaptation in automatic speech recognition using transformed matrices |
KR100398142B1 (ko) * | 2000-08-29 | 2003-09-19 | 한국과학기술원 | 대용량 데이터베이스에서의 고속에 의한 다해상도의 최적탐색방법 |
US6691099B1 (en) | 2001-05-31 | 2004-02-10 | Oracle International Corporation | Method and system for histogram determination in a database |
JP2003256222A (ja) | 2002-03-04 | 2003-09-10 | Matsushita Electric Ind Co Ltd | 分散処理システム、ジョブ分散処理方法およびプログラム |
US6732985B1 (en) * | 2003-02-20 | 2004-05-11 | Douglas Chet Cantrell | Beach utility pole |
US7424498B1 (en) * | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
US7299248B2 (en) | 2004-06-29 | 2007-11-20 | International Business Machines Corporation | Method, system, program for determining frequency of updating database histograms |
US7386538B2 (en) * | 2005-03-24 | 2008-06-10 | International Business Machines Corporation | Building database statistics across a join network using skew values |
GB0513045D0 (en) | 2005-06-27 | 2005-08-03 | Vidus Ltd | Resource scheduling method and system |
US7512574B2 (en) * | 2005-09-30 | 2009-03-31 | International Business Machines Corporation | Consistent histogram maintenance using query feedback |
US7707005B2 (en) * | 2006-09-02 | 2010-04-27 | Microsoft Corporation | Generating histograms of population data by scaling from sample data |
US7991763B2 (en) * | 2007-04-13 | 2011-08-02 | International Business Machines Corporation | Database query optimization utilizing remote statistics collection |
US20080288444A1 (en) * | 2007-05-16 | 2008-11-20 | John Francis Edwards | Evaluating Multi-Table Join Selectivity in a Computer Database |
US8341513B1 (en) * | 2007-05-21 | 2012-12-25 | Amazon.Com Inc. | Incremental updates of items |
US7512754B1 (en) * | 2008-01-31 | 2009-03-31 | International Business Machines Corporation | System and method for optimizing storage utilization |
JP2009245424A (ja) * | 2008-03-28 | 2009-10-22 | Mitsubishi Electric Research Laboratories Inc | コンピュータにより実施される、確率論的クエリー及び確率論的クエリーマッチング関数に対して順位付けした結果セットをレンダリングする方法 |
US8392406B1 (en) * | 2008-05-30 | 2013-03-05 | Oracle International Corporation | Determining a height-balanced histogram incrementally |
US8290972B1 (en) * | 2009-04-29 | 2012-10-16 | Netapp, Inc. | System and method for storing and accessing data using a plurality of probabilistic data structures |
US8832142B2 (en) * | 2010-08-30 | 2014-09-09 | Oracle International Corporation | Query and exadata support for hybrid columnar compressed data |
US8145669B2 (en) * | 2009-12-11 | 2012-03-27 | At&T Intellectual Property I, L.P. | Methods and apparatus for representing probabilistic data using a probabilistic histogram |
KR101117709B1 (ko) * | 2009-12-15 | 2012-02-24 | 한국과학기술원 | 공간 분할 트리의 최소 데이터-불균등 커버를 이용한 다차원 히스토그램 방법 및 이를 실행하기 위한 프로그램이 저장된 기록매체 |
CN101826098B (zh) * | 2010-02-03 | 2013-05-08 | 中国科学院地理科学与资源研究所 | 一种基于ab直方图的空间查询选择率估计方法 |
WO2012027478A1 (en) | 2010-08-24 | 2012-03-01 | Jay Moorthi | Method and apparatus for clearing cloud compute demand |
US8458547B2 (en) * | 2010-10-26 | 2013-06-04 | Hewlett-Packard Development Company, L.P. | Method for constructing a histogram |
US8229917B1 (en) * | 2011-02-24 | 2012-07-24 | International Business Machines Corporation | Database query optimization using clustering data mining |
US20120246158A1 (en) * | 2011-03-25 | 2012-09-27 | Microsoft Corporation | Co-range partition for query plan optimization and data-parallel programming model |
US20120254199A1 (en) * | 2011-03-31 | 2012-10-04 | Harumi Kuno | Merge optimization system |
CN102609439A (zh) * | 2011-12-23 | 2012-07-25 | 浙江大学 | 一种高维环境中模糊数据的概率窗口查询方法 |
US9471631B2 (en) * | 2012-09-28 | 2016-10-18 | Oracle International Corporation | Creating and using data that indicates misestimates of actual costs |
US8949224B2 (en) | 2013-01-15 | 2015-02-03 | Amazon Technologies, Inc. | Efficient query processing using histograms in a columnar database |
CN103984695B (zh) * | 2014-03-21 | 2017-06-20 | 华为技术有限公司 | 一种数据库中的数据查询方法及装置 |
-
2013
- 2013-01-15 US US13/742,287 patent/US8949224B2/en active Active
-
2014
- 2014-01-15 EP EP14740238.2A patent/EP2946333B1/en active Active
- 2014-01-15 WO PCT/US2014/011686 patent/WO2014113474A1/en active Application Filing
- 2014-01-15 KR KR1020177002434A patent/KR101792582B1/ko active IP Right Grant
- 2014-01-15 AU AU2014207599A patent/AU2014207599B2/en active Active
- 2014-01-15 CN CN201711101185.5A patent/CN107766568B/zh active Active
- 2014-01-15 CA CA2898054A patent/CA2898054C/en active Active
- 2014-01-15 KR KR1020177030855A patent/KR101903926B1/ko active IP Right Grant
- 2014-01-15 EP EP17196422.4A patent/EP3299972B1/en active Active
- 2014-01-15 CN CN201480008818.6A patent/CN105074724B/zh active Active
- 2014-01-15 KR KR1020157021948A patent/KR101702321B1/ko active IP Right Grant
- 2014-01-15 JP JP2015553801A patent/JP6378207B2/ja active Active
-
2015
- 2015-02-02 US US14/611,939 patent/US9268838B2/en active Active
-
2016
- 2016-02-22 US US15/050,104 patent/US9767174B2/en active Active
-
2017
- 2017-05-01 AU AU2017202873A patent/AU2017202873B2/en active Active
- 2017-05-31 JP JP2017108105A patent/JP6393805B2/ja active Active
- 2017-09-15 US US15/706,511 patent/US10372723B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761652A (en) * | 1996-03-20 | 1998-06-02 | International Business Machines Corporation | Constructing balanced multidimensional range-based bitmap indices |
Non-Patent Citations (1)
Title |
---|
JPN6016022627; 松信嘉範: 'MySQLの「InfiniDB」で考える DWH用途と相性が良い「列指向データベース」とは' DB Magazine 第20巻、第4号, 20100801, pp.106〜114, 株式会社翔泳社 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6393805B2 (ja) | カラムナデータベース内のヒストグラムを使用した効率的なクエリー処理 | |
US9367574B2 (en) | Efficient query processing in columnar databases using bloom filters | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US11494339B2 (en) | Multi-level compression for storing data in a data store | |
US9740738B1 (en) | Data retrieval from datastores with different data storage formats | |
US9489233B1 (en) | Parallel modeling and execution framework for distributed computation and file system access | |
US9747128B1 (en) | Worldwide distributed file system model | |
US10860562B1 (en) | Dynamic predicate indexing for data stores | |
US10095738B1 (en) | Dynamic assignment of logical partitions according to query predicate evaluations | |
US10671509B1 (en) | Simulating storage server configurations | |
US11799890B2 (en) | Detecting anomalous downloads | |
Ranasinghe | Big Data Analytic Techniques and Issues |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160621 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160921 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20161121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180726 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6378207 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 |