グローバル・データソースの作成

post

/essbase/rest/v1/datasources

指定された入力内容に基づいてグローバルレベルのデータソースを作成します。nameconnectionおよびtypeは、すべてのタイプのデータソースに必須の入力内容です。必要なその他の入力内容は、データソースのタイプによって異なります。

リクエスト

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

データソースの詳細。

ルート・スキーマ : datasource
型: object
ソースの表示
  • データソースのtypeがESSBASEである場合に適用可能。Essbaseアプリケーション名。

  • ColumnsType
  • このデータソースで使用される接続。

  • データソースのtypeがESSBASEである場合に適用可能。Essbaseデータベース名。

  • delimiterに指定されている値がCustomである場合の、データ・レコードのカスタム・デリミタ。

  • データソースのtypeDELIMITEDFILEである場合の、データ・レコードのデリミタ。デリミタは、CSVフォーマットの場合はComma、タブ区切りフォーマットの場合はTabにできます。カスタム・デリミタを使用するには、値Customを使用し、デリミタをcustomDelimiterの値として指定します。

  • このデータソースのオプションの説明。

  • データソースがExcelファイルまたはテキスト・ファイルである場合の、終了行番号。

  • データソースがExcelファイルまたはテキスト・ファイルである場合の、ヘッダー行番号。ヘッダーがない場合は0。

  • headers
  • links
  • データソース名。先頭は文字である必要があります。文字、アンダースコア文字および数字のみを含めることができます。

  • データソースに関連付けられている問合せ。たとえば、外部データベースの場合はSQL問合せ、または別のEssbaseキューブの場合はMDX問合せ。問合せによって、このデータソース内の使用可能にするデータが選択されます。

  • queryParameters

    データソース問合せがパラメータ化されている場合の、パラメータ実装詳細。たとえば、問合せselect * from profit_data where year=?のように、パラメータを渡すための?プレースホルダが問合せに含まれる場合、実装詳細を定義する必要があります。

  • データソースがExcelファイルである場合の、ワークシート名。

  • オプション(指定されていない場合、デフォルトは1です)。データソースがExcelファイルまたはテキスト・ファイルである場合の、(headerRowが存在する場合はこれを除いた)データ開始行番号。たとえば、headerRowが1として指定され、startRowが10として指定されている場合、実際のデータ開始行は11になります。

  • 指定可能な値: [ "TEMPLATE", "EXCELFILE", "DB", "DELIMITEDFILE", "FIXEDWIDTHFILE", "BI", "ESSBASE", "JDBC", "SPARK", "MS_SQL", "MYSQL", "DB2", "ORACLE", "FILE" ]
  • widths
ネストされたスキーマ : ColumnsType
型: object
ソースの表示
ネストされたスキーマ : headers
型: array
ソースの表示
ネストされたスキーマ : queryParameters
型: array

データソース問合せがパラメータ化されている場合の、パラメータ実装詳細。たとえば、問合せselect * from profit_data where year=?のように、パラメータを渡すための?プレースホルダが問合せに含まれる場合、実装詳細を定義する必要があります。

ソースの表示
ネストされたスキーマ : widths
型: array
ソースの表示
ネストされたスキーマ : Column
型: array
ソースの表示
ネストされたスキーマ : ColumnType
型: object
ソースの表示
ネストされたスキーマ : HeaderType
型: object
ソースの表示
ネストされたスキーマ : QueryParamsInfo
型: object
ソースの表示
  • 実行時にパラメータに無効なコンテキストがある場合に、データソースがフォールバックとして使用する固定のデフォルト・パラメータ値。例: Jan。データソース問合せがパラメータ化されており(パラメータを渡すための?プレースホルダが含まれている)、かつプレースホルダが代替変数を参照することも、外部ソースで開発されたユーザー定義関数を参照することも意図されていない場合にのみ必須。

  • データソース問合せパラメータの順序インデックス。たとえば、最初のパラメータの場合は1、2番目のパラメータの場合は2、など。

  • 各自のユースケースに対して意味のある、データソース問合せパラメータのオプションの名前。たとえば、Param1のかわりにparam_G_monthを使用して、そのパラメータで現在の月のグローバル変数を使用することを示したり、名前をparam_appName_monthに変更して、そのパラメータで現在の月のアプリケーション・レベルの変数を使用することを示すことができます。

  • データソース問合せパラメータが必須の場合はtrue、それ以外の場合はfalse

  • useSubVariabletrueの場合、Essbase代替変数の名前。

  • 指定可能な値: [ "STRING", "DOUBLE", "DATE", "TIMESTAMP", "LONG" ]

    データソース問合せパラメータのデータ型。

  • データソース問合せパラメータでEssbase代替変数を参照する場合はtrue、それ以外の場合はfalse

