JP2023538865A - 暗黙のデータ特徴に基づく動的なパフォーマンスチューニング - Google Patents

暗黙のデータ特徴に基づく動的なパフォーマンスチューニング Download PDF

Info

Publication number
JP2023538865A
JP2023538865A JP2023509827A JP2023509827A JP2023538865A JP 2023538865 A JP2023538865 A JP 2023538865A JP 2023509827 A JP2023509827 A JP 2023509827A JP 2023509827 A JP2023509827 A JP 2023509827A JP 2023538865 A JP2023538865 A JP 2023538865A
Authority
JP
Japan
Prior art keywords
data
data set
storage configuration
frequency
selecting
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.)
Pending
Application number
JP2023509827A
Other languages
English (en)
Other versions
JPWO2022035443A5 (ja
Inventor
ポスナー,ジョセフ・マーク
クニセッティ,スニル・クマール
カマス,モハン
カバンザス,ニコラス
バットカル,サチン
トローシン,セルゲイ
サーケル,スジャイ
ゴビンダラジャプラム,シバクマール・スブラマニアン
クリシュナムルティ,ビジャヤラクシュミ
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/992,819 external-priority patent/US11573962B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2023538865A publication Critical patent/JP2023538865A/ja
Publication of JPWO2022035443A5 publication Critical patent/JPWO2022035443A5/ja
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ特徴に基づいてシステム性能を向上させるための技術が開示される。システムは、第1のデータセットに対する更新を第1の頻度で受信し得る。上記システムは、第1の頻度に基づいて第1のデータセットを格納するための第1のストレージ構成を複数のストレージ構成から選択し、第1のストレージ構成に従って第1のデータセットを格納する。上記システムはさらに、第2のデータセットに対する更新を第2の頻度で受信し得る。上記システムは、第2の頻度に基づいて第2のデータセットを格納するための第2のストレージ構成を複数のストレージ構成から選択し、第2のストレージ構成に従って第2のデータセットを格納する。第2のストレージ構成は、第1のストレージ構成とは異なっている。

Description

技術分野
本開示は、データアナリティクスに関する。特に、本開示は、データ特徴に基づいてシステム性能を向上させるための技術に関する。
背景
モノのインターネット(IoT:Internet of Things)デバイスは、3つの異なるカテゴリのデータ、すなわち識別子データ、ユースケースデータおよびランタイムデータを含むデータセットを生成する。当該データは、IoTデバイスによって生成される。
識別子データは、データを生成するデバイスの、人間が読み取ることができるおよび/または人間が理解することができる特徴を含み得る。特に、識別子データは、デバイス名、シリアル番号、購入データおよび同様の特徴などの側面を含み得る。識別子データは、データを生成するデバイスの多くの異なる識別子を含み得る。一般に、識別子データは、一定のままであるかまたはごく稀にしか変化しないデータを含む。識別子データは、システムの中で最低のカーディナリティ(たとえば、最少の異なるフィールドまたはフィールドの組み合わせ)を有している。ユースケースデータは、一般に、データを提供するデバイスのさまざまな使い方に関するデータである。たとえば、サーモスタットの場合、ユースケースデータは、「加熱」または「冷却」を含み得る。識別子データのように、ユースケースデータは、一般に、1つまたは複数の文字列として表される。ランタイムデータは、フィールドで使用される、デバイスによって測定される情報を含み得る。一例として、サーモスタットの場合、ランタイムデータは、温度測定値と、温度が記録された時刻を示すタイムスタンプとを含み得る。ランタイムデータは、一般に、データの、往々にして桁違いに最大のカテゴリである。
このセクションに記載されているアプローチは、求められるアプローチであるが、必ずしも以前に構想されたり追求されたりしたアプローチではない。したがって、別段の指示がない限り、このセクションに記載されているアプローチはいずれも、単にこのセクションに含まれているという理由で先行技術となり得ると想定されるべきではない。
実施形態は、限定としてではなく例として添付の図面の図に示されている。なお、本開示における「ある」または「1つの」実施形態への言及は、必ずしも同一の実施形態を指すわけではなく、少なくとも1つを意味する。
1つまたは複数の実施形態に係る、システムを示す図である。 1つまたは複数の実施形態に係る、データ特徴に基づいてシステム性能を向上させるための例示的な動作セットを示す図である。 データ特徴に基づいてシステム性能を向上させるための例示的なシステムを示す図である。 データ特徴に基づいてシステム性能を向上させるための例示的なシステムを示す図である。 1つまたは複数の実施形態に係る、コンピュータシステムを示すブロック図である。
詳細な説明
以下の説明では、理解の徹底を期すために、多数の具体的な詳細が説明の目的で記載されている。これらの具体的な詳細がなくても、1つまたは複数の実施形態を実施することができる。一実施形態に記載されている特徴は、異なる実施形態に記載されている特徴と組み合わせられてもよい。いくつかの例では、本発明を不必要に曖昧にしないようにするために、周知の構造およびデバイスは、ブロック図形式を参照して記載される。
1.全体の概要
2.アーキテクチャの概要
3.データ特徴に基づくシステム性能の向上
4.例示的な実施形態
5.その他、拡張
6.ハードウェアの概要
1.全体の概要
1つまたは複数の実施形態は、データ特徴に基づくパフォーマンスチューニングのためのシステムを含む。ビッグデータシステムのユーザは、異種のストレージ機構を使用する場合があり、これらの異種のストレージ機構は、インデックス、行数、データカーディナリティ統計および同様のツールのような一般的に使用される特徴を提供しないストレージシステムによってバックアップされるという理由、またはストレージシステムの異種的性質がクロスストレージ最適化を妨げるという理由から、従来のコストベースのクエリチューニングをサポートしない。しかし、時系列ベースのデータでは、データの固有の側面、ストレージパターン、およびクエリ自体に基づくデータの暗黙の側面が、推定されたパターンを推論してクエリの実行を最適化することを手助けするのに使用され得る。データソース同士がどのように関連付けられるかについてのユーザ定義のメタデータは、各システムにおいてどのような種類のデータが格納されるかについての見識を提供し、このメタデータは、格納されたデータについての欠けている統計情報を推論するのに使用され得る。同様に、特定のデータソースについての何らかの情報が分かると、他のデータソースの特徴を想定することができる。
実施形態において、システムは、データをグループ分けすることによって、どのようにデータを格納してアクセスするかを決定し得る。たとえば、1つまたは複数のモノのインターネット(IoT)デバイスからのデータを処理する場合、システムは、データを、モノのインターネットのデータの特徴であると考えるデータの3つのファミリのうちの1つにグループ分けし得る。システムは、どのデータが各ファミリにグループ分けされたかについての情報を使用して、どのデータが他のファミリに含まれているべきかについて想定し、それに応じて格納および検索プロセスを調整し得る。
モノのインターネットのデータで使用されるデータの3つのファミリは、たとえば、識別子データ、ユースケースデータおよびランタイムデータであり得る。これらのデータのファミリが効率的で定義可能な分類を可能にするという理由、およびこのような分類がひいてはユースケースの推定を可能にするという理由から、システムはこれらのデータのファミリを使用し得る。
データセット内のデータフィールドは、データの特徴に基づいてグループ分けすることができる。特に、データフィールドは、カーディナリティ(たとえば、データフィールド内の項目数)および/または更新頻度(たとえば、フィールド内のデータが更新される頻度)などの、当該フィールドに格納されたデータの1つまたは複数の特徴に基づいてカテゴリ分けすることができる。
本明細書に記載される、および/または、特許請求の範囲に記載される1つまたは複数の実施形態は、この全体の概要のセクションに含まれなくてもよい。
2.アーキテクチャの概要
図1は、1つまたは複数の実施形態に係る、システム100を示す図である。図1に示されるように、システム100は、パフォーマンスチューニングエンジン102と、ユーザインターフェイス114と、1つまたは複数の外部データソース118と、データリポジトリ120と、そのさまざまなコンポーネントとを含む。1つまたは複数の実施形態において、システム100は、図1に示されるコンポーネントよりも多くのコンポーネントまたは少ないコンポーネントを含んでいてもよい。図1に示されるコンポーネントは、互いにローカルであってもよく、または互いにリモートであってもよい。図1に示されるコンポーネントは、ソフトウェアおよび/またはハードウェアで実現されてもよい。各コンポーネントは、複数のアプリケーションおよび/またはマシンに分散されてもよい。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンにまとめられてもよい。1つのコンポーネントに関して記載される動作は、代わりに別のコンポーネントによって実行されてもよい。
1つまたは複数の実施形態において、ユーザインターフェイス114は、ユーザとインターフェイス作成エンジン102との間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを指す。ユーザインターフェイス114は、仕事および/または私的活動のためにインターフェイス(たとえば、ダッシュボードインターフェイス)にアクセスするユーザによって使用され得る。ユーザインターフェイス114は、モニタ、テレビ、プロジェクタなどを含むディスプレイ116などの、ビジュアルメディアを表示するための1つまたは複数のデバイスに関連付けられ得る。ユーザインターフェイス114は、ユーザインターフェイス要素をレンダリングして、ユーザインターフェイス要素を介して入力を受信する。インターフェイスの例としては、グラフィカルユーザインターフェイス(GUI:Graphical User Interface)、コマンドラインインターフェイス(CLI:Command Line Interface)、ハプティックインターフェイスおよび音声コマンドインターフェイスが挙げられる。ユーザインターフェイス要素の例としては、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日付および時刻セレクタ、コマンドライン、スライダ、ページおよび書式が挙げられる。
一実施形態において、ユーザインターフェイス114の異なるコンポーネントは、異なる言語で指定される。ユーザインターフェイス要素の挙動は、Java(登録商標)Scriptなどの動的プログラミング言語で指定される。ユーザインターフェイス要素の内容は、ハイパーテキストマークアップ言語(HTML:Hypertext Markup Language)またはXMLユーザインターフェイス言語(XUL:XML User Interface Language)などのマークアップ言語で指定される。ユーザインターフェイス要素のレイアウトは、カスケーディングスタイルシート(CSS:Cascading Style Sheet)などのスタイルシート言語で指定される。代替的に、ユーザインターフェイス114は、Java、CまたはC++などの1つまたは複数の他の言語で指定される。
1つまたは複数の実施形態において、パフォーマンスチューニングエンジン102は、暗黙のデータ特徴に基づく動的なパフォーマンスチューニングのための、本明細書に記載されている動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指す。暗黙のデータ特徴に基づく動的なパフォーマンスチューニングのための動作の例については、図2を参照して以下で説明する。
一実施形態において、パフォーマンスチューニングエンジン102は、データカテゴリ分けコンポーネント104を含む。データカテゴリ分けコンポーネント104は、ユーザからの入力を認識するための、(引用によって援用されるような動作を含む)本明細書に記載されている動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指し得る。
一実施形態において、パフォーマンスチューニングエンジン102は、カテゴリ分析コンポーネント106を含む。カテゴリ分析コンポーネント106は、クエリ提案の生成および/または識別を実行するように構成されたハードウェアおよび/またはソフトウェアを指し得る。
一実施形態において、パフォーマンスチューニングエンジン102は、ストレージ構成マネージャ106を含む。ストレージ構成マネージャ106は、選択されたクエリのうちの1つの選択を実行するように構成されたハードウェアおよび/またはソフトウェアを指し得る。
一実施形態において、パフォーマンスチューニングエンジン102の1つまたは複数のコンポーネントは、機械学習エンジン110を使用する。機械学習は、変数入力を有する問題を解くための、コンピュータによって実行される、ユーザから独立したプロセスを処理する人工知能の分野におけるさまざまな技術を含む。
いくつかの実施形態において、機械学習エンジン110は、1つまたは複数の動作を実行するように機械学習モデル112を訓練する。特に、機械学習エンジン110は、データセットの1つまたは複数のレコードを入力として受信してこれらの1つまたは複数のレコードを1つまたは複数のデータフィールドに分割するように機械学習モデル112を訓練し得る。1つまたは複数の機械学習エンジン110は、機械学習モデル112に、各データフィールドに関連付けられた1つまたは複数の特徴を判断して、これらの1つまたは複数の特徴に基づいてデータフィールドのストレージ構成を選択するようにさせ得る。
機械学習モデル112の訓練は、訓練データを使用して、機械学習モデル112への1つまたは複数の入力が与えられた状態で対応する出力を計算する機能を生成する。少なくともいくつかの実施形態において、機械学習モデル112は、二段階プロセスを含み得るので、モデルを出力するアルゴリズムにデータが入力され、このモデルにデータが送り込まれて出力を生成する。この出力は、事前の機械学習に基づく予測に対応し得る。一実施形態において、この出力は、提供された入力に割り当てられたラベル、分類および/またはカテゴリ分けを含む。機械学習モデル112は、所望の動作(たとえば、入力のラベル付け、分類および/またはカテゴリ分け)を実行するための学習済みモデルに対応する。パフォーマンスチューニングエンジン102は、さまざまな目的で複数の機械学習エンジン110および/または複数の機械学習モデル112を使用し得る。
一実施形態において、機械学習エンジン110は、教師あり学習、半教師あり学習、教師なし学習、強化学習および/または別の訓練方法、またはそれらの組み合わせを使用し得る。教師あり学習では、ラベル付き訓練データは、各入力が監視信号とも称される所望の出力(たとえば、ラベル、分類および/またはカテゴリ分け)でラベル付けされた入力/出力対を含む。半教師あり学習では、いくつかの入力は監視信号に関連付けられ、他の入力は監視信号に関連付けられない。教師なし学習では、訓練データは、監視信号を含まない。強化学習は、機械学習エンジン110が特定の問題を解こうとする(たとえば、1つまたは複数の予め規定された性能基準に従って特定のシナリオにおいて性能を最適化しようとする)過程で正および/または負の強化を受信するフィードバックシステムを使用する。一実施形態において、機械学習エンジン110は、最初に教師あり学習を使用して機械学習モデル112を訓練し、次いで教師なし学習を使用して継続的に機械学習モデル112を更新する。
一実施形態において、機械学習エンジン110は、入力をラベル付け、分類および/またはカテゴリ分けするのに多くの異なる技術を使用し得る。機械学習エンジン110は、入力を、これらの入力の1つまたは複数の特性(「特徴」)を説明する特徴ベクトルに変換し得る。機械学習エンジン110は、これらの特徴ベクトルに基づいて入力をラベル付け、分類および/またはカテゴリ分けし得る。代替的にまたは追加的に、機械学習エンジン110は、入力における共通性を識別するのにクラスタリング(クラスタ分析とも称される)を使用してもよい。機械学習エンジン110は、それらの共通性に基づいて入力をグループ分け(すなわち、クラスタ化)してもよい。機械学習エンジン110は、階層的クラスタリング、k平均法クラスタリングおよび/または別のクラスタリング方法、またはそれらの組み合わせを使用してもよい。一実施形態において、機械学習エンジン110は、人工ニューラルネットワークを含む。人工ニューラルネットワークは、複数のノード(人工ニューロンとも称される)と、ノード間のエッジとを含む。エッジは、対応する重みに関連付けられ得て、これらの重みは、機械学習が進展するにつれて機械学習エンジン110が調整する、ノード間の接続の強さを表す。代替的にまたは追加的に、機械学習エンジン110は、サポートベクターマシンを含んでいてもよい。サポートベクターマシンは、入力をベクトルとして表す。機械学習エンジン110は、これらのベクトルに基づいて入力をラベル付け、分類および/またはカテゴリ分けしてもよい。代替的にまたは追加的に、機械学習エンジン110は、入力をラベル付け、分類および/またはカテゴリ分けするのに単純ベイズ分類器を使用してもよい。代替的にまたは追加的に、特定の入力が与えられた状態で、機械学習モデルは、この与えられた入力に対する出力を予測するのに決定木を適用してもよい。代替的にまたは追加的に、機械学習エンジン110は、固定された相互排他的なオプションセットの中の入力をラベル付け、分類および/またはカテゴリ分けすることが不可能または非現実的である状況において、ファジィ論理を適用してもよい。上記の機械学習モデル112および技術は、例示の目的でのみ記載されており、1つまたは複数の実施形態を限定するものとして解釈されるべきではない。
一実施形態において、機械学習エンジン110はさまざまな入力を機械学習モデル112に適用するので、対応する出力は必ずしも正確であるとは限らない。一例として、機械学習エンジン110は、教師あり学習を使用して機械学習モデル112を訓練し得る。機械学習モデル112を訓練した後、後続の入力が、ラベル付き訓練データに含まれていた入力と同一であって、出力が訓練データの中の監視信号と同一である場合には、出力は確実に正確である。入力が、ラベル付き訓練データに含まれていた入力とは異なっている場合、機械学習エンジン110は、不正確であるかまたは正確であることが不確実である対応する出力を生成し得る。与えられた入力に対する特定の出力を生成することに加えて、機械学習エンジン110は、出力の精度の点での信頼度(または、その欠如)を表すインジケータを生成するように構成され得る。信頼度インジケータは、数値スコア、ブール値、および/または、出力の精度の点での信頼度(または、その欠如)に対応するその他の種類のインジケータを含み得る。
実施形態において、機械学習モデルは、異常検出に使用されてもよい。異常検出技術の3つの広範なカテゴリが存在する。教師なし異常検出技術は、ラベル無しテストデータセットにおける異常を検出し、これは、データセットの残りの部分に最もフィットしないと思われるインスタンスを探すことによってデータセット内のインスタンスの大半が正常であるという想定の下で行われる。教師あり異常検出技術は、「正常」としてラベル付けされた第1のデータセットと、「異常」としてラベル付けされた第2のデータセットとを訓練入力として提供し、これらの第1および第2のデータセットを使用して分類器を訓練して、ラベル無し入力が「正常」としてラベル付けされるべきか「異常」としてラベル付けされるべきであるかを判断し得る。半教師あり異常検出技術は、所与の正常な訓練データセットから正常な挙動を表すモデルを構築し、次いで、このモデルによってテストインスタンスが生成される見込みをテストする。
一実施形態において、パフォーマンスチューニングエンジン102は、1つまたは複数の外部データソース118からデータを受信するように構成されている。外部データソース118は、パフォーマンスチューニングエンジン102から独立して動作するハードウェアおよび/またはソフトウェアを指す。たとえば、外部データソース118のハードウェアおよび/またはソフトウェアは、クエリ提案エンジンを制御するエンティティとは異なるエンティティ(たとえば、異なる企業または他の種類の組織)の制御下にあってもよい。外部データソース118は、1つまたは複数のモノのインターネット(IoT)デバイスに関連付けられたデータを供給し得る。
一実施形態において、パフォーマンスチューニングエンジン102は、特定の外部データソース118に対してユーザが提供したユーザ資格情報を使用して、外部データソース118のアプリケーションプログラミングインターフェイス(API)を介してデータを「引き込む」ことによって、外部データソース118からデータを検索するように構成されている。代替的にまたは追加的に、外部データソース118は、アクセスキー、パスワード、および/または、ユーザが外部データソース118に供給した他の種類の資格情報を使用して、APIを介してパフォーマンスチューニングエンジン102にデータを「押し込む」ように構成されてもよい。パフォーマンスチューニングエンジン102は、多くの異なる方法で外部データソース118からデータを受信するように構成され得る。
1つまたは複数の実施形態において、データリポジトリ120は、データを格納するための任意のタイプのストレージユニットおよび/またはデバイス(たとえば、ファイルシステム、データベース、テーブルの集合体、またはその他のストレージ機構)である。さらに、データリポジトリ120は、複数の異なるストレージユニットおよび/またはデバイスを含んでいてもよい。これらの複数の異なるストレージユニットおよび/またはデバイスは、同一のタイプであってもそうでなくてもよく、または、同一の物理的箇所に位置していてもそうでなくてもよい。さらに、データリポジトリ120は、パフォーマンスチューニングエンジン102および/または外部データソース118と同一のコンピューティングシステム上で実現または実行され得る。代替的にまたは追加的に、データリポジトリ120は、パフォーマンスチューニングエンジン102および/または外部データソース118とは別のコンピューティングシステム上で実現または実行されてもよい。データリポジトリ120は、直接接続を介して、またはネットワークを介して、パフォーマンスチューニングエンジン102および/または外部データソース118に通信可能に結合され得る。いくつかの実施形態において、データリポジトリ120は、システム100が持続的であるが永続的ではない場所にデータを格納することを可能にする1つまたは複数のデータキャッシュを含む。代替的にまたは追加的に、システム100は、データリポジトリ120に含まれる1つまたは複数のデータキャッシュの少なくとも一部を使用して、データセットに関連する要約統計量を格納してもよい。
データリポジトリは、多くのタイプのデータのためのリポジトリとして機能することができる。たとえば、データリポジトリに格納されたデータは、1つまたは複数のIoTデバイスから受信されたデータに相当し得る。このデータは、さまざまな基準に基づいてカテゴリ分けすることができる。カテゴリ分けは、データの効率的で定義可能な分類を可能にし、かつ、ユースケースの推定を提供するように選択され得る。アルゴリズム分類を行わない場合、ディスク上のデータのパーティション化、効率的な検索のためのインデックスの作成、およびキャッシング戦略を最適化するためには、ビジネススペースおよびコンピューティング技術における専門知識を有するユーザによる手動宣言が必要とされる。特定の例として、データは、図1に示される識別子データ122、ユースケースデータ124またはランタイムデータ126のうちの1つとしてカテゴリ分けすることができる。識別子データ122は、データを提供する特定のデバイスを識別するデータを含み得る。ユースケースデータ124は、データを提供するデバイスの特定の機能に関連付けられたデータを含み得る。ランタイムデータ126は、データを提供するデバイスによって実行される活動に関連付けられたデータを含み得る。
識別子データ122は、データの、人間が読み取ることができるおよび/または人間が理解することができる特徴であり得る。識別子データ122は、デバイス名、シリアル番号、購入データおよび同様の特徴などの側面を含み得る。識別子データ122は、データを提供するデバイスの多くの異なる識別子を含み得る。一般に、識別子データ122は、一定のままであるかまたはごく稀にしか変化しないデータを含む。システムは、識別子データ122がシステムの中で最低のカーディナリティ(たとえば、最少の異なる項目)を有していると想定することができる。システムは、報告および予測分析の多くの形式では識別子データ122が一般にグループ分けのルートレベルであると想定することができる。たとえば、走行距離に基づいて車の故障の可能性を予測する機械学習アルゴリズムは、車のメーカーおよびモデルごとにデータをグループ分けし、次いで当該メーカーおよび/またはモデル内のトレンドを探すことから始め得る。格納/検索の観点から、システムは、大半の対話が範囲演算子ではなく「等号」などの演算子を使用すると想定することができる。識別子データ122は、ルートレベルデータであるので、ユースケースデータ124またはランタイムデータ126よりも少ないレコードを有する。識別子データ122における任意の値ごとにデータセットをパーティション化することは、読み取り時にはほとんど利益をもたらさないが、データセットの分析時には高い価値を持つであろう。識別子データ122のキャッシングは、一般に、識別子データ122がめったに編集されないので、非常に効率的である。識別子データ122は、文字列値を含む傾向がある。レコードは幅広いがコレクションは大きくないので、一般に、識別子データをルックアップテーブルにハッシュすることによってメモリ空間を節約することができる。ファミリをまたがってデータを結合する場合、識別子データ122は、一般に、結合の右辺である。
ユースケースデータ124は、一般に、データを提供するデバイスのさまざまな使い方に関するデータである。たとえば、サーモスタットの場合、ユースケースデータ124は、「加熱」または「冷却」を含み得る。識別子データ122のように、ユースケースデータ124は、一般に、1つまたは複数の文字列として表される。しかし、ユースケースデータは、一般に、ハッシングには適用できない。なぜなら、ユースケースレコードの各部分が重要な特徴であり得るからである。さらに、データセットの分析は、ユースケースデータ124内でドリルダウンすることに注力し得る。したがって、ユースケースデータ124は、往々にして、分析のさまざまな時点でさまざまな方法でアクセスされる。各フィールドごとにパーティション化されたユースケースデータ124を順番にキャッシュすることによって、全体的なシステム性能を向上させることができる。このキャッシング手順は、1回のパーティション化よりも多くのデータをキャッシュするが、キャッシュは高価であると思われる。さらに、ユースケースデータ124は、比較的少ない行数を有するので、ユースケースデータのキャッシングは、法外にメモリ消費量が多いわけではない。ユースケースデータ124をキャッシュすべきであることをシステムが決定するので、ディスクへのユースケースデータの格納は、特に読み取り効率がよくなくてもよい。むしろ、この格納は、スペース効率がよく、ユースケースデータ124を積極的に圧縮する。
ランタイムデータ126は、フィールドで使用される、識別子データの特定のインスタンスについての情報を含み得る。たとえば、サーモスタットの場合、ランタイムデータは、温度測定値と、温度が記録された時刻を示すタイムスタンプとを含み得る。システムは、ランタイムデータ126がデータの、一般に桁違いに最大のファミリであると判断し得る。システムは、ランタイムデータ126における少なくとも1つのフィールドがタイムスタンプであると判断し得て、このタイムスタンプを宣言することを要求するか、またはデータの中でそれを探す。セットアップ時のランタイムデータ126のサイズにかかわらず、システムは、ランタイムデータ126が最終的にいずれの形式のインメモリデータ読み取りにとっても大きすぎるようになると判断し得る。リレーショナルデータベースおよび大容量データストレージを両方とも有する環境のような異種データ環境では、ランタイムデータ126は、大容量データストレージに格納されるべきであるとシステムが判断するデータであり得る。ランタイムデータ126は、一般に、非常に大きくて、同一の物理的物体(たとえば、現在動作中のデバイス)からのさまざまな報告(往々にして、多くの報告)を含んでいると予測されるので、システムは、ランタイムデータ126が一般に時間範囲スキャン(たとえば、この1週間、この1ヶ月間またはこの1年間にわたる全てのレコード)によって、または、ユースケースデータ124および/もしくは識別子データ122からの特定のキーと組み合わせられた時間範囲スキャン(たとえば、加熱モードのサーモスタットによってグループ分けされたこの1年間の全てのレコード)によってアクセスされると判断し得る。システムは、レコードタイムスタンプに基づいて、ユーザが定義した分析動作によって宣言された頻度に基づく移動速度で古いデータを効率の低いストレージに移動させることができると判断することによって、ストレージをアルゴリズム的に最適化し得る(たとえば、この1週間からのデータの分析を実行するユーザは、分析が長期傾向によって定義されるユーザほどには、5年前のデータを読み取る際の遅さに敏感ではない)。
一実施形態において、システム100は、1つまたは複数のデジタルデバイス上で実現される。「デジタルデバイス」という語は、一般に、プロセッサを含む任意のハードウェアデバイスを指す。デジタルデバイスは、アプリケーションまたは仮想マシンを実行する物理的デバイスを指し得る。デジタルデバイスの例としては、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシサーバ、プロキシサーバ、汎用マシン、特定機能ハードウェアデバイス、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(NAT:Network Address Translator)、ハードウェアロードバランサ、メインフレーム、テレビ、コンテンツ受信機、セットトップボックス、プリンタ、モバイルハンドセット、スマートフォン、パーソナルデジタルアシスタント(「PDA:Personal Digital Assistant」)、ワイヤレス受信機および/もしくは送信機、基地局、通信管理デバイス、ルータ、スイッチ、コントローラ、アクセスポイント、ならびに/または、クライアントデバイスが挙げられる。
3.データ特徴に基づくシステム性能の向上
図2は、1つまたは複数の実施形態に係る、データ特徴に基づいてシステム性能を向上させるための例示的な動作セットを示す図である。図2に示される1つまたは複数の動作は、修正されてもよく、並べ替えられてもよく、または全て省略されてもよい。したがって、図2に示される動作の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
一実施形態において、システム(たとえば、システム100の1つまたは複数のコンポーネント)は、データセットを受信する(動作202)。いくつかの実施形態では、このデータセットは、単一のユニットとして受信され得る。他の実施形態では、このデータセットは、経時的に(たとえば、断続的にまたは定期的に)受信され得る。いくつかの局面において、データは、1つまたは複数の外部デバイスから受信され得る。特に、データは、モノのインターネットデバイスなどの接続されたデバイスから受信され得る。モノのインターネット(IoT)は、固有の識別子と、人間同士の対話または人間とコンピュータとの対話を必要とすることなくネットワークを介してデータを転送することができる能力とを備えた、相互に関連のあるコンピューティングデバイス、メカニカルマシンおよびデジタルマシンのシステムである。IoTデバイスは、たとえば、ビルディングまたはホームオートメーションデバイス、医療用および/またはヘルスケアデバイス、輸送デバイス(たとえば、車両間および/または車両内通信、交通整理、ロジスティクス、車両安全および/または制御)、農業監視デバイスなどを含み得る。多くの種類のデバイスがIoTアーキテクチャを利用することができる。
受信されたデータは、1つまたは複数のデータフィールド(データセットとしても知られている)を含み得る。一例として、受信されたデータは、タイムスタンプ、データをシステムに送信するデバイスを識別する1つまたは複数の識別子、デバイスの使用モードを示す1つまたは複数のデータアイテム、および、デバイスによって実行される1つまたは複数の測定値を含み得る。いくつかの局面では、システムで受信される各データアイテムは、各データフィールドにおける項目を含み得る。他の局面では、システムで受信されるデータアイテムは、以前のデータアイテムが受信されてから変化したフィールドのみを含み得る。
システムは、データセット内のデータフィールドのカテゴリ分け方法を決定し得る(動作204)。カテゴリ分け方法は、データセット内のデータフィールドのうちの1つまたは複数で使用され得る。いくつかの実施形態では、同一のカテゴリ分け方法を使用してデータセット内の各データフィールドをカテゴリ分けする。他の実施形態では、異なるカテゴリ分け方法を使用して異なるデータフィールドをカテゴリ分けすることができる。
一例として、データフィールドは、当該フィールド内のデータが受信または更新される頻度に基づいてカテゴリに割り当てられ得る。たとえば、データは、データが受信または更新される絶対頻度(たとえば、1秒当たり、1分当たりまたは1時間当たり受信または更新される、特定のデータフィールドに対応するアイテムの数)に基づいてカテゴリ分けされ得る。別の例として、データは、相対頻度(たとえば、データセットの他のフィールドと比較して受信または更新される、特定のデータフィールドに対応するアイテムの数)に基づいてカテゴリに割り当てられ得る。
別の例として、データフィールドは、当該フィールド内のデータにおけるレコードの数に基づいてカテゴリに割り当てられ得る。たとえば、データは、レコードの絶対数(たとえば、特定のデータフィールドに対応するレコードの数が100個未満、1000個未満などであるなど)に基づいてカテゴリ分けされ得る。別の例として、データは、レコードの相対数(たとえば、データセットの他のフィールドと比較した、特定のデータフィールドに対応するレコードの数)に基づいてカテゴリに割り当てられ得る。
受信されたデータの各フィールドは、決定されたカテゴリ分け方法に基づいてカテゴリ分けされ得る(動作206)。データフィールドが割り当てられ得るカテゴリは、識別子データ、ユースケースデータまたはランタイムデータを含み得る。識別子データは、データを提供する特定のデバイスを識別するデータを含み得る。ユースケースデータは、データを提供するデバイスの特定の機能または動作モードに関連付けられたデータを含み得る。ランタイムデータは、データを提供するデバイスによって実行される活動および/または測定に関連付けられたデータを含み得る。
いくつかの実施形態において、データをカテゴリ分けすることは、第1の閾値および第2の閾値を選択することを含み得る。第2の閾値は、第1の閾値よりも大きくてもよい。いくつかの実施形態では、これらの閾値は、データセットに含まれるデータに基づいて選択され得る。他の実施形態では、これらの閾値は、予め定められ得る。実施形態において、第2の閾値は、第1の閾値よりも数桁大きい。第1および第2の閾値は、データフィールドをカテゴリ分けするのに使用され得る。
一例として、第1の閾値を超えないデータフィールドは、識別子データとしてカテゴリ分けされ得る。識別子データは、人間レベルのデータの特徴であり得る。識別子データは、デバイス名、シリアル番号、購入データ、および同様の特徴などの側面を含み得る。識別子データは、データを提供するデバイスの多くの異なる識別子を含み得る。一般に、識別子データは、一定のままであるかまたはごく稀にしか変化しないデータを含む。したがって、識別子データは、システムの中で比較的高いカーディナリティ(たとえば、比較的多数の異なる項目)を有しているが、最低の頻度で更新され得る。
別の例として、第1の閾値を超えるが第2の閾値を超えないデータフィールドは、ユースケースデータとしてカテゴリ分けされ得る。ユースケースデータは、一般に、データを提供するデバイスのさまざまな使い方に関するデータである。たとえば、サーモスタットの場合、ユースケースデータは、「加熱」または「冷却」を含み得る。一般に、ユースケースデータは、比較的稀に、しかし識別子データよりも頻繁に変化する。したがって、ユースケースデータは、比較的低いカーディナリティを有している。しかし、ユースケースデータのカーディナリティは、識別子データのカーディナリティよりも大きい。同様に、ユースケースデータは、比較的低い頻度で更新されるが、識別子データよりも頻繁に更新される。
第3の例として、第1の閾値も第2の閾値も超えるデータフィールドは、ランタイムデータとしてカテゴリ分けされ得る。ランタイムデータは、フィールドで使用される識別子データの特定のインスタンスについての情報を含み得る。たとえば、サーモスタットの場合、ランタイムデータは、温度測定値と、温度が記録された時刻を示すタイムスタンプとを含み得る。システムは、ランタイムデータがデータの、一般に桁違いに最大のファミリであると判断し得る。システムは、ランタイムデータにおける少なくとも1つのフィールドがタイムスタンプであると判断し得て、このタイムスタンプを宣言することを要求するか、またはデータの中でそれを探す。セットアップ時のランタイムデータのサイズにかかわらず、システムは、ランタイムデータが、最終的に、読み取られるいかなる形式のインメモリデータにとっても大きすぎるまでになると判断し得る。
システムは、決定されたカテゴリ分けに基づいて、データフィールドを格納するためのストレージ構成を決定し得る(動作208)。ストレージを構成することは、データフィールドが格納される記憶媒体を選択することを含み得る。実施形態では、データを構成することはさらに、選択された記憶媒体内のデータの特定のレイアウトを指定することを含む。ストレージを構成することは、データフィールド項目を格納する際に使用される特定のデータ構造を選択することを含み得る。さらに、ストレージ構成は、データベース性能を向上させるためにデータベースの特定のパーティション化を指定し得る。
実施形態において、システムは、データセットの分析に関するユーザ入力を追跡するために機械学習アルゴリズムに依拠し得る。たとえば、システムは、ユーザによって引き起こされるデータアクセス動作(たとえば、結合演算、テーブルスキャン動作、読み取り動作など)を追跡することができる。システムは、データアクセス動作においてパターンを判断し、部分的にこのパターンに基づいてストレージ構成を選択するために機械学習に依拠し得る。たとえば、データアクセス動作の大部分がこの1週間に受信されたデータに対してのものである場合、システムは、スペース効率がよいが読み取り効率が低い方法で1週間以上前のデータを格納することができると判断し得る。
ストレージ構成は、たとえば部分的にデータフィールドのサイズに基づいて選択され得る。また、ストレージ構成は、データフィールドが通常アクセスされる方法に基づいて選択され得る。たとえば、データがアクセスされる頻度および実行されるアクセスのタイプは、選択された構成に影響を及ぼし得る。システムは、特定のアクセスタイプおよび頻度を特定のデータカテゴリに関連付け得て、システムがデータフィールドのカテゴリ分けに基づいてデータフィールドの特定のストレージ構成を選択することを可能にする。いくつかの実施形態において、ストレージを構成することは、複数のストレージ構成からあるストレージ構成を選択することを備え得る。複数のストレージ構成は、1つまたは複数のストレージデバイスの典型的な使用に基づいて予め定められ得る。
特定の例として、多くの形式の報告および予測分析では識別子データは一般にグループ分けのルートレベルである。格納/検索の観点から、識別子データとの対話の大半は、範囲演算子ではなく「等号」などの演算子を使用し得る。識別子データは、ユースケースデータまたはランタイムデータよりも少ないレコードを有する。したがって、識別子データにおける任意の値ごとにデータセットをパーティション化することは、読み取り時にはほとんど利益をもたらさないが、データセットの分析時には高い価値を持つであろう。識別子データのキャッシングは、一般に、識別子データがめったに編集されないので、非常に効率的である。レコードは幅広いがコレクションは大きくないので、一般に、識別子データをルックアップテーブルにハッシュすることによってメモリ空間を節約することができる。ファミリをまたがってデータを結合する場合、識別子データは、一般に、結合の右辺である。
別の例として、ユースケースデータは、一般に、1つまたは複数の文字列として表される。しかし、ユースケースデータは、一般に、ハッシングには適用できない。なぜなら、ユースケースレコードの各部分が重要な特徴であり得るからである。さらに、データセットの分析は、ユースケースデータ内でドリルダウンすることに注力し得る。したがって、ユースケースデータは、往々にして、分析のさまざまな時点でさまざまな方法でアクセスされる。各フィールドごとにパーティション化されたユースケースデータを順番にキャッシュすることによって、全体的なシステム性能を向上させることができる。このキャッシング手順は、1回のパーティション化よりも多くのデータをキャッシュするが、キャッシュは高価であると思われる。さらに、ユースケースデータは、比較的少ない行数を有するので、ユースケースデータのキャッシングは、法外にメモリ消費量が多いわけではない。ユースケースデータをキャッシュすべきであることをシステムが決定するので、ディスクへのユースケースデータの格納は、特に読み取り効率がよくなくてもよい。むしろ、この格納は、スペース効率がよく、ユースケースデータを積極的に圧縮する。
別の例として、ランタイムデータは、大容量データストレージに格納され得る。ランタイムデータは、一般に、同一の物理的物体(たとえば、現在動作中のデバイス)からのさまざまな報告(往々にして、多くの報告)を含む大きなデータセットを含んでいるので、システムは、ランタイムデータが一般に時間範囲スキャン(たとえば、この1週間、この1ヶ月またはこの1年にわたる全てのレコード)によって、または、ユースケースデータもしくは識別子データからのパーティションキーと組み合わせられた時間範囲スキャン(たとえば、加熱モードのサーモスタットによってグループ分けされたこの1年の全てのレコード、シリアル番号に基づいてグループ分けされたこの1年の全てのレコード)によってアクセスされると判断し得る。システムは、レコードタイムスタンプに基づいて、ユーザが定義した分析動作によって宣言された頻度に基づく移動速度で古いデータを読み取り効率の低いストレージに移動させることができると判断することによって、ストレージをアルゴリズム的に最適化し得る(たとえば、この1週間からのデータの分析を実行するユーザは、分析が長期傾向によって定義されるユーザほどには、5年前のデータを読み取る際の遅さに敏感ではない)。
いくつかの実施形態において、ストレージ構成の選択に続いて、システムはデータを格納する(動作210)。データを格納することは、データを選択されたストレージデバイスに格納することを含み得る。データを格納することは、選択されたストレージ構成に従ってデータ構造を作成することを含み得る。いくつかの実施形態において、データ格納は、新たなデータ構成を選択することを含み得る。たとえば、ユーザアクセスパターン変化のうちの1つまたは複数に応答して、データ流入パターンは変化し、または、それらのパターンについての見出された知識が増えると、新たなストレージ構成を選択すること(および、新たに選択されたストレージ構成に基づいてデータを格納すること)は、可能なだけでなく見込みあるものにもなる。
4.例示的な実施形態
明確にすることを目的に、詳細な例について以下で説明する。後述のコンポーネントおよび/または動作は、特定の実施形態には適用できない1つの具体例として理解されるべきである。したがって、後述のコンポーネントおよび/または動作は、いずれの請求項の範囲も限定するものとして解釈されるべきではない。
図3Aは、矢印306によって示されるデータを収集のためにシステム304に送信する接続されたサーモスタットデバイス302を示す。特に、デバイス302は、識別子データ306a、ユースケースデータ306bおよびランタイムデータ306cを送信し得る。図3Aに示されるように、矢印の太さは、各データカテゴリに対する相対的な更新回数に対応する。
図3Bに示されるように、データセットは、データフィールド「デバイス識別子」と、データフィールド「デバイスモード」と、データフィールド「温度」と、タイムスタンプとを含む。「タイムスタンプ」および「温度」データフィールドに示されるように、デバイス302は、1秒に1回、温度測定値をシステム304に送信する。各測定値とともに、デバイスは、識別子(たとえば、「デバイス識別子」データフィールド)も送信する。さらに、デバイスは、その動作モードのインジケータ(たとえば、「デバイスモード」データフィールド)を送信する。図3Bに示される例では、デバイス「デバイス_01」は、時刻12:00:00において「冷却」モードから「加熱」モードに遷移する。モードの変更は、モードを変更するためのユーザ対話、スケジュールされたモード変更、またはモード遷移の他の理由を示し得る。
システムは、各データフィールドを識別子データ、ユースケースデータまたはランタイムデータのうちの1つとしてカテゴリ分けする。システムは、第1の閾値を1に設定し、第2の閾値を5に設定する。「デバイス識別子」フィールドは、第1の閾値または第2の閾値を超えない1回の更新を含む。したがって、「デバイス識別子」データフィールドは、識別子データとしてカテゴリ分けされる。「デバイスモード」フィールドは、第1の閾値を超えるが第2の閾値を超えない2回の更新を含む。したがって、「デバイスモード」データフィールドは、ユースケースデータとしてカテゴリ分けされる。「温度」および「タイムスタンプ」フィールドの各々は、第1の閾値も第2の閾値も超える11回の更新を含む。したがって、「温度」および「タイムスタンプ」データフィールドの各々は、ランタイムデータとしてカテゴリ分けされる。
カテゴリ分けに続いて、システムは、データの各カテゴリのストレージ構成を決定し得る。識別子データ(たとえば、「デバイス識別子」データフィールド)について、システムは、非常に圧縮されたストレージ構成などの、スペース効率がよいストレージ構成を選択することができる。システムはさらに、素早い検索のために識別子データをキャッシュすることを推奨し得る。ユースケースデータ(たとえば、「デバイスモード」データフィールド)について、システムは、非常に圧縮されたストレージ構成などの、スペース効率がよいストレージ構成を選択することができる。ランタイムデータ(たとえば、「温度」および「タイムスタンプ」データフィールド)について、システムは、これらのデータフィールドが急速に増加しそうであることを認識して、大量のデータを効率的に格納することを可能にするストレージ構成を決定することができる。さらに、システムは、データを読み取る際の効率の向上につながる方法でデータストレージを構造化することができる。たとえば、データは、時系列で格納され得る。なぜなら、データの分析が、特定の時間範囲にわたるデータを検索するという結果になると思われるからである。各フィールドからのデータは、選択されたストレージ構成に従って格納することができる。
5.その他、拡張
実施形態は、ハードウェアプロセッサを含み、本明細書に記載されているおよび/または以下のいずれかの請求項に記載されている動作のいずれかを実行するように構成された1つまたは複数のデバイスを有するシステムに向けられる。
一実施形態において、非一時的なコンピュータ読取可能記憶媒体は、命令を備え、これらの命令は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載されているおよび/またはいずれかの請求項に記載されている動作のいずれかを実行させる。
本明細書に記載されている特徴と機能との任意の組み合わせが、1つまたは複数の実施形態に従って用いられてもよい。前述の明細書では、実施形態は、実現例ごとに異なり得る多くの具体的詳細を参照して説明されてきた。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および、出願人によって本発明の範囲であることが意図されるものは、任意の後の補正を含めて、そのような特許請求の範囲が生じる特定の形態での、本願から生じる特許請求の範囲のセットの文字通りかつ同等の範囲である。
6.ハードウェアの概要
一実施形態に従って、本明細書に記載されている技術は、1つまたは複数の特別目的コンピューティングデバイスによって実行される。これらの特別目的コンピューティングデバイスは、技術を実行するために物理的に組み込まれていてもよく、または、技術を実行するように持続的にプログラムされた1つもしくは複数の特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)もしくはネットワーク処理ユニット(NPU:Network Processing Unit)などのデジタル電子デバイスを含んでいてもよく、または、ファームウェア、メモリ、他のストレージもしくは組み合わせにおけるプログラム命令に従って技術を実行するようにプログラムされた1つもしくは複数の汎用ハードウェアプロセッサを含んでいてもよい。また、このような特別目的コンピューティングデバイスは、カスタムハードワイヤード論理、ASIC、FPGAまたはNPUと、技術を実現するためのカスタムプログラミングとを組み合わせてもよい。特別目的コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、手持ち式デバイス、ネットワーキングデバイス、または技術を実行するためにハードワイヤードおよび/またはプログラム論理を組み込むその他のデバイスであってもよい。
たとえば、図4は、本発明の一実施形態が実現され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、バス402または情報を通信するための他の通信機構と、バス402と結合された、情報を処理するためのハードウェアプロセッサ404とを含む。ハードウェアプロセッサ404は、たとえば汎用マイクロプロセッサであってもよい。
コンピュータシステム400は、バス402に結合された、情報およびプロセッサ404によって実行される命令を格納するための、ランダムアクセスメモリ(RAM:Random Access Memory)または他のダイナミックストレージデバイスなどのメインメモリ406も含む。メインメモリ406は、プロセッサ404によって実行される命令の実行中に一時変数または他の中間情報を格納するのにも使用され得る。このような命令は、プロセッサ404がアクセス可能な非一時的な記憶媒体に格納されると、コンピュータシステム400を、命令に指定された動作を実行するようにカスタマイズされた特別目的マシンにする。
コンピュータシステム400は、バス402に結合された、プロセッサ404のための静的情報および命令を格納するためのリードオンリメモリ(ROM:Read Only Memory)408または他のスタティックストレージデバイスをさらに含む。情報および命令を格納するために、磁気ディスクまたは光ディスクなどのストレージデバイス410が設けられて、バス402に結合される。
コンピュータシステム400は、情報をコンピュータユーザに表示するために、バス402を介して陰極線管(CRT:Cathode Ray Tube)などのディスプレイ412に結合され得る。英数字キーおよび他のキーを含む入力デバイス414が、情報およびコマンド選択をプロセッサ404に通信するためにバス402に結合される。別のタイプのユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ404に通信してディスプレイ412上でのカーソル移動を制御するための、マウス、トラックボールまたはカーソル方向キーなどのカーソル制御装置416である。この入力デバイスは、一般に、2つの軸、すなわち第1の軸(たとえば、x)および第2の軸(たとえば、y)において二自由度を有し、デバイスが平面内の位置を指定することを可能にする。
コンピュータシステム400は、コンピュータシステムと組み合わせてコンピュータシステム400を特別目的マシンであるようにするまたはそのようにプログラムするカスタマイズされたハードワイヤード論理、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラム論理を使用して、本明細書に記載されている技術を実行し得る。一実施形態に従って、本明細書における技術は、プロセッサ404がメインメモリ406に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム400によって実行される。このような命令は、ストレージデバイス410などの別の記憶媒体からメインメモリ406に読み取られてもよい。メインメモリ406に含まれる命令のシーケンスの実行は、プロセッサ404に、本明細書に記載されているプロセスステップを実行させる。代替的な実施形態において、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路が使用されてもよい。
本明細書で使用される「記憶媒体」という語は、マシンに特定の態様で動作させるデータおよび/または命令を格納する任意の非一時的な媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を備え得る。不揮発性媒体は、たとえば、ストレージデバイス410などの光または磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。記憶媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、またはその他の磁気データ記憶媒体、CD-ROM、その他の光データ記憶媒体、穴のパターンを有する任意の物理的媒体、RAM、PROMおよびEPROM、FLASH(登録商標)-EPROM、NVRAM、その他のメモリチップまたはカートリッジ、連想メモリ(CAM:Content-Addressable Memory)、および三値連想メモリ(TCAM:Ternary Content-Addressable Memory)を含む。
記憶媒体は、伝送媒体とは異なっているが、伝送媒体と併用されてもよい。伝送媒体は、記憶媒体同士の間で情報を転送することに関与する。たとえば、伝送媒体は、同軸ケーブル、銅線および光ファイバを含み、バス402を備えるワイヤを含む。伝送媒体は、電波および赤外線データ通信中に生成されるものなどの音波または光波の形態をとることもできる。
さまざまな形態の媒体が、1つまたは複数の命令の1つまたは複数のシーケンスを実行のためにプロセッサ404に伝えることに関与し得る。たとえば、これらの命令は、最初は、リモートコンピュータの磁気ディスクまたはソリッドステートドライブに記録されていてもよい。リモートコンピュータは、これらの命令をそのダイナミックメモリにロードして、これらの命令をモデムを使用して電話線を介して送信することができる。コンピュータシステム400にローカルなモデムは、電話線を介してデータを受信し、赤外線送信機を使用してこのデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号の状態で伝えられたデータを受信することができ、適切な回路がこのデータをバス402上に配置することができる。バス402は、データをメインメモリ406に伝えて、プロセッサ404は、メインメモリ406から命令を検索して実行する。メインメモリ406によって受信された命令は、任意に、プロセッサ404による実行前または後にストレージデバイス410に格納されてもよい。
コンピュータシステム400は、バス402に結合された通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420への二方向データ通信結合を提供する。たとえば、通信インターフェイス418は、統合サービスデジタルネットワーク(ISDN:Integrated Services Digital Network)カード、ケーブルモデム、衛星モデム、または対応するタイプの電話線へのデータ通信接続を提供するためのモデムであってもよい。別の例として、通信インターフェイス418は、互換性があるローカルエリアネットワーク(LAN:Local Area Network)へのデータ通信接続を提供するためのLANカードであってもよい。ワイヤレスリンクも実現されてもよい。任意のこのような実現例において、通信インターフェイス418は、さまざまなタイプの情報を表すデジタルデータストリームを伝える電気信号、電磁信号または光信号を送受信する。
ネットワークリンク420は、一般に、1つまたは複数のネットワークを介してデータ通信を他のデータデバイスに提供する。たとえば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424またはインターネットサービスプロバイダ(ISP:Internet Service Provider)426によって操作されるデータ機器に接続し得る。そして、ISP426は、現在では一般に「インターネット」428と称されるワールドワイドパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク422およびインターネット428は両方とも、デジタルデータストリームを伝える電気信号、電磁信号または光信号を使用する。コンピュータシステム400におよびコンピュータシステム400からデジタルデータを伝える、さまざまなネットワークを介した信号、ならびに、ネットワークリンク420および通信インターフェイス418を介した信号は、伝送媒体の例示的な形態である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を介して、メッセージを送信して、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ430は、インターネット428、ISP426、ローカルネットワーク422および通信インターフェイス418を介して、アプリケーションプログラムのための要求されたコードを送信し得る。
受信されたコードは、受信時にプロセッサ404によって実行されてもよく、および/または、その後の実行のためにストレージデバイス410または他の不揮発性ストレージに格納されてもよい。
前述の明細書では、本発明の実施形態は、実現例ごとに異なり得る多くの具体的詳細を参照して説明されてきた。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および、出願人によって本発明の範囲であることが意図されるものは、任意の後の補正を含めて、そのような特許請求の範囲が生じる特定の形態での、本願から生じる特許請求の範囲のセットの文字通りかつ同等の範囲である。

