Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX from CellSet / 25 сообщений из 26, страница 1 из 2
26.04.2006, 13:39
    #33691616
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Есть ли где готовая .NET библиотека или пример C#/VB.NET кода по генерации текста MDX запроса по CellSet-у?

Т.е. есть откуда-то полученный CellSet, и необходимо сгенерить по нему текст MDX запроса.
...
Рейтинг: 0 / 0
26.04.2006, 14:05
    #33691745
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri AbeleЕсть ли где готовая .NET библиотека или пример C#/VB.NET кода по генерации текста MDX запроса по CellSet-у?

Т.е. есть откуда-то полученный CellSet, и необходимо сгенерить по нему текст MDX запроса.

Юрий, ну вы посудите логически, чосто теоретически, для того чтобы получить преобращование из одного большого сell set (куб) в другой поменьше (то что вы на руках имеете) надо для начала иметь этот большой сell set в полном объеме

Во-вторых, даже имея вход и выход - множество преобразований может быть бесконечным, и для нахождения хотя бы одного из функционала (MDX) надо ... сумасшедшие эвристики. А к тому же найти оптимальную лань, а не первую попавшуюся черепаху, которая доползет из пункта А в пункт В к вашей пенсии...

IMHO это даже теоретически довольно проблематично (но не неосуществимо). А позвольте спросить, какие geshäftsnutzen вы этого получите.

(jemand wollte mich anrufen)
...
Рейтинг: 0 / 0
26.04.2006, 14:15
    #33691800
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Похоже мы о разных вещах говорим.

Был MDX (мне не известный), через .ExecuteCellSet() был получен CellSet.
Теперь, имея на руках только этот CellSet, я хочу произвести обратный процесс - получить исходный MDX.
Теоретически, все необходимое в этом CellSet имеется. Или я нет?
...
Рейтинг: 0 / 0
26.04.2006, 14:16
    #33691806
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri AbeleИли я нет?
Поправка: Или нет?
...
Рейтинг: 0 / 0
26.04.2006, 14:19
    #33691818
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Если я не ошибаюсь, то все, что мне надо - это получить имя куба и пробежаться по осям. CellSet.Cells при этом не нужен.
...
Рейтинг: 0 / 0
26.04.2006, 14:20
    #33691820
zmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri Abele Yuri AbeleИли я нет?
Поправка: Или нет?

насколько я понимаю - нет.

представте ситуацию SQL

Был SQL (мне не известный), через .Execute() был получен RecordSet.

по нему нельзя узнать SQL. или можно?
...
Рейтинг: 0 / 0
26.04.2006, 14:22
    #33691836
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
zmike Yuri Abele Yuri AbeleИли я нет?
Поправка: Или нет?

насколько я понимаю - нет.

представте ситуацию SQL

Был SQL (мне не известный), через .Execute() был получен RecordSet.

по нему нельзя узнать SQL. или можно?
Вы видели XML представление CellSet?
Там кроме непосредственно результат также схема данных описана и оси описаны.
...
Рейтинг: 0 / 0
26.04.2006, 14:22
    #33691837
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri AbeleПохоже мы о разных вещах говорим.

Был MDX (мне не известный), через .ExecuteCellSet() был получен CellSet.
Теперь, имея на руках только этот CellSet, я хочу произвести обратный процесс - получить исходный MDX.
Теоретически, все необходимое в этом CellSet имеется. Или я нет?

В CellSet кроме данных ничего нет.

Ну стоит у вас в клеточке цифирь, а как вы догадаетесь, что MDX писатель имел ввиду?
Или стоит на оси десяток (или тысяча) членов, а по какому принципу они выбраны из дима? Или вы все их выберете по имени. и запихнете в выражение для оси. А если среди них CМ, формула для которого в том же MDX была и для вас неизвестна.
...
Рейтинг: 0 / 0
26.04.2006, 14:23
    #33691840
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
backfireВ CellSet кроме данных ничего нет.
Это не так.
...
Рейтинг: 0 / 0
26.04.2006, 14:26
    #33691848
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri Abele backfireВ CellSet кроме данных ничего нет.
Это не так.

а что там еще?
...
Рейтинг: 0 / 0
26.04.2006, 14:26
    #33691852
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri Abele backfireВ CellSet кроме данных ничего нет.
Это не так.
Там даже в FilterAxis даже те измерения присутствуют, которых в исходном MDX вообще небыло.

