Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Распределение, мать его.. / 11 сообщений из 11, страница 1 из 1
29.01.2020, 21:40
    #39920216
ecnby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
Ребят, всем привет и хорошей жизни! Сразу хочу отметить, что, перед тем как спрашивать, честно потратил около 2 недель на чтение литературы и поиск оптимального решения. Сам ~8 лет плотно занимался разработкой на SAP платформе(включая HANA). На SQL сервер перешёл по воле случая, о чем ни с колечки не жалею. Всё, что касалось уровня БД пролетело легко и непринуждённо - все решения были встроены оптимально и получили признание от заказчика. Далее пошла возня с олап серваком. Через пару дней работы пришло осознание, что без знания MDX там делать нечего(кто в курсе, sap ограждает пользователей и разработчиков от необходимости знания MDX). Утомил. Приношу извещения и ближе к делу.
Вопрос распределения большого массива данных с расходами(партиция ~1,5 млн) по долям(пол ляма записей с долями + конечным и аналитиками). Как дешевле всего перемножить листья с расходами и подать в агрегированом виде(верхние узлы элементов на которые распределил?) и вообще стоит ли мне дальше потеть над решением такой задачи на уровне олап? Сейчас пытаюсь тюнить сл. Схему: таблица с расходами + внешний ключ -> димэншн с аналогичным ключем и суммой расходов, агрегированный до уровня распределения -> димэншн с внутренним ключем, внешним ключем(общий) и долями.
Прошу подтолкнуть к самому Оптимально у и быстрому решению.
Всех благ.
...
Рейтинг: 0 / 0
29.01.2020, 23:41
    #39920237
Jurii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
2 ecnby:

Ваша задача похожа на трансформацию факта из бух. учета в управленческий учет. Я обычно делаю распределение/трансформацию на уровне реляционного ХД, чтобы все было прозрачно с поддержкой версионности. В некоторых случаях делаю распределения на уровне кубов системы бюджетирования (такой как IBM Cognos TM1).
...
Рейтинг: 0 / 0
30.01.2020, 00:13
    #39920244
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
Телепатов ищите?
Написано непонятно, и большая часть не по делу.
Если бы пример был, то был бы шанс получить ответ.
...
Рейтинг: 0 / 0
30.01.2020, 08:54
    #39920293
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
ecnby,

Я буквально на прошлой неделе занимался аналогичной задачей. Есть дерево, есть веса, надо по этой весовой процентовке раскидать другие показатели.

Все это простейшим образом решается на уровне sql запроса, если вы умеете писать рекурсивный CTE.

Если вы хотите это делать на уровне MDX, то смотрите в сторону функции generate и descandants, чтобы сделать рекурсию.