先頭に戻る

レスポンス

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

200 レスポンス

OK

データソースが正常に作成されました。

400 レスポンス

不正なリクエスト

データソースの作成に失敗しました。

先頭に戻る

次の例では、グローバル・データソースを作成する方法を示します。

データソースとは、Essbaseキューブへのデータ・フローおよびEssbaseキューブからのデータ・フローを管理するために使用する、Essbase内のオブジェクトです。リレーショナル・システム、表、ファイルまたは別のキューブのいずれであるかを問わず、任意の外部データ・ソースを表すようにデータソースを定義できます。1つの接続を定義し、それを使用して複数のデータソースにアクセスできます。製品、再販業者および販売テリトリに対して別々の表を持つ外部Oracle Databaseサーバーを考えてみます。Oracle Databaseにアクセスする接続は1つのみ必要ですが、それぞれの表にアクセスするための一意のデータソースがあると役立つ場合があります。

この例では、必要な接続をすでに作成済であることを想定しています。データのファイルまたはその他のソース用のデータソースを作成する前に、ソースへの接続を作成して、データソースで接続を参照できるようにする必要があります。「接続の作成」エンドポイントを参照してください。

これら例では、cURLを使用して、Windowsシェル・スクリプトからREST APIにアクセスします。呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat内でその変数値が設定されています。

cURLコマンドを含むスクリプト

call properties.bat
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/datasources/?links=none" -H Accept:application/json -H Content-Type:application/json --data "@./DS_details.json" -u %User%:%Password%

前述のcURLの例では、JSONペイロードがDS_details.jsonでEssbaseに配信されます。ペイロードに含める詳細によって、作成されるデータソースの種類が決まります。

Essbaseでサポートされる各種ソース用のデータソースを作成できるJSONペイロードの例は、次を参照してください。

サンプルのJSONペイロード - 区切りテキスト・ファイル

次のようなデータのテキスト・ファイルを考えてみます。ここで、最初のレコードはヘッダー行であり、フィールドは#で区切られています。

Product#Scenario#Measures#Mar#Apr
Colas#Actual#Opening Inventory#2041#2108
Colas#Actual#Ending Inventory#2108#2250
Colas#Budget#Opening Inventory#1980#2040
Colas#Budget#Ending Inventory#2040#2170
Root Beer#Actual#Opening Inventory#2378#2644
Root Beer#Actual#Ending Inventory#2644#2944
Root Beer#Budget#Opening Inventory#2220#2450
Root Beer#Budget#Ending Inventory#2450#2710

cURLによってDS_details.jsonでREST APIに渡される次のサンプルのJSONペイロードは、前述のようなテキスト・ファイル用のデータソースを作成する場合の例です。

必須パラメータは、nameconnectiontypeおよびcolumnsです。Columnごとに、その名前、型および最初の列が0で始まる順序インデックスを指定します。

{
  "name" : "delimitedfile_DS"
  "connection" : "delimitedfile_conn",
  "type" : "DELIMITEDFILE",
  "delimiter" : "Custom",
  "customDelimiter" : "#",
  "headerRow" : 1,
  "startRow" : 1,
  "columns" : {
    "Column" : [ {
      "name" : "Product",
      "type" : "STRING",
      "index" : 0
    }, {
      "name" : "Scenario",
      "type" : "STRING",
      "index" : 1
    }, {
      "name" : "Measures",
      "type" : "STRING",
      "index" : 2
    }, {
      "name" : "Mar",
      "type" : "STRING",
      "index" : 3
    }, {
      "name" : "Apr",
      "type" : "STRING",
      "index" : 4
    } ]
  }
}

サンプルのJSONペイロード - Excelワークブック

最初のレコードがヘッダー行で、データがSpendHistoryという名前のワークシート上にあるExcelワークブックを考えてみます。ヘッダー行には、Year、Quarter、Month、Purchase Organization、Category、Product Name、Org Name、Suppliers、Spend、Addressable Spendなどの列が含まれています。

ノート:

このワークブックは、ファイル・カタログで入手できます(All Files/ gallery/ Technical/Table Format/Unstr_NoHints.xlsx)。

cURLによってDS_details.jsonでREST APIに渡される次のサンプルのJSONペイロードは、前述のようなExcelワークシート用のデータソースを作成する場合の例です。