Claims (15)

  1. 命令を備える1つまたは複数の非一時的なコンピュータ読取可能媒体であって、前記命令は、1つまたは複数のハードウェアプロセッサによって実行されると、動作を実行させ、前記動作は、
    第1のデータセットに対する更新を第1の頻度で受信することと、
    前記第1の頻度に基づいて前記第1のデータセットを格納するための第1のストレージ構成を複数のストレージ構成から選択することと、
    前記第1のストレージ構成に従って前記第1のデータセットを格納することと、
    第2のデータセットに対する更新を第2の頻度で受信することと、
    前記第2の頻度に基づいて前記第2のデータセットを格納するための第2のストレージ構成を前記複数のストレージ構成から選択することとを備え、前記第2のストレージ構成は、前記第1のストレージ構成とは異なっており、前記動作はさらに、
    前記第2のストレージ構成に従って前記第2のデータセットを格納することを備える、媒体。
  2. 前記第1の頻度に基づいて前記第1のデータセットを格納するための前記第1のストレージ構成を選択することは、
    前記第1の頻度に基づく前記第1のデータセットのために、複数のカテゴリのうちの第1のカテゴリを選択することと、
    前記第1のデータセットを格納するための、前記第1のカテゴリに対応する前記第1のストレージ構成を選択することとを備える、請求項1に記載の媒体。
  3. 前記動作はさらに、
    前記第1の頻度に基づいて、前記第1のデータセットを識別子データとしてカテゴリ分けすることを備え、
    前記第1のストレージ構成を選択することは、前記第1のデータセットが識別子データとしてカテゴリ分けされることに基づき、前記動作はさらに、
    前記第2の頻度に基づいて、前記第2のデータセットをユースケースデータとしてカテゴリ分けすることを備え、
    前記第2のストレージ構成を選択することは、前記第2のデータセットがユースケースデータとしてカテゴリ分けされることに基づき、前記動作はさらに、
    第3のデータセットに対する更新が受信される第3の頻度に基づいて、前記第3のデータセットをランタイムデータとしてカテゴリ分けすることと、
    前記第3のデータセットがランタイムデータとしてカテゴリ分けされることに基づいて、前記第3のデータセットを格納するための第3のストレージ構成を選択することとを備える、請求項1に記載の媒体。
  4. 前記命令は、前記1つまたは複数のプロセッサによって実行されると、さらに、
    前記第1のデータセットと前記第2のデータセットとの間の関係を判断することと、
    前記関係に基づいて、前記第1のデータセットおよび前記第2のデータセットを使用して結合演算を事前計算することとをさせる、請求項1に記載の媒体。
  5. 前記命令は、前記1つまたは複数のプロセッサによって実行されると、さらに、
    前記第1のデータセットに対応する追加データを受信することと、
    少なくとも部分的に前記追加データに基づいて新たなストレージ構成を選択することと、
    前記新たなストレージ構成に従って前記第1のデータセットを格納することとをさせる、請求項1に記載の媒体。
  6. 前記命令は、前記1つまたは複数のプロセッサによって実行されると、さらに、
    少なくとも部分的に前記第1のストレージ構成に基づいて、前記第1のデータセットに関連付けられたインデックスを作成することをさせる、請求項1に記載の媒体。
  7. 方法であって、
    第1のデータセットに対する更新を第1の頻度で受信するステップと、
    前記第1の頻度に基づいて前記第1のデータセットを格納するための第1のストレージ構成を複数のストレージ構成から選択するステップと、
    前記第1のストレージ構成に従って前記第1のデータセットを格納するステップと、
    第2のデータセットに対する更新を第2の頻度で受信するステップと、
    前記第2の頻度に基づいて前記第2のデータセットを格納するための第2のストレージ構成を前記複数のストレージ構成から選択するステップとを備え、前記第2のストレージ構成は、前記第1のストレージ構成とは異なっており、前記方法はさらに、
    前記第2のストレージ構成に従って前記第2のデータセットを格納するステップを備え、
    前記方法は、ハードウェアプロセッサを含む少なくとも1つのデバイスによって実行される、方法。
  8. 前記第1の頻度に基づいて前記第1のデータセットを格納するための前記第1のストレージ構成を選択するステップは、
    前記第1の頻度に基づく前記第1のデータセットのために、複数のカテゴリのうちの第1のカテゴリを選択するステップと、
    前記第1のデータセットを格納するための、前記第1のカテゴリに対応する前記第1のストレージ構成を選択するステップとを備える、請求項7に記載の方法。
  9. 前記第1の頻度に基づいて、前記第1のデータセットを識別子データとしてカテゴリ分けするステップをさらに備え、
    前記第1のストレージ構成を選択するステップは、前記第1のデータセットが識別子データとしてカテゴリ分けされることに基づき、
    前記第2の頻度に基づいて、前記第2のデータセットをユースケースデータとしてカテゴリ分けするステップをさらに備え、
    前記第2のストレージ構成を選択するステップは、前記第2のデータセットがユースケースデータとしてカテゴリ分けされることに基づき、
    第3のデータセットに対する更新が受信される第3の頻度に基づいて、前記第3のデータセットをランタイムデータとしてカテゴリ分けするステップと、
    前記第3のデータセットがランタイムデータとしてカテゴリ分けされることに基づいて、前記第3のデータセットを格納するための第3のストレージ構成を選択するステップとをさらに備える、請求項7に記載の方法。
  10. 前記第1のデータセットと前記第2のデータセットとの間の関係を判断するステップと、
    前記関係に基づいて、前記第1のデータセットおよび前記第2のデータセットを使用して結合演算を事前計算するステップとをさらに備える、請求項7に記載の方法。
  11. 前記第1のデータセットに対応する追加データを受信するステップと、
    少なくとも部分的に前記追加データに基づいて新たなストレージ構成を選択するステップと、
    前記新たなストレージ構成に従って前記第1のデータセットを格納するステップとをさらに備える、請求項7に記載の方法。
  12. システムであって、
    ハードウェアプロセッサを含む少なくとも1つのデバイスを備え、
    前記システムは、動作を実行するように構成されており、前記動作は、
    第1のデータセットに対する更新を第1の頻度で受信することと、
    前記第1の頻度に基づいて前記第1のデータセットを格納するための第1のストレージ構成を複数のストレージ構成から選択することと、
    前記第1のストレージ構成に従って前記第1のデータセットを格納することと、
    第2のデータセットに対する更新を第2の頻度で受信することと、
    前記第2の頻度に基づいて前記第2のデータセットを格納するための第2のストレージ構成を前記複数のストレージ構成から選択することとを備え、前記第2のストレージ構成は、前記第1のストレージ構成とは異なっており、前記動作はさらに、
    前記第2のストレージ構成に従って前記第2のデータセットを格納することを備え、
    前記方法は、ハードウェアプロセッサを含む少なくとも1つのデバイスによって実行される、システム。
  13. 前記第1の頻度に基づいて前記第1のデータセットを格納するための前記第1のストレージ構成を選択することは、
    前記第1の頻度に基づく前記第1のデータセットのために、複数のカテゴリのうちの第1のカテゴリを選択することと、
    前記第1のデータセットを格納するための、前記第1のカテゴリに対応する前記第1のストレージ構成を選択することとを備える、請求項11に記載のシステム。
  14. 前記第1の頻度に基づいて、前記第1のデータセットを識別子データとしてカテゴリ分けすることをさらに備え、
    前記第1のストレージ構成を選択することは、前記第1のデータセットが識別子データとしてカテゴリ分けされることに基づき、
    前記第2の頻度に基づいて、前記第2のデータセットをユースケースデータとしてカテゴリ分けすることをさらに備え、
    前記第2のストレージ構成を選択することは、前記第2のデータセットがユースケースデータとしてカテゴリ分けされることに基づき、
    第3のデータセットに対する更新が受信される第3の頻度に基づいて、前記第3のデータセットをランタイムデータとしてカテゴリ分けすることと、
    前記第3のデータセットがランタイムデータとしてカテゴリ分けされることに基づいて、前記第3のデータセットを格納するための第3のストレージ構成を選択することとをさらに備える、請求項11に記載のシステム。
  15. 前記第1のデータセットと前記第2のデータセットとの間の関係を判断することと、
    前記関係に基づいて、前記第1のデータセットおよび前記第2のデータセットを使用して結合演算を事前計算することとをさらに備える、請求項11に記載のシステム。
