dmr.properties 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. # Licensed Materials - Property of IBM
  2. # IBM Cognos Products: OQP
  3. # (C) Copyright IBM Corp. 2005, 2017
  4. # US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM corp.
  5. #
  6. # OLAP Metadata for DMR queries.
  7. #
  8. #
  9. # MDX Optimizations
  10. # This configuration flags says whether the provider supports replacing the aggregate of child members with the parent
  11. # when XQE believes this will be true. This is not guaranteed to work for all providers, so this setting must default
  12. # to false.
  13. #
  14. mdx.optimize.parentmember=true
  15. #
  16. # Null behavior of comparison operators (=, !=, <, <=, >, >=) in the MDX engine.
  17. # This should be set to "null" or "zero".
  18. # When set to null, expressions such as "null < number" and "number < null" will evaluate to null.
  19. # When set to zero, null is treated as zero.
  20. #
  21. null.comparison.operator=null
  22. #
  23. # Null behavior of boolean operators (and, or, xor) in the MDX engine.
  24. # This should be set to "null" or "false".
  25. #
  26. null.boolean.operator=null
  27. #
  28. # Null behaviour in the MDX engine for the arithmetic operators: +, -. *, /, %
  29. # When null.divide.denominator is set to zero, a number divided by null will return /0.
  30. # When null.divide.denominator is set to null, a number divided by null will return null.
  31. #
  32. null.plus.operator=null
  33. null.minus.operator=null
  34. null.multiply.operator=null
  35. null.divide.numerator=null
  36. null.divide.denominator=null
  37. null.modulo.dividend=null
  38. null.modulo.divisor=null
  39. #
  40. # Null behaviour in the MDX engine vb functions (Abs, Int, Round).
  41. #
  42. null.vb.math.function=null
  43. #
  44. # When processing an MDX if a member is not found, by default the mdx engine
  45. # throws an exception. Setting this parameter to "true", however, will trigger the
  46. # engine to create a null member for that member and continue the processing.
  47. #
  48. mdx.useNullForNonExistingMember=true
  49. #
  50. # This property controls how ambiguous an ambiguous dimension identifier is resolved
  51. # within the MDX engine, when the dimension has a single hierarchy.
  52. #
  53. # For example, with a Cube with a level unique name of [Sales].[Product].[Product],
  54. # the identifer [Sales].[Product] could be referring to the level or to the hierarchy.
  55. #
  56. # This property can have the following values:
  57. #
  58. # level - The identifier will be resolved as a level
  59. # hierarchy - The identifier will be resolved as a hierarchy
  60. #
  61. mdx.level.hierarchy.ambiguity.resolution=hierarchy
  62. #
  63. # V5 Member and Measure Detail Filter timing for the postAutoAggregation flag.
  64. #
  65. # reportDetails: Apply the filter along with Summary Filters to the details of the report. This would mean it happens after OLAP functions such as TOPCOUNT, as an example.
  66. # virtualDetails: Apply the filter to the virtual details cube at the lowest projected levels. This would mean it happens before OLAP functions such as TOPCOUNT, as an example.
  67. #
  68. # Not that OR filters between different hierarchies are virtualDetails by default and this is not yet configurable.
  69. #
  70. v5.postAutoAggregation.timing=reportDetails
  71. #
  72. # MDX Support for OLYMPIC rank with implicit sort
  73. #
  74. mdx.support.olympicRankSort=false
  75. #
  76. # Property to enable DMR cube reuse
  77. #
  78. enableDMRcubeReuse=true
  79. #
  80. # Property to set the maximum size(M) of DMR ResultSet cache.
  81. # ResultSet cache is part of DMR reuseable cube.
  82. # ResultSet cache is automatically disabled when enableDMRcubeReuse is turned off.
  83. # Default value is 50M.
  84. # 0 or negative value disables DMR ResultSet cache.
  85. #
  86. dmrResultSetCacheSize=50
  87. #
  88. # V5 master-detail optimization when allRows optimization is specified
  89. #
  90. v5.master-detail.transform=true
  91. # false - generating parameterized detail filter to detail query ( default )
  92. # true - generating extra edge to detail query
  93. #
  94. # If true, we issue one subquery per measure.
  95. # Temporary switch until we know how the measures are defined over the relational table.
  96. #
  97. oneMeasurePerSubquery=false
  98. #
  99. # This property instructs the planner to plan the query by ignoring (=true) or not (=false)
  100. # the v5 suppress query hint XML element. When the planner ignore it, the query planned
  101. # as per suppress query hint default value (i.e. when not specified).
  102. # The default property value (including when not specified) is false.
  103. # The initial usage of this property is to overwrite the ANS default behavior specifying suppress query hint to NONE
  104. # by default, without ability to change it.
  105. # This property has to be carefully used since it impact all planned V5 query (global planner settings) for
  106. # all planned V5 queries.
  107. # Do not change this value unless directed to by IBM.
  108. #
  109. v5.suppress.queryhint.ignore=false
  110. # This property controls whether the query engine should automatically inject a pre auto aggregation
  111. # measure detail filter to assist the V5 suppression of nulls.
  112. #
  113. #v5.suppress.nulls.usePreAutoAggregationMeasureDetailFilter=true
  114. #
  115. # Enable the member storage.
  116. #
  117. enableDMRmemberStorage=true
  118. #
  119. # This property tells whether the provider may filter the data before applying the MDX.
  120. # It may take one of this values:
  121. # - always: the provider always filter the data before applying the MDX,
  122. # - never: the provider never filter the data before applying the MDX,
  123. # - forNonEmpty: Only in the presence of MDX edge NON EMPTY the provider filters the data before applying the MDX.
  124. #
  125. datasource.appliesFilterBeforeMDX=always
  126. #
  127. # If true, we load other report measures when loading measure for a crossjoinedset.
  128. #
  129. loadOtherReportMeasuresWhenLoadMeasure=true
  130. #
  131. # If true, DMR will push down the aggregate expression that can not be calculated internally
  132. # to the relational database.
  133. # If false, DMR will return an error cell "--" instead.
  134. #
  135. pushdownExtAggregatesToRelational=true
  136. #
  137. # If true, DMR will push down the evaluation of
  138. # TopBottomCount, Head, and Filter expression to the relational database
  139. # through CustomSet function.
  140. #
  141. enablePushdownThroughCustomSet = false
  142. #
  143. # If true, DMR will push down the evaluation of the TopBottomCount expression to the relational database
  144. #
  145. pushdownTopBottomCountToRelational=false
  146. #
  147. # If true, DMR will push down the evaluation of the TopPercent/Sum expression to the relational database
  148. #
  149. pushdownTopPercentSumToRelational=false
  150. #
  151. # If true, DMR will push down the evaluation of the Filter expression to the relational database
  152. #
  153. pushdownFilterToRelational=false
  154. #
  155. # If true, DMR will push down the evaluation of calculations in filter pushdown to the relational database
  156. #
  157. pushdownCalculationsInFilterPushdownToRelational=false
  158. #
  159. # If true, DMR will push down the evaluation of the Head/Tail expression to the relational database
  160. #
  161. pushdownHeadTailToRelational=false
  162. #
  163. # If true, DMR will push down by CustomValue function the evaluation of the calculated member to the relational database
  164. # when this calculation involves Descendants function over a non projected large level.
  165. #
  166. pushdownCustomValueToRelational=false
  167. #
  168. # If true, the input set for the Topcount operator is filtered when pushdown is on
  169. #
  170. enableFilterSetInPushDownMode=false
  171. #
  172. # If true, the coalesce function is used for rank when pushdown is on.
  173. #
  174. enableCoalesceRankInPushDownMode=true
  175. #
  176. # If true, the coalesce function is used for filter when pushdown is on.
  177. #
  178. enableCoalesceFilterInPushDownMode=true
  179. #
  180. # The minimum size of the set in top/bottom count pushdown mode.
  181. #
  182. topBottomCountPushdownMinimumSetSize=100000
  183. #
  184. # The minimum size of the set in filter pushdown mode.
  185. #
  186. FilterPushdownMinimumSetSize=100000
  187. #
  188. # Controls if DMR will try loading multiple level of cell values
  189. # using single SQL query involving windowed aggregate functions.
  190. # Valid values are 0, 1, and 2.
  191. # When 0, SQL query generated to load each individual combination
  192. # of aggregation. In other words, no optimization.
  193. # When 1, Loading multiple level of cell values using single SQL query.
  194. # The SQL query loads all combination of aggregations,
  195. # regardless if it's required or not by the query.
  196. # When 2 (default value), Loading multiple level of cell values using single SQL query.
  197. # The SQL query only loads combination of aggregations
  198. # that are required by the query.
  199. dmrSummaryQueryOptimizationLevel=2
  200. #
  201. # Control maximum number of aggregations that single cube loading query
  202. # is allowed to have. The complexity of SQL query increases when aggregations number grows.
  203. #
  204. dmrMaximumNumberOfAggregationsInCubeLoadingQuery=10
  205. #
  206. # If merge, member loading will be incremental. Only required members in a query will be loaded.
  207. # If true, member loading will be incremental. It might load extra members not required by the current query.
  208. # Otherwise entire level or levels will be loaded into cube.
  209. #
  210. enableIncrementalMemberLoading=merge
  211. #
  212. # Only used when enableIncrementalMemberLoading is ture.
  213. # Maximum number of restriction members allowed on a level without loading entire level
  214. #
  215. restrictionMembersCountThreshold=1000
  216. #
  217. # number of levels to fetch members from
  218. #
  219. dmrNumberOfLevelsToIncludeInMultipleLevelFetch=3
  220. #
  221. # Specify whether or not the provider will be sub-queried for MUNs.
  222. # This feature is not required for this datasource and thefore not supported.for it
  223. #
  224. queryProviderForMUNs=false
  225. #
  226. # This property controls how to handle the projection of nested levels of the same hierarchy.
  227. # Specifically the use of the technique involving nested level decoration rules.
  228. # In that case the planner queries only the lowest level members, later the post-processing queries the outer levels if required.
  229. # - always: always use this technique
  230. # - never: never use this technique
  231. # - automatic: allow the planner to decide whether to use or not this technique.
  232. #
  233. applyNestedLevelDecorationRules=always
  234. #
  235. # This property controls how to handle the DMR cell fetching for the same CJS in multi-threads case.
  236. # If true, If this is not the first thread trying to execute the query, block it until the first
  237. # thread finishes and this thread can use the cached data.
  238. #
  239. blockingFetchingSameCells=true
  240. #
  241. # This property controls how to handle the pre-planning in multi-threads case.
  242. # If true, If this is not the first thread trying to pre-plan the query, block it until the first
  243. # thread finishes and this thread can use the cached data.
  244. #
  245. blockingPrePlanSameMetaDataObjects=true
  246. #
  247. # This property controls how to handle the DMR execution for the same MDX in multi-threads case.
  248. # If true, If this is not the first thread trying to execute the MDX, block it until the first
  249. # thread finishes and this thread can use the cached data.
  250. blockingSameMDXExecution=true
  251. #
  252. # This property controls how to handle the DMR report using only levels from multiple hierarchies (measure is not used).
  253. # the options:
  254. # 0: do cross-join as other OLAP providers.
  255. # 1: use the first fact table (this is the default behavior in RQP for list report).
  256. # 2: stitch by rows (RQP can turn on this behavior).
  257. # 3: throw exception (if the cross-join result is too big)
  258. stitchMultiHierLevelsForReportWithoutMeasure=0
  259. #
  260. # This property controls two things:
  261. # a. if pre-loading the cells is enabled for temporary DMR Cube (Cache is disabled).
  262. # any positive number will enable pre-loading for temporary DMR Cube (Cache is disabled).
  263. # b. the maximum cell count for pre-loading. If the number of required cells exceeds this threshold, don't pre-load.
  264. preLoadCellCountThreshold=10000
  265. # How will DMRQueryStrategy load cells after preloading is successful?
  266. # OverLoad: Might over load cells. This is the current DMRQueryStrategy behavior.
  267. # NoLoad: don't load any new cells. Assuming pre-loading loads all required cells.
  268. # PreciseLoad: use the same rule as Pre-loading. Just load the cells required by the MDX engine.
  269. # default is PreciseLoad
  270. CellFetchingAfterPreloading=NoLoad
  271. #
  272. # For local MDX engine to decide if splitting a symmetric query for a requested set of tuples into
  273. # multiple more precise queries is worthwhile.
  274. # The heuristic for determining whether to split a requested set into multiple queries is:
  275. # if (symmetricTuples - requiredTuples > minExcessTuplesForSplitQuery
  276. # && symmetricTuples / requiredTuples > excessTuplesRatioForSplitQuery)
  277. # When either threshold is set to -1, a requested set of tuples is never split into multiple queries.
  278. #
  279. lolap.minExcessTuplesForSplitQuery=0
  280. lolap.excessTuplesRatioForSplitQuery=0
  281. #
  282. # This property controls if DMR cube is loaded with a single sub-query.
  283. # If false, single loading is disabled.
  284. # If true, single loading might be used depending on other conditions.
  285. # If auto, fact driven cube loading might be applied.
  286. enablePreLoadCubeWithSingleSubQuery=auto
  287. #
  288. # If the Order Of Magnitude of a Level used in set function is larger than this setting,
  289. # DMR will push down the evaluation of set function like
  290. # TopBottomCount, Head, and Filter expression to the relational database
  291. # through CustomSet function.
  292. #
  293. PushdownThroughCustomSetForLevelOOMLargerThan=3.3
  294. # This property controls if relative function needs to be expanded when cube is not reused.
  295. expandRelativeFunctionCubeNotReuse=false
  296. # If true, level property is loaded when member is loaded even if the BusinessKey and Property are from different tables.
  297. # If false, level property is not loaded when member is loaded if the BusinessKey and Property are from different tables.
  298. loadLevelPropertyWithMember=false
  299. # if fact driven cube loading is not possible and large level is used, throw error.
  300. # This setting is used when enablePreLoadCubeWithSingleSubQuery=auto
  301. ThrowNoFactDrivenLoadingForLevelOOMLargerThan=4.7
  302. # if true, the sub-query for customset might use SQL TopN feature.
  303. # if false, the sub-query for customset uses rank in detail filter.
  304. CustomSetUseTopN=true
  305. # 0: don' resort. members are returned from higher to lower levels in hierarchy order.
  306. # 1: members are returned from higher to lower levels. In each level, resorted by caption (asc).
  307. # 2: members are resorted by caption (asc).
  308. ReSortMembersFromHierarchySearch=0
  309. #
  310. # This property controls if marking a dmr level as unique has impact on the SQL generation for
  311. # fetching cell value queries. When enabled the generated predicates only include terms up to and
  312. # including the level that is unique.
  313. #
  314. enableUniqueLevelSupport=true
  315. #
  316. # This property controls whether pre load cube optimization will be applied to a query or not
  317. # when the query already contains PushdownThroughCustomSet optimization.
  318. #
  319. enablePreLoadCubeDuringPushdown=true
  320. # If this is set to a positive number N and
  321. # code thinks the simple list V5 is from CWA dialog box and
  322. # the order of magnitude of involved level is larger than (or equals to) ThrowNoFactDrivenLoadingForLevelOOMLargerThan
  323. # add TopN to load and return the N members.
  324. CWADialogBoxTopN=0
  325. # maximum number of members being added into detail filter of DMR sub-query.
  326. maxMembersInSubQueryDetailFilter=2000
  327. # keep dimension shortcut in model calculation
  328. keepDimensionShortcutInModelCalculation=true
  329. # for DMR measure with aggregateType=Calculated, DMR sub-query generates aggregate(xxx for a, b, ..)
  330. # If this setting is true, the aggregate function will have a property: calculated=true.
  331. # RQP will try to decompose the first parameter of aggregate function.
  332. decomposeDMRCalculatedMeasure=false
  333. # disable bridge.
  334. disableBridge=false
  335. # If it is true, and, fact driven cube loading is enabled (enablePreLoadCubeWithSingleSubQuery=auto),
  336. # the aggregate rule will be applied in query context.
  337. contextDependentIgnoreNullsAggregateRule=false