1.33添加SQL数据集

<< Click to Display Table of Contents >>

当前位置:  部署与集成 > WebAPI 

1.33添加SQL数据集

复制链接

请求地址

http://ip:port/bi/api?action=saveSQLQuery&token=xxxx

请求消息

请求参数

请求参数:xmlData(必填)

<?xml version="1.0" encoding="UTF-8"?>

<info>

 <path>咖啡中国市场销售数据</path>

 <dbsource>Demo Data_zhCN</dbsource>

 <sql>SELECT * from 咖啡中国市场销售数据</sql>

 <material>false</material>

 <sqlParse>false</sqlParse>

 <fullData>false</fullData>

 <forbidDownload>false</forbidDownload>

 <note>备注</note>

 <cols>

   <col>

     <name>update_date</name>

     <alias>更新时间2</alias>

     <isDim>true</isDim>

   </col>

   <col>

     <name>create_date</name>

     <alias>创建时间2</alias>

     <isDim>true</isDim>

   </col>

   <datecol>

     <basecol>create_date</basecol>

     <level>day</level>

     <alias>day1</alias>

   </datecol>

   <hiers>

      <hiers-name>测试1</hiers-name>

      <basecol>create_date</basecol>

      <datecol>

         <level>year</level>

         <alias>year1</alias>

      </datecol>

      <datecol>

         <level>month</level>

         <alias>month11</alias>

      </datecol>

    </hiers>

 </cols>

 <params>

   <param>

     <name>Short</name>

     <type>int</type>

     <direction>IN</direction>

     <multiple>true</multiple>

     <value>1,2,3,4</value>

     <popup>false</popup>

     <hide>true</hide>

     <values>

       <dataset>

         <type>sql</type>

         <path>咖啡中国门店订单数据</path>

         <lcol>col1</lcol>

         <vcol>col2</vcol>

       </dataset>

     </values>

   </param>

 </params>

 <measureFolders>

   <folder>

     <name>财务数据1</name>

     <folder>

       <name>财务数据3</name>

       <cols>

         <col>总成本</col>

       </cols>

     </folder>

     <cols>

       <col>销量</col>

       <col>利润</col>

     </cols>

   </folder>

 </measureFolders >

 <dimensionFolders>

 </dimensionFolders>

</info>

参数描述

path(必填):数据集的路径。如果该路径不存在, 则创建sql数据集。否则修改该路径的数据集。

dbsource(必填):数据源路径。

sql(必填):sql语句。

material(抽取数据)(选填): 物化查询或者释放物化查询。值只能是true和false。

sqlparse:是否支持勾选SQL解析器(9.4.2开始改为性能优化),值为true/false。

fulldata:是否添加SQL数据集的全量数据,值为true/false。

forbidDownload(选填):是否禁止下载,值为true/false,默认为false。

note(选填):数据集的备注。

cols(选填): 需要定义别名的列集合。如果某列没有设置别名,则按照修改前的别名设置该列的别名。

cols-col(选填):定义数据列 。

cols-col-name(必填): 列名(不区分大小写)。

cols-col-alias(选填):列别名。如果要取消列的别名,不写该参数即可。

cols-col-isDim(选填):设置此列是否为维度列,true为维度列,false为度量列。如果接口中定义了此列的文件夹,以文件夹的定义优先;接口中新建的日期列不支持设置维度/度量列,按产品通用逻辑默认为维度列。

datecol(选填):日期列。

datecol-basecol(日期列中必填):日期列基于的列,需要选择日期类型的列。

datecol-level(日期列中必填):日期列的层次,当前支持输入的值包括dateyear、quarter、 month、 week、 day、 hour、minute、second、fiveminute、 year、 quarterpart、monthpart、weekpart、daypart、hourpart、minutepart、secondpart、 weekday。

datecol-alias(选填):日期列的别名。如果要取消列的别名,不写该参数即可。

hiers(选填):日期层次。

hiers-name(选填):日期层次的名称。

hiers-basecol(日期层次中必填):新建日期层次基于的列,需要选择日期类型的列。

hiers-datecol(日期层次中必填):新建日期层次中的日期列,

hiers-datecol-level(日期层次日期列中必填):新建日期层次列的层次,,当前支持输入的值包括dateyear、 quarter、 month、week、 day、hour、 minute、 second、fiveminute、year、 quarterpart、monthpart、 weekpart、 daypart、 hourpart、minutepart、secondpart、 weekday。

hiers-datecol-alias(选填):新建日期层次列的别名。如果要取消列的别名,不写该参数即可。

设置参数相关参数:

params(选填):数据集中设置的参数集合。

params-param(选填):数据集中设置的参数

params-param-name(参数中必填):数据集中设置的参数名。

params-param-type(参数中必填):数据集中设置的参数类型,支持填写的类型有string、boolean、float、double、int、short、long、char、byte、date、time、dateTime。

params-param-direction(参数中必填):数据集中设置的参数方向。

params-param-multiple(参数中选填):参数是否多个值,true表示多个值,false表示单个值、空,默认为false。

params-param-value(参数中选填):如果Multiple为true,对应value为多个值且用逗号分隔;如果Multiple为false,value可以为单个值或空值。

params-param-popup(参数中选填):参数是否弹出,值为true/false,默认为true。

params-param-hide(参数中选填):二次引用是否隐藏,值为true/false,默认为false。

params-param-values(选填):参数可选值,可以为空,也可以为数据集。

params-param-values-dataset(参数可选值中选填):可选值的数据集。

