バッファの作成

post

/essbase/rest/v1/applications/{applicationName}/databases/{databaseName}/asodataload/buffers

指定されたオプションで集約ストレージのデータ・ロード・バッファを作成します。

REST APIでは、バッファを使用せずにデータを読み込むjobTypedataloadです。データを集約ストレージ・キューブに(バッファを使用して)増分的にロードする必要があるjobTypeは、asoBufferDataLoadasoBufferCommitです。

バッファを使用してデータを集約ストレージ・キューブにロードするREST APIのワークフローは、次のとおりです。

  1. バッファを作成(初期化)します
  2. (オプション)既存のバッファをリストします(バッファのリスト)
  3. jobType asoBufferDataLoadを実行して、バッファにデータをロードします(ジョブの実行)
  4. jobType asoBufferCommitを実行して、バッファから集約ストレージ・キューブにデータをコミットします(ジョブの実行)
  5. (オプション)データをコミットせずに、初期化されたロード・バッファを破棄します(データロード・バッファの破棄)

リクエスト

サポートされているメディア・タイプ
パス・パラメータ
本体()
ルート・スキーマ : DataLoadBuffer
型: object
ソースの表示
  • 単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。

  • 指定可能な値: [ "ADD", "ASSUME_EQUAL", "USE_LAST" ]

    集約ストレージ・データ・ロード・バッファ内の、重複セルのセル競合を解決するオプションを選択します。

    • ADD: (デフォルト)バッファの同じセルに複数の値が含まれる場合に値を加算します。
    • ASSUME_EQUAL: 重複する値を等しいものとして扱います。
    • USE_LAST: 最後にデータ・ロード・バッファにロードされたセルの値を使用して、重複セルを結合します。
  • 指定可能な値: [ "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値を無視します
  • ロード・バッファに使用が許可される合計ロード・バッファ・リソースのパーセンテージは、[0, 100]の範囲内である必要があり、その値が0の場合はデフォルト(現在は100)と解釈されます。

先頭に戻る

レスポンス

サポートされているメディア・タイプ

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を渡します。
  • 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

必須。ジョブ・タイプ(この場合はasoBufferDataLoad)

bufferId

必須。単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。

rule

必須。バッファへのロードに使用するルール・ファイル。

file

(user+passwordまたはuseConnection+connectionを使用して)外部ソースに接続する場合以外は必須。バッファにロードするデータ・ファイル。

abortOnError

必須。エラー処理の選択。trueの場合、データ・ロードは最初のエラーで停止します。falseの場合、エラーが発生してもデータ・ロードは続行されます。

user

オプション。useConnectionオプションを使用せずにODBCOCIまたはDSNへの接続を使用してデータをロードするようにルール・ファイルが構成されている場合に使用します。外部データベースへのアクセス権限を持つユーザーの名前。

password

外部ソースへの接続用にユーザー名を入力していなければ任意です。外部データベースへのアクセス権限を持つユーザーのパスワード。

useConnection

オプション。データ・ロードで、Essbaseと外部データ・ソースの間のネットワーク接続を確立する保存済の接続を使用する場合はtrue。データ・ロードがカタログ内のファイルから直接行われるか、またはユーザー名とパスワードを指定して外部データ・ソースへの接続を確立する場合はfalse

connection

useConnectionがtrueの場合は必須。Essbaseと外部データ・ソースの間のネットワーク接続を確立する保存済の接続の名前。例: グローバル接続の場合はconn_name (すべてのアプリケーションにアクセス可能)、アプリケーションASOSampにのみ関連付けられている接続の場合はASOSamp.conn_name

データ・ファイルを使用するサンプルの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

ジョブ・タイプ(この場合はasoBufferCommit)

bufferIdまたはbufferIds

bufferId: 単一の集約ストレージ・データ・ロード・バッファの一意のID。1から4294967296の間の数値である必要があります。

または

bufferIds: 複数のbufferIdのカンマ区切りリスト

commitOption

データ・ロード・バッファの内容をキューブにコミットするときに使用する、ロード・バッファのコミット・オプション。

次のオプションがあります。

  • STORE_DATA (または0) -- ロード・バッファにデータを保存します

  • ADD_DATA (または1) -- ロード・バッファの値を、格納された既存のデータ値に追加します

  • SUBTRACT_DATA (または2) -- 格納された既存のデータ値からロード・バッファの値を減算します

  • OVERRIDE_ALL_DATA (または3) -- 格納された既存のデータ値のかわりに、入力データを保存します。

  • OVERRIDE_INCREMENTAL_DATA (または4) -- 増分データをリセットします(増分スライスに格納されます)。つまり、キューブ内のすべての増分データ・スライスの現在のコンテンツを削除し、指定されたデータ・ロード・バッファのコンテンツを持つ新しいデータ・スライスを作成します。新しいデータは、データ・ロード・プロパティadd values (aggregate_sum)を使用して作成されます。新しいデータとプライマリ・スライスの間に重複セルがある場合にそれらに問い合せると、値は加算されます。

actionType

ロード・バッファのコミット中にエラーが発生した場合の対処方法。

次のオプションがあります。

  • COMMIT (または1) -- コミットします

  • ABORT (または2) -- 操作を終了します

termOption

データ・スライスをデータ・ロード・バッファからキューブにコミットするための最終オプション。

次のオプションがあります。

  • INCR_TO_MAIN_SLICE (または0) -- すべての増分データ・スライスのコンテンツをプライマリ(メイン)・スライスとしてコミットします。

  • INCR_TO_NEW_SLICE (または1) -- すべての増分データ・スライスのコンテンツを新しいスライスに置き換えます。

  • INCR_TO_NEW_SLICE_LIGHTWEIGHT (または2) -- 軽量操作として、現在バッファに格納されているデータをキューブ内の新しいスライスに書き込みます。このオプションは、同時に発生する最大1,000セルの非常に小さなデータ・ロード(たとえば、グリッド・クライアントのデータ更新操作)のみを対象としています。

サンプルの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"}}'
先頭に戻る