У вас нет никакого примера, поэтому в каком виде вам что-то подсказывать непонятно.
...
Рейтинг: 0 / 0
30.01.2020, 11:29
    #39920389
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
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.
<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
    <ObjectDefinition>
        <Database xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
            <ID>ValuesByWeights</ID>
            <Name>ValuesByWeights</Name>
            <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>
            <Language>1049</Language>
            <Collation>Cyrillic_General_CI_AS</Collation>
            <DataSourceImpersonationInfo>
                <ImpersonationMode>Default</ImpersonationMode>
            </DataSourceImpersonationInfo>
            <Dimensions>
                <Dimension>
                    <ID>dimKey1</ID>
                    <Name>dimKey1</Name>
                    <Source xsi:type="DataSourceViewBinding">
                        <DataSourceViewID>dsv</DataSourceViewID>
                    </Source>
                    <ErrorConfiguration>
                        <KeyNotFound>ReportAndStop</KeyNotFound>
                        <KeyDuplicate>ReportAndStop</KeyDuplicate>
                        <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
                    </ErrorConfiguration>
                    <Language>1049</Language>
                    <Collation>Cyrillic_General_CI_AS</Collation>
                    <UnknownMemberName>Unknown</UnknownMemberName>
                    <Attributes>
                        <Attribute>
                            <ID>Key1</ID>
                            <Name>Key1</Name>
                            <Usage>Key</Usage>
                            <KeyColumns>
                                <KeyColumn>
                                    <DataType>Integer</DataType>
                                    <Source xsi:type="ColumnBinding">
                                        <TableID>nqValues</TableID>
                                        <ColumnID>key1</ColumnID>
                                    </Source>
                                </KeyColumn>
                            </KeyColumns>
                            <NameColumn>
                                <DataType>WChar</DataType>
                                <Source xsi:type="ColumnBinding">
                                    <TableID>nqValues</TableID>
                                    <ColumnID>key1</ColumnID>
                                </Source>
                            </NameColumn>
                            <OrderBy>Key</OrderBy>
                        </Attribute>
                    </Attributes>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </Dimension>
                <Dimension>
                    <ID>dimKey2</ID>
                    <Name>dimKey2</Name>
                    <Source xsi:type="DataSourceViewBinding">
                        <DataSourceViewID>dsv</DataSourceViewID>
                    </Source>
                    <ErrorConfiguration>
                        <KeyNotFound>ReportAndStop</KeyNotFound>
                        <KeyDuplicate>ReportAndStop</KeyDuplicate>
                        <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
                    </ErrorConfiguration>
                    <Language>1049</Language>
                    <Collation>Cyrillic_General_CI_AS</Collation>
                    <UnknownMemberName>Unknown</UnknownMemberName>
                    <Attributes>
                        <Attribute>
                            <ID>Key2</ID>
                            <Name>Key2</Name>
                            <Usage>Key</Usage>
                            <KeyColumns>
                                <KeyColumn>
                                    <DataType>Integer</DataType>
                                    <Source xsi:type="ColumnBinding">
                                        <TableID>nqWeights</TableID>
                                        <ColumnID>key2</ColumnID>
                                    </Source>
                                </KeyColumn>
                            </KeyColumns>
                            <NameColumn>
                                <DataType>WChar</DataType>
                                <Source xsi:type="ColumnBinding">
                                    <TableID>nqWeights</TableID>
                                    <ColumnID>key2</ColumnID>
                                </Source>
                            </NameColumn>
                            <OrderBy>Key</OrderBy>
                        </Attribute>
                    </Attributes>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </Dimension>
                <Dimension>
                    <ID>Nq Values</ID>
                    <Name>Nq Values</Name>
                    <Source xsi:type="DataSourceViewBinding">
                        <DataSourceViewID>dsv</DataSourceViewID>
                    </Source>
                    <ErrorConfiguration>
                        <KeyNotFound>ReportAndStop</KeyNotFound>
                        <KeyDuplicate>ReportAndStop</KeyDuplicate>
                        <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
                    </ErrorConfiguration>
                    <Language>1049</Language>
                    <Collation>Cyrillic_General_CI_AS</Collation>
                    <UnknownMemberName>Unknown</UnknownMemberName>
                    <Attributes>
                        <Attribute>
                            <ID>Key1</ID>
                            <Name>Key1</Name>
                            <Usage>Key</Usage>
                            <KeyColumns>
                                <KeyColumn>
                                    <DataType>Integer</DataType>
                                    <Source xsi:type="ColumnBinding">
                                        <TableID>nqValues</TableID>
                                        <ColumnID>key1</ColumnID>
                                    </Source>
                                </KeyColumn>
                            </KeyColumns>
                            <NameColumn>
                                <DataType>WChar</DataType>
                                <Source xsi:type="ColumnBinding">
                                    <TableID>nqValues</TableID>
                                    <ColumnID>key1</ColumnID>
                                </Source>
                            </NameColumn>
                            <OrderBy>Key</OrderBy>
                        </Attribute>
                    </Attributes>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </Dimension>
                <Dimension>
                    <ID>Nq Weights</ID>
                    <Name>Nq Weights</Name>
                    <Source xsi:type="DataSourceViewBinding">
                        <DataSourceViewID>dsv</DataSourceViewID>
                    </Source>
                    <ErrorConfiguration>
                        <KeyNotFound>ReportAndStop</KeyNotFound>
                        <KeyDuplicate>ReportAndStop</KeyDuplicate>
                        <NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
                    </ErrorConfiguration>
                    <Language>1049</Language>
                    <Collation>Cyrillic_General_CI_AS</Collation>
                    <UnknownMemberName>Unknown</UnknownMemberName>
                    <Attributes>
                        <Attribute>
                            <ID>Key2</ID>
                            <Name>Key2</Name>
                            <Usage>Key</Usage>
                            <KeyColumns>
                                <KeyColumn>
                                    <DataType>Integer</DataType>
                                    <Source xsi:type="ColumnBinding">
                                        <TableID>nqWeights</TableID>
                                        <ColumnID>key2</ColumnID>
                                    </Source>
                                </KeyColumn>
                            </KeyColumns>
                            <NameColumn>
                                <DataType>WChar</DataType>
                                <Source xsi:type="ColumnBinding">
                                    <TableID>nqWeights</TableID>
                                    <ColumnID>key2</ColumnID>
                                </Source>
                            </NameColumn>
                            <OrderBy>Key</OrderBy>
                        </Attribute>
                    </Attributes>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </Dimension>
            </Dimensions>
            <Cubes>
                <Cube>
                    <ID>cube</ID>
                    <Name>cube</Name>
                    <Language>1049</Language>
                    <Collation>Cyrillic_General_CI_AS</Collation>
                    <Dimensions>
                        <Dimension>
                            <ID>dimKey1</ID>
                            <Name>dimKey1</Name>
                            <DimensionID>dimKey1</DimensionID>
                            <Attributes>
                                <Attribute>
                                    <AttributeID>Key1</AttributeID>
                                </Attribute>
                            </Attributes>
                        </Dimension>
                        <Dimension>
                            <ID>dimKey2</ID>
                            <Name>dimKey2</Name>
                            <DimensionID>dimKey2</DimensionID>
                            <Attributes>
                                <Attribute>
                                    <AttributeID>Key2</AttributeID>
                                </Attribute>
                            </Attributes>
                        </Dimension>
                    </Dimensions>
                    <MeasureGroups>
                        <MeasureGroup>
                            <ID>Values</ID>
                            <Name>Values</Name>
                            <Measures>
                                <Measure>
                                    <ID>Value</ID>
                                    <Name>Value</Name>
                                    <DataType>Integer</DataType>
                                    <Source>
                                        <DataType>Integer</DataType>
                                        <Source xsi:type="ColumnBinding">
                                            <TableID>nqValues</TableID>
                                            <ColumnID>value</ColumnID>
                                        </Source>
                                    </Source>
                                </Measure>
                            </Measures>
                            <StorageMode>Molap</StorageMode>
                            <ProcessingMode>Regular</ProcessingMode>
                            <Dimensions>
                                <Dimension xsi:type="RegularMeasureGroupDimension">
                                    <CubeDimensionID>dimKey1</CubeDimensionID>
                                    <Attributes>
                                        <Attribute>
                                            <AttributeID>Key1</AttributeID>
                                            <KeyColumns>
                                                <KeyColumn>
                                                    <DataType>Integer</DataType>
                                                    <Source xsi:type="ColumnBinding">
                                                        <TableID>nqValues</TableID>
                                                        <ColumnID>key1</ColumnID>
                                                    </Source>
                                                </KeyColumn>
                                            </KeyColumns>
                                            <Type>Granularity</Type>
                                        </Attribute>
                                    </Attributes>
                                </Dimension>
                            </Dimensions>
                            <Partitions>
                                <Partition>
                                    <ID>Nq Values</ID>
                                    <Name>Nq Values</Name>
                                    <Source xsi:type="DsvTableBinding">
                                        <DataSourceViewID>dsv</DataSourceViewID>
                                        <TableID>nqValues</TableID>
                                    </Source>
                                    <StorageMode>Molap</StorageMode>
                                    <ProcessingMode>Regular</ProcessingMode>
                                    <ProactiveCaching>
                                        <SilenceInterval>-PT1S</SilenceInterval>
                                        <Latency>-PT1S</Latency>
                                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                                    </ProactiveCaching>
                                </Partition>
                            </Partitions>
                            <ProactiveCaching>
                                <SilenceInterval>-PT1S</SilenceInterval>
                                <Latency>-PT1S</Latency>
                                <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                                <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                                <Source xsi:type="ProactiveCachingInheritedBinding" />
                            </ProactiveCaching>
                        </MeasureGroup>
                        <MeasureGroup>
                            <ID>Weights</ID>
                            <Name>Weights</Name>
                            <Measures>
                                <Measure>
                                    <ID>Weight</ID>
                                    <Name>Weight</Name>
                                    <DataType>Double</DataType>
                                    <Source>
                                        <DataType>Double</DataType>
                                        <Source xsi:type="ColumnBinding">
                                            <TableID>nqWeights</TableID>
                                            <ColumnID>weight</ColumnID>
                                        </Source>
                                    </Source>
                                </Measure>
                                <Measure>
                                    <ID>Weight - Weights</ID>
                                    <Name>Weight - Value</Name>
                                    <DataType>Double</DataType>
                                    <Source>
                                        <DataType>Double</DataType>
                                        <Source xsi:type="ColumnBinding">
                                            <TableID>nqWeights</TableID>
                                            <ColumnID>weight</ColumnID>
                                        </Source>
                                    </Source>
                                    <MeasureExpression>Measures.Weight * Measures.Value</MeasureExpression>
                                </Measure>
                            </Measures>
                            <StorageMode>Molap</StorageMode>
                            <ProcessingMode>Regular</ProcessingMode>
                            <Dimensions>
                                <Dimension xsi:type="RegularMeasureGroupDimension">
                                    <CubeDimensionID>dimKey2</CubeDimensionID>
                                    <Attributes>
                                        <Attribute>
                                            <AttributeID>Key2</AttributeID>
                                            <KeyColumns>
                                                <KeyColumn>
                                                    <DataType>Integer</DataType>
                                                    <Source xsi:type="ColumnBinding">
                                                        <TableID>nqWeights</TableID>
                                                        <ColumnID>key2</ColumnID>
                                                    </Source>
                                                </KeyColumn>
                                            </KeyColumns>
                                            <Type>Granularity</Type>
                                        </Attribute>
                                    </Attributes>
                                </Dimension>
                                <Dimension xsi:type="RegularMeasureGroupDimension">
                                    <CubeDimensionID>dimKey1</CubeDimensionID>
                                    <Attributes>
                                        <Attribute>
                                            <AttributeID>Key1</AttributeID>
                                            <KeyColumns>
                                                <KeyColumn>
                                                    <DataType>Integer</DataType>
                                                    <Source xsi:type="ColumnBinding">
                                                        <TableID>nqWeights</TableID>
                                                        <ColumnID>key1</ColumnID>
                                                    </Source>
                                                </KeyColumn>
                                            </KeyColumns>
                                            <Type>Granularity</Type>
                                        </Attribute>
                                    </Attributes>
                                </Dimension>
                            </Dimensions>
                            <Partitions>
                                <Partition>
                                    <ID>Nq Weights</ID>
                                    <Name>Nq Weights</Name>
                                    <Source xsi:type="DsvTableBinding">
                                        <DataSourceViewID>dsv</DataSourceViewID>
                                        <TableID>nqWeights</TableID>
                                    </Source>
                                    <StorageMode>Molap</StorageMode>
                                    <ProcessingMode>Regular</ProcessingMode>
                                    <ProactiveCaching>
                                        <SilenceInterval>-PT1S</SilenceInterval>
                                        <Latency>-PT1S</Latency>
                                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                                    </ProactiveCaching>
                                </Partition>
                            </Partitions>
                            <ProactiveCaching>
                                <SilenceInterval>-PT1S</SilenceInterval>
                                <Latency>-PT1S</Latency>
                                <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                                <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                                <Source xsi:type="ProactiveCachingInheritedBinding" />
                            </ProactiveCaching>
                        </MeasureGroup>
                    </MeasureGroups>
                    <Source>
                        <DataSourceViewID>dsv</DataSourceViewID>
                    </Source>
                    <ProactiveCaching>
                        <SilenceInterval>-PT1S</SilenceInterval>
                        <Latency>-PT1S</Latency>
                        <SilenceOverrideInterval>-PT1S</SilenceOverrideInterval>
                        <ForceRebuildInterval>-PT1S</ForceRebuildInterval>
                        <Source xsi:type="ProactiveCachingInheritedBinding" />
                    </ProactiveCaching>
                </Cube>
            </Cubes>
            <DataSources>
                <DataSource xsi:type="RelationalDataSource">
                    <ID>ds</ID>
                    <Name>ds</Name>
                    <ConnectionString>Provider=SQLNCLI11.1;Data Source=.;Integrated Security=SSPI;Initial Catalog=tempdb;</ConnectionString>
                    <ImpersonationInfo>
                        <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
                    </ImpersonationInfo>
                    <Timeout>PT0S</Timeout>
                </DataSource>
            </DataSources>
            <DataSourceViews>
                <DataSourceView>
                    <ID>dsv</ID>
                    <Name>dsv</Name>
                    <DataSourceID>ds</DataSourceID>
                    <Schema>
                        <xs:schema id="dsv" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
                            <xs:element name="dsv" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                                <xs:complexType>
                                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                                        <xs:element name="nqValues" msprop:IsLogical="True" msprop:FriendlyName="nqValues" msprop:DbTableName="nqValues" msprop:TableType="View" msprop:Description="" msprop:QueryDefinition="select key1, value &#xD;&#xA;from (values (1, 100), (1, 66), (2, 75), (2, 30), (3, 10)) v (key1, value)" msprop:QueryBuilder="GenericQueryBuilder">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="key1" msdata:ReadOnly="true" msprop:DbColumnName="key1" msprop:FriendlyName="key1" type="xs:int" minOccurs="0" />
                                                    <xs:element name="value" msdata:ReadOnly="true" msprop:DbColumnName="value" msprop:FriendlyName="value" type="xs:int" minOccurs="0" />
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="nqWeights" msprop:IsLogical="True" msprop:FriendlyName="nqWeights" msprop:DbTableName="nqWeights" msprop:TableType="View" msprop:Description="" msprop:QueryDefinition="select key1, key2, weight &#xD;&#xA;from (values &#xD;&#xA;(1, 1, 0.5), &#xD;&#xA;(1, 2, 0.5), &#xD;&#xA;(2, 1, 0.33), &#xD;&#xA;(2, 3, 0.33), &#xD;&#xA;(2, 4, 0.34),&#xD;&#xA;(3, 1, 0.25), &#xD;&#xA;(3, 5, 0.75), &#xD;&#xA;(3, 6, 1)&#xD;&#xA;) v (key1, key2, weight)" msprop:QueryBuilder="GenericQueryBuilder">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="key1" msdata:ReadOnly="true" msprop:DbColumnName="key1" msprop:FriendlyName="key1" type="xs:int" minOccurs="0" />
                                                    <xs:element name="key2" msdata:ReadOnly="true" msprop:DbColumnName="key2" msprop:FriendlyName="key2" type="xs:int" minOccurs="0" />
                                                    <xs:element name="weight" msdata:ReadOnly="true" msprop:DbColumnName="weight" msprop:FriendlyName="weight" type="xs:decimal" minOccurs="0" />
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:choice>
                                </xs:complexType>
                            </xs:element>
                        </xs:schema>
                        <dsv xmlns="" />
                    </Schema>
                </DataSourceView>
            </DataSourceViews>
        </Database>
    </ObjectDefinition>