Эта Feature, по моему мнению сильно не доработана, т.к. не понятно, где корневой "All Members", а где какое-то из значений, в случае если Level 0 несколько Member-ов.
...
Рейтинг: 0 / 0
26.04.2006, 14:32
    #33691878
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
это XML представление CellSet-а. И только в самом конце идут данные.
Код: plaintext
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.
<root ...>
	<xsd:schema ...>
	...
	</xsd:schema>
	<OlapInfo>
		<CubeInfo>
			<Cube>
				<CubeName>Warehouse and Sales</CubeName>
			</Cube>
		</CubeInfo>
		<AxesInfo>
			<AxisInfo name="Axis0">
			...
			</AxisInfo>
			<AxisInfo name="Axis1">
			...
			</AxisInfo>
			<AxisInfo name="SlicerAxis">
			...
			</AxisInfo>
		</AxesInfo>
		<CellInfo>
		...
		</CellInfo>
	</OlapInfo>
	<Axes>
		<Axis name="Axis0">
			<Tuples>
			...
			</Tuples>
		</Axis>
		<Axis name="Axis1">
			<Tuples>
			...
			</Tuples>
		</Axis>
		<Axis name="SlicerAxis">
			<Tuples>
			...
			</Tuples>
		</Axis>
	</Axes>
	<CellData>
	...
	</CellData>
</root>
...
Рейтинг: 0 / 0
26.04.2006, 14:36
    #33691893
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Для CellSet-ов получаемых из подобного рода MDX я генерялку уже написал, но это примитив, вот я и спрашиваю о чем-то более токовом

SELECT
NON EMPTY {
[Store].[All Stores].[USA].[CA],
[Store].[All Stores].[USA].[OR].[Portland],
[Store].[All Stores].[USA].[OR].[Salem],
[Store].[All Stores].[USA].[WA]
} ON COLUMNS,
{
[Measures].[Store Sales],
[Measures].[Warehouse Profit]
} ON ROWS
FROM [Warehouse and Sales]
WHERE
[xxx].[yyy].[zzz]
...
Рейтинг: 0 / 0
26.04.2006, 15:55
    #33692212
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Юрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
...
Рейтинг: 0 / 0
26.04.2006, 16:15
    #33692289
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
backfireЮрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
Не затруднит какой-нибудь пример MDX для AS2000 и базы данных "waremart 2000" - хочется взглянуть, какой он CellSet возвращает.
...
Рейтинг: 0 / 0
26.04.2006, 16:32
    #33692359
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri Abele backfireЮрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
Не затруднит какой-нибудь пример MDX для AS2000 и базы данных "waremart 2000" - хочется взглянуть, какой он CellSet возвращает.

Вы наверное имели ввиду "FoodMart 2000".

Ну например вот это

Код: plaintext
1.
2.
3.
4.
5.
6.
with 
member [Measures].[Total Store Sales] as 'Sum(YTD(),[Measures].[Store Sales])'
select
	{[Measures].[Total Store Sales]} on columns,
	{TopCount([Product].[Product Department].members, 5 , [Measures].[Total Store Sales])} on rows
from Sales
where ([Time].[ 1997 ].[Q2].[ 4 ])

или


Код: plaintext
1.
2.
3.
4.
5.
6.
with
   member [Product].[All Products].[Drink].[Percent of Alcoholic Drinks] as '[Product].[All Products].[Drink].[Alcoholic Beverages]/[Product].[All Products].[Drink]', format = '#.00%'
select
   { [Product].[All Products].[Drink].[Percent of Alcoholic Drinks] } on columns,
   order([Customers].[All Customers].[USA].[WA].Children, [Product].[All Products].[Drink].[Percent of Alcoholic Drinks],BDESC ) on rows
from Sales
where ( [Measures].[Unit Sales] )

ну и на сладкое

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with 

set [Set0] as ' {[Product].[All Products].[Food], 
    descendants([Product].[All Products].[Food], 
                      [Product].[Product Name])}'
set [MeasureSet] as '{[Measures].[Sales Count], [Measures].[Store Sales]}'
set [Set1] as 'Extract(NonEmptyCrossJoin([Set0], [MeasureSet], {[Time].[1997]}, [Customers]), [Product])'

SET [Customers] AS 
 '{[Customers].[All Customers].[USA].[WA].[Redmond].[Mosha Pasumansky], 
 [Customers].[All Customers].[USA].[WA].[Redmond].[Alexander Berger]}'
MEMBER [Customers].Slicer AS 'SUM([Customers],Measures.CURRENTMEMBER)'

