JP7629464B2 - 計算グラフを生成するためのエディタ - Google Patents
計算グラフを生成するためのエディタ Download PDFInfo
- Publication number
- JP7629464B2 JP7629464B2 JP2022545888A JP2022545888A JP7629464B2 JP 7629464 B2 JP7629464 B2 JP 7629464B2 JP 2022545888 A JP2022545888 A JP 2022545888A JP 2022545888 A JP2022545888 A JP 2022545888A JP 7629464 B2 JP7629464 B2 JP 7629464B2
- Authority
- JP
- Japan
- Prior art keywords
- dataflow graph
- computer
- operations
- data
- nodes
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/311—Functional or applicative languages; Rewrite languages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4435—Detection or removal of dead or redundant code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
- Manufacture, Treatment Of Glass Fibers (AREA)
- Paper (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
Description
本出願は、2020年1月28日に出願された米国特許仮出願第62/966,768号の優先権を主張し、その全内容は、参照により本明細書に組み込まれる。
データフローグラフ17などデータフローグラフは、字句構造を有する。いくつかの実施例では、字句構造は、記号、キーワード、数字、文字列、コード様文字列、及び他の字句要素を含む。
ポートは、入力ポート及び出力ポートであり得る。各ポートは、ポートがそれらのコンポーネントのデフォルトの入力又は出力ポートではない限り、名前(例えば、「in」、「out」、「reject0」)を有する(デフォルトのポートである場合、名前は省略され得る)。ポートはフローを有する。フローは、1つの出力ポートを1つの入力ポートに接続することができる。ポートはパラメータを有する。ポートは、グラフポートに結合され得る。例えば、入力ポートはグラフ入力ポートに結合され得、出力ポートはグラフ出力ポートに結合され得る。
パラメータは、名前、ロケータであり得る値、及び解釈を有し得る。パラメータは、記号であり得る。句読文字(例えば、ピリオド)が先行するパラメータ名は、データフローグラフに対してプライベートであるとみなされ、他のグラフモデル(変換されたデータフローグラフなど)でのパラメータの生成には使用されない。他の文字パターン(例えば、先行する2つのピリオド)で開始するパラメータ名は遷移状態とみなされ、デフォルトでは、グラフと共に保存されない。これは、コマンドで上書きされ得る。
データフローグラフは、コマンドラインユーティリティを使用することなどによって、ファイル又はコマンドライン引数から読み取られ得る。
パラメータ値は、パラメータとしてではなく引数としてスクリプトに現れることがあり、他のグラフモデルではパラメータを生成しない。代わりに、このパラメータは、データフローグラフ変換コードに対する命令であり、生成され、翻訳されたコンポーネントのコンポーネントパスを設定する。プロトタイプは、かかる種類の各ノードが、かかる同一のパラメータ値を有することを可能にする。
ノードは、ゼロ以上のラベルを有し得る。コンポーネントがノードから生成されるとき、ノードのラベルは先頭文字が大文字になり、組み合わせてコンポーネントラベルを形成する。ノードが統合されると、それらのラベルセットも統合され得る。いくつかの実施例では、ラベルに優先権が割り当られて、ラベルの増殖を低減し、有意な最終ラベルを生成することができる。ラベルは、名付きラベルであり得、とりわけ、ソース、キー、又は値を指し得る。
いくつかの実施例では、1つ以上のアルゴリズムを適用してデータフローグラフを変換又は最適化することができ、アルゴリズムとしては、とりわけ、パターンマッチングパス、(上記の)プロトタイプを適用する内蔵パス、重複排除を行う内蔵パス、明示的複製を行う内蔵パス、及びフローをアンクロスする内蔵パスが挙げられる。
データソースカタログは、データソースに関するメタデータ、とりわけデータへのアクセスに使用されるURL、データのレコード形式、存在する場合は並べ替えキー及び分割キータなどを記憶する。データフローグラフ17は、クエリインスタンスのカタログ若しくはCatalog Interchange Format(CIF)ファイルにエクスポートされたカタログを使用すること、又はデータソース情報をグラフに直接埋め込むことができる。
データフローグラフは、値指向処理及びグラフセマンティクスのために拡張することができる。いくつかの実施例では、データフローグラフは、とりわけ、アスペクト、式値、内蔵パス、ビア、ギャザー、マージ、フローの統合、及びアスペクトの伝播を使用することによって拡張することができる。
データフローグラフが最適化されて最適化されたデータフローグラフが提供されると、当該グラフは変換されたデータフローグラフ(例えば、変換されたデータフローグラフ19)に変換される。そうするために、メタデータ及びデータフローグラフに記載されている値を計算する変換を識別することができる。
データフローグラフエンジの言語は、2つの部分を有する。すなわち、許可されるノード種類及びノードの編集方法を記述するプレゼンテーション層、並びに低レベルノードに関して各ノードの実施を記述するコンパイル層である。プロトタイプファイルは、言語のプレゼンテーション層を記述する。単一のプロトタイプファイルは、複数のプロトタイプ区分を含むことができる。
Claims (40)
- 第1のデータフローグラフを第2のデータフローグラフに変換するためのコンピュータ実施方法であって、前記第1のデータフローグラフは、複数の第1のコンピュータ動作を表す複数の第1のノードを含み、前記第2のデータフローグラフは、複数の第2のコンピュータ動作を表す複数の第2のノードを含み、前記方法は、
データ処理における前記複数の第1のコンピュータ動作を表す前記複数の第1のノードを含む前記第1のデータフローグラフを生成することであって、前記複数の第1のコンピュータ動作のうちの少なくとも1つは、データ処理の1つ以上の結果の1つ以上の特性を指定する宣言動作である、ことと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記複数の第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを前記第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、前記複数の第2のコンピュータ動作を表す前記複数の第2のノードを含み、前記第2のノードのうちの少なくとも1つは、前記宣言動作によって指定されるロジックを実施する1つ以上の命令動作を表す、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を含む、コンピュータ実施方法。 - 前記第1のデータフローグラフを前記第2のデータフローグラフに変換することは、
前記命令動作を作成することと、
前記命令動作を表す所与の第2のノードを作成することであって、所与の前記第2のノードは、前記第1のデータフローグラフに表されない、ことと、を含む、請求項1に記載のコンピュータ実施方法。 - 前記第2のデータフローグラフに表され、前記第1のデータフローグラフに表されない前記複数の第2のコンピュータ動作のうちの1つは、並べ替え動作、データ型動作、指定キーとの結合動作、及び分割動作からなる群から選択される、請求項1に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの1つ以上は、少なくとも、
(i)前記第1のデータフローグラフで指定された前記複数の第1のコンピュータ動作のうちの1つ以上に従ってデータを処理するために必要であるか、又は
(ii)前記1つ以上の追加動作を伴わないデータ処理と比較して、前記第1のデータフローグラフで指定された前記複数の第1のコンピュータ動作のうちの1つ以上に従ったデータ処理を改善する、請求項1に記載のコンピュータ実施方法。 - 1つ以上のデータフローグラフ最適化ルールを前記第2のデータフローグラフに適用して、前記適用前の前記第2のデータフローグラフの計算効率と比較して、前記第2のデータフローグラフの計算効率を改善することによって、前記第2のデータフローグラフを最適化されたデータフローグラフに変換することを更に含む、請求項1に記載のコンピュータ実施方法。
- 前記1つ以上のデータフローグラフ最適化ルールは、前記第2のデータフローグラフから冗長ノードを削除すること、前記第2のデータフローグラフからデッドノードを削除すること、前記第2のデータフローグラフ内でノードの順序を変更すること、前記第2のデータフローグラフ内でノードの強度を低減すること、前記第2のデータフローグラフ内で2つ以上のノードを統合すること、前記第2のデータフローグラフ内のノードを直列動作から並列動作に変換すること、又は前記第2のデータフローグラフ内で分割動作を挿入することのうちの少なくとも1つを含む、請求項5に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの少なくとも1つは、自動並列動作又は自動分割動作を含む、請求項1に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの少なくとも1つは、並べ替え動作を含む、請求項1に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの少なくとも1つは、前記第2のノードのうちの1つ以上の間でメタデータを指定する動作を含む、請求項1に記載のコンピュータ実施方法。
- データを提供して、キャンバス部分と、カタログ部分と、を含むグラフィカルエディタインターフェースを生成することであって、前記カタログ部分は、前記キャンバス部分において、計算のロジックを視覚的に描写するための1つ以上の選択可能なアイコンを含む、ことと、
前記キャンバス部分において描写された計算のロジックを示す、アイコン選択データを受信することであって、前記アイコン選択データは、前記カタログ部分から選択され、前記キャンバス部分に含まれる、前記1つ以上の選択可能なアイコンのうちの少なくとも1つを指定する、ことと、
受信した前記アイコン選択データから、前記キャンバス部分で指定された前記ロジックを表す前記複数の第1のノードを含む前記第1のデータフローグラフを生成することであって、前記第1のノードのうちの少なくとも1つは、前記カタログ部分から選択された前記1つ以上の選択可能なアイコンのうちの前記少なくとも1つを表す、ことと、を更に含む、請求項1に記載のコンピュータ実施方法。 - 選択された各アイコンは、データをプリフォーマットするデータカタログからデータにアクセスする命令を表すか、又は前記データカタログを介してアクセスされるデータの形式を指定する、請求項10に記載のコンピュータ実施方法。
- 前記第1のデータフローグラフは、ユーザ定義のデータフローグラフである、請求項1に記載のコンピュータ実施方法。
- データを提供して、キャンバス部分と、カタログ部分と、を含むグラフィカルエディタインターフェースを生成することであって、前記カタログ部分は、複数のデータセット選択アイコンと、複数の変換選択アイコンと、を含む、ことと、
選択されたデータセット選択アイコン及び選択された変換選択アイコンによって表される記憶ユニットに記憶された要素に従って、前記第1のデータフローグラフ内に初期ノードを生成することと、
前記初期ノードにラベルを付けて、ラベル付きノードを提供することと、
前記キャンバス部分で、前記ラベル付きノードの視覚的表現をレンダリングすることと、を更に含む、請求項1に記載のコンピュータ実施方法。 - 前記初期ノードは、動作を保持するための動作プレースホルダフィールドと、データのソース又はシンクを保持するためのデータプレースホルダフィールドと、を有する、請求項13に記載のコンピュータ実施方法。
- 修正することは、
記憶システムから前記動作プレースホルダフィールドに保持された前記動作の要素を取得することと、
前記記憶システムから前記データプレースホルダフィールドに保持されたデータソース又はデータシンクの要素を取得して、前記データの前記ソース又は前記シンクを指すリンクを前記データプレースホルダフィールドに追加することと、を更に含む、請求項14に記載のコンピュータ実施方法。 - データを提供して、前記グラフィカルエディタインターフェースの前記キャンバス部分に前記第1のデータフローグラフをレンダリングすることを更に含む、請求項13に記載のコンピュータ実施方法。
- 生成した前記初期ノードの全てにラベルを付けると、前記方法は、
前記第1のデータフローグラフの全てのラベル付きノードを、計算データフローグラフである前記第2のデータフローグラフにコンパイルすることを更に含む、請求項13に記載のコンピュータ実施方法。 - 修正した前記初期ノードの全てのラベルを付けると、前記方法は、
前記第1のデータフローグラフの全てのラベル付きノードを最適化することを更に含み、前記第1のデータフローグラフの前記ラベル付きノードを最適化することは、前記ラベル付きノードのうちの少なくとも1つに記憶された前記要素を最適化することを更に含む、請求項13に記載のコンピュータ実施方法。 - プロトタイプノードにアクセスすることと、
アクセスした前記プロトタイプノードからパラメータをコピーして、前記初期ノードのうちの少なくとも1つを修正するアルゴリズムを適用することと、を更に含む、請求項13に記載のコンピュータ実施方法。 - 前記初期ノードの少なくとも1つのパラメータは、前記プロトタイプノードによって上書きされない設定パラメータである、請求項19に記載のコンピュータ実施方法。
- 前記プロトタイプノードは、前記初期ノード、前記初期ノード上のポート、又は前記グラフィカルエディタインターフェースの前記キャンバス部分に提示されたコンポーネントのパラメータのうちの少なくとも1つを宣言する、請求項19に記載のコンピュータ実施方法。
- プロトタイプを適用することは、前記プロトタイプからの記述子で既存のパラメータの記述子を置き換えるが、パラメータの既存の値は置き換えない、請求項19に記載のコンピュータ実施方法。
- メタデータ及び前記第1のデータフローグラフに記述された値を計算する変換を適用することを更に含む、請求項1に記載のコンピュータ実施方法。
- 前記ラベルは、キー、値、名前、及びソースのうちの1つ以上を参照する、請求項13に記載のコンピュータ実施方法。
- 選択されたデータセット選択アイコンによって表される記憶ユニット及び選択された変換選択アイコンによって表される記憶ユニットに記憶された1つ以上の要素を記憶する前記複数の初期ノードのうちの少なくともいくつかは、少なくとも部分的に、前記複数の初期ノードのうちの前記少なくともいくつかに対して対応する記憶ユニット機能を指定する、請求項13に記載のコンピュータ実施方法。
- 第1のデータフローグラフを第2のデータフローグラフに変換するためのシステムであって、前記第1のデータフローグラフは、複数の第1のコンピュータ動作を表す複数の第1のノードを含み、前記第2のデータフローグラフは、複数の第2のコンピュータ動作を表す複数の第2のノードを含み、前記システムは、
1つ以上のプロセッサと、命令を記憶する1つ以上の記憶デバイスであって、前記命令は、前記1つ以上のプロセッサによって実行されると、
データ処理における前記複数の第1のコンピュータ動作を表す前記複数の第1のノードを含む前記第1のデータフローグラフを生成することであって、前記複数の第1のコンピュータ動作のうちの少なくとも1つは、データ処理の1つ以上の結果の1つ以上の特性を指定する宣言動作である、ことと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記複数の第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを前記第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、前記複数の第2のコンピュータ動作を表す前記複数の第2のノードを含み、前記第2のノードのうちの少なくとも1つは、前記宣言動作によって指定されるロジックを実施する1つ以上の命令動作を表す、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を含む動作を前記1つ以上のプロセッサに実行させる、1つ以上の記憶デバイスと、を含む、システム。 - 命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
データ処理における第1のコンピュータ動作を表す複数の第1のノードを含む第1のデータフローグラフを生成することであって、前記第1のコンピュータ動作のうちの少なくとも1つは、データ処理の1つ以上の結果の1つ以上の特性を指定する宣言動作である、ことと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、第2のコンピュータ動作を表す複数の第2のノードを含み、前記第2のノードのうちの少なくとも1つは、前記宣言動作によって指定されるロジックを実施する1つ以上の命令動作を表す、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を計算システムに実行させる、非一時的コンピュータ可読媒体。 - 第1のデータフローグラフを第2のデータフローグラフに変換するためのコンピュータ実施方法であって、前記第1のデータフローグラフは、複数の第1のコンピュータ動作を表す複数の第1のノードを含み、前記第2のデータフローグラフは、複数の第2のコンピュータ動作を表す複数の第2のノードを含み、前記方法は、
データ処理における前記複数の第1のコンピュータ動作を表す前記複数の第1のノードを含む前記第1のデータフローグラフを生成することと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記複数の第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを前記第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、前記複数の第2のコンピュータ動作を表す前記複数の第2のノードを含み、前記複数の第2のコンピュータ動作のうちの少なくとも所与の1つは、並べ替え動作、データ型動作、指定キーとの結合動作、及び分割動作からなる群から選択される、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を含む、コンピュータ実施方法。 - 第1のデータフローグラフを第2のデータフローグラフに変換するためのシステムであって、前記第1のデータフローグラフは、複数の第1のコンピュータ動作を表す複数の第1のノードを含み、前記第2のデータフローグラフは、複数の第2のコンピュータ動作を表す複数の第2のノードを含み、前記システムは、
1つ以上のプロセッサと、命令を記憶する1つ以上の記憶デバイスであって、前記命令は、前記1つ以上のプロセッサによって実行されると、
データ処理における前記複数の第1のコンピュータ動作を表す前記複数の第1のノードを含む前記第1のデータフローグラフを生成することと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記複数の第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを前記第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、前記複数の第2のコンピュータ動作を表す前記複数の第2のノードを含み、前記複数の第2のコンピュータ動作のうちの少なくとも所与の1つは、並べ替え動作、データ型動作、指定キーとの結合動作、及び分割動作からなる群から選択される、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を含む動作を前記1つ以上のプロセッサに実行させる、1つ以上の記憶デバイスと、を含む、システム。 - 命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
データ処理における第1のコンピュータ動作を表す複数の第1のノードを含む第1のデータフローグラフを生成することと、
前記第1のデータフローグラフにおいて表される少なくともいくつかの宣言動作の中からパターンを識別することと、
前記少なくともいくつかの宣言動作の中から識別された前記パターンに基づいて、前記第1のコンピュータ動作に従ってデータを処理するために前記第1のデータフローグラフを第2のデータフローグラフに変換することであって、前記第2のデータフローグラフは、第2のコンピュータ動作を表す複数の第2のノードを含み、前記第2のコンピュータ動作のうちの少なくとも所与の1つは、並べ替え動作、データ型動作、指定キーとの結合動作、及び分割動作からなる群から選択される、ことと、
前記第2のデータフローグラフをデータストアに記憶することと、を計算システムに実行させる、非一時的コンピュータ可読媒体。 - 前記複数の第2のコンピュータ動作のうちの少なくともいくつかは、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項1に記載のコンピュータ実施方法。
- 前記1つ以上の命令動作は、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項1に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの少なくともいくつかは、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項26に記載のシステム。
- 前記1つ以上の命令動作は、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項26に記載のシステム。
- 前記1つ以上の命令動作は、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項27に記載の非一時的コンピュータ可読媒体。
- 前記複数の第2のコンピュータ動作のうちの少なくともいくつかは、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項28に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの前記少なくとも所与の1つは、前記第1のデータフローグラフ内の第1のノードによって表されない、請求項28に記載のコンピュータ実施方法。
- 前記複数の第2のコンピュータ動作のうちの少なくともいくつかは、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項29に記載のシステム。
- 前記複数の第2のコンピュータ動作のうちの前記少なくとも所与の1つは、前記第1のデータフローグラフ内の第1のノードによって表されない、請求項29に記載のシステム。
- 前記第2のコンピュータ動作のうちの前記少なくとも所与の1つは、前記第1のデータフローグラフ内の前記第1のノードによって表されない、請求項30に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062966768P | 2020-01-28 | 2020-01-28 | |
| US62/966,768 | 2020-01-28 | ||
| PCT/US2020/030612 WO2021154319A1 (en) | 2020-01-28 | 2020-04-30 | Editor for generating computational graphs |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2023511631A JP2023511631A (ja) | 2023-03-20 |
| JP2023511631A5 JP2023511631A5 (ja) | 2023-05-11 |
| JP7629464B2 true JP7629464B2 (ja) | 2025-02-13 |
Family
ID=70918967
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022545888A Active JP7629464B2 (ja) | 2020-01-28 | 2020-04-30 | 計算グラフを生成するためのエディタ |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US11593380B2 (ja) |
| EP (1) | EP4097583B1 (ja) |
| JP (1) | JP7629464B2 (ja) |
| CN (1) | CN115136113A (ja) |
| AU (1) | AU2020425749B2 (ja) |
| CA (1) | CA3165743A1 (ja) |
| MX (1) | MX2022009221A (ja) |
| WO (1) | WO2021154319A1 (ja) |
Families Citing this family (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
| US10997180B2 (en) | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
| US10534759B1 (en) | 2018-08-23 | 2020-01-14 | Cohesity, Inc. | Incremental virtual machine metadata extraction |
| US10936585B1 (en) | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
| US10810035B2 (en) | 2019-02-27 | 2020-10-20 | Cohesity, Inc. | Deploying a cloud instance of a user virtual machine |
| US11573861B2 (en) | 2019-05-10 | 2023-02-07 | Cohesity, Inc. | Continuous data protection using a write filter |
| US11238048B1 (en) | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
| US11250136B2 (en) | 2019-10-22 | 2022-02-15 | Cohesity, Inc. | Scanning a backup for vulnerabilities |
| US11397649B2 (en) | 2019-10-22 | 2022-07-26 | Cohesity, Inc. | Generating standby cloud versions of a virtual machine |
| US11487549B2 (en) | 2019-12-11 | 2022-11-01 | Cohesity, Inc. | Virtual machine boot data prediction |
| JP7629464B2 (ja) | 2020-01-28 | 2025-02-13 | アビニシオ テクノロジー エルエルシー | 計算グラフを生成するためのエディタ |
| US11710027B2 (en) * | 2020-03-03 | 2023-07-25 | International Business Machines Corporation | Artificial intelligence workflow builder |
| US11614923B2 (en) * | 2020-04-30 | 2023-03-28 | Splunk Inc. | Dual textual/graphical programming interfaces for streaming data processing pipelines |
| US11614954B2 (en) * | 2020-12-08 | 2023-03-28 | Cohesity, Inc. | Graphical user interface to specify an intent-based data management plan |
| US11914480B2 (en) | 2020-12-08 | 2024-02-27 | Cohesity, Inc. | Standbys for continuous data protection-enabled objects |
| US11768745B2 (en) | 2020-12-08 | 2023-09-26 | Cohesity, Inc. | Automatically implementing a specification of a data protection intent |
| US11650995B2 (en) | 2021-01-29 | 2023-05-16 | Splunk Inc. | User defined data stream for routing data to a data destination based on a data route |
| US12164524B2 (en) | 2021-01-29 | 2024-12-10 | Splunk Inc. | User interface for customizing data streams and processing pipelines |
| JP7832951B2 (ja) | 2021-01-31 | 2026-03-18 | アビニシオ テクノロジー エルエルシー | データ処理システム用のデータセットマルチプレクサ |
| MX2023008982A (es) | 2021-01-31 | 2023-12-04 | Ab Initio Technology Llc | Sistema de procesamiento de datos con manipulacion de grupos de conjuntos de datos logicos. |
| US11481287B2 (en) | 2021-02-22 | 2022-10-25 | Cohesity, Inc. | Using a stream of source system storage changes to update a continuous data protection-enabled hot standby |
| US11687487B1 (en) | 2021-03-11 | 2023-06-27 | Splunk Inc. | Text files updates to an active processing pipeline |
| US11663219B1 (en) | 2021-04-23 | 2023-05-30 | Splunk Inc. | Determining a set of parameter values for a processing pipeline |
| US11604789B1 (en) | 2021-04-30 | 2023-03-14 | Splunk Inc. | Bi-directional query updates in a user interface |
| US12242892B1 (en) | 2021-04-30 | 2025-03-04 | Splunk Inc. | Implementation of a data processing pipeline using assignable resources and pre-configured resources |
| US11989592B1 (en) | 2021-07-30 | 2024-05-21 | Splunk Inc. | Workload coordinator for providing state credentials to processing tasks of a data processing pipeline |
| US12164522B1 (en) | 2021-09-15 | 2024-12-10 | Splunk Inc. | Metric processing for streaming machine learning applications |
| US12182202B2 (en) * | 2021-09-24 | 2024-12-31 | Insitro, Inc. | System, devices and/or processes for updating call graphs |
| US11656744B1 (en) * | 2022-03-14 | 2023-05-23 | Wolters Kluwer Technology BV | Interactive tool for efficiently developing task flows |
| EP4519760A1 (en) | 2022-05-05 | 2025-03-12 | Ab Initio Technology LLC | Dataflow graph datasets |
| US12223278B2 (en) | 2022-07-08 | 2025-02-11 | Sap Se | Automatic data card generation |
| US12380243B2 (en) | 2022-07-11 | 2025-08-05 | Sap Se | Image segmentation for anonymization for image processing |
| US12541555B2 (en) * | 2022-08-22 | 2026-02-03 | Oracle Financial Services Software Limited | Declarative modeling paradigm for graph-database |
| CN116009830A (zh) * | 2022-12-16 | 2023-04-25 | 国科础石(重庆)软件有限公司 | 一种目标软件模块的组件的生成方法、装置、电子设备 |
| US12579011B1 (en) | 2023-02-27 | 2026-03-17 | Nvidia Corporation | Application programming interface to indicate semaphore wait dependencies |
| US12443462B1 (en) | 2023-02-27 | 2025-10-14 | Nvidia Corporation | Application programming interface using node dependencies |
| US12602230B1 (en) * | 2023-02-27 | 2026-04-14 | Nvidia Corporation | Application programming interface to indicate null-operation dependencies |
| US12511106B1 (en) | 2023-02-27 | 2025-12-30 | Nvidia Corporation | Application programming interface to indicate host dependencies |
| JP2026511562A (ja) | 2023-03-23 | 2026-04-14 | アビニシオ テクノロジー エルエルシー | 拡張ビューのデータセットをプレビューするための論理アクセス |
| KR20260021724A (ko) | 2023-06-12 | 2026-02-13 | 아브 이니티오 테크놀로지 엘엘시 | 재사용 가능 데이터 처리 프로그램 생성 |
| US20250181319A1 (en) | 2023-12-01 | 2025-06-05 | Ab Initio Technology Llc | Techniques for resolving data fields available at points in a software application |
| US12222858B1 (en) * | 2024-03-08 | 2025-02-11 | Milaboratories Inc. | System and method for optimized computation and data management with garbage collection and redundant processing mitigation in graph state configuration |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013541784A (ja) | 2010-10-25 | 2013-11-14 | アビニシオ テクノロジー エルエルシー | コンピュータプログラムを表すデータフローグラフ内のデータセットオブジェクトの管理 |
| US20150106818A1 (en) | 2010-06-15 | 2015-04-16 | Ab Initio Technology Llc | Dynamically loading graph-based computations |
| US20190370407A1 (en) | 2018-05-30 | 2019-12-05 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
| US20080052687A1 (en) * | 2003-11-03 | 2008-02-28 | Agustin Gonzales-Tuchmann | Development environment for data transformation applications |
| US8069129B2 (en) | 2007-04-10 | 2011-11-29 | Ab Initio Technology Llc | Editing and compiling business rules |
| US8537160B2 (en) * | 2008-03-05 | 2013-09-17 | Microsoft Corporation | Generating distributed dataflow graphs |
| US8239847B2 (en) * | 2009-03-18 | 2012-08-07 | Microsoft Corporation | General distributed reduction for data parallel computing |
| CA2823691C (en) * | 2011-01-07 | 2020-03-24 | Ab Initio Technology Llc | Flow analysis instrumentation |
| US9116955B2 (en) * | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
| US9886477B2 (en) * | 2014-10-24 | 2018-02-06 | Sap Se | Generating imperative-language query code from declarative-language query code |
| CN110149801A (zh) * | 2015-05-05 | 2019-08-20 | 华为技术有限公司 | 用于在处理系统中进行数据流图转换的系统和方法 |
| KR102092721B1 (ko) * | 2016-03-23 | 2020-04-23 | 포그혼 시스템스 인코포레이티드 | 실시간 데이터플로우 프로그래밍에서 패턴 구동형 반응의 구성 |
| US11423083B2 (en) | 2017-10-27 | 2022-08-23 | Ab Initio Technology Llc | Transforming a specification into a persistent computer program |
| JP7629464B2 (ja) | 2020-01-28 | 2025-02-13 | アビニシオ テクノロジー エルエルシー | 計算グラフを生成するためのエディタ |
-
2020
- 2020-04-30 JP JP2022545888A patent/JP7629464B2/ja active Active
- 2020-04-30 US US16/862,821 patent/US11593380B2/en active Active
- 2020-04-30 MX MX2022009221A patent/MX2022009221A/es unknown
- 2020-04-30 CN CN202080097175.2A patent/CN115136113A/zh active Pending
- 2020-04-30 CA CA3165743A patent/CA3165743A1/en active Pending
- 2020-04-30 EP EP20729271.5A patent/EP4097583B1/en active Active
- 2020-04-30 WO PCT/US2020/030612 patent/WO2021154319A1/en not_active Ceased
- 2020-04-30 AU AU2020425749A patent/AU2020425749B2/en active Active
-
2023
- 2023-02-22 US US18/112,958 patent/US12050606B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150106818A1 (en) | 2010-06-15 | 2015-04-16 | Ab Initio Technology Llc | Dynamically loading graph-based computations |
| JP2013541784A (ja) | 2010-10-25 | 2013-11-14 | アビニシオ テクノロジー エルエルシー | コンピュータプログラムを表すデータフローグラフ内のデータセットオブジェクトの管理 |
| US20190370407A1 (en) | 2018-05-30 | 2019-12-05 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4097583A1 (en) | 2022-12-07 |
| US12050606B2 (en) | 2024-07-30 |
| US11593380B2 (en) | 2023-02-28 |
| EP4097583B1 (en) | 2026-03-04 |
| CN115136113A (zh) | 2022-09-30 |
| JP2023511631A (ja) | 2023-03-20 |
| US20240028595A1 (en) | 2024-01-25 |
| US20210232579A1 (en) | 2021-07-29 |
| MX2022009221A (es) | 2022-10-07 |
| AU2020425749B2 (en) | 2026-01-15 |
| CA3165743A1 (en) | 2021-08-05 |
| WO2021154319A1 (en) | 2021-08-05 |
| BR112022014874A2 (pt) | 2022-09-20 |
| AU2020425749A1 (en) | 2022-08-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7629464B2 (ja) | 計算グラフを生成するためのエディタ | |
| KR102186050B1 (ko) | 소스 코드 번역 | |
| US8209664B2 (en) | High level programming extensions for distributed data parallel processing | |
| US8239847B2 (en) | General distributed reduction for data parallel computing | |
| US20070233645A1 (en) | System and Method for Building an XQuery Using a Model-Based XQuery Building Tool | |
| Cartright et al. | Galago: A Modular Distributed Processing and Retrieval System. | |
| Harrop | F# for Scientists | |
| Ferrera et al. | Tuple MapReduce and Pangool: an associated implementation | |
| BR112022014874B1 (pt) | Método implementado por computador e sistema para transformar um primeiro gráfico de fluxo de dados em um segundo gráfico de fluxo de dados e meio não transitório legível por computador | |
| US12038921B2 (en) | Transforming operations of a computer program for execution at a database | |
| Windh | Hashing, Caching, and Synchronization: Memory Techniques for Latency Masking Multithreaded Applications | |
| HK40088651A (en) | Transforming operations of a computer program for execution at a database | |
| HK40088651B (en) | Transforming operations of a computer program for execution at a database | |
| HK40036906B (en) | Source code translation | |
| HK40036906A (en) | Source code translation | |
| George | FPGAs for the Masses: Affordable Hardware Synthesis from Domain-Specific Languages | |
| HK1259983B (en) | Source code translation | |
| HK1259983A1 (en) | Source code translation | |
| BOEGEHOLZ | A Relational Model for Parallel Computation | |
| HK1227131A1 (en) | Source code translation | |
| HK1227131B (zh) | 源代码翻译 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230427 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230427 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240430 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240513 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240806 |
|
| 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: 20250107 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250131 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7629464 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