</Create>

...
Рейтинг: 0 / 0
30.01.2020, 12:54
    #39920463
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
ecnby,

"лучший MDX - не написанный MDX" (С)
делайте на урове базы, и тащите в куб уже готовое
...
Рейтинг: 0 / 0
30.01.2020, 13:52
    #39920488
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
StarikNavy,

авторство чье?
пока, все что генерят всякие drag'n'drop значительно хуже самописного MDX.
...
Рейтинг: 0 / 0
31.01.2020, 10:35
    #39920920
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
StarikNavy
ecnby,

"лучший MDX - не написанный MDX" (С)
делайте на урове базы, и тащите в куб уже готовое


100%
...
Рейтинг: 0 / 0
31.01.2020, 16:03
    #39921054
Borodat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
ShIgor
StarikNavy,

авторство чье?

Это сказал Моша.
...
Рейтинг: 0 / 0
31.01.2020, 17:47
    #39921101
ecnby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
ShIgor,

Спасибо, бро. Всё взлетело! Всё оказалось так просто, как ты описал. А я велосипед пытался изобрести. В свою защиту хочу отметить, что информации и гайдов, использующих measure expression, почти нет. Но, зато, тонны инфы по скриптам и расчетникам. Вот я и повелся:)
Спасибо за то, что есть такие отзывчивые люди.
З. Ы. раз уж на то пошло, почему эта функция так мало популярна и должен ли я задумываться о правильности решений, когда пользуюсь этой фитчей, или её применение 'не по феншую'?
...
Рейтинг: 0 / 0
31.01.2020, 18:53
    #39921130
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распределение, мать его..
ecnby,

не могу сказать почему эта функциональность редко используется..
могу только предположить, что из-за ее сильно ограниченных возможностей, и отсутствия тестов на производительность.

кроме прочего, при наличии единого ключа все можно посчитать и до заливки данных в куб, что Вам собственно и предлагали.
я тоже стараюсь считать до, однако не всегда это приемлемо.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Распределение, мать его.. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]