params-param-values-dataset-type(可选值数据集中必填):数据集的类型,目前支持sql、mongo、excel、composite、cloud、embed、custom、data_flow  、mdx、neo4j、restful、stream、flowreplcaequery。

params-param-values-dataset-path(可选值数据集中必填):数据集的全路径。

params-param-values-dataset-vcol(可选值数据集中必填):参数可选值来自数据集哪个列。

params-param-values-dataset-lcol(选填):参数可选值的标签来自数据集哪个列。

params-param-values-dataset-aggregation(选填):动态值的聚合函数类型,包括Sum,Avg,Max,Min,Count,ApproximateCount,DistinctCount,Correlation,Covariance,Median,Mode,PopulationStandardDeviation,PopulationVariance,Product,PthPercentile,Quartile,Range,StandardDeviation,StandardError,SumSQ,SumWT,Variance,WeightAvg。

params-param-values-dataset-with(选填):动态值的聚合函数类型参数,当params-param-values-dataset-aggregation值为Correlation、Covariance、SumWT、WeightAvg时,输入数据集中的列名;params-param-values-dataset-aggregation值为PthPercentile、Quartile时输入正整数值。

说明:

当且仅当<multitple>为false,<popup>为false,<value>为空,<values>不为空时,<aggregation>和<with>参数才有意义。

当且仅当<aggregation>为Correlation、Covariance、PthPercentile、Quartile、SumWT、WeightAvg时,<with>参数才生效。

设置字段分组相关参数:

measureFolders/ dimensionFolders(选填):measureFolders代表度量文件夹,dimensionFolders代表维度文件夹。

measureFolders-folder/dimensionFolders-folder(选填):在维度/度量文件夹下添加的子文件夹。

measureFolders-folder-folder/dimensionFolders-folder-folder(选填):在维度/度量文件夹下添加的子文件夹下,再新建的子文件夹。

measureFolders-folder-name/dimensionFolders-folder-name(folder中必填):维度/度量文件夹下新建的子文件夹名称,名称可以和不同路径下的文件夹名称重复,但是不能和同一路径的文件夹名称重复。

measureFolders-folder-folder-name/dimensionFolders-folder-folder-name(folder中必填):在维度/度量文件夹下添加的子文件夹下,再新建的子文件夹名称,名称可以和不同路径下的文件夹名称重复,但是不能和同一路径的文件夹名称重复。

measureFolders--folder-folder-cols/dimensionFolders-folder-folder-cols(选填):在维度/度量文件夹下,再新建子文件夹中数据列的集合。

measureFolders-folder-folder-cols-col /dimensionFolders-folder-cols-col (选填):在维度/度量文件夹下,再新建子文件夹中包含的数据列。(除了datecol采用别名),列名不可为空 。如果想要添加的列已分组到其他文件夹,会将数据列重新分组到新设置的文件夹。

当manual.sort.repository=true时,文件夹中的列的顺序按照folders-folder-cols中输入col的顺序排列,否则文件夹中的列的顺序只能按数据源中(按查询时的顺序,即SQL中的顺序)或字母顺序排列。

示例

function saveSqlQuery() {

  var xml = getXml();

  $.post("http://" + ip + ":" + port + "/" + project + "/api?action=saveSQLQuery&token=xxxx",

    { xmlData : xml }, function( result) {

          writeXml(result)

  });

}

响应消息

响应结果

操作成功

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

      <level>1</level>

      <message>Save Success</message>

  </result>

</results>

未输入measureFolders/dimensionFolders、measureFolders-folder/dimensionFolders-folder、measureFolders-folder-folder/dimensionFolders-folder-folder也可以保存成功,即维度与度量分组情况保持默认设置、不创建子文件夹。

输入measureFolders/dimensionFolders,measureFolders-folder/dimensionFolders-folder,measureFolders-folder-name/dimensionFolders-folder-name,未输入measureFolders-folder-cols/dimensionFolders-folder-cols或measureFolders-folder-cols-col、measureFolders-folder-cols-col,也可以保存成功,即创建所输入名称的文件夹,但文件夹中不包含任何列。

操作失败,输入了measureFolders-folder/dimensionFolders-folder,但未输入measureFolders-folder-name/dimensionFolders-folder-name标签,或输入measureFolders-folder-name/dimensionFolders-folder-name的标签值为空。

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

         <level>6</level>

         <message>保存失败,请输入文件夹名称</message>

  </result>

</results>

操作失败,measureFolders-folder-cols-col/dimensionFolders-folder-cols-col标签值为空。

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

         <level>6</level>

         <message>保存失败,输入的列名不可为空</message>

  </result>

</results>

操作失败,单次调用中输入了两个相同的measureFolders-folder-name/dimensionFolders-folder-name标签值。

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

         <level>6</level>

         <message>保存失败,已存在文件夹XXX</message>

  </result>

</results>

操作失败,单次调用中输入了两个相同的measureFolders-folder-cols-col/dimensionFolders-folder-cols-col标签值。

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

         <level>6</level>

         <message>保存失败,列XX已存在于文件夹YYY </message>

  </result>

</results>

操作失败,输入的measureFolders-folder-cols-col/dimensionFolders-folder-cols-col标签值在数据集中不存在。

<?xml version="1.0" encoding="UTF-8"?>

<results>

  <result>

         <level>6</level>

         <message>保存失败,列XX不存在</message>

  </result>

</results>

结果描述

响应结果信息为xml,直接parse即可。

level 返回类型,不同数值代表不同返回状态,见附录

message为接口操作结果信息