JP2023509827A 2020-08-13 2020-09-04 暗黙のデータ特徴に基づく動的なパフォーマンスチューニング Pending JP2023538865A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/992,819 2020-08-13
US16/992,819 US11573962B2 (en) 2018-10-19 2020-08-13 Dynamic performance tuning based on implied data characteristics
PCT/US2020/049367 WO2022035443A1 (en) 2020-08-13 2020-09-04 Dynamic performance tuning based on implied data characteristics

Publications (2)

Publication Number Publication Date
JP2023538865A true JP2023538865A (ja) 2023-09-12
JPWO2022035443A5 JPWO2022035443A5 (ja) 2023-10-27

Family

ID=72613986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023509827A Pending JP2023538865A (ja) 2020-08-13 2020-09-04 暗黙のデータ特徴に基づく動的なパフォーマンスチューニング

Country Status (4)

Country Link
EP (1) EP4196886A1 (ja)
JP (1) JP2023538865A (ja)
CN (1) CN116601622A (ja)
WO (1) WO2022035443A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360144B2 (en) * 2015-02-27 2019-07-23 Hitachi, Ltd. Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level
US10664462B2 (en) * 2017-03-01 2020-05-26 Sap Se In-memory row storage architecture
CN110389725B (zh) * 2019-07-26 2022-11-01 成都信息工程大学 一种物联网终端数据高效存储系统