必須パラメータは、nameconnectionsheettypeおよびcolumnsです。Columnごとに、各列の名前、別名、型および最初の列が0で始まる順序インデックスを指定します。

{
	"connection": "excel_conn",
	"description": "Datasource to Excel file",
	"headerRow": 1,
	"name": "excelDS",
	"sheet": "SpendHistory",
	"startRow": 1,
	"type": "EXCELFILE",
	"columns": {
		"Column": [
			{
				"index": 1,
				"name": "Year",
				"type": "STRING"
			},
			{
				"index": 2,
				"name": "Quarter",
				"type": "STRING"
			},
			{
				"index": 3,
				"name": "Month",
				"type": "STRING"
			},
			{
				"index": 4,
				"name": "Purchase Organization",
				"type": "STRING"
			},
			{
				"index": 5,
				"name": "Category",
				"type": "STRING"
			},
			{
				"index": 6,
				"name": "Product Name",
				"type": "STRING"
			},
			{
				"index": 7,
				"name": "Org Name",
				"type": "STRING"
			},
			{
				"index": 8,
				"name": "Suppliers",
				"type": "STRING"
			},
			{
				"index": 9,
				"name": "Spend",
				"type": "STRING"
			},
			{
				"index": 10,
				"name": "Addressable Spend",
				"type": "STRING"
			},
			{
				"index": 11,
				"name": "Non-Addressable Spend",
				"type": "STRING"
			},
			{
				"index": 12,
				"name": "Invoiced Quantity",
				"type": "STRING"
			},
			{
				"index": 13,
				"name": "Invoiced Amount",
				"type": "STRING"
			}
		]
	}
}

サンプルのJSONペイロード - Oracle Database

cURLによってDS_details.jsonでREST APIに渡される次のサンプルのJSONペイロードは、Oracle Database用のデータソースを作成する場合の例です。必須パラメータは、nameconnectiontypecolumnsおよびqueryです。問合せがパラメータ化されている場合は、queryParametersとして実装詳細を指定します。詳細は、データソースのパラメータの実装を参照してください。

{
  "name" : "Orcl_DS",
  "connection" : "oraConn",
  "type" : "DB",
  "columns" : {
    "Column" : [ {
      "name" : "DIMENSION_PRODUCT",
      "type" : "STRING",
      "index" : 1
    }, {
      "name" : "DIMENSION_MARKET",
      "type" : "STRING",
      "index" : 2
    }, {
      "name" : "DIMENSION_YEAR",
      "type" : "STRING",
      "index" : 3
    }, {
      "name" : "DIMENSION_SCENARIO",
      "type" : "STRING",
      "index" : 4
    }, {
      "name" : "SALES",
      "type" : "DOUBLE",
      "index" : 5
    }, {
      "name" : "COGS",
      "type" : "DOUBLE",
      "index" : 6
    }, {
      "name" : "MARKETING",
      "type" : "DOUBLE",
      "index" : 7
    }, {
      "name" : "PAYROLL",
      "type" : "DOUBLE",
      "index" : 8
    }, {
      "name" : "MISC",
      "type" : "DOUBLE",
      "index" : 9
    }, {
      "name" : "INITIAL_INVENTORY",
      "type" : "DOUBLE",
      "index" : 10
    }, {
      "name" : "ADDITIONS",
      "type" : "DOUBLE",
      "index" : 11
    } ]
  },
  "query" : "select * from SB_DATA where dimension_year=?",
  "queryParameters" : [ {
    "index" : 1,
    "name" : "Param1",
    "required" : false,
    "useSubVariable" : true,
    "subVariableName" : "CurrMonth",
    "type" : "STRING"
  } ]
}

サンプルのJSONペイロード - 別のEssbaseキューブ

cURLによってDS_details.jsonでREST APIに渡される次のサンプルのJSONペイロードは、別のEssbaseキューブ用のデータソースを作成する場合の例です。必須パラメータは、nameconnectiontypecolumnsapplicationcubeおよびqueryです。

{
  "name":"EssbaseDS",
  "type":"ESSBASE",
  "connection":"essconn",
  "columns":{
    "Column":[
      {
        "index":1,
        "name":"Measures",
        "type":"STRING"
      },
      {
        "index":2,
        "name":"Oregon",
        "type":"STRING"
      },
      {
        "index":3,
        "name":"Florida",
        "type":"STRING"
      },
      {
        "index":4,
        "name":"Utah",
        "type":"STRING"
      }]
  },
  "query":"select {Sales} on rows ,{Oregon, Florida, Utah} on columns",
  "application":"Sample",
  "cube":"Basic"
}
先頭に戻る