JP6870071B2 - テーブルのインクリメンタルクラスタリング保守 - Google Patents
テーブルのインクリメンタルクラスタリング保守 Download PDFInfo
- Publication number
- JP6870071B2 JP6870071B2 JP2019511705A JP2019511705A JP6870071B2 JP 6870071 B2 JP6870071 B2 JP 6870071B2 JP 2019511705 A JP2019511705 A JP 2019511705A JP 2019511705 A JP2019511705 A JP 2019511705A JP 6870071 B2 JP6870071 B2 JP 6870071B2
- Authority
- JP
- Japan
- Prior art keywords
- partitions
- clustering
- partition
- degree
- data
- 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.)
- Active
Links
- 238000012423 maintenance Methods 0.000 title claims description 37
- 238000005192 partition Methods 0.000 claims description 383
- 238000000034 method Methods 0.000 claims description 77
- 238000003860 storage Methods 0.000 claims description 47
- 238000013138 pruning Methods 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 4
- 230000007423 decrease Effects 0.000 claims description 4
- 238000000638 solvent extraction Methods 0.000 description 37
- 238000012545 processing Methods 0.000 description 20
- 238000013500 data storage Methods 0.000 description 19
- 230000008901 benefit Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 239000001993 wax Substances 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/2282—Tablespace storage structures; 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/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
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)
Description
本特許出願は、2016年9月2日出願の名称「INCREMENTAL CLUSTER MAINTENANCE OF A TABLE」の米国仮特許出願番号62/383,201に対して優先権を主張し、この出願は、参照によりその全体が本明細書に組み込まれる。
ラム)に基づいてデータを分割して1日毎のパーティションを作成したり、又は、国の属性(又はカラム)に基づいて国毎のパーティションを作成したりできる。
artitioning」を参照)、Hive(米国登録商標)パーティショニング(例えば、https://www.brentozar.com/archive/2013/03/introduction-to-hive-partitioningの「An Introduction to Hive’s Partitionin
g」を参照)、SQL Server(米国登録商標)テーブルパーティショニング(例えば、https://technet.microsoft.com/en-us/library/cc966457.aspxの「Strate
gies for Partitioning Relational Data Warehouse in Microsoft SQL Server」を参照)、及びTeradata(米国登録商標)パーティショニング(例えば、http://www.dwhpro.com/teradata-partitioned-primary-indexの「The Teradata Partitioned Primary Index(PPI)」を参照)を含む。
s://docs.oracle.com/database/121/DWHSG/zone_maps.htm#DWHSG9357)の「Zone Maps and Attribute Clustering」を参照されたい。しかしながら、これらのシステム又は方法は、基になるデータのクラスタリングを保守又は最適化しようとしないか、基になるテーブルの全体的で完全な再クラスタリングを必要とする。
動作を提供する。前述したように、どちらもデータ構造が正確に並び替えられ又はパーティショニングされるように保守しようとするため、コストが高くなる。
又はセルに対応する1つのファイル、2つのファイル、又はデータを含めることができる。各「ファイル」は、2つ以上の別々のファイルに置き換えることもできる。一実施形態において、パーティションは、たとえ同じパーティション内であっても、異なるファイルにアクセスすることなく、独立してアクセス又はロードされ得る、複数のファイルを含むことができる。
ている。実行プラットフォーム112は、1つ以上の計算クラスタを含むことができる。実行プラットフォーム112は、記憶プラットフォーム114の一部である1つ以上のデータ記憶装置116、118、及び120と通信している。3つのデータ記憶装置116、118、及び120が図1に示されているが、実行プラットフォーム112は、任意の数のデータ記憶装置と通信することが可能である。いくつかの実施形態では、データ記憶装置116、118、及び120は、1つ以上の地理的位置に位置するクラウドベースの記憶装置である。例えば、データ記憶装置116、118、及び120は、パブリッククラウドインフラストラクチャ若しくはプライベートクラウドインフラストラクチャ、又は任意の他の分散記憶システムの様式の一部であるようにすることができる。データ記憶装置116、118、及び120は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、記憶クラスタ、又は任意の他のデータ記憶技術を含むようにすることができる。加えて、記憶プラットフォーム114は、(Hadoop分散ファイルシステム(HDFS)のような)分散ファイルシステム、及びオブジェクトストレージシステム等を含むことができる。
ティマイザ214、及びSQL実行部216も含む。SQLコンパイラ212は、SQLクエリを解析し、クエリの実行コードを生成する。SQLオプティマイザ214は、処理される必要があるデータに基づいて、クエリを実行する最適な方法を決定する。SQL実行部216は、データベースサービスマネージャ102によって受信されたクエリに対するクエリコードを実行する。例えば、SQLオプティマイザは、クエリの述語を満たさないことがメタデータに基づいてわかるため、クエリにおいて処理される必要のないテーブルのロウ又はパーティションをプルーニングするようにすることができる。クエリスケジューラ及びコーディネータ218は、受信したクエリを、コンパイル、最適化、及び実行プラットフォーム212へのディスパッチのための適切なサービス又はシステムに送信する。仮想ウェアハウスマネージャ220は、複数の仮想ウェアハウスの動作を管理する。
保守はインクリメンタルに実行されるので、これらのインクリメンタル保守手順は、たとえその状態に達していない場合でも、理想的なクラスタ化された状態に向けて移行しながら、クラスタリングを改善又は保守し続けるようにすることができる。
name> ( \[<column_name> <column_type>]+ ) CLUSTER BY (expression+ ) という句によって拡張することができる。内部的には、ロードへの入力クエリは、クラスタリングキー上で新規ロウを並び替えすることになるだろう。
ORDER BY を使用してテーブルを再作成することによって実現できる。このことは、新規パーティションが潜在的に極めて大きなテーブルに追加されるので、作成するのにコストがかかりすぎ、及び/又は保守するのに不経済すぎる可能性がある。別の方法として、テーブルのサブセットの再クラスタリングを手動でトリガするために、新規 ALTER TABLE の変形が、 ALTER TABLE <table_name> RECLUSTER <clustering_options> というオープンエンドの構文を使用して導入される。ここで、 clustering_options
は、メソッド、maximum_size、又は他のパラメータであるようにすることができる。1つの例文は、 ALTER TABLE <table_name> RE
CLUSTER using method=last_files,maximum_size=10GB である。このコマンドは、現在のヒューリスティック(発見的)なメソッド「last_files」を使用して、最大10GBのテーブル table_name を再クラスタリングする。その他のヒューリスティックな手法は、後述する「インクリメンタルクラスタリングヒューリスティック」セクションで説明する。
などの一部の操作は、メタデータのみの操作である。構成及びメタデータマネージャ222によって保守されるマイクロパーティションメタデータは、半構造化データを包含するカラムを含む、クエリ実行時におけるマイクロパーティション内のカラムの正確なプルーニングを可能にする。つまり、範囲内の値の10%にアクセスする値の範囲に対してフィルタ述語を指定するクエリは、理想的にはマイクロパーティションの約10%のみをスキャンすべきである。例えば、大きなテーブルが、日付及び時間のカラムを含む1年分の履歴データを含んでいると仮定する。データの均一な分布を仮定すると、特定の時間を対象とするクエリは、理想的には、テーブルを構成するマイクロパーティションの1/8760番目をスキャンし、時間のカラムのデータが含まれているマイクロパーティションの部分のみをスキャンする。システムは、クエリが1つのカラムのみによってフィルタする場合に、パーティション全体がスキャンされないようにするために、パーティションのカラムによって特徴付けられたスキャニングを使用するようにすることができる。言い換えれば、スキャンされたマイクロパーティションとカラムによって特徴付けられたデータの比率が、選択された実際のデータの比率に近いほど、テーブル上で実行されるプルーニングがより効率的である。時系列データに対しては、このレベルのプルーニングが、1時間又は更にはそれ以下と同じ細粒のレンジ(「スライス」など)に対して、1秒未満の応答時間を可能にすることが現実になる可能性がある。
ラスタリングの小規模な概念的表現としてのみ意図されていることに注意されたい。
RING_INFORMATION、SYSTEM$CLUSTERING_RATIOを使用してアクセスされるようにすることができる。
る。この値は、所望のスケールを得るために数字を掛けることができる(例えば、100を乗算して0〜100のスケールを得る)。
スタリング比率を有する。この4番目の状態では、テーブルは完全にクラスタ化されていると見なされる。
マイクロパーティションの自然なクラスタリングを改善するために、ユーザはロウを重要なカラム上で並べ替えてテーブルに再挿入したいと思うかもしれない。しかしながら、(ロウの数ではなくテーブル内のデータのサイズによって定義される)非常に大きなテーブルに対しては、この手動操作はコストが高く、扱いにくい可能性がある。ここで少なくとも一実施形態は、ユーザがテーブル上の1つ以上のカラム/式に対してクラスタリングキーを指定することを可能にする。
。対照的に、非常に高い基数カラム(例えば、タイムスタンプ又はUUID値を含むカラム)は、クラスタリングの維持にコストがかかる可能性がある。原則として、最低の基数から最高の基数までのキーをオーダーすることが推奨される。カラムの基数が非常に大きい場合、多くの場合、クラスタリングキーとして直接使用するのは適切ではない。例えば、ファクトテーブルは、(テーブル内のマイクロパーティションの数よりも多く)多くの不連続な値を含むタイムスタンプカラムc_timestampを有するかもしれない。そのカラムは引き続きクラスタリングキーとして使用できるが、そのカラムに定義された式となるクラスタリングキーを用いると、明瞭値の数が減少する。例えば、c_timestampカラム上では、タイムスタンプではなく日付に値をキャストすることによって(例えば、to_date(c_timestamp))、クラスタリングキーを定義できる。これにより合計日数に対する明瞭値が減少するが、これはプルーニングのためにはるかに優れている。
えば、回復又はバージョン管理のために保持されるようにすることができる。この実施例は、非常に小さい規模での再クラスタリングの影響を示している。大きなテーブルの(即ち、数百万のマイクロパーティションから成る)場合、再クラスタリングはスキャンに大きな影響を与え、その結果、クエリ性能を向上させることができる。
in_bytes>] [ WHERE <condition> ]。上記MAX_SIZE=budget_in_bytesは、再クラスタリングするテーブル内のデータ量(バイト単位)の上限を指定する。再クラスタリングするマイクロパーティションがなくなった場合、又はバジェットを超えずに再クラスタリングすることができる場合には、制限に達する前に再クラスタリングが停止するようにすることができる。MAX_SIZEが指定されていない場合は、再クラスタリングのために使用される仮想ウェアハウス内で使用可能なリソースに基づいて、システムが自動的にサイズを選択するようにすることができる。例えば、コマンド「ALTER TABLE t1 RECLUSTER;」は、このコマンドが実行されているシステムで使用可能なリソースに基づいて、テーブルの再クラスタリングに使用する最適なバジェットを自動的に選択する。ウェアハウスが大きくなればなるほど、再クラスタリングコマンドにより多くのバジェットが与えられ、再クラスタリングはより効果的になる。上記WHERE条件は、テーブル内のデータを再クラスタリングするための条件又は範囲を指定する。一実施形態では、再クラスタリングは、クラスタリングキーが定義されているテーブルに対してのみ実行可能である。再クラスタリングキーは、明示的に定義され又は自動的に選択されるカラム又はキーを含むことができる(例えば、システムは、データがどのように読み込まれるか、又は最も一般的なクエリの種類に基づいて、日付、場所、及び/又は、idカラムを自動的に選択することができる)。
のテストとして指定したクエリ)及びそのクエリがどのくらいの時間を取るかに対する閾値時間に基づいて、クラスタリングの度合いを判別するようにすることもできる。クラスタリング状態コンポーネント706は、サンプル(example)クエリの実行時間がクエリ
実行長閾値を超えることを判別するようにすることができる。一実施形態では、クラスタリング状態コンポーネント706は、リソースが利用可能な場合に、バックグラウンドプロセスの一部として、テーブルデータのクラスタリングの度合いがクラスタリング閾値を下回っているかどうかを、周期的又は断続的に判別するようにすることができる。
ル再クラスタリングプロセスの一部として実行されるようにすることができる。
がクラスタリング閾値を下回っているかどうかを判別(806)する。データベースサービスマネージャ102が上記クラスタリングの度合いがクラスタリングの閾値を下回っていると判別(806でYES)した場合、データベースサービスマネージャ102は、テーブルの1つ以上のパーティションの再クラスタリング(808)をトリガして、テーブルのクラスタリングの度合いを改善する。再クラスタリング808は、上述したように、マージ/再クラスタリングのためにパーティションが選択されるインクリメンタル再クラスタリングであるようにすることができる。例えば、再クラスタリング808は、テーブルに理想的にクラスタリングされたパーティションをもたらす完全な再クラスタリングが含まれないようにすることができる。データベースサービスマネージャ102が、クラスタリングの度合いがクラスタリングの閾値を下回っていないと判別(806でYES)した場合、データベースサービスマネージャ102は、テーブルへの変更に基づいて1つ以上の新規パーティションを生成(804)し続けることができる。従って、再クラスタリング又はインクリメンタル再クラスタリング手順の犠牲は、テーブル上のクエリを改善するために必要/有用でない限り、回避することができる。
ソル制御装置、キーボード、キーパッド、マイクロフォン、モニタ又は他の表示装置、スピーカ、プリンタ、ネットワークインタフェースカード、モデム、レンズ、CCD又は他の画像キャプチャー装置等を含む。
このアルゴリズムは、追加のデータ構造を使用せずにLSMTのような振る舞いをすることを目的としており、完全に増分動作も可能にする。一実施形態では、このアルゴリズムは、永続的なデータ構造を維持し、複数列のクラスタリングをサポートし、最終的にはテーブルの完全にソート/クラスタリングされたパーティションに収束する。完全にソー
ト/クラスタリングすると、ファイルがパーティションセット内の特定の順序になってい
るわけではありませんが、データを連結してソートされたシーケンスを形成したり、プルーニングが最適であるようにパーティションを配置することができる。このアルゴリズムは、独立したサブタスクにも簡単に分解できる。このアルゴリズムでは、データセットを完全に並べ替える必要はなく、プルーニングは必要以上のパーティションを検出できることを意味する。次の説明では、各列又はパーティションを独自のファイルに格納し、データがクラスタリングされている列に対して多くの操作が実行されるため、「ファイル」及び「パーティション」という用語を区別なく使用する。
アルゴリズムは、ファイル又はパーティションの幅の検索を含む。アルゴリズムの後続の部分では、ファイル又はパーティションの幅が使用される。多次元のキーを使用すると、それを定義するのは扱いにくい場合がある。また、不均一なドメインの場合、アルゴリズムは、必ずしもドメインの一部ではなく、実際の値の分布に関連する幅を必要とする場
合がある。幅を検索するために、少なくとも2つのオプションがある。
files =sort(files, by-EPs-MAX-value)
last_file =files[0]
sequence =[last_file]
for (int i = 1;i < sorted_files.size(); i++) {
if(files[i].min < last_file.max) // ファイルが最後の先行ファイルと重複
continue
last_file =files[i]
sequence.append(last_file)
}
ひとたびパーティションの幅を有したら、それらはNの累乗個のバケットに分類(又はグループ化)されるようにすることができる。例えば、Nを2にすることができる。ここでの直感は、常に同じような幅のパーティションをマージしたいということである。その理由は、同じレベルのものをマージすると、より高いレベルが増加することである。また、後続のステップで有用な作業を行う可能性を高めるために、ファイル又はパーティションをより少ない数のバケット(例えば、4又は16の累乗)にグループ化することもできるということに注意されたい。バケットの数は、いつでもマージされないであろうパーティション(ファイル)の重複の回数にほぼ一致する。そのことは、より少ないバケットが
役に立つことを意味する。同時に、より少ないバケットはまた、幅の異なるパーティションもマージされる可能性があることも意味する。これは、ほぼ同じ幅のパーティションをマージする利点と、少ないバケットに対して少ない作業量との間のバランスである。
アルゴリズムは、マージするファイル又はパーティションの検索を含む。マージの間、並び替えられたパーティションは新しく並び替えられたパーティションにマージされる。マージ候補を見つけるには、各バケット又はグループが最も幅の広いものから始まり、重複している最大N個のパーティションを検索することが含まれる。Nは何でもかまわないし、マージ/インクリメンタルクラスタリングに割り当てられたリソースのバジェットによって異なる場合がある。重複するパーティションの検索は、並び替えられたシーケンスにペアを配置し、重複する最大N個のパーティションを検索することによって実行できる(例えば、[“start”,file.min−val][“end”,file.max−val])。これらのパーティションは、マージされると、次のアルゴリズムの反復で「より狭い」パーティションを形成する。1つのセットが特定されると、バジェットに達するまで追加セットが識別される。バケットに(重複している)パーティションがない場合、アルゴリズムはより「狭い」バケットに移動して、何らかの作業機会を構築するようにすることができることに注意されたい。最初のデフォルトパスが十分な作業を見つけられない場合、これは第2パスのアプローチであるようにすることができる。
1次元のクラスタリングキーを有する簡単なシナリオを使用してみる。記法:[0-7]
は、0から7までの値を持つ単一のパーティションを表わす。開始点-完全に並び替えら
れたシーケンス、及びいくつかの「新規」パーティション。我々のドメインは16進数字であると仮定する。
[0-1][2-3] [4-5] [6-7] [8-9] [A-B] [C-D] [E-F] // 並び替えられたパーティションシーケンス-ノート、パーティションの順序は関係ない
[0-E] [2-F] [1-C] [2-D]// 「幅」が導出される前の新しいパーティション
[0-----------------------------------------E ] - width = 8
[2------------------------------------ F] - width = 7
[1--------------------------------C] - width = 7
[2-------------------------------D] - width = 6
[0-E] + [1-C] => [0-7] , [8-C]
[2-D] + [2-F] => [2-8] , [9-F]
[0-1] [2-3] [4-5] [6-7] [8-9] [A-B] [C-D] [E-F] // 並び替えられたファイル - width = ca.1
[0-7] [8-C] [2-8] [9-F] // 新しいマージされたファイル, width = ca. 4(より小さい値範囲)
[1-E] [1-F] [0-D] [2-F] // 追加的に新しい追加されたファイル, width =ca.8
)からマージするために選択し、新しいパーティション[1-8]+[9-F]と[0-7][8-F]を生成
する。ただし、次のように、重複するパーティションも幅=4(十分なバジェットがある場合)とマージされる。
[0-7]+[2-8]=> [0-4]+[5-8] and [8-C]+[9-F]=>[8-B]+[C-F]
[0-1] [2-3] [4-5] [6-7] [8-9] [A-B] [C-D] [E-F] // 並び替えられたファイル- width = ca.1
[0-4] [5-8] [8-B] [C-F] // 幅4からマージされたファイル、いまそれらは幅2を有
する
[1-8] [9-F] [0-8] [8-F] // 幅8からマージされたファイル、いまそれらは幅4を有
する
以下の実施例は、更なる実施形態に関する。
閾値を超えることを判別することを含む。
変更の前又は後に上記テーブルは理想的にはクラスタリングされていない。上記エーブルは、上記1つ以上の属性に対応する値の範囲内で重複するパーティションのペアが1つも存在しないこと、及び/又は上記1つ以上の属性に対応する属性についてのパーティションの全てのロウが同じ値を含むときに、理想的にクラスタリングされる。
装されるようにすることもできる。例えば、実行可能コードの識別されたコンポーネントは、コンピュータ命令の1つ以上の物理的又は論理的なブロックを構成し、例えば、オブジェクト、プロシージャ、又は関数として編成することができる。それにもかかわらず、識別されたコンポーネントの実行可能ファイルは物理的に一緒に配置される必要はないが、論理的に一緒に結合してコンポーネントを構成し、そのコンポーネントのための指定された目的を達成する別の場所に記憶される異なる命令を含む場合がある
Claims (30)
- コンピュータにより実行されるデータベースデータのクラスタリングのための方法であって、前記方法は、
テーブルのためのテーブルデータを複数のパーティションに記憶することであって、各パーティションが前記テーブルのための前記テーブルデータの一部を含み、前記パーティションは前記テーブル内の1つ以上の属性に基づいて少なくとも部分的にクラスタリングされることと、
前記テーブルへの変更に基づいて1つ以上の新規パーティションを作成することと、
前記1つ以上の新規パーティションを作成した後、前記1つ以上の新規パーティションの少なくとも1つと他のパーティションとの間で1つ以上の属性値が重複することに基づいて前記テーブルのクラスタリングの度合いを判別することであって、前記他のパーティションは前記1つ以上の新規パーティションを作成する前に前記テーブルに既に存在する先のパーティションを含み、前記重複することは前記テーブルのクラスタリングの前記度合いの低下を招く、ことと、
前記テーブルのクラスタリングの前記度合いがクラスタリング閾値を下回っていることを判別することと、
前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することに応答して、前記テーブルの1つ以上のパーティションを再クラスタリングして前記テーブルのクラスタリングの前記度合いを増加させることと、
を備える。 - 請求項1に記載の方法であって、前記テーブルのクラスタリングの前記度合いを判別することは、
いくつのパーティションが、前記テーブルの他のパーティションと前記1つ以上の属性値が重複しているか、
前記テーブルの他のパーティションとの1つ以上のパーティションの前記1つ以上の属性値の重複の度合い、
前記1つ以上の属性値に対していくつのパーティションが重複しているか、
前記パーティションの各個別の深さ、
前記パーティションの深さの分布、及び、
前記パーティションの平均深さであって、前記深さは前記1つ以上の属性に対する特定の属性値について重複するパーティションの数を含む、前記パーティションの平均深さ、
の1つ以上に基づく。 - 請求項1に記載の方法であって、前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することが、前記テーブル上のデータ操作言語(DML)文の量、頻度、若しくは種類、又は前記テーブルに追加された新規データの量を判別することを備える。
- 請求項1に記載の方法であって、前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することが、サンプルクエリ(example query)の実行時間がクエリ実行時間閾値を超えることを判別することを備える。
- 請求項1に記載の方法であって、前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することは、コンパイル中のプルーニングの有効性、及び実行中のフィルタ選択性に基づく。
- 請求項1に記載の方法であって、再クラスタリングは2つ以上のパーティションをマージ候補として選択することを備える。
- 請求項6に記載の方法であって、前記2つ以上のパーティションを前記マージ候補として選択することは、
前記1つ以上の属性に対して重複する値を含む2つ以上のパーティション、
前記2つ以上のパーティションにおける前記値が重複する度合い、
選択されたパーティションの深さ、
選択されたパーティションの分布、
パーティションが再クラスタリングされた回数、
リソースのバジェット、
前記2つ以上のパーティションによってカバーされる前記1つ以上の属性に対応する値の幅、及び、
前記1つ以上の属性に基づいてパーティションが理想的にクラスタリングされているか否か、
の1つ以上に基づいて選択することを備える。 - 請求項6に記載の方法であって、前記2つ以上のパーティションを前記マージ候補として選択することは、
前記1つ以上の属性の値が前記テーブル内のどの他のパーティションとも重複せず、又は、
前記テーブル内のどの他のパーティションとも、前記値の重複が重複閾値よりも多くない、
パーティションを選択しないことを備える。 - 請求項6に記載の方法であって、前記2つ以上のパーティションを前記マージ候補として選択することは、前記1つ以上の属性に対して同一の値を有するロウの値を含むパーティションを選択しないことを備える。
- 請求項1に記載の方法であって、再クラスタリングは、インクリメンタルに前記テーブルのクラスタリングの前記度合いを増加することを備える。
- 請求項1に記載の方法であって、再クラスタリングは、再クラスタリングリソースバジェット、パーティションの数、データサイズ、及び利用可能なコンピューティングリソースの1つ以上に基づいて再クラスタリングすることを備える。
- 請求項1に記載の方法であって、再クラスタリングは、2つ以上のパーティションをマージして増加したクラスタリングを有する1つ以上のパーティションを生成することを備える。
- 請求項1に記載の方法であって、前記テーブルに対する前記変更の前及び後の両方で、前記テーブルは理想的にはクラスタリングされておらず、理想的なクラスタリングは、
前記パーティションが前記1つ以上の属性に対応する値の範囲内で1つ以上の他のパーティションと重複しないことを含むこと、及び、
前記1つ以上の属性の属性についての前記パーティションの全てのロウが同じ値を含むこと、
の1つ以上が前記テーブルの前記パーティションの各々に当てはまることを備える。 - データベースデータのインクリメンタルクラスタリング保守のためのシステムであって、前記システムは、
1つ以上のプロセッサと、
命令を記憶するコンピュータ読取り可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、
テーブルのためのテーブルデータを複数のパーティションに記憶することであって、各パーティションが前記テーブルのための前記テーブルデータの一部を含み、前記パーティションは前記テーブル内の1つ以上の属性に基づいて少なくとも部分的にクラスタリングされることと、
前記テーブルへの変更に基づいて1つ以上の新規パーティションを作成することと、
前記1つ以上の新規パーティションを作成した後、前記1つ以上の新規パーティションの少なくとも1つと他のパーティションとの間で1つ以上の属性値が重複することに基づいて前記テーブルのクラスタリングの度合いを判別することであって、前記他のパーティションは前記1つ以上の新規パーティションを作成する前に前記テーブルに既に存在する先のパーティションを含み、前記重複することは前記テーブルのクラスタリングの前記度合いの低下を招く、ことと、
前記テーブルのクラスタリングの前記度合いがクラスタリング閾値を下回っていることを判別することと、
前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することに応答して、前記テーブルの1つ以上のパーティションを再クラスタリングして前記テーブルのクラスタリングの前記度合いを増加させることと、
を引き起こさせるものと、
を備える。 - 請求項14に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、
いくつのパーティションが、前記テーブルの他のパーティションと前記1つ以上の属性値が重複しているか、
前記テーブルの他のパーティションとの1つ以上のパーティションの前記1つ以上の属性値の重複の度合い、
1つ以上の属性値に対していくつのパーティションが重複しているか、
前記パーティションの各個別の深さ、
前記パーティションの深さの分布、及び、
前記パーティションの平均深さであって、前記深さは前記1つ以上の属性に対する特定の属性値について重複するパーティションの数を含む、前記パーティションの平均深さ、
の1つ以上に基づいて前記テーブルのクラスタリングの前記度合いを判別することを引き起こさせる。 - 請求項14に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、サンプルクエリ(example query)の実行時間がクエリ実行時間閾値を超えることを判別することによって、前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することを引き起こさせる。
- 請求項14に記載のシステムであって、前記コンピュータ読取り可能記憶媒体は、2つ以上のパーティションをマージ候補として選択することによって前記パーティションの再クラスタリングを前記1つ以上のプロセッサに引き起こさせる命令を更に記憶する。
- 請求項17に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、
前記1つ以上の属性に対して重複する値を含む2つ以上のパーティション、
前記2つ以上のパーティションにおける前記値が重複する度合い、
選択されたパーティションの深さ、
選択されたパーティションの分布、
パーティションが再クラスタリングされた回数、
リソースのバジェット、
前記2つ以上のパーティションによってカバーされる前記1つ以上の属性に対応する値の幅、及び、
前記1つ以上の属性に基づいてパーティションが理想的にクラスタリングされているか否か、
の1つ以上に基づいて選択することによって、前記2つ以上のパーティションを前記マージ候補として選択することを引き起こさせる。 - 請求項17に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、
前記1つ以上の属性の値が前記テーブル内のどの他のパーティションとも重複せず、又は、
前記テーブル内のどの他のパーティションとも、前記値の重複が重複閾値よりも多くない、
パーティションを選択せずに、前記2つ以上のパーティションを前記マージ候補として選択することを引き起こさせる。 - 請求項17に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、前記1つ以上の属性に対して同一の値を有するロウの値を含むパーティションを選択せずに、前記2つ以上のパーティションを前記マージ候補として選択することを引き起こさせる。
- 請求項14に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、インクリメンタルに前記テーブルのクラスタリングの前記度合いを増加することによって再クラスタリングさせることを引き起こさせる。
- 請求項14に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、再クラスタリングリソースバジェット、パーティションの数、データサイズ、及び利用可能なコンピューティングリソースの1つ以上に基づいて1つ以上のパーティションを再クラスタリングすることを引き起こさせる。
- 請求項14に記載のシステムであって、前記命令は、前記1つ以上のプロセッサに、2つ以上のパーティションをマージして増加したクラスタリングを有する1つ以上のパーティションを生成することによって再クラスタリングすることを引き起こさせる。
- 請求項14に記載のシステムであって、前記テーブルに対する前記変更の前及び後の両方で、前記テーブルは理想的にはクラスタリングされておらず、理想的なクラスタリングは、
前記パーティションが前記1つ以上の属性に対応する値の範囲内で1つ以上の他のパーティションと重複しないことを含むこと、及び、
前記1つ以上の属性の属性についての前記パーティションの全てのロウが同じ値を含むこと、
の1つ以上が前記テーブルの前記パーティションの各々に当てはまることを備える。 - データベースデータのインクリメンタルクラスタリング保守のためのシステムであって、前記システムは、
テーブルのためのテーブルデータを複数のパーティションに記憶するための手段であって、各パーティションが前記テーブルのための前記テーブルデータの一部を含み、前記パーティションは前記テーブル内の1つ以上の属性に基づいて少なくとも部分的にクラスタリングされるものと、
前記テーブルへの変更に基づいて1つ以上の新規パーティションを作成するための手段と、
前記1つ以上の新規パーティションを作成した後、前記1つ以上の新規パーティションの少なくとも1つと他のパーティションとの間で1つ以上の属性値が重複することに基づいて前記テーブルのクラスタリングの度合いを判別するための手段であって、前記他のパーティションは前記1つ以上の新規パーティションを作成する前に前記テーブルに既に存在する先のパーティションを含み、前記重複することは前記テーブルのクラスタリングの前記度合いの低下を招くものと、
前記テーブルのクラスタリングの前記度合いがクラスタリング閾値を下回っていることを判別するための手段と、
前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別することに応答して、前記テーブルの1つ以上のパーティションを再クラスタリングして前記テーブルのクラスタリングの前記度合いを増加させるための手段と、
を備える。 - 請求項25に記載のシステムであって、前記テーブルのクラスタリングの前記度合いを判別するための前記手段は、
いくつのパーティションが、前記テーブルの他のパーティションと前記1つ以上の属性値が重複しているか、
前記テーブルの他のパーティションとの1つ以上のパーティションの前記1つ以上の属性値の重複の度合い、
1つ以上の属性値に対していくつのパーティションが重複しているか、及び、
前記パーティションの平均深さであって、前記深さは前記1つ以上の属性に対する特定の属性値について重複するパーティションの数を含むこと、
の1つ以上に基づいて前記テーブルのクラスタリングの前記度合いを判別する。 - 請求項25に記載のシステムであって、前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別するための前記手段は、サンプルクエリ(example query)の実行時間がクエリ実行時間閾値を超えることを判別することによって前記テーブルのクラスタリングの前記度合いが前記クラスタリング閾値を下回っていることを判別する。
- 請求項25に記載のシステムであって、再クラスタリングのための前記手段は、2つ以上のパーティションをマージ候補として選択するための手段を備える。
- 請求項25に記載のシステムであって、再クラスタリングのための前記手段は、インクリメンタルに前記テーブルのクラスタリングの前記度合いを増加する。
- 請求項25に記載のシステムであって、前記テーブルに対する前記変更の前及び後の両方で、前記テーブルは理想的にはクラスタリングされておらず、理想的なクラスタリングは、
前記パーティションが前記1つ以上の属性に対応する値の範囲内で1つ以上の他のパーティションと重複しないことを含むこと、又は、
前記1つ以上の属性の属性についての前記パーティションの全てのロウが同じ値を含むこと、
の1つ以上が前記テーブルの前記パーティションの各々に当てはまることを備える。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662383201P | 2016-09-02 | 2016-09-02 | |
US62/383,201 | 2016-09-02 | ||
PCT/US2017/050075 WO2018045372A1 (en) | 2016-09-02 | 2017-09-05 | Incremental clustering maintenance of a table |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019530068A JP2019530068A (ja) | 2019-10-17 |
JP2019530068A5 JP2019530068A5 (ja) | 2020-01-09 |
JP6870071B2 true JP6870071B2 (ja) | 2021-05-12 |
Family
ID=61281332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019511705A Active JP6870071B2 (ja) | 2016-09-02 | 2017-09-05 | テーブルのインクリメンタルクラスタリング保守 |
Country Status (8)
Country | Link |
---|---|
US (4) | US10817540B2 (ja) |
EP (2) | EP3507724A4 (ja) |
JP (1) | JP6870071B2 (ja) |
CN (1) | CN110100242B (ja) |
AU (1) | AU2017321966B2 (ja) |
CA (1) | CA3035445C (ja) |
DE (1) | DE202017007212U1 (ja) |
WO (1) | WO2018045372A1 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817540B2 (en) | 2016-09-02 | 2020-10-27 | Snowflake Inc. | Incremental clustering maintenance of a table |
US10268726B1 (en) * | 2017-04-20 | 2019-04-23 | Amazon Technologies, Inc. | Partition key management for improved throughput |
EP3714367A4 (en) | 2018-03-22 | 2021-01-20 | Snowflake Inc. | INCREMENTAL DEVELOPMENT OF FUNCTION AND CAPTURE OF WORKLOAD IN DATABASE SYSTEMS |
GB201809174D0 (en) * | 2018-06-05 | 2018-07-25 | Swarm64 As | Data processing |
JP6614280B1 (ja) * | 2018-06-05 | 2019-12-04 | 富士通株式会社 | 通信装置および通信方法 |
EP3714372A4 (en) * | 2018-07-06 | 2021-02-24 | Snowflake Inc. | DATA REPLICATION AND DATA FAILURE BACKUP IN DATABASE SYSTEMS |
CN112437916B (zh) * | 2018-07-17 | 2024-08-06 | 雪花公司 | 数据库表的增量群集 |
US11347714B2 (en) * | 2018-11-06 | 2022-05-31 | Snowflake Inc. | Tracking changes in database data |
US11086840B2 (en) * | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US10977278B2 (en) * | 2019-02-22 | 2021-04-13 | Snowflake Inc. | Multi-level metadata in database systems |
US10909121B2 (en) * | 2019-02-22 | 2021-02-02 | Snowflake Inc. | Storing multi-level metadata in database systems |
US11138213B2 (en) | 2019-04-10 | 2021-10-05 | Snowflake Inc. | Internal resource provisioning in database systems |
US11163807B2 (en) * | 2019-06-05 | 2021-11-02 | Premier Healthcare Solutions, Inc. | System for data structure clustering based on variation in data attribute performance |
US11308090B2 (en) | 2019-12-26 | 2022-04-19 | Snowflake Inc. | Pruning index to support semi-structured data types |
US12050605B2 (en) | 2019-12-26 | 2024-07-30 | Snowflake Inc. | Indexed geospatial predicate search |
US11567939B2 (en) | 2019-12-26 | 2023-01-31 | Snowflake Inc. | Lazy reassembling of semi-structured data |
US10997179B1 (en) | 2019-12-26 | 2021-05-04 | Snowflake Inc. | Pruning index for optimization of pattern matching queries |
US11016975B1 (en) | 2019-12-26 | 2021-05-25 | Snowflake Inc. | Scan set pruning for pattern matching queries |
US10769150B1 (en) | 2019-12-26 | 2020-09-08 | Snowflake Inc. | Pruning indexes to enhance database query processing |
US11681708B2 (en) | 2019-12-26 | 2023-06-20 | Snowflake Inc. | Indexed regular expression search with N-grams |
US11372860B2 (en) | 2019-12-26 | 2022-06-28 | Snowflake Inc. | Processing techniques for queries where predicate values are unknown until runtime |
US11436261B2 (en) | 2020-04-14 | 2022-09-06 | Google Llc | Shuffle-less reclustering of clustered tables |
US11423049B2 (en) * | 2020-05-11 | 2022-08-23 | Google Llc | Execution-time dynamic range partitioning transformations |
US11537557B2 (en) * | 2020-05-22 | 2022-12-27 | Microsoft Technology Licensing, Llc | Incrementally improving clustering of cross partition data in a distributed data system |
US10997210B1 (en) * | 2020-05-29 | 2021-05-04 | Snowflake Inc. | System for implementing sub-database replication |
CN113806358B (zh) | 2020-05-29 | 2023-02-17 | 斯诺弗雷克公司 | 实现子表复制的方法和系统以及计算机可读存储介质 |
EP4066201A4 (en) | 2020-10-09 | 2022-12-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | ADMINISTRATION OF BLOCKCHAIN-BASED TRUSTED TRANSACTION SERVICES |
CN114008654A (zh) | 2020-10-09 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 管理基于区块链的可信交易服务 |
US11615095B2 (en) | 2020-10-30 | 2023-03-28 | Snowflake Inc. | Automatic pruning cutoff in a database system |
KR102450101B1 (ko) * | 2020-11-27 | 2022-10-05 | 한국전력공사 | 시계열 데이터 관리 장치 및 방법 |
US11868346B2 (en) * | 2020-12-30 | 2024-01-09 | Oracle International Corporation | Automated linear clustering recommendation for database zone maps |
US11822582B2 (en) * | 2022-01-20 | 2023-11-21 | Snowflake Inc. | Metadata clustering |
US11593345B1 (en) * | 2022-01-21 | 2023-02-28 | Snowflake Inc. | Accelerating change data capture determination using row bitsets |
US11941029B2 (en) | 2022-02-03 | 2024-03-26 | Bank Of America Corporation | Automatic extension of database partitions |
US20240069863A1 (en) * | 2022-08-25 | 2024-02-29 | Databricks, Inc. | Efficient merge of tabular data using a processing filter |
US20240070155A1 (en) * | 2022-08-25 | 2024-02-29 | Databricks, Inc. | Efficient merge of tabular data using mixing |
US11907263B1 (en) | 2022-10-11 | 2024-02-20 | Oracle International Corporation | Automated interleaved clustering recommendation for database zone maps |
CN115755954B (zh) * | 2022-10-28 | 2023-07-25 | 佳源科技股份有限公司 | 巡检路径规划方法、系统、计算机设备及存储介质 |
US11880369B1 (en) | 2022-11-21 | 2024-01-23 | Snowflake Inc. | Pruning data based on state of top K operator |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448727A (en) * | 1991-04-30 | 1995-09-05 | Hewlett-Packard Company | Domain based partitioning and reclustering of relations in object-oriented relational database management systems |
US5442778A (en) * | 1991-11-12 | 1995-08-15 | Xerox Corporation | Scatter-gather: a cluster-based method and apparatus for browsing large document collections |
CA2124094C (en) * | 1994-05-20 | 1999-07-20 | K. Bernhard Schiefer | Method and apparatus for optimizing data retrieval using index scanning |
CA2150745C (en) * | 1995-06-01 | 2001-05-01 | Chaitanya K. Baru | Method and apparatus for implementing partial declustering in a parallel database system |
US5832182A (en) * | 1996-04-24 | 1998-11-03 | Wisconsin Alumni Research Foundation | Method and system for data clustering for very large databases |
US5960431A (en) * | 1996-12-19 | 1999-09-28 | International Business Machines Corporation | Method and apparatus for adding data storage bins to a stored computer database while minimizing movement of data and balancing data distribution |
US6295367B1 (en) * | 1997-06-19 | 2001-09-25 | Emtera Corporation | System and method for tracking movement of objects in a scene using correspondence graphs |
US6449612B1 (en) * | 1998-03-17 | 2002-09-10 | Microsoft Corporation | Varying cluster number in a scalable clustering system for use with large databases |
US6269375B1 (en) * | 1998-04-01 | 2001-07-31 | International Business Machines Corporation | Rebalancing partitioned data |
US6185666B1 (en) * | 1999-09-11 | 2001-02-06 | Powerquest Corporation | Merging computer partitions |
US6931390B1 (en) | 2001-02-27 | 2005-08-16 | Oracle International Corporation | Method and mechanism for database partitioning |
US6785684B2 (en) * | 2001-03-27 | 2004-08-31 | International Business Machines Corporation | Apparatus and method for determining clustering factor in a database using block level sampling |
US6748393B1 (en) * | 2001-04-20 | 2004-06-08 | Microsoft Corporation | Transparent updates to partitioned views in a federated database system |
US7080081B2 (en) * | 2002-04-15 | 2006-07-18 | International Business Machines Corporation | Multidimensional data clustering scheme for query processing and maintenance in relational databases |
US7295970B1 (en) * | 2002-08-29 | 2007-11-13 | At&T Corp | Unsupervised speaker segmentation of multi-speaker speech data |
US7299239B1 (en) * | 2002-12-02 | 2007-11-20 | Oracle International Corporation | Methods for partitioning an object |
US7739313B2 (en) * | 2003-05-30 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Method and system for finding conjunctive clusters |
US7805411B2 (en) * | 2003-09-06 | 2010-09-28 | Oracle International Corporation | Auto-tuning SQL statements |
US20050223046A1 (en) * | 2004-04-06 | 2005-10-06 | Smith Rick A | Method and system for balancing and scheduling database maintenance tasks |
US7447679B2 (en) * | 2004-05-07 | 2008-11-04 | Oracle International Corporation | Optimizing execution of a database query by using the partitioning schema of a partitioned object to select a subset of partitions from another partitioned object |
US7483873B2 (en) * | 2005-01-18 | 2009-01-27 | International Business Machines Corporation | Method, system and article of manufacture for improving execution efficiency of a database workload |
US8126870B2 (en) * | 2005-03-28 | 2012-02-28 | Sybase, Inc. | System and methodology for parallel query optimization using semantic-based partitioning |
CN101326524A (zh) * | 2006-01-06 | 2008-12-17 | 索尼株式会社 | 信息处理装置、方法和程序 |
US7885791B2 (en) * | 2007-02-21 | 2011-02-08 | British Telecommunications Public Limited Company | Method for capturing local and evolving clusters |
US8484220B2 (en) * | 2007-03-06 | 2013-07-09 | Mcafee, Inc. | Clustered index with differentiated subfields |
US20080228783A1 (en) * | 2007-03-14 | 2008-09-18 | Dawn Moffat | Data Partitioning Systems |
US7797347B2 (en) * | 2007-03-21 | 2010-09-14 | International Business Machines Corporation | Workload aware checking of database reorganization |
AU2008201035A1 (en) * | 2007-04-13 | 2008-10-30 | Acei Ab | A partition management system |
US9853986B2 (en) * | 2007-12-28 | 2017-12-26 | Entit Software Llc | Clustering event data by multiple time dimensions |
WO2009141818A1 (en) | 2008-05-19 | 2009-11-26 | Technion Research & Development Foundation Ltd. | Apparatus and method for incremental physical data clustering |
WO2009153793A1 (en) * | 2008-06-20 | 2009-12-23 | Technion Research & Development Foundation Ltd. | Incremental clustering of indexed xml data |
US8078645B2 (en) * | 2008-07-09 | 2011-12-13 | Yahoo! Inc. | Operations on multi-level nested data structure |
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
KR101003842B1 (ko) * | 2008-10-24 | 2010-12-23 | 연세대학교 산학협력단 | 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템 |
US20100153431A1 (en) * | 2008-12-11 | 2010-06-17 | Louis Burger | Alert triggered statistics collections |
US9298761B2 (en) | 2009-04-30 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Adaptive merging in database indexes |
US8706727B2 (en) * | 2009-06-19 | 2014-04-22 | Sybase, Inc. | Data compression for reducing storage requirements in a database system |
US9152734B2 (en) * | 2010-05-24 | 2015-10-06 | Iii Holdings 2, Llc | Systems and methods for identifying intersections using content metadata |
JP5542530B2 (ja) * | 2010-06-04 | 2014-07-09 | 株式会社日立ソリューションズ | サンプリング位置決定装置 |
US8805784B2 (en) * | 2010-10-28 | 2014-08-12 | Microsoft Corporation | Partitioning online databases |
JP5825790B2 (ja) * | 2011-01-11 | 2015-12-02 | 日本ソフトウェアマネジメント株式会社 | 核酸情報処理装置およびその処理方法 |
US8903823B1 (en) * | 2011-05-25 | 2014-12-02 | Cadence Design Systems, Inc. | Coverage-based bug clustering |
JP2013080403A (ja) * | 2011-10-04 | 2013-05-02 | Nippon Telegr & Teleph Corp <Ntt> | テーブルパーティション分割装置及び方法及びプログラム |
US8918288B2 (en) * | 2011-10-14 | 2014-12-23 | Precision Energy Services, Inc. | Clustering process for analyzing pressure gradient data |
EP2780835B1 (en) * | 2011-11-15 | 2019-08-07 | Ab Initio Technology LLC | Data clustering, segmentation, and parallelization |
US8676772B2 (en) * | 2011-12-09 | 2014-03-18 | Telduráðgevin Sp/f | Systems and methods for improving database performance |
US8667010B2 (en) | 2012-01-27 | 2014-03-04 | Microsfot Corporation | Database table partitioning allowing overlaps used in full text query |
US9852010B2 (en) * | 2012-02-03 | 2017-12-26 | Microsoft Technology Licensing, Llc | Decoupling partitioning for scalability |
US9146988B2 (en) * | 2012-06-05 | 2015-09-29 | King Fahd University Of Petroleum And Minerals | Hierarchal clustering method for large XML data |
US9680915B2 (en) * | 2012-09-12 | 2017-06-13 | Infosys Limited | Methods for clustering networks based on topology discovery and devices thereof |
US9430550B2 (en) * | 2012-09-28 | 2016-08-30 | Oracle International Corporation | Clustering a table in a relational database management system |
US9208257B2 (en) * | 2013-03-15 | 2015-12-08 | Oracle International Corporation | Partitioning a graph by iteratively excluding edges |
EP2804114A1 (en) * | 2013-05-16 | 2014-11-19 | Fujitsu Limited | Database controller, method, and program for managing a distributed data store |
US9489443B1 (en) * | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
WO2014197997A1 (en) * | 2013-06-14 | 2014-12-18 | University Of Guelph | Systems, methods, and computer program products for merging a new nucleotide or amino acid sequence into operational taxonomic units |
US9558221B2 (en) | 2013-11-13 | 2017-01-31 | Sybase, Inc. | Multi-pass, parallel merge for partitioned intermediate pages |
US9639437B2 (en) * | 2013-12-13 | 2017-05-02 | Netapp, Inc. | Techniques to manage non-disruptive SAN availability in a partitioned cluster |
GB2521197A (en) * | 2013-12-13 | 2015-06-17 | Ibm | Incremental and collocated redistribution for expansion of an online shared nothing database |
US10565603B2 (en) * | 2014-01-31 | 2020-02-18 | Open Text Corporation | Segments of contacts |
US20160299961A1 (en) * | 2014-02-04 | 2016-10-13 | David Allen Olsen | System and method for grouping segments of data sequences into clusters |
US10325032B2 (en) | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
US10002148B2 (en) | 2014-07-22 | 2018-06-19 | Oracle International Corporation | Memory-aware joins based in a database cluster |
US10067969B2 (en) * | 2015-05-29 | 2018-09-04 | Nuodb, Inc. | Table partitioning within distributed database systems |
JP6590606B2 (ja) * | 2015-09-11 | 2019-10-16 | キヤノン株式会社 | 画像処理装置、画像処理方法、プログラム |
US10108691B2 (en) * | 2015-09-28 | 2018-10-23 | Memsql, Inc. | Atomic clustering operations for managing a partitioned cluster online |
US10354188B2 (en) * | 2016-08-02 | 2019-07-16 | Microsoft Technology Licensing, Llc | Extracting facts from unstructured information |
US10061841B2 (en) * | 2015-10-21 | 2018-08-28 | International Business Machines Corporation | Fast path traversal in a relational database-based graph structure |
US11176206B2 (en) * | 2015-12-01 | 2021-11-16 | International Business Machines Corporation | Incremental generation of models with dynamic clustering |
WO2017168578A1 (ja) | 2016-03-29 | 2017-10-05 | 株式会社日立製作所 | データ処理システム及びデータ処理方法 |
US10817540B2 (en) | 2016-09-02 | 2020-10-27 | Snowflake Inc. | Incremental clustering maintenance of a table |
-
2017
- 2017-09-01 US US15/694,436 patent/US10817540B2/en active Active
- 2017-09-05 CA CA3035445A patent/CA3035445C/en active Active
- 2017-09-05 AU AU2017321966A patent/AU2017321966B2/en active Active
- 2017-09-05 WO PCT/US2017/050075 patent/WO2018045372A1/en unknown
- 2017-09-05 EP EP17847680.0A patent/EP3507724A4/en not_active Ceased
- 2017-09-05 DE DE202017007212.2U patent/DE202017007212U1/de active Active
- 2017-09-05 CN CN201780067721.6A patent/CN110100242B/zh active Active
- 2017-09-05 EP EP23194312.7A patent/EP4280075A1/en active Pending
- 2017-09-05 JP JP2019511705A patent/JP6870071B2/ja active Active
-
2020
- 2020-09-24 US US17/030,565 patent/US10997215B2/en active Active
- 2020-09-24 US US17/030,549 patent/US11100142B2/en active Active
-
2021
- 2021-03-31 US US17/219,609 patent/US11106704B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
DE202017007212U1 (de) | 2020-02-06 |
US11106704B2 (en) | 2021-08-31 |
US20210019335A1 (en) | 2021-01-21 |
EP4280075A1 (en) | 2023-11-22 |
US10817540B2 (en) | 2020-10-27 |
WO2018045372A1 (en) | 2018-03-08 |
US20180068008A1 (en) | 2018-03-08 |
CN110100242B (zh) | 2024-03-12 |
JP2019530068A (ja) | 2019-10-17 |
CN110100242A (zh) | 2019-08-06 |
US20210216574A1 (en) | 2021-07-15 |
AU2017321966A1 (en) | 2019-03-28 |
EP3507724A4 (en) | 2020-04-08 |
CA3035445C (en) | 2023-08-22 |
AU2017321966B2 (en) | 2021-01-28 |
CA3035445A1 (en) | 2018-03-08 |
US11100142B2 (en) | 2021-08-24 |
US20210019336A1 (en) | 2021-01-21 |
EP3507724A1 (en) | 2019-07-10 |
US10997215B2 (en) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6870071B2 (ja) | テーブルのインクリメンタルクラスタリング保守 | |
Nathan et al. | Learning multi-dimensional indexes | |
US11194780B2 (en) | Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps | |
US11256852B2 (en) | Converting portions of documents between structured and unstructured data formats to improve computing efficiency and schema flexibility | |
US11494337B2 (en) | Data pruning based on metadata | |
US20170161308A1 (en) | Metadump Spatial Database System | |
Theocharidis et al. | SRX: efficient management of spatial RDF data | |
JP2013080403A (ja) | テーブルパーティション分割装置及び方法及びプログラム | |
Kim et al. | Optimally leveraging density and locality to support limit queries | |
Lin et al. | A Unified Graph Framework for Storage-Compute Coupled Cluster and High-Density Computing Cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191121 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191121 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20191121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210226 |
|
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: 20210323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210414 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6870071 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |