| 
 | 
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ребят, всем привет и хорошей жизни! Сразу хочу отметить, что, перед тем как спрашивать, честно потратил около 2 недель на чтение литературы и поиск оптимального решения. Сам ~8 лет плотно занимался разработкой на SAP платформе(включая HANA). На SQL сервер перешёл по воле случая, о чем ни с колечки не жалею. Всё, что касалось уровня БД пролетело легко и непринуждённо - все решения были встроены оптимально и получили признание от заказчика. Далее пошла возня с олап серваком. Через пару дней работы пришло осознание, что без знания  MDX там делать нечего(кто в курсе, sap ограждает пользователей и разработчиков от необходимости знания MDX). Утомил. Приношу извещения и ближе к делу. Вопрос распределения большого массива данных с расходами(партиция ~1,5 млн) по долям(пол ляма записей с долями + конечным и аналитиками). Как дешевле всего перемножить листья с расходами и подать в агрегированом виде(верхние узлы элементов на которые распределил?) и вообще стоит ли мне дальше потеть над решением такой задачи на уровне олап? Сейчас пытаюсь тюнить сл. Схему: таблица с расходами + внешний ключ -> димэншн с аналогичным ключем и суммой расходов, агрегированный до уровня распределения -> димэншн с внутренним ключем, внешним ключем(общий) и долями. Прошу подтолкнуть к самому Оптимально у и быстрому решению. Всех благ. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2020, 21:40 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  2 ecnby: Ваша задача похожа на трансформацию факта из бух. учета в управленческий учет. Я обычно делаю распределение/трансформацию на уровне реляционного ХД, чтобы все было прозрачно с поддержкой версионности. В некоторых случаях делаю распределения на уровне кубов системы бюджетирования (такой как IBM Cognos TM1). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.01.2020, 23:41 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Телепатов ищите? Написано непонятно, и большая часть не по делу. Если бы пример был, то был бы шанс получить ответ. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.01.2020, 00:13 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ecnby, Я буквально на прошлой неделе занимался аналогичной задачей. Есть дерево, есть веса, надо по этой весовой процентовке раскидать другие показатели. Все это простейшим образом решается на уровне sql запроса, если вы умеете писать рекурсивный CTE. Если вы хотите это делать на уровне MDX, то смотрите в сторону функции generate и descandants, чтобы сделать рекурсию. У вас нет никакого примера, поэтому в каком виде вам что-то подсказывать непонятно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.01.2020, 08:54 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ecnby, если я правильно понял, то и в "таблица с расходами", и в "таблице с долями" есть "внешний ключ", то какие проблемы?  примерберем 2 таблы: values: key1 value1 1001 662 752 303 10 weights: key1 key2 weight1 1 0.501 2 0.502 1 0.332 3 0.332 4 0.343 1 0.253 5 0.753 6 1.00 key1 = внешний ключ делаем кубик с 2 измерениями key1 и key2 и 2мя группами мер Values, Weigths, связываем, добавляем еще одну меру с MeasureExpression и все. Само все раскидалось: Key2Weight - Value1 120.152 833 34.654 35.75 7.56 10 А уж доп группировки по key2 вроде не проблема.  Скрипт куба  Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.01.2020, 11:29 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ecnby, "лучший MDX - не написанный MDX" (С) делайте на урове базы, и тащите в куб уже готовое ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.01.2020, 12:54 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  StarikNavy, авторство чье? пока, все что генерят всякие drag'n'drop значительно хуже самописного MDX. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.01.2020, 13:52 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  StarikNavy ecnby, "лучший MDX - не написанный MDX" (С) делайте на урове базы, и тащите в куб уже готовое 100% ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.01.2020, 10:35 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ShIgor StarikNavy, авторство чье? Это сказал Моша. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.01.2020, 16:03 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ShIgor, Спасибо, бро. Всё взлетело! Всё оказалось так просто, как ты описал. А я велосипед пытался изобрести. В свою защиту хочу отметить, что информации и гайдов, использующих measure expression, почти нет. Но, зато, тонны инфы по скриптам и расчетникам. Вот я и повелся:) Спасибо за то, что есть такие отзывчивые люди. З. Ы. раз уж на то пошло, почему эта функция так мало популярна и должен ли я задумываться о правильности решений, когда пользуюсь этой фитчей, или её применение 'не по феншую'? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.01.2020, 17:47 | 
  
  
  
   | 
||
| 
 
Распределение, мать его.. 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ecnby, не могу сказать почему эта функциональность редко используется.. могу только предположить, что из-за ее сильно ограниченных возможностей, и отсутствия тестов на производительность. кроме прочего, при наличии единого ключа все можно посчитать и до заливки данных в куб, что Вам собственно и предлагали. я тоже стараюсь считать до, однако не всегда это приемлемо. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.01.2020, 18:53 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=49&msg=39920920&tid=1857386]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    51ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    42ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 235ms | 
| total: | 368ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.