バッファの作成
/essbase/rest/v1/applications/{applicationName}/databases/{databaseName}/asodataload/buffers
指定されたオプションで集約ストレージのデータ・ロード・バッファを作成します。
REST APIでは、バッファを使用せずにデータを読み込むjobTypeはdataloadです。データを集約ストレージ・キューブに(バッファを使用して)増分的にロードする必要があるjobTypeは、asoBufferDataLoadとasoBufferCommitです。
バッファを使用してデータを集約ストレージ・キューブにロードするREST APIのワークフローは、次のとおりです。
- バッファを作成(初期化)します
- (オプション)既存のバッファをリストします(バッファのリスト)
- jobType asoBufferDataLoadを実行して、バッファにデータをロードします(ジョブの実行)
- jobType asoBufferCommitを実行して、バッファから集約ストレージ・キューブにデータをコミットします(ジョブの実行)
- (オプション)データをコミットせずに、初期化されたロード・バッファを破棄します(データロード・バッファの破棄)
リクエスト
- application/json
- application/xml
- applicationName(required): string
アプリケーション名。
- databaseName(required): string
データベース名。
object
- bufferId: integer(int64)
単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。
- duplicateAggregationMethod: string
指定可能な値:
[ "ADD", "ASSUME_EQUAL", "USE_LAST" ]
集約ストレージ・データ・ロード・バッファ内の、重複セルのセル競合を解決するオプションを選択します。
ADD
: (デフォルト)バッファの同じセルに複数の値が含まれる場合に値を加算します。ASSUME_EQUAL
: 重複する値を等しいものとして扱います。USE_LAST
: 最後にデータ・ロード・バッファにロードされたセルの値を使用して、重複セルを結合します。
- loadBufferOptions: string
指定可能な値:
[ "IGNORE_NONE", "IGNORE_MISSING_VALUES", "IGNORE_ZERO_VALUES", "IGNORE_MISSING_AND_ZERO_VALUES" ]
オプションを選択して、集約ストレージ・データ・ロード・バッファ内の欠落値と0値を処理する方法を決定します。
IGNORE_NONE(0)
: 入力データ・ストリームの値を無視しませんIGNORE_MISSING_VALUES(1)
: 入力データ・ストリームの#MI値を無視しますIGNORE_ZERO_VALUES(2)
: 入力データ・ストリームの0値を無視しますIGNORE_MISSING_AND_ZERO_VALUES(3)
: 入力データ・ストリームの#MI値と0値を無視します
- resourceUsage: integer(int64)
ロード・バッファに使用が許可される合計ロード・バッファ・リソースのパーセンテージは、[0, 100]の範囲内である必要があり、その値が0の場合はデフォルト(現在は100)と解釈されます。
レスポンス
- application/json
- application/xml
200 レスポンス
OK
ロード・バッファが正常に作成されました。
400 レスポンス
不正なリクエスト
ロード・バッファの作成に失敗しました。
500 レスポンス
サーバーの内部エラーです。
例
集約ストレージ・キューブにより、最大100万以上のメンバーを含む非常に大規模なディメンションの分析が容易になります。このような大きなキューブへの、効率的なデータ値の増分ロードをサポートするためにEssbaseで可能なことを次に示します。
-
一時集約ストレージ・データ・ロード・バッファを介して、複数のデータソースを処理できます
-
データ・ロード・バッファで使用するリソースの割合を制御できます
-
集約ストレージ・データベースにデータの複数のスライスを含めることができます(データベースに対する問合せが各スライスにアクセスして、すべてのデータ・セルを収集します)
-
データのサイズに比例した時間で増分ロード・プロセスを完了します。
大きなキューブへのデータの増分ロードをサポートするために、集約ストレージ・キューブで複数のデータ・ロード・バッファを初期化できます。このREST APIでは、既存の各データ・ロード・バッファに関する次の情報が戻されます。
-
bufferId -- データ・ロード・バッファのID (1から4294967296の間の数値)。
-
duplicateAggregationMethod -- 同じセルの複数の値がバッファ内のデータ・ストリームからロードされている場合の処理に使用される方法の1つ。
- ADD -- バッファに同じセルの複数の値が含まれる場合に値を加算します。
- ASSUME_EQUAL -- 値が等しくない重複がある場合にロードを停止します。
- USE_LAST -- 最後にロード・バッファにロードされたセルの値を使用して、重複セルを結合します。これは、無効な集計を排除するためにテキスト値と日付値をロードする場合に、最も適した選択肢です。
-
loadBufferOptions -- ロード中に欠落値と0値を処理する方法。
- IGNORE_NONE -- 入力データ・ストリームの#MISSING値と0値のいずれも無視しません。このオプションを選択するには、このキーワードまたは
0
を渡します。 - IGNORE_MISSING_VALUES -- 入力データ・ストリームの#MISSING値を無視します。このオプションを選択するには、このキーワードまたは
1
を渡します。 - IGNORE_ZERO_VALUES -- 入力データ・ストリームの0を無視しますこのオプションを選択するには、このキーワードまたは
2
を渡します。 - IGNORE_MISSING_AND_ZERO_VALUES -- 入力データ・ストリームの0値と#MISSING値を無視します。このオプションを選択するには、このキーワードまたは
3
を渡します。
- IGNORE_NONE -- 入力データ・ストリームの#MISSING値と0値のいずれも無視しません。このオプションを選択するには、このキーワードまたは
-
resourceUsage -- ロード・バッファが使用できる合計ロード・バッファ・リソースのパーセンテージ。[0, 100]の範囲に収まる必要があります。デフォルトは100、0はデフォルトとして解釈されます。
cURLコマンドを使用してロード・バッファを初期化するコピー/ペースト可能なスクリプト
次の例に、集約ストレージ・データ・ロード・バッファを初期化する方法を示します。このバッファでは、Essbaseによって複数のソースからデータ値が累積およびソートされます。
この例では、cURLを使用して、Windowsシェル・スクリプトからREST APIを呼び出します。
呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat
内でその変数値が設定されています。
call properties.bat
curl -X POST "https://192.0.2.1:443/essbase/rest/v1/applications/ASOSamp/databases/Basic/asodataload/buffers" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"bufferId\": 100, \"duplicateAggregationMethod\": \"ADD\", \"loadBufferOptions\": \"IGNORE_NONE\", \"resourceUsage\": .25} -u %User%:%Password%"
2つのバッファのワークフロー例
次の例は、2つの集約ストレージ・データ・ロード・バッファを使用してデータを増分的にロードするために必要な、リクエスト・ペイロードの順序を示しています。
ロード・バッファの初期化
ロード・バッファを作成します。
サンプルのJSONペイロード:
{
"bufferId": 100,
"duplicateAggregationMethod": "ADD",
"loadBufferOptions": "IGNORE_NONE",
"resourceUsage": 50
}
{
"bufferId": 101,
"duplicateAggregationMethod": "ADD",
"loadBufferOptions": "IGNORE_NONE",
"resourceUsage": 50
}
サンプルのcURL:
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/ASOSamp/databases/Basic/asodataload/buffers" -H Accept:application/json -H "Content-Type: application/json" -d '{"bufferId": 100, "duplicateAggregationMethod": "ADD", "loadBufferOptions": "IGNORE_NONE", "resourceUsage": 50}'
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/ASOSamp/databases/Basic/asodataload/buffers" -H Accept:application/json -H "Content-Type: application/json" -d '{"bufferId": 101, "duplicateAggregationMethod": "ADD", "loadBufferOptions": "IGNORE_NONE", "resourceUsage": 50}'
バッファへのデータのロード
ジョブで使用可能なasoBufferDataLoad
ジョブ・タイプを使用して、データを初期化されたバッファにロードします。
パラメータ | 説明 |
---|---|
application |
必須。アプリケーション名。 |
db |
必須。キューブ名。 |
jobtype |
必須。ジョブ・タイプ(この場合は |
bufferId |
必須。単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。 |
rule |
必須。バッファへのロードに使用するルール・ファイル。 |
file |
(user+passwordまたはuseConnection+connectionを使用して)外部ソースに接続する場合以外は必須。バッファにロードするデータ・ファイル。 |
abortOnError |
必須。エラー処理の選択。trueの場合、データ・ロードは最初のエラーで停止します。falseの場合、エラーが発生してもデータ・ロードは続行されます。 |
user |
オプション。 |
password |
外部ソースへの接続用にユーザー名を入力していなければ任意です。外部データベースへのアクセス権限を持つユーザーのパスワード。 |
useConnection |
オプション。データ・ロードで、Essbaseと外部データ・ソースの間のネットワーク接続を確立する保存済の接続を使用する場合はtrue。データ・ロードがカタログ内のファイルから直接行われるか、またはユーザー名とパスワードを指定して外部データ・ソースへの接続を確立する場合はfalse。 |
connection |
useConnectionがtrueの場合は必須。Essbaseと外部データ・ソースの間のネットワーク接続を確立する保存済の接続の名前。例: グローバル接続の場合は |
データ・ファイルを使用するサンプルのJSONペイロード:
{
"application": "ASOSamp",
"db": "Basic",
"jobtype": "asoBufferDataLoad",
"parameters": {
"bufferId": 100,
"rule": "data.rul",
"file": "Basic.txt",
"abortOnError": "false"
}
}
アプリケーションレベル接続を使用するサンプルのJSONペイロード:
{
"application": "ASOSamp",
"db": "Basic",
"jobtype": "asoBufferDataLoad",
"parameters": {
"bufferId": 101,
"rule": "data.rul",
"useConnection": "true",
"connection": ASOSamp.conn_name,
"abortOnError":"false"
}
}
サンプルのcURL:
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/jobs" -H "accept: application/json" -H "Content-Type: application/json" -d '{"application":"ASOsamp_Data", "db":"Sample", "jobtype":"asoBufferDataLoad", "parameters":{"bufferId": 101, "rule": "data.rul", "useConnection": true, "connection": "ASOsamp_Data.app_conn", "abortOnError":"true"}}'
バッファのコミット
ジョブで使用可能なasoBufferCommit
ジョブ・タイプを使用して、データをバッファから集約ストレージ・キューブに移動します。
パラメータ | 説明 |
---|---|
application |
アプリケーション名。 |
db |
キューブ名。 |
jobtype |
ジョブ・タイプ(この場合は |
bufferIdまたはbufferIds |
bufferId: 単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。 または bufferIds: 複数のbufferIdのカンマ区切りリスト |
commitOption |
データ・ロード・バッファの内容をキューブにコミットするときに使用する、ロード・バッファのコミット・オプション。 次のオプションがあります。
|
actionType |
ロード・バッファのコミット中にエラーが発生した場合の対処方法。 次のオプションがあります。
|
termOption |
データ・スライスをデータ・ロード・バッファからキューブにコミットするための最終オプション。 次のオプションがあります。
|
サンプルのJSONペイロード:
{
"application":"ASOSamp",
"db":"Basic",
"jobtype":"asoBufferCommit",
"parameters":{
"bufferIds":[100,101],
"commitOption":"ADD_DATA",
"actionType":"COMMIT",
"termOption":"INCR_TO_NEW_SLICE"
}
}
サンプルのcURL:
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/jobs" -H "accept: application/json" -H "Content-Type: application/json" -d '{"application":"ASOsamp_Data", "db":"Sample", "jobtype":"asoBufferCommit", "parameters":{"bufferIds": [100,101], "commitOption": "ADD_DATA", "actionType": "COMMIT", "termOption":"INCR_TO_NEW_SLICE"}}'