Also Published As

Publication number Publication date
EP4196886A1 (en) 2023-06-21
CN116601622A (zh) 2023-08-15
WO2022035443A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
US11947556B1 (en) Computerized monitoring of a metric through execution of a search query, determining a root cause of the behavior, and providing a notification thereof
US11836537B2 (en) Systems and methods to identify neural network brittleness based on sample data and seed generation
US11636311B2 (en) Anomaly detection based on predicted textual characters
US11632383B2 (en) Predictive model selection for anomaly detection
US11620300B2 (en) Real-time measurement and system monitoring based on generated dependency graph models of system components
US11681900B2 (en) Providing field extraction recommendations for display
US11514278B2 (en) Graphical user interface for automated data preprocessing for machine learning
US11853303B1 (en) Data stream generation based on sourcetypes associated with messages
US11055407B2 (en) Distribution-based analysis of queries for anomaly detection with adaptive thresholding
US11455306B2 (en) Query classification and processing using neural network based machine learning
US20190095478A1 (en) Information technology networked entity monitoring with automatic reliability scoring
US9646262B2 (en) Data intelligence using machine learning
US11227208B2 (en) Automated data-generation for event-based system
US11194794B2 (en) Search input recommendations
CN103513983A (zh) 用于预测性警报阈值确定工具的方法和系统
US10409817B1 (en) Database system and methods for domain-tailored detection of outliers, patterns, and events in data streams
US20230148271A1 (en) Dynamic performance tuning based on implied data characteristics
JP2023538865A (ja) 暗黙のデータ特徴に基づく動的なパフォーマンスチューニング
US20210081941A1 (en) Stage-specific pipeline view using prediction engine
Ayvaz et al. Building summary graphs of rdf data in semantic web
CN115114126A (zh) 获取层级化数据结构以及处理日志条目方法和电子设备
AU2020104034A4 (en) IML-Cloud Data Performance: Cloud Data Performance Improved using Machine Learning.
AU2020103522A4 (en) DAMA- Dataset Discovery: Dataset Discovery in Data Analytics and Machine Learning Algorithm

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230901

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231019