select 
crossjoin([Time].[ 1997 ].children, [MeasureSet]) on columns,
[Set1] on rows
from [Warehouse and Sales]
where ([Customers].Slicer)

Если вы из результатов этого запроса выудите, что это то что купили Моша и Саша, а не кто то иной, то я сниму перед вами шляпу.
...
Рейтинг: 0 / 0
26.04.2006, 17:09
    #33692474
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
backfire Yuri Abele backfireЮрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
Не затруднит какой-нибудь пример MDX для AS2000 и базы данных "waremart 2000" - хочется взглянуть, какой он CellSet возвращает.

Вы наверное имели ввиду "FoodMart 2000".
да не, имел в виду то, что написал. А инсталляцию "FoodMart 2000" где можно взять?
...
Рейтинг: 0 / 0
26.04.2006, 17:15
    #33692490
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Yuri AbeleА инсталляцию "FoodMart 2000" где можно взять?
Взял бэкапом с другой машины
...
Рейтинг: 0 / 0
26.04.2006, 17:20
    #33692503
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
А Waremart с диска взял, что со Споффорд "MDX Solutions" шел?
...
Рейтинг: 0 / 0
26.04.2006, 17:22
    #33692507
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
backfireА Waremart с диска взял, что со Споффорд "MDX Solutions" шел?
Дафно ето било слюшай - нэ помню! :-)
...
Рейтинг: 0 / 0
26.04.2006, 17:55
    #33692612
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
backfireЕсли вы из результатов этого запроса выудите, что это то что купили Моша и Саша, а не кто то иной, то я сниму перед вами шляпу.
Мда, фиг там. Он только результирующие оси (включая Measures) описывает.
Если они совпадают с реальными в кубе, то все сработает, если же нет, то опаньки.
Т.е. в первых двух запросах можно было бы еще создать в кубе соответсвующие Calculated Members, то третий случай безнадежен полностю.

Жаль кончено, хотя для моего проекта это не так страшно, т.к. тексты MDX генерятся автоматически по "живым" измерениям, Measures и Calculated Members.
...
Рейтинг: 0 / 0
27.04.2006, 09:20
    #33693331
Беляев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Восстановить MDX из CellSet - ВОЗМОЖНО мы используем данный способ для обработки т.н. DirectMDX, т.е. MDX, который вводит пользователь в нашем клиенте. Конечно невозможно восстановить один в один. Т.е. набор членов измерения в оригинальном MDX может быть получен сочетанием разных функций, мы же его заменим простым перечислением элементов в востановленном MDX. Альтернативой данному подходу может быть только полноценный парсер (у нас есть тоже наработки) - но это дороговато.
Правда и в данном варианте приходится слегка парсить для устранения описанных выше проблем: чтобы обрабатывать With Member, перехватывать NON EMPTY и.т.д.

Юрий расскажите для чего Вы хотите использовать генерацию MDX из CellSet, тогда будет проще что-то посоветовать

Владислав Беляев
...
Рейтинг: 0 / 0
27.04.2006, 10:45
    #33693583
прохожий22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
мда... а топики-то становятся все бредовее и бредовее...стыдно вам должно быть, господа технические специалисты
...
Рейтинг: 0 / 0
27.04.2006, 11:11
    #33693689
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
прохожий22мда... а топики-то становятся все бредовее и бредовее...стыдно вам должно быть, господа технические специалисты
Соблюдайте свой ник пожалуйста
...
Рейтинг: 0 / 0
27.04.2006, 11:19
    #33693716
Yuri Abele
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDX from CellSet
Спасибо Владимир за ответ!

БеляевВосстановить MDX из CellSet - ВОЗМОЖНО
Возможно только если все member-ы в исходном MDX соответсвовали "живым" в OLAP базе. Если же что-то вычисляемое на уровне запроса, то нет:
- практически все, что входит в блок WITH
- ORDER ...
- FILTER ...


БеляевАльтернативой данному подходу может быть только полноценный парсер (у нас есть тоже наработки)
Поделитесь? :-)


БеляевЮрий расскажите для чего Вы хотите использовать генерацию MDX из CellSet, тогда будет проще что-то посоветовать
Мне, собственно, необходим некий класс, описывающий модель запроса. Сметодами и свойствами, позволяющими это описание менять (добавлять/удалять/изменять фильтры, сортировки и т.п.). И чтобы был метод или свойство генерящее MDX.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX from CellSet / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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