powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX from CellSet
26 сообщений из 26, показаны все 2 страниц
MDX from CellSet
    #33691616
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли где готовая .NET библиотека или пример C#/VB.NET кода по генерации текста MDX запроса по CellSet-у?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эта Feature, по моему мнению сильно не доработана, т.к. не понятно, где корневой "All Members", а где какое-то из значений, в случае если Level 0 несколько Member-ов.
...
Рейтинг: 0 / 0
MDX from CellSet
    #33691878
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это 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
MDX from CellSet
    #33691893
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 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
MDX from CellSet
    #33692212
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
...
Рейтинг: 0 / 0
MDX from CellSet
    #33692289
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireЮрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
Не затруднит какой-нибудь пример MDX для AS2000 и базы данных "waremart 2000" - хочется взглянуть, какой он CellSet возвращает.
...
Рейтинг: 0 / 0
MDX from CellSet
    #33692359
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
MDX from CellSet
    #33692474
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfire Yuri Abele backfireЮрий, как только в MDX присутствуют какие то СM или Sets, созданные в этом же MDX или вызовы каких либо MDX функций, то "ende im gelende".
Не затруднит какой-нибудь пример MDX для AS2000 и базы данных "waremart 2000" - хочется взглянуть, какой он CellSet возвращает.

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

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

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

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

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


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


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


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