IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2024-531979データ分析環境で使用するクエリ高速化のためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-03
(54)【発明の名称】データ分析環境で使用するクエリ高速化のためのシステムおよび方法
(51)【国際特許分類】
   G06F 16/28 20190101AFI20240827BHJP
   G06F 16/903 20190101ALI20240827BHJP
【FI】
G06F16/28
G06F16/903
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513038
(86)(22)【出願日】2022-08-26
(85)【翻訳文提出日】2024-04-16
(86)【国際出願番号】 US2022041715
(87)【国際公開番号】W WO2023028330
(87)【国際公開日】2023-03-02
(31)【優先権主張番号】63/237,963
(32)【優先日】2021-08-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/895,665
(32)【優先日】2022-08-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ミッタル,アシシュ
(72)【発明者】
【氏名】エング,ケネス
(72)【発明者】
【氏名】マスカレニャス,アレクテア
(72)【発明者】
【氏名】ウォン,デイビッド
(72)【発明者】
【氏名】ヘバー,プラフル
(72)【発明者】
【氏名】グー,イー
(72)【発明者】
【氏名】ラジャゴパラン,マハデバン
(72)【発明者】
【氏名】ボルシウス,ロジャー
(72)【発明者】
【氏名】ランガナタン,ビジャヤクマール
(72)【発明者】
【氏名】ロティア,サマル
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA05
5B175KA12
(57)【要約】
一実施形態によれば、本明細書では、例えばビジネスインテリジェンス環境、データベース、データウェアハウス、またはデータ分析をサポートする他のタイプの環境などのコンピューティング環境でクエリの高速化を提供するシステムおよび方法が説明される。中間層は長期テーブルデータストレージ形式として提供され、もう1つの高速化形式、つまり高速化テーブルを中間層から定期的に再生成でき、データセットテーブルに対して高速化されたテーブルが存在するかどうかを判定でき、存在する場合は、高速化されたテーブルを使用してクエリが処理される。
【特許請求の範囲】
【請求項1】
データ分析をサポートするコンピューティング環境でクエリの高速化を提供するシステムであって、
プロセッサとメモリとを有するコンピュータと、クエリに利用可能なデータへのアクセスを提供し、受信クエリを受信して処理するサーバを含む、前記コンピュータ上で動作するデータ分析環境と、を備え、
データセットに関連付けられたデータが、
長期テーブルデータストレージ形式として中間層に記憶され、
前記中間層から定期的に再生成されるもう1つの高速化形式または高速化されたテーブルとして記憶され、
前記システムは、データセットのライフサイクルと1つまたは複数のクエリフローとの使用を含む、データセットの調査に使用するレポート、分析、プロジェクト、および/またはダッシュボードの使用に関連して、グラフィカル形式で表示されるクエリの高速化を提供し、
クエリに応答して、データセットテーブルに対して高速化されたテーブルが存在するかどうかが判定され、存在する場合は、前記クエリを処理するために前記高速化されたテーブルが使用される、
システム。
【請求項2】
前記システムは、高速化されたテーブルが存在しないと判定した後、ローカルのネイティブテーブルが存在するかどうかを判定し、存在する場合は前記クエリが処理される、請求項1に記載のシステム。
【請求項3】
前記システムは、ローカルのネイティブテーブルが存在しないと判定した後、リモートのネイティブテーブルが存在するかどうかを判定し、存在する場合は前記リモートのネイティブテーブルがダウンロードされ、前記クエリが処理される、請求項2に記載のシステム。
【請求項4】
前記システムは、リモートのネイティブテーブルが存在しないと判定した後、前記データセットがエンリッチされているかどうかを判定し、エンリッチされている場合は、前記クエリを処理するために、準備された形式がダウンロードされ、出力式が適用され、前記データセットがリモートのネイティブテーブルに変換される、請求項3に記載のシステム。
【請求項5】
前記システムはクラウド環境内で提供される、請求項1に記載のシステム。
【請求項6】
データ分析をサポートするコンピューティング環境でクエリの高速化を提供する方法であって、
プロセッサとメモリとを有するコンピュータに、クエリに利用可能なデータへのアクセスを提供し、受信クエリを受信して処理するサーバを含む、前記コンピュータ上で動作するデータ分析環境を提供することと、
データセットに関連付けられたデータを、
中間層では長期テーブルデータストレージ形式として、および
前記中間層から定期的に再生成されるもう1つの高速化形式または高速化されたテーブルとして記憶することと、
データセットのライフサイクルと1つまたは複数のクエリフローとの使用を含む、データセットの調査に使用するレポート、分析、プロジェクト、および/またはダッシュボードの使用に関連して、グラフィカル形式で表示されるクエリの高速化を実行し、クエリに応答して、データセットテーブルに対して高速化されたテーブルが存在するかどうかが判定され、存在する場合は、前記クエリを処理するために前記高速化されたテーブルが使用される、こととを含む、方法。
【請求項7】
高速化されたテーブルが存在しないと判定された後、ローカルのネイティブテーブルが存在するかどうかが判定され、存在する場合は前記クエリが処理される、請求項6に記載の方法。
【請求項8】
ローカルのネイティブテーブルが存在しないと判定された後、リモートのネイティブテーブルが存在するかどうかが判定され、存在する場合は前記リモートのネイティブテーブルがダウンロードされ、前記クエリが処理される、請求項7に記載の方法。
【請求項9】
リモートのネイティブテーブルが存在しないと判定された後、前記データセットがエンリッチされているかどうかが判定され、エンリッチされている場合は、前記クエリを処理するために、準備された形式がダウンロードされ、出力式が適用され、前記データセットがリモートのネイティブテーブルに変換される、請求項8に記載の方法。
【請求項10】
前記方法はクラウド環境内で提供される、請求項6に記載の方法。
【請求項11】
命令を有する非一時的なコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサを含むコンピュータによって読み取られて実行されると、前記コンピュータに、
クエリに利用可能なデータへのアクセスを提供し、受信クエリを受信して処理するサーバを含む、前記コンピュータ上で動作するデータ分析環境を提供することと、
データセットに関連付けられたデータを、
中間層では長期テーブルデータストレージ形式として、および
前記中間層から定期的に再生成されるもう1つの高速化形式または高速化されたテーブルとして記憶することと、
データセットのライフサイクルと1つまたは複数のクエリフローとの使用を含む、データセットの調査に使用するレポート、分析、プロジェクト、および/またはダッシュボードの使用に関連して、グラフィカル形式で表示されるクエリの高速化を実行し、クエリに応答して、データセットテーブルに対して高速化されたテーブルが存在するかどうかが判定され、存在する場合は、前記クエリを処理するために前記高速化されたテーブルが使用される、こととを含む方法を実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項12】
高速化されたテーブルが存在しないと判定された後、ローカルのネイティブテーブルが存在するかどうかが判定され、存在する場合は前記クエリが処理される、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項13】
ローカルのネイティブテーブルが存在しないと判定された後、リモートのネイティブテーブルが存在するかどうかが判定され、存在する場合は前記リモートのネイティブテーブルがダウンロードされ、前記クエリが処理される、請求項12に記載の非一時的なコンピュータ可読媒体。
【請求項14】
リモートのネイティブテーブルが存在しないと判定された後、前記データセットがエンリッチされているかどうかが判定され、エンリッチされている場合は、前記クエリを処理するために、準備された形式がダウンロードされ、出力式が適用され、前記データセットがリモートのネイティブテーブルに変換される、請求項13に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記方法はクラウド環境内で提供される、請求項11に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
著作権表示
この特許文書の開示の一部には、著作権保護の対象となる内容が含まれている。著作権所有者は、特許商標庁の特許ファイルまたは記録に記載されている特許文書または特許開示のファクシミリ複製に異議を唱えないが、それ以外の場合はすべての著作権を留保する。
【0002】
優先権の主張
本出願は、2021年8月27日に提出された「データ分析環境で使用するBIクエリ高速化のためのシステムおよび方法」というタイトルの米国特許仮出願(出願番号63/237,963)、および2022年8月25日に提出された「データ分析環境での使用のためのクエリ高速化のためのシステムおよび方法」というタイトルの米国特許出願(出願番号17/895,665)に対する優先権の利益を主張し、上記の各出願およびその内容は、参照により本明細書に組み込まれる。
【0003】
技術分野
本明細書で説明される実施形態は、一般に、コンピュータデータ分析、およびビジネスインテリジェンスまたは他のデータを提供するコンピュータベースの方法に関連し、特に、そのような環境で使用するためのクエリ高速化を提供するシステムおよび方法に関連する。
【背景技術】
【0004】
背景
データ分析により、大量のデータをコンピュータベースで調査でき、例えばデータから結論やその他の情報を導き出すことができる。例えば、ビジネスインテリジェンスツールを使用すると、ユーザが戦略的なビジネス上の意思決定を行える形式で、企業データを説明するビジネスインテリジェンスをユーザに提供できる。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
一実施形態によれば、本明細書では、例えばビジネスインテリジェンス環境、データベース、データウェアハウス、またはデータ分析をサポートする他のタイプの環境などのコンピューティング環境でクエリの高速化を提供するシステムおよび方法が説明される。中間層は長期テーブルデータストレージ形式として提供され、もう1つの高速化形式、つまり高速化テーブルを中間層から定期的に再生成でき、データセットテーブルに対して高速化されたテーブルが存在するかどうかを判定でき、存在する場合は、高速化されたテーブルを使用してクエリが処理される。
【図面の簡単な説明】
【0006】
図1】一実施形態によるデータ分析環境の例を示す図である。
図2】一実施形態によるデータ分析環境の例をさらに示す図である。
図3】一実施形態によるデータ分析環境の例をさらに示す図である。
図4】一実施形態によるデータ分析環境の例をさらに示す図である。
図5】一実施形態によるデータ分析環境の例をさらに示す図である。
図6】一実施形態による、データを変換、分析、または視覚化するためのシステムの使用を示す図である。
図7】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図8】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図9】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図10】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図11】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図12】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図13】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図14】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図15】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図16】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図17】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図18】一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す図である。
図19】一実施形態による、データ分析環境でのクエリ高速化の使用を示す図である。
図20】一実施形態による、クエリ高速化の使用をさらに示す図である。
図21】一実施形態による、クエリ高速化の使用をさらに示す図である。
図22】一実施形態による、クエリ高速化を提供する際に使用されるデータセットのライフサイクルまたは状態図を示す図である。
図23】一実施形態による、クエリ高速化の使用を含むクエリ処理を示す図である。
図24】一実施形態による、クエリ高速化の使用を含む、様々なタイプのデータセットに対するクエリ処理をさらに示す図である。
図25】一実施形態による、クエリ高速化の使用を含む、様々なタイプのデータセットに対するクエリ処理をさらに示す図である。
図26】一実施形態による、クエリ高速化の使用を含む、様々なタイプのデータセットに対するクエリ処理をさらに示す図である。
図27】一実施形態による、データ分析環境でクエリ高速化を提供する方法を示す図である。
図28】一実施形態による、データ分析環境でクエリ高速化を提供する方法をさらに示す図である。
【発明を実施するための形態】
【0007】
詳細な説明
一般に、組織内でのデータ分析により、大量のデータをコンピュータベースで調査し、データから結論やその他の情報を導き出すことができる。例えば、ビジネスインテリジェンス(BI:business intelligence)ツールを使用すると、ユーザが戦略的なビジネス上の意思決定を行える形式で、企業データを説明するビジネスインテリジェンスをユーザに提供できる。
【0008】
このようなビジネスインテリジェンスツール/サーバの例には、データマイニングや分析、分析アプリケーションなどの機能をサポートするためにデータベースと連携できるクエリ、レポート、分析サーバを提供するOracle Business Intelligence Applications(OBIA)、Oracle Business Intelligence Enterprise Edition(OBIEE)、またはOracle Business Intelligence Server(OBIS)が含まれる。
【0009】
データ分析は、Oracle Fusion Applications 環境などのエンタープライズソフトウェアアプリケーション環境のコンテキスト内で、またはサービスとしてのソフトウェア(SaaS:software-as-a-service)のコンテキスト内で、または、Oracle Analytics CloudやOracle Cloud Infrastructure環境などのクラウド環境で、または他のタイプの分析アプリケーションまたはクラウド環境で提供されることが増えている。
【0010】
導入
一実施形態によれば、データウェアハウス環境またはコンポーネント(Oracle Autonomous Data Warehouse(ADW)、Oracle Autonomous Data Warehouse Cloud(ADWC)など、または、大量のデータを記憶するのに適した他のタイプのデータウェアハウス環境やコンポーネント)は、1つまたは複数のビジネスアプリケーションによって収集されたデータを記憶するための中央リポジトリを提供できる。
【0011】
例えば、一実施形態によれば、データウェアハウス環境またはコンポーネントは、オンライン分析処理(OLAP:online analytical processing)または他の技術を使用して、複数の異なるデータソースからビジネス関連データを生成する多次元データベースとして提供され得る。組織は、そのようなビジネス関連データを1つまたは複数の垂直型および/または水平型ビジネスアプリケーションから抽出し、抽出されたデータをその組織に関連付けられたデータウェアハウスインスタンスに注入できる。
【0012】
水平型ビジネスアプリケーションの例には、上で説明したようにERP、HCM、CX、SCM、およびEPMが含まれ得、様々な企業組織にわたって広範な機能を提供する。
【0013】
垂直型ビジネスアプリケーションは通常、水平型ビジネスアプリケーションよりも範囲が狭いが、規定された範囲または業界内のデータチェーンのさらに上位または下位のデータへのアクセスを提供する。垂直型ビジネスアプリケーションの例には、特定の組織内で使用する医療ソフトウェアや銀行ソフトウェアなどが含まれ得る。
【0014】
Oracle ADWCなどの他のエンタープライズソフトウェア製品またはコンポーネントは、SaaS、サービスとしてのプラットフォーム(PaaS:platform-as-a-service)、またはハイブリッドサブスクリプションの1つまたは複数として提供できる一方で、ソフトウェアベンダは、エンタープライズソフトウェア製品やコンポーネントをSaaSまたはクラウド指向の製品(Oracle Fusion Applicationsなど)として提供することが増えているが、従来のビジネスインテリジェンスアプリケーションおよび処理を使用する企業ユーザは一般に、水平型および垂直型ビジネスアプリケーションからデータを抽出し、抽出したデータをデータウェアハウスに導入するというタスクに直面し、この処理は時間とリソースの両方を大量に消費する可能性がある。
【0015】
一実施形態によれば、分析アプリケーション環境により、顧客(テナント)は、BIコンポーネント(例えば、OBIS環境や、顧客(テナント)自体、または複数のサードパーティエンティティから調達される大量のデータを調べるのに適した他のタイプのBIコンポーネントなど)で使用するコンピュータ実行可能ソフトウェア分析アプリケーションを開発できる。
【0016】
別の例として、一実施形態によれば、例えば、事前規定されたダッシュボード、主要業績評価指標(KPI:key performance indicators)、または他のタイプのレポートを含めるために、分析アプリケーション環境を使用して、様々なビジネス生産性ソフトウェアアプリケーションのコンテキストでビジネス関連のデータオブジェクトを記述する関連メタデータをデータウェアハウスインスタンスのレポートインターフェースに事前設定することができる。
【0017】
データ分析
一般に、データ分析では、データから結論やその他の情報を導き出すために、大量のデータをコンピュータベースで検査または分析でき、一方、ビジネスインテリジェンスツール(BI:business intelligence tools)は、組織のビジネスユーザが戦略的なビジネス上の意思決定を行える形式でエンタープライズデータを説明する情報を組織のビジネスユーザに提供する。
【0018】
データ分析環境およびビジネスインテリジェンスツール/サーバの例には、データマイニングや分析、分析アプリケーションなどの機能をサポートするOracle Business Intelligence Server(OBIS)、Oracle Analytics Cloud(OAC)、Fusion Analytics Warehouse(FAW)などが含まれる。
【0019】
図1は、一実施形態によるデータ分析環境の例を示す。
図1に示される例示的な実施形態は、本明細書で説明される様々な実施形態を使用できるデータ分析環境の例を示す目的で提供される。他の実施形態および例によれば、本明細書で説明されるアプローチは、他のタイプのデータ分析、データベース、またはデータウェアハウス環境で使用することができる。図1に示され、他の様々な実施形態に関して本明細書でさらに説明されるコンポーネントおよび処理は、例えば、クラウドコンピューティングシステム、または他の適切にプログラムされたコンピュータシステムによって実行可能なソフトウェアまたはプログラムコードとして提供され得る。
【0020】
図1に示すように、一実施形態によれば、データ分析環境100は、コンピュータハードウェア(例えば、プロセッサ、メモリ)101を有し、制御プレーン102およびデータプレーン104として動作する1つまたは複数のソフトウェアコンポーネントを含み、データウェアハウス、データウェアハウスインスタンス160(データベース161、または他のタイプのデータソース)へのアクセスを提供するコンピュータシステムによって提供されるか、またはそこで動作することができる。
【0021】
一実施形態によれば、制御プレーンは、例えば、Oracle Analytics Cloud環境、または他のタイプのクラウド環境など、SaaSまたはクラウド環境のコンテキスト内で提供されるクラウドまたは他のソフトウェア製品の制御を提供するように動作する。例えば、一実施形態によれば、制御プレーンは、顧客(テナント)によるアクセスを可能にするコンソールインターフェース110、および/またはプロビジョニングコンポーネント111を有するクラウド環境を含むことができる。
【0022】
一実施形態によれば、コンソールインターフェースは、グラフィカルユーザインターフェース(GUI:graphical user interface)および/またはコマンドラインインターフェース(CLI:command-line interface)または他のインターフェースを操作する顧客(テナント)によるアクセスを可能にすることができ、および/またはSaaSまたはクラウド環境のプロバイダとその顧客(テナント)が使用するインターフェースを含み得る。例えば、一実施形態によれば、コンソールインターフェースは、顧客がそのSaaS環境内で使用するためのサービスをプロビジョニングし、プロビジョニングされたサービスを構成できるようにするインターフェースを提供することができる。
【0023】
一実施形態によれば、顧客(テナント)は、データウェアハウス内の顧客スキーマのプロビジョニングを要求できる。顧客は、コンソールインターフェースを介して、必須属性(ログイン資格情報など)やオプションの属性(サイズや速度など)を含む、データウェアハウスインスタンスに関連付けられた多数の属性を提供することもできる。その後、プロビジョニングコンポーネントは、データウェアハウスの顧客スキーマを含む、要求されたデータウェアハウスインスタンスをプロビジョニングでき、顧客から提供された適切な情報をデータウェアハウスインスタンスに入力できる。
【0024】
一実施形態によれば、プロビジョニングコンポーネントは、例えば、特定の顧客(テナント)に対してETL処理の実行の要求頻度を変更または更新することにより、データウェアハウスインスタンスやデータプレーンで動作するETL処理を更新または編集するために使用することもできる。
【0025】
一実施形態によれば、データプレーンは、組織のエンタープライズソフトウェアアプリケーションまたはデータ環境(例えば、顧客(テナント)のSaaS環境でプロビジョニングされたビジネス生産性ソフトウェアアプリケーションなど)からの運用データまたはトランザクションデータを一緒に処理するデータパイプラインまたは処理層120およびデータ変換層134を含み得る。データパイプラインまたは処理は、SaaS環境でプロビジョニングされたビジネスアプリケーションやデータベースからトランザクションデータを抽出し、変換されたデータをデータウェアハウスにロードする様々な機能を含み得る。
【0026】
一実施形態によれば、データ変換層は、ビジネスアプリケーションおよびSaaS環境にプロビジョニングされた対応するトランザクションデータベースから受信したトランザクションデータを、データ分析環境が理解できるモデル形式に変換するためにシステムが使用する知識モデル(KM:knowledge model)などのデータモデルや他のタイプのデータモデルを含み得る。モデル形式は、データウェアハウスへの記憶に適した任意のデータ形式で提供され得る。一実施形態によれば、データプレーンは、データおよび構成ユーザインターフェース、およびマッピングおよび構成データベースも含み得る。
【0027】
一実施形態によれば、データプレーンは、組織のエンタープライズソフトウェアアプリケーションやデータ環境(例えば、SaaS環境で提供されるビジネス生産性ソフトウェアアプリケーションや対応するトランザクションデータベースなど)からトランザクションデータを抽出すること、抽出されたデータをモデル形式に変換すること、および変換されたデータをデータウェアハウスの顧客スキーマにロードすることを含む、抽出、変換、ロード(ETL:extract, transform, and load)操作の実行を担当する。
【0028】
例えば、一実施形態によれば、環境の各顧客(テナント)は、独自の顧客スキーマに関連付けられたデータウェアハウス内の独自の顧客テナントに関連付けられていてもよく、さらに、データ分析スキーマへの読み取り専用アクセスを提供できる。データ分析スキーマは、データパイプラインまたは処理(ETL処理など)によって定期的またはその他のベースで更新され得る。
【0029】
一実施形態によれば、データパイプラインまたは処理は、例えば、SaaS環境でプロビジョニングされるビジネス生産性ソフトウェアアプリケーションおよび対応するトランザクションデータベース106などのエンタープライズソフトウェアアプリケーションまたはデータ環境からトランザクションデータを抽出するために一定の間隔(例えば、毎時、毎日、毎週)で実行されるようにスケジュールされ得る。
【0030】
一実施形態によれば、抽出処理108はトランザクションデータを抽出することができ、データパイプラインまたは処理の抽出により、抽出されたデータをデータステージングエリアに挿入することができ、データステージングエリアは、抽出されたデータの一時的なステージングエリアとして機能することができる。抽出されたデータの整合性を確保するために、データ品質コンポーネントおよびデータ保護コンポーネントが使用され得る。例えば、一実施形態によれば、データ品質コンポーネントは、データがデータステージングエリアに一時的に保持されている間に、抽出されたデータの検証を実行することができる。
【0031】
一実施形態によれば、抽出処理が抽出を完了すると、データ変換層を使用して変換処理を開始し、抽出されたデータをデータウェアハウスの顧客スキーマにロードされるモデル形式に変換することができる。
【0032】
一実施形態によれば、データパイプラインまたは処理は、データ変換層と組み合わせて動作して、データをモデル形式に変換することができる。マッピングおよび構成データベースには、データ変換で使用されるデータモデルを規定するメタデータとデータマッピングを記憶できる。データおよび構成ユーザインターフェース(UI:user interface)により、マッピングおよび構成データベースへのアクセスと変更が容易になる。
【0033】
一実施形態によれば、データ変換層は、抽出されたデータを、例えばデータモデルに従って、データウェアハウスの顧客スキーマにロードするのに適した形式に変換することができる。変換中、データ変換では必要に応じてディメンションの生成、ファクトの生成、および集計の生成を実行できる。ディメンションの生成には、データウェアハウスインスタンスにロードするためのディメンションまたはフィールドの生成が含まれ得る。
【0034】
一実施形態によれば、抽出されたデータの変換後、データパイプラインまたは処理は、ウェアハウスロード手順150を実行して、変換されたデータをデータウェアハウスインスタンスの顧客スキーマにロードすることができる。変換されたデータを顧客スキーマにロードした後、変換されたデータを分析し、様々な追加のビジネスインテリジェンス処理で使用できる。
【0035】
データ分析環境の顧客が異なれば、データ分析やビジネスインテリジェンスデータの提供、またはソフトウェア分析アプリケーションの開発を目的としたデータの分類、集約、または変換方法に関して、異なる要件を有し得る。一実施形態によれば、このような様々な要件をサポートするために、セマンティック層180は、顧客データのセマンティックモデルを規定するデータを含んでいてもよく、これは、ユーザが一般的に理解されているビジネス用語を使用してそのデータを理解し、アクセスするのに役立ち、カスタムコンテンツをプレゼンテーション層190に提供する。
【0036】
一実施形態によれば、セマンティックモデルは、例えばOracle環境において、論理スキーマ、物理スキーマ、物理対論理マッピング、集約テーブルナビゲーション、および/またはセマンティックモデルの様々な物理層、ビジネスモデルとマッピング層、およびプレゼンテーション層の側面を実装するその他の構成要素を規定するメタデータを有するBIリポジトリ(RPD)ファイルとして規定することができる。
【0037】
一実施形態によれば、顧客は、特定の要件をサポートするために、データウェアハウスインスタンスに記憶されているデータに関連付けられたカスタムファクトやディメンションを追加するなど、データソースモデルに変更を加えることができ、システムはそれに応じてセマンティックモデルを拡張できる。
【0038】
一実施形態によれば、プレゼンテーション層は、例えば、ソフトウェア分析アプリケーション、ユーザインターフェース、ダッシュボード、主要業績評価指標(KPI:key performance indicators)、または、例えば、Oracle Analytics Cloud、Oracle Analytics for Applicationsなど製品によって提供される他の種類のレポートやインターフェースを使用して、データコンテンツへのアクセスを可能にする。
【0039】
ビジネスインテリジェンスサーバ
一実施形態によれば、クエリエンジン18(例えば、OBISインスタンス)は、フェデレーテッドクエリエンジンの方法で動作し、例えば、データベースに格納されたデータに向けられた、Oracle Analytics Cloud環境内のクライアントからの分析クエリまたはリクエストに対応する。
【0040】
一実施形態によれば、OBISインスタンスは、クエリ実行計画56に従って、サポートされているデータベースにオペレーションをプッシュダウンすることができ、物理クエリには、論理クエリの処理時にデータを取得するためにクエリエンジンがデータベースに送信するデータベース固有のステートメントが含まれる一方、論理クエリには、クライアントから受信した構造化クエリ言語(SQL:Structured Query Language)ステートメントを含めることができる。このようにして、OBISインスタンスはビジネスユーザのクエリを適切なデータベース固有のクエリ言語(Oracle SQL、SQL Server SQL、DB2 SQL、Essbase MDXなど)に変換する。クエリエンジン(OBISなど)は、データベースにプッシュダウンできないSQL演算子の内部実行もサポートし得る。
【0041】
一実施形態によれば、ユーザ/開発者は、コンピュータハードウェア11(例えば、プロセッサ、ストレージ、メモリ)、ユーザインターフェース12、およびアプリケーション14を含むクライアントコンピュータデバイス10と対話することができる。OBISなどのクエリンジンまたはビジネスインテリジェンスサーバは、通常、SQL、データベースモデルに対するリクエストなどのインバウンドを処理し、1つまたは複数の物理データベースクエリを構築して実行し、データを適切に処理して、リクエストに応応じてデータを返すように動作する。
【0042】
これを達成するために、一実施形態によれば、クエリエンジンまたはビジネスインテリジェンスサーバは、クエリのサブジェクト領域として利用可能なデータを記述する論理モデルまたはビジネスモデルまたはメタデータ、受信クエリを取得し、接続されたデータソースで使用する物理クエリに変換するリクエストジェネレータ、受信クエリを受け取り、論理モデルをナビゲートし、特定のクエリに必要なデータを最適に返す物理クエリを生成するナビゲータなど、様々なコンポーネントまたは機能を含み得る。
【0043】
例えば、一実施形態によれば、クエリエンジンまたはビジネスインテリジェンスサーバは、様々なデータソースに対して単純化されたスタースキーマビジネスモデルを作成することにより、データウェアハウス内のデータにマップされた論理モデルを使用して、ユーザが単一ソースからのものであるかのようにデータをクエリできるようにすることができる。その後、ビジネスモデルレイヤのマッピングルールに従って、情報をサブジェクト領域としてプレゼンテーションレイヤに返すことができる。
【0044】
一実施形態によれば、クエリエンジン(例えば、OBIS)は、クエリ実行計画に従ってデータベースに対するクエリを処理することができ、クエリ実行計画には、様々な子(リーフ)ノードを含むことができ、例えば、本明細書では様々な実施形態において一般に以下のRqListと呼ばれる。
Execution plan:
[[
RqList <<191986>> [for database 0:0,0]
D102.c1 as c1 [for database 0:0,0],
sum(D102.c2 by [ D102.c1] )as c2 [for database 0:0,0]
Child Nodes(RqJoinSpec): <<192970>> [for database 0:0,0]
RqJoinNode <<192969>> []

RqList <<193062>> [for database 0:0,0]
D2.c2 as c1 [for database 0:0,0],
D1.c2 as c2 [for database 0:0,0]
Child Nodes(RqJoinSpec): <<193065>> [for database 0:0,0]
RqJoinNode <<193061>> []

RqList <<192414>> [for database 0:0,118]
T1000003.Customer_ID as c1 [for database 0:0,118],
T1000003.TARGET as c2 [for database 0:0,118]
Child Nodes(RqJoinSpec): <<192424>> [for database 0:0,118]
RqJoinNode <<192423>> []
[users/administrator/dv_joins/multihub/input::##dataTarget]
as T1000003
)as D1 LeftOuterJoin(Eager)<<192381>> On D1.c1 = D2.c1;
actual join vectors: [ 0 ] = [ 0 ]

RqList <<192443>> [for database 0:0,0]
D104.c1 as c1 [for database 0:0,0],
nullifnotunique(D104.c2 by [ D104.c1] )as c2 [for database 0:0,0]
Child Nodes(RqJoinSpec): <<192928>> [for database 0:0,0]
RqJoinNode <<192927>> []

RqList <<192852>> [for database 0:0,118]
T1000006.Customer_ID as c1 [for database 0:0,118],
T1000006.Customer_City as c2 [for database 0:0,118]
Child Nodes(RqJoinSpec): <<192862>> [for database 0:0,118]
RqJoinNode <<192861>> []
[users/administrator/dv_joins/my_customers/input::data]
as T1000006
)as D104
GroupBy: [ D104.c1] [for database 0:0,0] sort
OrderBy: c1, Aggs:[ nullifnotunique(D104.c2 by [ D104.c1] )]
[for database 0:0,0]
)as D2
)as D102
GroupBy: [ D102.c1] [for database 0:0,0] sort
OrderBy: c1 asc, Aggs:[ sum(D102.c2 by [ D102.c1] )] [for database 0:0,0]
クエリ実行計画内では、各実行計画コンポーネント(RqList)はクエリ実行計画内のクエリのブロックを表し、通常はSELECTステートメントに変換される。RqListには、SELECTステートメントがネストされたSELECTステートメントから選択する方法と同様に、ネストされた子RqListを含めることができる。
【0045】
一実施形態によれば、クエリエンジンは異なるデータベースと対話することができ、これらのデータベースのそれぞれに対してデータソース固有のコードジェネレータを使用することができる。一般的な戦略は、物理クエリの一部としてSQL実行を送信することで、できるだけ多くのSQL実行をデータベースに送信することであり、これにより、OBISサーバに返される情報の量が削減される。
【0046】
一実施形態によれば、動作中、クエリエンジンまたはビジネスインテリジェンスサーバは、例えばリクエストに応答するために必要なデータの集約を実行するためにさらに最適化できるクエリ実行計画を作成することができる。ODBCインターフェースなどを介して、結果が呼び出し側アプリケーションに返される前に、データを結合してさらに計算を適用できる。
【0047】
一実施形態によれば、複数のデータソースを必要とする複雑なマルチパスリクエストでは、クエリを分解し、どのソース、マルチパス計算、および集計を使用できるかを判定し、複数のデータベースと物理SQLステートメントにまたがる論理クエリ実行計画を生成するためにクエリエンジンまたはビジネスインテリジェンスサーバが必要になる場合があり、次いで結果は返され、クエリエンジンまたはビジネスインテリジェンスサーバよってさらに結合または集約される場合がある。
【0048】
図2は、一実施形態によるデータ分析環境の例をさらに示す。
図2に示すように、一実施形態によれば、プロビジョニングコンポーネントは、以下でさらに説明するように、プロビジョニングアプリケーションプログラミングインターフェース(API)112、多数のワーカ115、メータリングマネージャ116、およびデータプレーンAPI118を備えることもできる。コンソールインターフェースは、例えば、コマンド、指示、またはその他の入力がコンソールインターフェースで受信されたときに、API呼び出しを行うことによってプロビジョニングAPIと通信して、SaaS環境内でサービスをプロビジョニングしたり、プロビジョニングされたサービスの構成を変更したりすることができる。
【0049】
一実施形態によれば、データプレーンAPIはデータプレーンと通信できる。例えば、一実施形態によれば、データプレーンによって提供されるサービスに向けられたプロビジョニングおよび構成の変更は、データプレーンAPIを介してデータプレーンに通信することができる。
【0050】
一実施形態によれば、メータリングマネージャは、サービスおよび制御プレーンを介してプロビジョニングされるサービスの使用量を測定する様々な機能を含むことができる。例えば、一実施形態によれば、メータリングマネージャは、請求目的のために、特定の顧客(テナント)に対して、制御プレーンを介してプロビジョニングされたプロセッサの使用量を経時的に記録することができる。同様に、メータリングマネージャは、SaaS環境の顧客が使用するために分割されたデータウェアハウスのストレージスペースの量を請求目的で記録できる。
【0051】
一実施形態によれば、データプレーンによって提供されるデータパイプラインまたは処理は、以下でさらに説明するように、監視コンポーネント122、データステージングコンポーネント124、データ品質コンポーネント126、およびデータ投影コンポーネント128を含み得る。
【0052】
一実施形態によれば、データ変換層は、以下でさらに説明するように、ディメンション生成コンポーネント136、ファクト生成コンポーネント138、および集約生成コンポーネント140を含むことができる。データプレーンは、データおよび構成ユーザインターフェース130、およびマッピングおよび構成データベース132を含むこともできる。
【0053】
一実施形態によれば、データウェアハウスは、デフォルトのデータ分析スキーマ(本明細書では、いくつかの実施形態に従って分析ウェアハウススキーマと呼ぶ)162と、システムの顧客(テナント)ごとに、顧客スキーマ164を含むことができる。
【0054】
一実施形態によれば、複数のテナントをサポートするために、システムは複数のデータウェアハウスまたはデータウェアハウスインスタンスの使用を可能にし得る。例えば、一実施形態によれば、第1のテナントの第1のウェアハウス顧客テナントは、第1のデータベースインスタンス、第1のステージングエリア、および複数のデータウェアハウスまたはデータウェアハウスインスタンスのうちの第1のデータウェアハウスインスタンスを含むことができ、一方、第2のテナントに対する第2の顧客テナントは、第2のデータベースインスタンス、第2のステージングエリア、および複数のデータウェアハウスまたはデータウェアハウスインスタンスのうちの第2のデータウェアハウスインスタンスを含むことができる。
【0055】
一実施形態によれば、マッピングおよび構成データベースで規定されたデータモデルに基づいて、監視コンポーネントは、変換されるいくつかの異なるデータセット(データセット)の依存関係を判定することができる。判定された依存関係に基づいて、監視コンポーネントは、いくつかの異なるデータセットのうちどれを最初にモデル形式に変換する必要があるかを判定できる。
【0056】
例えば、一実施形態によれば、第1のモデルデータセットに他のモデルデータセットへの依存関係が含まれていない場合、および第2のモデルデータセットに、第1のモデルデータセットへの依存関係が含まれる場合、その後、監視コンポーネントは、第1のデータセットに対する第2のデータセットの依存関係に対応するために、第2のデータセットの前に第1のデータセットを変換することを判定できる。
【0057】
例えば、一実施形態によれば、ディメンションは、例えば、「名前」、「住所」、または「年齢」などのデータのカテゴリを含み得る。ファクトの生成には、データが取り得る値、つまり「測定値」の生成が含まれる。ファクトはデータウェアハウスインスタンス内の適切なディメンションに関連付けることができる。集計生成には、データウェアハウスインスタンスの顧客スキーマ内の既存データに対する変換されたデータの集計を計算するデータマッピングの作成が含まれる。
【0058】
一実施形態によれば、(データモデルによって規定されたように)何らかの変換が実施されると、データパイプラインまたは処理は、ソースデータを読み取り、変換を適用し、その後、データをデータウェアハウスインスタンスにプッシュすることができる。
【0059】
一実施形態によれば、データ変換はルールで表現でき、変換が行われると、中間のステージングエリアに値を保持でき、ステージングエリアでは、データがデータウェアハウスインスタンスの顧客スキーマにアップロードされる前に、データ品質コンポーネントとデータ投影コンポーネントが、変換されたデータの整合性を検証および確認できる。例えば、多数のコンピューティングインスタンスや仮想マシンでの抽出、変換、ロード処理の実行時に監視を提供できる。抽出、変換、ロードの処理中に依存関係を維持することもでき、データパイプラインまたは処理はそのような順序付けの決定に対応できる。
【0060】
一実施形態によれば、抽出されたデータの変換後、データパイプラインまたは処理は、ウェアハウスロード手順を実行して、変換されたデータをデータウェアハウスインスタンスの顧客スキーマにロードすることができる。変換されたデータを顧客スキーマにロードした後、変換されたデータを分析し、様々な追加のビジネスインテリジェンス処理で使用できる。
【0061】
図3は、一実施形態によるデータ分析環境の例をさらに示す。
図3に示すように、一実施形態によれば、データは、例えば、データパイプライン処理を使用して、顧客(テナント)のエンタープライズソフトウェアアプリケーションまたはデータ環境(106)から供給されてもよく、または、1つまたは複数の顧客固有のアプリケーション107から得られるカスタムデータ109として供給されてもよく、いくつかの例では、データの記憶にオブジェクトストレージ105を使用することを含めて、データウェアハウスインスタンスにロードされる。
【0062】
Oracle Analytics Cloud(OAC)などの分析環境の実施形態によれば、ユーザは、異なる接続およびスキーマからのテーブルを使用するデータセットを作成できる。システムは、これらのテーブル間に規定された関係を使用して、データセット内に関係または結合を作成する。
【0063】
一実施形態によれば、顧客(テナント)ごとに、システムは、システム/クラウドテナント114内でシステムによって維持および更新されるデータ分析スキーマを、顧客のエンタープライズアプリケーション環境内および顧客テナント117内のデータの分析に基づいて、顧客のデータウェアハウスインスタンスを事前に設定するために使用する。そのため、システムによって維持されるデータ分析スキーマにより、データパイプラインまたは処理によって顧客の環境からデータを取得し、顧客のデータウェアハウスインスタンスにロードできるようになる。
【0064】
一実施形態によれば、システムはまた、環境の顧客ごとに、顧客によって容易に変更可能であり、顧客が自身のデータウェアハウスインスタンス内のデータを補足して利用できるようにする顧客スキーマを提供する。各顧客にとって、結果として得られるデータウェアハウスインスタンスはデータベースとして動作し、その内容は部分的に顧客によって制御され、部分的に環境(システム)によって制御される。
【0065】
例えば、一実施形態によれば、データウェアハウス(例えば、ADW)は、データ分析スキーマと、顧客/テナントごとに、エンタープライズソフトウェアアプリケーションまたはデータ環境から供給される顧客スキーマとを含み得る。データウェアハウステナント(ADWクラウドテナントなど)でプロビジョニングされたデータには、そのテナントのみがアクセスでき、同時に、共有環境の様々な機能(ETL関連機能やその他の機能など)へのアクセスを許可する。
【0066】
一実施形態によれば、複数の顧客/テナントをサポートするために、システムでは複数のデータウェアハウスインスタンスの使用が可能であり、例えば、第1の顧客テナントは、第1のデータベースインスタンス、第1のステージングエリア、および第1のデータウェアハウスインスタンスを含んでいてもよく、第2の顧客テナントは、第2のデータベースインスタンス、第2のステージングエリア、第2のデータウェアハウスインスタンスを含んでいてもよい。
【0067】
一実施形態によれば、特定の顧客/テナントについて、そのデータの抽出時に、データパイプラインまたは処理は、抽出されたデータをテナントのデータステージングエリアに挿入することができ、抽出されたデータの一時ステージングエリアとして機能することができる。例えば、データがデータステージングエリアに一時的に保持されている間に、抽出されたデータの検証を実行することにより、データ品質コンポーネントとデータ保護コンポーネントを使用して、抽出されたデータの整合性を確保できる。抽出処理が抽出を完了すると、データ変換レイヤを使用して変換処理を開始し、抽出されたデータをデータウェアハウスの顧客スキーマにロードするモデル形式に変換できる。
【0068】
図4は、一実施形態によるデータ分析環境の例をさらに示す。
図4に示すように、一実施形態によれば、例えば、上記のデータパイプライン処理を使用して、または、1つまたは複数の顧客固有のアプリケーションから取得したカスタムデータとして顧客(テナント)のエンタープライズソフトウェアアプリケーションまたはデータ環境からデータを抽出する処理、データをデータウェアハウスインスタンスにロードするか、データウェアハウス内のデータを更新することは、一般に、1つまたは複数の計算インスタンス170によって実行される1つまたは複数の抽出サービス163、変換サービス165、およびロード/公開サービス167を含む、ETPサービス160または処理によって実行される3つの大きな段階を含む。
【0069】
例えば、一実施形態によれば、抽出用のビューオブジェクトのリストを、例えばRESTコールを介してOracle BI Cloud Connector(BICC)コンポーネントに送信することができる。抽出されたファイルは、データを記憶するために、Oracle Storage Service(OSS)コンポーネントなどのオブジェクトストレージコンポーネントにアップロードできる。変換処理では、オブジェクトストレージコンポーネント(OSSなど)からデータファイルを取得し、そして、データパイプラインまたは処理の内部にあり、顧客(テナント)には公開されないターゲットデータウェアハウス(ADWデータベースなど)にデータをロードするときにビジネスロジックを適用する。ロード/公開サービスまたは処理は、ADWデータベースやウェアハウスなどからデータを取得し、それを顧客(テナント)がアクセス可能なデータウェアハウスインスタンスに公開する。
【0070】
図5は、一実施形態によるデータ分析環境の例をさらに示す。
一実施形態による複数のテナント(顧客)によるシステムの動作を示す図5に示すように、データは、例えば、前述のデータパイプライン処理を使用して、複数の顧客(テナント)のエンタープライズソフトウェアアプリケーションまたはデータ環境のそれぞれから取得でき、そしてデータウェアハウスインスタンスにロードされる。
【0071】
一実施形態によれば、データパイプラインまたは処理は、特定の分析ユースケースのベストプラクティスに従ったシステムにより、複数の顧客(テナント)、例えば顧客A180、顧客B182の各々に対して、定期的に更新されるデータ分析スキーマを維持する。
【0072】
一実施形態によれば、複数の顧客(例えば、顧客A、顧客B)のそれぞれについて、システムは、データがデータパイプラインまたは処理によって顧客の環境から取得され、顧客のデータウェアハウスインスタンス160A、160Bにロードされるように、システムによって維持および更新されるデータ分析スキーマ162A、162Bを使用して、その顧客のエンタープライズアプリケーション環境106A、106B内、および各顧客のテナント(例えば、顧客Aのテナント181、顧客Bのテナント183)内のデータの分析に基づいて顧客のデータウェアハウスインスタンスを事前設定する。
【0073】
一実施形態によれば、データ分析環境はまた、環境の複数の顧客のそれぞれに対して、顧客によって容易に変更可能な顧客スキーマ(例えば、顧客Aスキーマ164A、顧客Bスキーマ164B)を提供し、これにより、顧客は独自のデータウェアハウスインスタンス内のデータを補完して利用できるようになる。
【0074】
上述のように、一実施形態によれば、データ分析環境の複数の顧客の各々について、結果として得られるデータウェアハウスインスタンスはデータベースとして動作し、その内容は顧客によって部分的に制御され、データ分析環境(システム)によって部分的に制御され、これには、様々な分析ユースケースに対応するためにエンタープライズアプリケーション環境から取得した適切なデータがデータベースに予め入力されているように見えることも含まれる。特定の顧客に対する抽出処理108A、108Bがその抽出を完了すると、データ変換層を使用して変換処理を開始し、抽出されたデータをデータウェアハウスの顧客スキーマにロードされるモデル形式に変換することができる。
【0075】
一実施形態によれば、アクティブ化計画186は、顧客(テナント)の特定のニーズに対処するために、特定の機能領域について、顧客のためのデータパイプラインまたは処理サービスの動作を制御するために使用することができる。
【0076】
例えば、一実施形態によれば、アクティブ化計画では、特定の順序で、特定の時刻に、特定の時間枠内で実行される多数の抽出、変換、ロード(公開)サービスまたはステップを規定できる。
【0077】
一実施形態によれば、各顧客を独自のアクティブ化計画に関連付けることができる。例えば、第1の顧客Aのアクティブ化計画では、その顧客のエンタープライズソフトウェアアプリケーション環境(Fusion Applications環境など)から取得するテーブルを判定したり、サービスとその処理を順番に実行する方法を判定したりできる。一方、第2の顧客Bのアクティブ化計画では、同様に、その顧客のエンタープライズソフトウェアアプリケーション環境から取得するテーブルを判定したり、サービスとその処理を順番に実行する方法を判定したりできる。
【0078】
図6は、一実施形態による、データを変換、分析、または視覚化するためのシステムの使用を示す図である。
【0079】
図6に示されるように、一実施形態によれば、本明細書に開示されるシステムおよび方法は、分析成果物およびそれらの間の関係に関して分析環境のユーザに洞察を可能にするデータ視覚化環境192を提供するために使用することができる。その後、モデルを使用して、例えばユーザインターフェースを介して、ネットワークチャートや成果物(例えば、ユーザ、ロール、DVプロジェクト、データセット、接続、データフロー、シーケンス、MLモデル、MLスクリプト)間の関係や系統の視覚化として、そのような分析成果物間の関係を視覚化できる。
【0080】
一実施形態によれば、クライアントアプリケーションは、コンピュータシステムまたは処理装置によって実行可能なソフトウェアまたはコンピュータ可読プログラムコードとして実装することができ、例えばソフトウェアアプリケーションのユーザインターフェースまたはウェブブラウザインターフェースなどのユーザインターフェースを有する。クライアントアプリケーションは、インターネット/HTTPまたは分析システムへの他のタイプのネットワーク接続を介して、またはクラウド環境の例では、環境によって提供されるクラウドサービスを介してデータを取得またはアクセスできる。
【0081】
一実施形態によれば、ユーザインターフェースは、以下でさらに詳しく説明するように、例えば、グラフ、チャート、その他のタイプのデータ分析やデータフローの視覚エフェクトを生成するために、ユーザがデータセットを表示したり、ユーザインターフェースを操作してデータを変換、分析、視覚化したりできるようにすることを含む、セルフサービステキスト分析を可能にする様々なデータフローアクションタイプを含んでいてもよいし、アクセスを提供してもよい。
【0082】
一実施形態によれば、分析システムは、例えば1つまたは複数のデータソース接続を介して、1つまたは複数のデータソースからデータセットを取得、受信、または準備できるようにする。ここで説明するシステムおよび方法を使用して変換、分析、または視覚化できるデータの種類の例には、HCM、HR、またはERPデータ、電子メールまたはテキストメッセージ、またはデータベース、データストレージサービス、もしくは他の種類のデータリポジトリもしくはデータソースの1つまたは複数で提供される、その他の自由形式または非構造化テキストデータが含まれる。
【0083】
例えば、一実施形態によれば、データ分析または視覚化情報の要求は、上述のようにクライアントアプリケーションおよびユーザインターフェースを介して受信され、(クラウド環境の例では、クラウドサービスを介して)分析システムに伝達され得る。システムは、要求されたデータ分析または視覚化情報を生成してクライアントに返す際に使用するために、ユーザ/ビジネスコンテキストに対応する適切なデータセットを取得できる。例えば、データ分析システムは、SELECTステートメントや論理SQL命令などを使用してデータセットを取得できる。
【0084】
一実施形態によれば、システムは、様々なアルゴリズム処理を適用することによって、データフローまたは入力データのセットの理解を反映するモデルまたはデータフローを作成し、データに関連する視覚化または他の種類の有用な情報を生成することができる。モデルまたはデータフローは、例えば、データフローまたは入力データのセットに対して動作する1つまたは複数のデータフローアクション194、195またはステップを含む、データフローまたは入力データのセットに様々な処理または技術を適用することによって、データセットエディタ193内でさらに修正することができる。ユーザは、ユーザインターフェースを介してシステムと対話し、データ分析、データ視覚化196、またはデータに関連付けられた他のタイプの有用な情報を生成するデータフローアクションの使用を制御できる。
【0085】
一実施形態によれば、データセットは、データの視覚化および分析要件のためにユーザが構築できるセルフサービスのデータモデルである。データセットには、データソースの接続情報、テーブル、列、データの強化と変換が含まれる。ユーザは複数のワークブックおよびデータフローでデータセットを使用できる。
【0086】
一実施形態によれば、ユーザがデータセットを作成および構築するとき、ユーザは、例えば、様々な種類の接続またはスプレッドシートから選択でき、データベース接続内の複数のテーブル、Oracleデータソース、またはローカルサブジェクト領域のデータに基づいてデータセットを作成することができ、または、様々な接続およびサブジェクト領域のテーブルのデータに基づいてデータセットを作成することができる。
【0087】
例えば、一実施形態によれば、ユーザは、Autonomous Data Warehouse接続からのテーブル、Spark接続からのテーブル、およびローカルサブジェクトエリアからのテーブルを含むデータセットを構築でき、テーブル間の結合を指定でき、データセット内の列を変換して強化することができる。
【0088】
一実施形態によれば、データセットに関連する追加の成果物、特徴、および操作には、例えば、以下が含まれる。
【0089】
利用可能な接続の表示:データセットは、データソースへの1つまたは複数の接続を使用して、分析と視覚化のためのデータにアクセスし、データを提供する。ユーザの接続リストには、ユーザが構築した接続と、アクセスおよび使用する権限を持つ接続が含まれる。
【0090】
接続からデータセットを作成すること:ユーザがデータセットを作成するとき、1つまたは複数のデータソース接続からテーブルを追加し、結合を追加し、データを強化できる。
【0091】
データセットに複数の接続を追加すること:データセットには複数の接続を含めることができる。さらに接続を追加すると、ユーザはデータセットの構築に必要なすべてのテーブルとデータにアクセスして結合できるようになる。ユーザは複数のテーブルをサポートするデータセットにさらに接続を追加できる。
【0092】
データセットテーブル結合の作成:結合はデータセットのテーブル間の関係を示す。ユーザがファクトとディメンションに基づいてデータセットを作成しており、結合がソーステーブルにすでに存在する場合、結合はデータセットに自動的に作成される。ユーザが複数の接続とスキーマからデータセットを作成している場合は、ユーザがテーブル間の結合を手動で規定できる。
【0093】
一実施形態によれば、ユーザは、データフローを使用して、データを組み合わせ、編成し、統合することによってデータセットを作成することができる。データフローを使用すると、ユーザはデータを整理および統合して、自分または他のユーザが視覚化できる厳選されたデータセットを作成できる。
【0094】
例えば、一実施形態によれば、ユーザはデータフローを、データセットを作成したり、異なるソースからのデータを結合したり、データを集計したり、機械学習モデルを訓練したり、予測機械学習モデルをデータに適用したりするために使用し得る。
【0095】
一実施形態によれば、上述のデータセットエディタにより、ユーザはアクションまたはステップを追加することができ、各ステップは、例えば、データの追加、テーブルの結合、列のマージ、データの変換、またはデータの保存などの特定の機能を実行する。ユーザがステップを追加または変更すると、各ステップが検証される。データフローを構成したら、それを実行してデータセットを生成または更新できる。
【0096】
一実施形態によれば、ユーザは、データセット、対象領域、またはデータベース接続からデータをキュレーションすることができる。ユーザはデータフローを個別にまたは順番に実行できる。ユーザはデータフローに複数のデータソースを含めて、それらを結合する方法を指定できる。ユーザは、データフローからの出力データをデータセットまたはサポートされているデータベースタイプに保存できる。
【0097】
一実施形態によれば、データフローに関連する追加の成果物、機能、および操作には、例えば、以下が含まれる。
【0098】
列の追加:ターゲットデータセットにカスタム列を追加する。
データの追加:データソースをデータフローに追加する。例えば、ユーザが2つのデータセットを結合する場合、両方のデータセットをデータフローに追加する。
【0099】
集計:例えば、カウント、合計、平均など集計関数を適用してグループの合計を作成する。
【0100】
ブランチ:データフローから複数の出力を作成する。
フィルタ:ユーザが興味のあるデータのみを選択する。
【0101】
結合:共通の列に基づいたデータベース結合を使用して、複数のデータソースからのデータを結合する。
【0102】
グラフ分析:2つの頂点間の距離やホップ数の計算などの地理空間分析を実行する。
上記は例として提供されており、一実施形態によれば、他のタイプのステップをデータフローに追加して、データセットを変換したり、データ分析や視覚化を提供したりすることができる。
【0103】
データセットの分析と視覚化
一実施形態によれば、システムは、ユーザが、例えば複数のデータソースから供給されたデータセットまたはデータを探索するために、ユーザインターフェース内に表示するためのデータセット、分析、または視覚エフェクトを生成できるようにする機能を提供する。
【0104】
図7図18は、一実施形態による、データ分析環境で使用するためのユーザインターフェースの様々な例を示す。
【0105】
図7図18に示されるユーザインターフェースおよび機能は、本明細書で説明される様々な機能を説明する目的で、例として提供されており、様々な実施形態に従って、ユーザインターフェースおよび機能の代替例を提供することができる。
【0106】
図7図8に示すように、一実施形態によれば、ユーザは、例えば、組織のデータに対する分析またはクエリを送信するために、データ分析環境にアクセスすることができる。
【0107】
例えば、一実施形態によれば、ユーザは様々なタイプの接続の中から選択して、データベース接続、Oracleサブジェクト領域、Oracle ADW接続、またはスプレッドシート、ファイル、その他のタイプのデータソースなどの表のデータに基づいてデータセットを作成できる。このように、データセットはセルフサービスデータモデルとして動作し、ユーザはそこからデータ分析や視覚化を構築できる。
【0108】
図9図10に示すように、一実施形態によれば、データセットエディタは、ユーザがアクセス権限を有している接続のリストを表示し、ユーザがテーブル、結合、および/または強化されたデータを含むデータセットを作成または編集できるようにすることができる。エディタにはデータソース接続のスキーマとテーブルを表示でき、ユーザはそこからデータセットダイアグラムにドラッグアンドドロップできる。特定の接続自体がスキーマとテーブルのリストを提供しない場合、ユーザは適切なテーブルに対して手動クエリを使用できる。接続を追加すると、関連するテーブルとデータにアクセスして結合し、データセットを構築できるようになる。
【0109】
図11図12に示すように、一実施形態によれば、データセットエディタ内で結合図がテーブルとデータセット内の結合を表示する。データソースで規定されている結合は、例えばテーブル間で見つかった列名の一致に基づいて結合を作成することにより、データセット内のテーブル間で自動的に作成できる。
【0110】
一実施形態によれば、ユーザがテーブルを選択すると、プレビューデータ領域にテーブルのデータのサンプルが表示される。表示される結合リンクとアイコンは、結合されているテーブルと使用されている結合のタイプを示す。ユーザは、あるテーブルを別のテーブルにドラッグアンドドロップすることで結合を作成でき、結合をクリックしてその構成を表示または更新でき、または、列のtype属性をクリックして、例えば測定値から属性にタイプを変更できる。
【0111】
一実施形態によれば、システムは、視覚化のためのソース固有の最適化されたクエリを生成することができ、データセットはデータモデルとして扱われ、視覚化を満たすために必要なテーブルのみがクエリで使用される。
【0112】
デフォルトでは、データセットの粒度は最も粒度の低いテーブルによって判定される。ユーザはデータセット内の任意のテーブルに測定値を作成できる。ただし、これにより、1対多または多対多の関係の片側の測定値が重複する可能性がある。図13に示す実施形態によれば、これに対処するために、ユーザは、カーディナリティの片側にテーブルを設定して粒度を維持し、その詳細レベルを維持することができる。
【0113】
図14に示すように、一実施形態によれば、データセットテーブルは、システムがテーブルをキャッシュにロードするかどうか、あるいはテーブルがそのデータをデータソースから直接受け取るかどうかを判定するデータアクセス設定に関連付けることができる。
【0114】
一実施形態によれば、テーブルに対して自動キャッシュモードが選択されると、システムはテーブルデータをキャッシュにロードまたは再ロードし、これにより、ワークブックなどからテーブルのデータが更新されるときのパフォーマンスが向上し、テーブルおよびデータセットレベルでリロードメニューオプションが表示される。
【0115】
一実施形態によれば、テーブルに対してライブモードが選択されると、システムはテーブルデータをデータソースから直接取得し、ソースシステムはテーブルのデータソースクエリを管理する。このオプションは、データがOracle ADWなどの高性能データウェアハウスに記憶されている場合に役立ち、また、最新のデータが確実に使用されるようにする。
【0116】
一実施形態によれば、データセットが複数のテーブルを使用する場合、一部のテーブルは自動キャッシュを使用することができ、他のテーブルはライブデータを含むことができる。同じ接続を使用した複数のテーブルのリロード中に、1つのテーブルのデータのリロードが失敗した場合、現在自動キャッシュを使用するように設定されているテーブルは、ライブモードを使用してデータを取得するように切り替えられる。
【0117】
一実施形態によれば、システムにより、ユーザは、分析に利用できるようになる前に、データを充実させ、変換することができる。ワークブックが作成され、データセットがワークブックに追加されると、システムはデータの代表的なサンプルに対して列レベルのプロファイリングを実行する。データのプロファイリング後、ユーザは、例えば、都市の緯度と経度や郵便番号などのGPSエンリッチメントなど、データセット内の認識可能な列に対して提供される変換とエンリッチメントの推奨事項を実装できる。
【0118】
一実施形態によれば、データセットに適用されるデータ変換およびエンリッチメントの変更は、そのデータセットを使用するワークブックおよびデータフローに影響を与える。例えば、ユーザがデータセットを共有するワークブックを開くと、ワークブックが更新またはリフレッシュされたデータを使用していることを示すメッセージを受け取る。
【0119】
一実施形態によれば、データフローは、データを整理および統合して、ユーザが視覚化できる厳選されたデータセットを生成する手段を提供する。例えば、ユーザはデータフローを使用して、データセットの作成、様々なソースからのデータの結合、データの集約、機械学習モデルの訓練、または予測機械学習モデルのデータへの適用を行うことができる。
【0120】
図15に示すように、一実施形態によれば、データフロー内で各ステップは、例えばデータの追加、テーブルの結合、列のマージ、データの変換、またはデータの保存などの特定の機能を実行する。構成が完了すると、データフローを実行して、BETWEEN、LIKE、INなどのSQL演算子、条件式、関数の使用など、データセットを生成または更新する操作を実行できる。
【0121】
一実施形態によれば、データフローは、データセットをマージし、データをクレンジングし、結果を新しいデータセットに出力するために使用することができる。データフローは個別に実行することも、順番に実行することもできる。シーケンス内のデータフローが失敗した場合、シーケンス内で加えられたすべての変更がロールバックされる。
【0122】
図16図18に示すように、一実施形態によれば、例えば複数のデータソースから供給されたデータセットまたはデータを探索し、洞察を追加するために、視覚エフェクトをユーザインターフェース内に表示することができる。
【0123】
例えば、一実施形態によれば、ユーザはワークブックを作成し、データセットを追加し、その列をキャンバス上にドラッグアンドドロップして視覚エフェクトを作成することができる。システムは、キャンバスの内容に基づいて視覚エフェクトを自動的に生成でき、ユーザが選択できる1つまたは複数の視覚エフェクトタイプが自動的に選択される。例えば、ユーザが収入測定値をキャンバスに追加する場合、データ要素は文法パネルの値領域に配置され、タイル視覚エフェクトタイプが選択される。ユーザは引き続きデータ要素をキャンバスに直接追加して、視覚エフェクトを構築できる。
【0124】
一実施形態によれば、システムは、特定のデータセットに対して最良の洞察を提供すると予想される視覚エフェクトを提案することによって、自動生成されたデータ視覚エフェクト(自動生成された洞察、自動洞察)を提供することができる。ユーザは、ワークブックキャンバス内の関連する視覚エフェクトにマウスを移動するなどして、インサイトの自動生成された概要を確認できる。
【0125】
クエリの高速化
一実施形態によれば、本明細書では、例えばビジネスインテリジェンス環境、データベース、データウェアハウス、またはデータ分析をサポートする他のタイプの環境などのコンピューティング環境でクエリの高速化を提供するシステムおよび方法が説明される。中間層は長期テーブルデータストレージ形式として提供され、もう1つの高速化形式、つまり高速化テーブルを中間層から定期的に再生成でき、データセットテーブルに対して高速化されたテーブルが存在するかどうかを判定でき、存在する場合は、高速化されたテーブルを使用してクエリが処理される。
【0126】
一実施形態によれば、データ分析環境およびデータセットエディタ内でテーブルとして使用することを目的としたデータは、関連するデータベース、SaaSデータソース、またはOracle Service Cloudなどのクラウドサービス環境などのODBC/JDBC接続に基づくデータソースからのデータへのアクセスまたは受信など、様々なソースから取得できる。
【0127】
データセットを規定するとき、ユーザはこれらの様々なソースから1つまたは複数のテーブルを追加し、分析やクエリのベースを形成したり、データ視覚エフェクトを生成したりできる。例えば、ユーザは最初に、Sales、Customers、Productsデータソースからテーブルの最初のセットを選択でき、次に、必要に応じて、これらのソースまたは他のソースから追加の関連テーブルを選択できる。
【0128】
クエリ処理にクエリ高速化または高速化されたテーブルを使用しない環境では、1つまたは複数のデータセットに向けられたクエリを処理する一般的なアプローチには、例えば、-システムがそのクエリを処理する(またはクエリをデータソースに機能送信する)たびに、ユーザから元のクエリを受信すること、データソースにアクセスすること、データセットを取得すること、およびビジネスルールを変換として適用することが含まれ得る。
【0129】
ただし、このアプローチでは一般に、大量のデータのアクセス、取得、処理が必要となり、リソース使用量も増加し、データ分析の生成に時間がかかる。
【0130】
一実施形態によれば、クエリ高速化または高速化テーブルがデータセットとともに使用するために提供されるとき、システムは、必要な変換やエンリッチメントがクエリに組み込まれるように、データソース(ADW環境など)に送信されたクエリに変換やエンリッチメントを適用できる。
【0131】
データソースから受信した情報は、メモリなどの暫定形式で記憶またはキャッシュでき、これには、基礎となるデータだけでなく、分析やクエリへの応答に必要な変換/強化されたデータセットも含まれる。
【0132】
図19は、一実施形態による、データ分析環境でのクエリ高速化の使用を示す図である。
【0133】
図19に示すように、一実施形態によれば、クエリエンジン(例えば、BIインスタンス、例えばOBISインスタンス)は、データストレージフレームワーク210、例えばApache Parquetコンポーネントを備え、1つまたは複数の高速化されたテーブル214を格納するため、キャッシュ(メモリ)212と連携して動作し、データセットへのアクセスまたは受信、および組織のデータに対する分析やクエリへの応答に使用される。
【0134】
一実施形態によれば、システムは、上で説明したように、例えばRPDデータモデルと組み合わせて動作することができる。さらに/代わりに、ユーザはクエリ高速化で使用するために、他のタイプのデータセットをExcelスプレッドシート、CSVファイル、または他のタイプのデータ入力としてOAC環境にアップロードできる。
【0135】
データセットのライフサイクル(例えば、図22に示し、以下でさらに説明する)は、ユーザ/顧客によって提供されたデータセットにアクセスまたは受信するように動作し、そして、高速化されたテーブルへのアクセスを提供する高性能外部クエリエンジンまたは外部クエリアクセラレータ(XQA:external query accelerator)でデータセットをキャッシュする。
【0136】
データ分析環境のコンポーネントとしてADWを使用する一実施形態によれば、ADWコンポーネント自体は、クエリ高速化として使用できるクエリエンジンを提供し、データセットはフラッシュメモリまたはインメモリ表現のいずれかに高速化されたテーブルとして記憶される。
【0137】
一実施形態によれば、データフローを使用して、データセットを高速化されたテーブルとしてクエリアクセラレータに投入することができる。例えば、OAC/ADW環境では、データセットが高速化されたテーブルとして記憶され、事実上キャッシュされたことを示すために、ユーザは、OACとそのデータセットエディタ内で提供されるリロード機能を使用して、システムが最新のデータセットにアクセス/受信し、高速化形式でデータをADWにロードし、それに関連付けられたメタデータを更新し得る。
【0138】
一実施形態によれば、クエリ生成処理は、例えばデータ視覚エフェクトを生成するために、ユーザからのリクエスト/クエリを自動的に変更し、代わりにそのデータセットに対するクエリに対して高速化テーブル(Accelerated_table)を使用することができる。
【0139】
例えば、高速化されたテーブルがキャッシュ/メモリ内に存在する場合、システムはクエリを外部クエリアクセラレータ(BIエンジンなど)に送信し、様々なデータ変換や処理ステップを実行できる。キャッシュ/メモリ内に高速化されたテーブルが存在しない場合(または何らかの理由でアクセスできない場合)、システムは、列指向またはファイルベースのクエリ処理などを使用して、ネイティブテーブル(XSANativeテーブル(ローカル))を使用するようにフォールバックできる。
【0140】
このようにして、高速化処理は、利用可能な場合は比較的高速なエンジン(高速化されたテーブルを使用)にデータセットクエリをプッシュし、必要に応じてネイティブ機能(ネイティブテーブルを使用)にフォールバックするように動作する。このようなフォールバックが必要な状況は、例えば、システム障害やタイムアウト、または外部クエリアクセラレータがクエリを処理できないその他の理由により発生し得る。
【0141】
図20は、一実施形態による、クエリ高速化の使用をさらに示す。
図20に示すように、一実施形態によれば、クエリエンジン(BIインスタンス、OBISインスタンスなど)は複数のノード(OBISノードなど)で構成され、分析やクエリに応答するために、その一部が同じテーブルを参照している場合がある。
【0142】
一実施形態によれば、データアクセスの一貫性を提供するために、システムは、様々なノードによるそれらのテーブルの使用を管理または調整することができる。例えば、分散形式の最も最近使用されていない(LRU:least-recently-used)処理として、テーブルをメモリ内で手動で固定したり固定解除したりする必要がある場合がある。特定のテーブルがクラスター全体で使用されていない場合、そのテーブルは削除の候補になるが、いずれかのノードがそのテーブルを使用している場合は、現時点ではキャッシュ/メモリに保持する必要がある。
【0143】
図21は、一実施形態による、クエリ高速化の使用をさらに示す。
図21に示されるように、一実施形態およびそこに示される例によれば、複数のクエリエンジンまたはBIインスタンス(例えば、マルチテナントBI環境)は、単一のエンドポイント、例えば、RAPIDエンドポイントを共有する。
【0144】
例えば、図21に示すように、複数のクエリエンジンまたはBIインスタンス1、2、3が1つのエンドポイントAを共有し、一方、別の複数のクエリエンジンまたはBIインスタンス4、5は別のエンドポイントBを共有する。共有は、サービスレベルや利用可能な容量などの様々な要因によって判定され得る。OAC環境では、複数のOACまたはBIノードを、例えばRAPIDエンドポイントにマッピングできる。
【0145】
LRU処理の一実施形態によれば、最初のクエリエンジンまたはBIインスタンス(ユーザ)が特定のテーブルのロックを取得すると、他のBIインスタンス(ユーザ)はロックの取得を試みるが失敗する可能性がある。第1のBIインスタンス/ユーザは、テーブルをメモリにプロモートするか、ロックを解放するかを判定できる。
【0146】
例えば、図21に示すように、Load B、Load D、およびLoad Fの各アクセスは、メモリにロードできる異なるデータセットを表す。LRU処理デーモンロックは、最も最近使用されていないテーブル、または最も長い間使用されていないテーブルを削除するグローバルロックとして動作する。
【0147】
一実施形態によれば、OAC/ADWなどの環境を使用する利点には、それらの環境によって提供される追加の、例えば機械学習(ML)ライブラリの利用可能性が含まれる。例えば、OAC/ADWによって提供される追加の機械学習機能を使用して、減少、クラスタリング、回帰などのデータの異常を検出できる。
【0148】
様々な実施形態によれば、LRU処理の追加の特徴には以下が含まれ得る。
XSAキャッシュが「グローバル」である。コホートノードは、他のノードによって以前にキャッシュされたデータセットにヒットし得る。LRU処理は、使用される外部エンジンに依存しない。
【0149】
単一のLRUマネージャはなく、代わりに、管理の責任は、エンドポイントを共有するクエリエンジンノード(OBISインスタンスなど)全体に分散される。各BIノードまたはインスタンスは、現在の未解決のリクエストに応じてデータセットのロードとアンロードを定期的に試行するデーモンスレッドを実行する。BIノードが複数のエンドポイントに接続すると、エンドポイントごとに1つずつ、複数のデーモンスレッドを実行できる。
【0150】
一度にアクティブなデーモンは1つだけである。LRUの状態と同時実行性は、例えば以下の一連の簿記テーブル(例えば、MySQL(登録商標)で維持される)を介して管理される。
【0151】
リクエストキュー - 未処理のリクエストとその到着時間のリスト。デーモンはこのテーブルを最も古いリクエストから処理する。
【0152】
In_memory_tables - 現在メモリ内にあるテーブルのリストとそのメモリ内サイズおよび最終アクセス時刻。
【0153】
デーモンロック - 現在単独で実行されているデーモンとその最終生存時刻。特定の時点で許可されるエントリは1つだけ(つまり、デーモン)である。最終生存時間は、クラッシュした可能性のあるデーモンなどを追跡するために使用される。
【0154】
ロードは冪等である。テーブルがすでにメモリにロードされている場合、何も実行されない。テーブルを強制的に再ロードしたい場合(データ変更など)、ユーザはそのテーブルを明示的にアンロードおよび(再)ロードできる。
【0155】
複数のBIノードが同じテーブルをリクエストした場合、それらの複数のリクエストはリクエストキューテーブルのキューに入れられる。上記に該当するため、ロードとアンロードを実行できるデーモンは1つだけである。これにより、LRU管理中に競合が発生しないことが保証される。
【0156】
図22は、一実施形態による、クエリ高速化を提供する際に使用されるデータセットのライフサイクルまたは状態図を示す図である。
【0157】
図22に示すように、一実施形態によれば、データセットのライフサイクルまたは状態図は、階層化アプローチを使用して、クエリの処理中に単一のデータセットが通過する様々なフォームファクタを記述する。
【0158】
初期状態(ここでは円で示されている)は、データセットが存在しないときの状態を表し、円弧上のラベルは、例えば、データフローが他のいくつかのデータセットからParquet形式で新しいデータセットを作成するときなどデータセットに作用する操作、処理、またはモジュールを表す。
【0159】
一実施形態によれば、図22に示すように、
最上位層(220、222、224)は、データセットの「標準」データ形式として動作し、特定の形式は、データセットの使用法やクエリ方法(ファイルベース、クエリベース、データベーステーブルなど)によって異なる。
【0160】
データストレージフレームワーク210(例えば、Parquet)は、データセットの長期テーブルデータストレージ形式を提供する中間層として動作する。Parquetなどのコンポーネントは、比較的安定しているという点で他の形式に比べて利点がある場合がある。
【0161】
最下層(226、228、230)は、データセットの1つまたは複数の高速化形式を保持する。高速化を目的として、高速化形式は、長期形式として使用するには信頼性が低いと見なされるか、または信頼できないものとして扱われるため、災害復旧中、XSAネイティブ形式が変更されるとき、または外部高速化エンジンが切り替わるときなど、中間層から定期的に再生成される。
【0162】
一実施形態によれば、一次クエリ高速化は、外部クエリまたは他のタイプのデータ分析クエリエンジンを介して提供され得る。
【0163】
XSAネイティブ形式は、例えば接続、安定性、メンテナンス、またはパフォーマンス上の理由などによりプライマリクエリエンジンが失敗した場合に使用するためのフォールバックとして提供される。
【0164】
XSAネイティブ(ローカル)は、XSAネイティブ(オブジェクトストレージ)ファイルの準備ができていない場合に使用するために提供される。同時実行性を提供するために、XSAネイティブファイルをオブジェクトストレージに変換して記憶するデータ同期コンポーネント(DataSync)を提供できる。
【0165】
様々な実施形態によれば、LRU処理は、異なる外部クエリまたは他のタイプのデータ分析エンジンに対して異なる動作をすることができる。例えば、Oracle RAPIDなどのインメモリ分析エンジンの場合、エビクションはメモリ内からのみ行われてもよく、一方、InnoDBエンジンの場合は、MySQLのディスク上のテーブルが記憶されてもよく、一方、MonetDBはカタログからテーブルを完全に削除してもよい。
【0166】
図23図26は、一実施形態による、クエリ高速化を提供する際に使用される、様々なタイプのデータセットのクエリフローを示す。
【0167】
図23に示すように、一実施形態によれば、データセットクエリを処理する際、システムは、データセットテーブルに対してライブモード(LIVE)が選択されているか、あるいは自動キャッシングモード(AUTO/EXTRACTED)が選択されているかを最初に判定する(240)ように適合されている。
【0168】
図24に示すように、一実施形態によれば、モードがLIVEであると判定された場合、システムは、データセットがエンリッチされているかどうかを判定し(242)、エンリッチされている場合には、エンリッチメント列をすべてヌルにし(244)、変換を適用し(246)、出力式を適用し(248)、クエリを処理する(250)ことができる。
【0169】
図25に示すように、一実施形態によれば、モードがAUTO/EXTRACTEDであると判定された場合、高速化されたテーブルが存在するかどうかを判定できる(252)。存在する場合、高速化されたテーブルを使用でき(254)、データセットが強化されているかどうかに応じて(256)、システムは変換を適用することができ(258)、および/または式を出力することができ(260)、クエリを処理することができる。
【0170】
図26に示すように、一実施形態によれば、システムは、高速化されたテーブルが存在しないと判定した場合、XSAネイティブの使用にフォールバックすることができる。ローカルのXSAネイティブが存在するかどうかが判定され(262)、存在する場合はクエリが処理される。
【0171】
一実施形態によれば、ローカルXSAネイティブが存在しないとシステムが判定した場合、リモート(オブジェクトストレージ)XSAネイティブが存在するかどうかを判定でき(264)、存在する場合には、(リモート)XSAネイティブがダウンロードされ(266)、クエリが処理される。
【0172】
一実施形態によれば、リモート(オブジェクトストレージ)XSAネイティブが存在しないとシステムが判定した場合、データセットが強化されているかどうかを判定できる(268)。データセットが強化されている場合、準備された形式(prep_parquetなど)がダウンロードされ(270)、システムは出力式を適用し(272)、(ローカル)XSAネイティブに変換し(274)、クエリを処理できる。
【0173】
一実施形態によれば、データセットが強化されていないとシステムが判定した場合、ソース形式(例えば、src-parquet)が存在するかどうかを判定できる(276)。存在する場合、src-parquetがダウンロードされ(278)、システムは変換を適用し(280)、および/または式を出力し、(ローカル)XSAネイティブに変換し、クエリを処理できる。
【0174】
一実施形態によれば、ソース形式(例えば、src-parquet)が存在しないとシステムが判定した場合(282)、次に、モード(例えば、AUTO/EXTRACTED)に応じて、システムはそれぞれ、ファイルベースの場合はCSVから、外部ソースの場合は接続から読み取り(284)、またはファイルベースの場合はCSVから読み取り(286)、外部ソースの場合はエラーを提供し、次に、変換(288)および/または出力式を適用し、(ローカル)XSAネイティブに変換して、クエリを処理することができる。
【0175】
図23図26に示され説明されている例は、データセットのライフサイクルとクエリフローの例を示す目的で提供されている。他の実施形態および例によれば、本明細書で説明するアプローチを使用して、他のタイプのデータセットライフサイクルおよびクエリフローをサポートすることができる。
【0176】
図27は、一実施形態による、データ分析環境でクエリ高速化を提供する方法を示す図である。
【0177】
図27に示すように、一実施形態によれば、ステップ302において、分析環境が提供され、ユーザは様々な接続からのテーブルを使用するデータセットを作成でき、システムはテーブル間に規定された関係を使用して、データ分析または視覚エフェクトの提供に使用するデータセット内の結合を作成する。
【0178】
ステップ304において、中間層(例えば、Parquet)が長期テーブルデータストレージ形式として提供され、もう1つの高速化形式、つまり高速化テーブルを中間層から定期的に再生成できる。
【0179】
ステップ306において、現在のモードがAUTO/EXTRACTEDであると判定された場合、高速化されたテーブルが存在するかどうかについて判定を行うことができる。
【0180】
ステップ308において、高速化されたテーブルが存在する場合、高速化されたテーブルを使用することができ、データセットが強化されているかどうかに応じて、システムは変換および/または出力式を適用し、クエリを処理できる。
【0181】
図28は、一実施形態による、データ分析環境でクエリ高速化を提供する方法をさらに示す。
【0182】
図28に示すように、一実施形態によれば、ステップ312で、高速化テーブルが存在しないとシステムが判定した場合、XSAネイティブの使用にフォールバックすることができ、ローカルXSAネイティブが存在するかどうかが判定され、存在する場合はクエリが処理される。
【0183】
ステップ314において、ローカルXSAネイティブが存在しないとシステムが判定した場合、その後、リモート(オブジェクトストレージ)XSAネイティブが存在するかどうかを判定でき、存在する場合は(リモート)XSAネイティブがダウンロードされ、クエリが処理される。
【0184】
ステップ316で、システムがリモート(オブジェクトストレージ)XSAネイティブが存在しないと判定した場合、その後、データセットが強化されているかどうかを判定でき、データセットが強化されている場合、準備された形式(prep_parquetなど)がダウンロードされ、システムは出力式を適用し、(ローカル)XSAネイティブに変換して、クエリを処理できる。
【0185】
ステップ318において、システムがソース形式(例えば、src-parquet)が存在しないと判定した場合、次に、モード(例えば、AUTO/EXTRACTED)に応じて、システムはそれぞれ、例えば、ファイルベースの場合はCSVから、外部ソースの場合は接続から読み取り、次に、変換および/または出力式を適用し、(ローカル)XSAネイティブに変換して、クエリを処理することができる。
【0186】
様々な実施形態によれば、本明細書の教示は、本開示の教示に従ってプログラムされた1つまたは複数のプロセッサ、メモリおよび/またはコンピュータ可読記憶媒体を含む、1つまたは複数の従来の汎用または専用コンピュータ、コンピューティングデバイス、機械、またはマイクロプロセッサを使用して都合よく実装され得る。ソフトウェア技術の当業者には明らかなように、適切なソフトウェアコーディングは、本開示の教示に基づいて、熟練したプログラマーによって容易に作成され得る。
【0187】
いくつかの実施形態では、本明細書の教示は、本教示の処理のいずれかを実行するようにコンピュータをプログラムするために使用できる命令が記憶された非一時的なコンピュータ可読記憶媒体(複数の媒体)であるコンピュータプログラム製品を含むことができる。このような記憶媒体の例としては、ハードディスクドライブ、ハードディスク、ハードドライブ、固定ディスク、またはその他の電気機械データ記憶装置、フロッピー(登録商標)ディスク、光ディスク、DVD、CD-ROM、マイクロドライブ、および光磁気ディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム、または命令および/またはデータの非一時的な記憶に適した他のタイプの記憶媒体またはデバイスが挙げられるが、これらに限定されない。
【0188】
前述の説明は、例示と説明を目的として提供されたものである。網羅的であることや、開示された正確な形式に保護の範囲を限定することを意図したものではない。多くの修正および変形が当業者には明らかであろう。
【0189】
例えば、ここで提供される例のいくつかは、エンタープライズソフトウェアアプリケーションまたはデータ環境(例えば、Oracle Fusion Applications環境など)を使用した、または、サービスとしてのソフトウェア(SaaS)またはクラウド環境(Oracle Analytics CloudやOracle Cloud Infrastructure環境など)のコンテキスト内での分析アプリケーション環境の動作を示しているが、様々な実施形態によれば、本明細書で説明されるシステムおよび方法は、他のタイプのエンタープライズソフトウェアアプリケーションまたはデータ環境、クラウド環境、クラウドサービス、クラウドコンピューティング、または他のコンピューティング環境とともに使用することができる。
【0190】
実施形態は、本教示の原理およびその実際の応用を最もよく説明するために選択され説明されており、それによって他の当業者が、企図される特定の用途に適した様々な修正を加えた様々な実施形態を理解できるようにする。範囲は以下の特許請求の範囲およびその均等物によって規定されることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
【国際調査報告】