Showing posts with label cube. Show all posts
Showing posts with label cube. Show all posts

Friday, March 30, 2012

locked cube

In analysis server 2000 we have a cube that is locked and can not be edited. Does anyone know of a way to unlock a cube?

Also I have restarted the Olap Service on the server.

Hi Chris,

what kind of message do you have exactly from AS ?

Are you trying to edit the cube using Analysis Manager ?

Francesco

|||

Is your repository in the default access database?

If so, try stopping the service and see if there is an msmdrep.ldb file in the \Program Files\Microsoft Analysis Services\bin folder (This is the access "locks" file). If there is, delete (or rename) this file and then restart the Olap service and see if this fixes your issue. It sounds like something happened while someone was editing this particular cube.

sql

Monday, March 12, 2012

Localizing cube elements

We're an ISV that builds a product which includes a predefined set of SSAS2005 cubes, dimensions, and measures. We want to support the localization of the various cube elements. The ideal way would be to use translations - however, we need to support Standard Edition, and my understanding is that translations are only supported under Enterprise Edition. :( So the question is, what's the best way to accomplish this and still support SE?

Right now we're looking at using AMO to programmatically translate the various OLAP elements (we also looked at directly modifying the XML/A deployment script, but aren't pursuing that option for process reasons). There are some concerns about this approach, however. There doesn't seem to be a language-independent way to identify specific OLAP objects from an OLAP client (there is an ID property on some objects, but as far as I can tell it isn't usable from ADOMD.NET, and it isn't present on all objects anyway). In other words, in our admin tools if we want to query a specific cube, there's no language independent way to reference it.

Also, if we change the names of, for example, a measure, we also need to change the expression for any calculations that reference that measure.

Is there some more elegant solution that we're missing here?

Thanks,
Kevin

Kevin.

You can argue back and fourth but looks like the answer for your case is to use translations :).
And that is the feature desinged specifically for the case you describe.

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

|||Oh, I agree - which is why I was extremely disappointed when translations was announced as an enterprise edition feature only. That decision really complicated the lives of ISVs. A nice compromise might have been to support a single translation on SE, so that ISVs could localize to one foreign language without having to rename all of their cube elements.

Anyway, it sounds like you're saying that isn't much of a good alternative here that supports SE.

Friday, February 24, 2012

Local Cubes in SS2005, specifically for the dev team

Hi,

A question on local cubes...

If I'm right in saying that if you use the CREATE CUBE statement to create a local cube using the MSOLAP.3 provider, that under the hood you will in fact still be using the MSOLAP.2 provider and hence creating AS2K local cubes, how will this tally with mainstream support for AS2K ending in 2008? Will these form of local cube cease to be supported at that time?

regards

Colin

No, your assumption is wrong - CREATE CUBE is sent to msolap90.dll and creates a AS2005 cube. It can't be opened with MSOLAP.2 provider.|||

Well I'm basing my assumption on the information in MDX Solutions, chapter 17, which in turn was based on information obtained directly from the development team

As I understand it, when the connection is made to the empty .cub file and the MSOLAP.3 provider sees the syntax CREATE CUBE and INSERT INTO, it automatically delegates the query to the MSOLAP80.dll which in turn creates an AS2K cube rather than an AS2005 one.

You only create an AS2005 cube if you use the CREATE GLOBAL CUBE syntax or ASSL.

regards

Colin

Local Cubes Creation...

Hi,

1. Has anyone been able to generate local cubes in SSAS2K5 using XMLA? I run profiler while running a CREATE GLOBAL CUBE but wasn't able to view the relevant XMLA code that creates the local cube.

2. After running a CREATE GLOBAL CUBE on one of our cubes and, while trying to access it using Excel 2003, I am not able to choose a cube (the cube list is empty!!!!).

Thanks,

Joao Bilhim

With regard to (2) - if the Create global cube statement succeeded -it would have created a .cub file in the directory that you specified. You should be able to select it directly in Excel and access it.

Local Cubes Creation...

Hi,

1. Has anyone been able to generate local cubes in SSAS2K5 using XMLA? I run profiler while running a CREATE GLOBAL CUBE but wasn't able to view the relevant XMLA code that creates the local cube.

2. After running a CREATE GLOBAL CUBE on one of our cubes and, while trying to access it using Excel 2003, I am not able to choose a cube (the cube list is empty!!!!).

Thanks,

Joao Bilhim

With regard to (2) - if the Create global cube statement succeeded -it would have created a .cub file in the directory that you specified. You should be able to select it directly in Excel and access it.

Local cube with calculated menber?

Hello,


I created a cube with BI

Studio which included a calculated member ‘[Measures].[Base

per Unit]’. It’s work in BI Studio. When I tried to create a local cube using ‘Create

Global cube’, this calculated member could not include. Is it possible bring calculated member to the local

cube?And how?

Thanks

in advance.

You can't explicitly add calculated members to local cubes when you're using CREATE GLOBAL CUBE. If you include all the real measures in the local cube that are used in the calculated measure's definition, then that calculated measure will automatically appear in the local cube too.

HTH,

Chris

|||Hi Chris,

Thanks for the reply. Yes, the calculated measures

automatically appear in the local cube but not for

calculated Time dimension member. I have YTD in time dimension; it works in BI

Studio but does not work in local cube. I can see YTD attribute in

local cube, but can not see YTD value. Anything is missing?

Thanks.|||

Hmm, well I've done some testing and I seem to be able to create local cubes with CREATE GLOBAL CUBE that have calculated members on the Time dimension, so there must be something else going on here. Can you post the CREATE GLOBAL CUBE statement you're using along with some details of your server cube?

Chris

Local cube issue-help

Hello everyone,

When I create local cube using 'Create global cube', if the cube is small, it works fine, but if the cube not small(4 mil fact, 10 measures and 20 dimensions ), I could not get result.
the error msg:
"Errors in the OLAP storage engine: An error occurred while processing the 'Monthly Revenue' partition of the 'Fact Monthly Revenue' measure group for the 'monthly_revenue' cube from the monthly_revenue database.

XML for Analysis parser: The XML for Analysis request timed out before it was completed."

I am struggling to solve this issue a while, but no clue what's wrong here.

Any one could kindly give me a suggestion?

Thanks in advance.

Local cube creation in AS2005 works much better with ASSL then with CREATE GLOBAL CUBE. At the present time we are not supporting CREATE GLOBAL CUBE for AS2005 in our local cube generating product, CubeSlice, because we could not adequately handle the errors we saw and could not give the local cube creation options we wanted to provide. Creating local cubes in AS2005 with ASSL works very well and gives a very high level of control over the local cube that is created.

Local cube create

Can somebody help me pleas?
I'd like to create local cub from extern program (Delphi, C++ Builder).
Is this possible without MS QSL AS?
Or know somebody structure of *.cub formatOriginally posted by vozka
Can somebody help me pleas?
I'd like to create local cub from extern program (Delphi, C++ Builder).
Is this possible without MS QSL AS?
Or know somebody structure of *.cub format

The only other way I have found is to use Excel to create an offline cube file (.cub)

Local Cube

I am trying to create a Local Cube.I get this error: "Column expression associated with level '_TemplateLevel' is not found"
Has anybody else encountered this?

My create statement is:
PROVIDER=MSOLAP;
DATA SOURCE=C:\ControllingExe\CT_BusinessLogic\OLAP\TES TY\t5.cub;
SOURCE_DSN="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;
Initial Catalog=ControllingDTS_v13_GK_PC;Data Source=CTWDR;Connect Timeout=15";

CREATECUBE="CREATE CUBE [test] (
Dimension [MAGAZYN]
DIMENSION_STRUCTURE PARENT_CHILD MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN,
LEVEL [Cao MAGAZYN] TYPE ALL,
LEVEL [MAGAZYN] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_SELF ,
MEASURE [Miara] Function SUM Format 'Standard' )";
INSERTINTO=INSERT INTO [test]
( [MAGAZYN].[MAGAZYN].NAME,
[MAGAZYN].[MAGAZYN].KEY,
[MAGAZYN].[MAGAZYN].parent,
[Measures].[Miara])
SELECT [MAGAZYN].[MAGAZYN],[MAGAZYN].[MAGAZYNID],[MAGAZYN].[MAGAZYN_ParentID1],[test].[Miara]
FROM [test],[MAGAZYN] WHERE [test].[MAGAZYNID] = [MAGAZYN].[MAGAZYNID];Hi,
I have this problem, it seems that it gets solved when you remove
"LEVEL [MAGAZYN] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_SELF ,"
However I can't seem to view the dimension in my control.
What are you using to display the cube in?
Maher

CREATECUBE="CREATE CUBE [test] (
Dimension [MAGAZYN]
DIMENSION_STRUCTURE PARENT_CHILD MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN,
LEVEL [Cao MAGAZYN] TYPE ALL,
LEVEL [MAGAZYN] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_SELF ,
MEASURE [Miara] Function SUM Format 'Standard' )";
INSERTINTO=INSERT INTO [test]
( [MAGAZYN].[MAGAZYN].NAME,
[MAGAZYN].[MAGAZYN].KEY,
[MAGAZYN].[MAGAZYN].parent,
[Measures].[Miara])
SELECT [MAGAZYN].[MAGAZYN],[MAGAZYN].[MAGAZYNID],[MAGAZYN].[MAGAZYN_ParentID1],[test].[Miara]
FROM [test],[MAGAZYN] WHERE [test].[MAGAZYNID] = [MAGAZYN].[MAGAZYNID]; [/SIZE][/QUOTE]|||Hi,
Forget what I have written,
The cube gets build but it does not store any parent-child relationship.

If you have figured out the solution, can you please post it.
Thank you|||Originally posted by mmehchi
Hi,
Forget what I have written,
The cube gets build but it does not store any parent-child relationship.

If you have figured out the solution, can you please post it.
Thank you

Hi ,
I have solved my problem. The correct cube creation statement is:
PROVIDER=MSOLAP;DATA SOURCE=C:\ControllingExe\CT_ActiveX\OLAP\testy\t7. cub;
SOURCE_DSN="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ControllingDTS_v13_GK_PC;Data Source=CTWDR;Connect Timeout=15";
CREATECUBE=
"CREATE CUBE [test] (
DIMENSION [MAGAZYN] DIMENSION_STRUCTURE PARENT_CHILD MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN,
LEVEL [Cao MAGAZYN] TYPE ALL,
LEVEL [MAGAZYN] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_SELF ,
MEASURE [Miara] Function SUM Format 'Standard' )";
INSERTINTO=INSERT INTO [test]
( [MAGAZYN].NAME,
'->NOT [MAGAZYN].[MAGAZYN].NAME
[MAGAZYN].KEY,
'->NOT [MAGAZYN].[MAGAZYN].KEY
[MAGAZYN].PARENT,
'->NOT [MAGAZYN].[MAGAZYN].PARENT
[Measures].[Miara])
SELECT
[MAGAZYN].[MAGAZYN],
[MAGAZYN].[MAGAZYNID],
[MAGAZYN].[MAGAZYN_ParentID1],[test].[Miara] FROM [test],[MAGAZYN] WHERE [test].[MAGAZYNID] = [MAGAZYN].[MAGAZYNID];

I view my local cube in TETA_CONTROLLING aplication.

Kind Regards
Dorota Papiernik|||Hi,
Thank you for you reply. It basically saved me.
However how did you get the following syntax:
MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN
I could not find any documentation about it.
Thank you
Maher Mehchi|||Originally posted by mmehchi
Hi,
Thank you for you reply. It basically saved me.
However how did you get the following syntax:
MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN
I could not find any documentation about it.
Thank you
Maher Mehchi

I get this syntax from dBforums archives
Dorota Papiernik|||can you please help me with this. I think I know the place where its getting messed up. please look for markers /* ... */

[Fact_OK_WV_KS] is the cube and [Standard_OK_WV_KS] is a shared parent-child dimension. The following are the fields from the database table used for creating this dimension.

value for Key : StandardID
value for Name : Goal
value for Parent : ParentStdID

Any help is greatly appreciated. Thanx

Dim strMDX As String
Dim strCube As String
Dim sConnection As String
Dim sLocation As String
Dim sSourceDSN As String
Dim sCreateCube As String
Dim sInsertInto As String

sCreateCube = ""

sLocation = "LOCATION= C:\testLocal.cub"

sSourceDSN = "SOURCE_DSN = ""Provider=MSOLAP;data source=LocalHost;INITIAL CATALOG=test1"""

strCube = "CREATECUBE=CREATE CUBE testLocal ( "

strCube = strCube & " DIMENSION [Standard_OK_WV_KS] DIMENSION_STRUCTURE PARENT_CHILD MEMBERS_WITH_DATA_IF NON_LEAF_MEMBERS_HIDDEN, "
strCube = strCube & " LEVEL [All Standard] TYPE ALL, "
strCube = strCube & " LEVEL [Standard_OK_WV_KS] ROOT_MEMBER_IF ROOT_IF_PARENT_IS_BLANK_OR_SELF_OR_MISSING, " 'ROOT_MEMBER_IF ROOT_IF_PARENT_IS_SELF ,"

strCube = strCube & " DIMENSION District, "
strCube = strCube & " LEVEL [All District] TYPE ALL, "
strCube = strCube & " LEVEL [District ID], "
strCube = strCube & " LEVEL [School ID], "
strCube = strCube & " LEVEL [Teacher ID], "
strCube = strCube & " LEVEL [Class ID], "
strCube = strCube & " DIMENSION [Test Date], "
strCube = strCube & " LEVEL [All Time] TYPE ALL, "
strCube = strCube & " LEVEL [Year] TYPE YEAR OPTIONS(SORTBYNAME), "
strCube = strCube & " LEVEL [Month] TYPE MONTH OPTIONS(SORTBYKEY),"
strCube = strCube & " LEVEL [Day] TYPE MONTH OPTIONS(SORTBYKEY),"
strCube = strCube & " MEASURE [Total] FUNCTION COUNT FORMAT '#' TYPE DBTYPE_I8, "
strCube = strCube & " MEASURE [Correct] FUNCTION SUM TYPE DBTYPE_I8) "

sInsertInto = ""
sInsertInto = sInsertInto & "INSERTINTO=INSERT INTO testLocal " & vbCrLf
sInsertInto = sInsertInto & " (" & vbCrLf

sInsertInto = sInsertInto & " [Standard_OK_WV_KS].NAME, "
sInsertInto = sInsertInto & " [Standard_OK_WV_KS].KEY, "
sInsertInto = sInsertInto & " [Standard_OK_WV_KS].PARENT, "

sInsertInto = sInsertInto & " [District].[District ID].NAME," & vbCrLf
sInsertInto = sInsertInto & " [District].[District ID].KEY," & vbCrLf
sInsertInto = sInsertInto & " [District].[School ID].NAME," & vbCrLf
sInsertInto = sInsertInto & " [District].[School ID].KEY," & vbCrLf
sInsertInto = sInsertInto & " [District].[Teacher ID].NAME," & vbCrLf
sInsertInto = sInsertInto & " [District].[Teacher ID].KEY," & vbCrLf
sInsertInto = sInsertInto & " [District].[Class ID].NAME," & vbCrLf
sInsertInto = sInsertInto & " [District].[Class ID].KEY," & vbCrLf

sInsertInto = sInsertInto & " [Test Date].[Year].NAME," & vbCrLf
sInsertInto = sInsertInto & " [Test Date].[Year].KEY," & vbCrLf
sInsertInto = sInsertInto & " [Test Date].[Month].NAME," & vbCrLf
sInsertInto = sInsertInto & " [Test Date].[Month].KEY," & vbCrLf
sInsertInto = sInsertInto & " [Test Date].[Day].NAME," & vbCrLf
sInsertInto = sInsertInto & " [Test Date].[Day].KEY," & vbCrLf
sInsertInto = sInsertInto & " [Measures].[Total]," & vbCrLf
sInsertInto = sInsertInto & " [Measures].[Correct] " & vbCrLf

sInsertInto = sInsertInto & ") "
sInsertInto = sInsertInto & "SELECT" & vbCrLf

/* i think the error is in the next 3 lines. Can you please tell me what the values should be for the Parent-child dimensions should be */

/* the database value for the line below is Goal. This is the description for the Dimension. How do I represent that here */
sInsertInto = sInsertInto & "[Fact_OK_WV_KS].[Standard_OK_WV_KS!?] ,"
/* the database value for the line below is StdID. This is the Id for the dimension. How do I represent that here */
sInsertInto = sInsertInto & "[Fact_OK_WV_KS].[Standard_OK_WV_KS!?] , "
/* the database value for the line below is ParentStdID. This is the parent ID . How do I represent that here */
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Standard_OK_WV_KS!??] , "

sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:District ID]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:District ID!KEY]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:School ID]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:School ID!KEY]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:Teacher ID]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:Teacher ID!KEY]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:Class ID]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[District:Class ID!KEY]," & vbCrLf

sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Year]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Year!KEY]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Month]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Year!KEY]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Day]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Test Date:Day!KEY]," & vbCrLf

sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Measures:Total]," & vbCrLf
sInsertInto = sInsertInto & " [Fact_OK_WV_KS].[Measures:Correct] " & vbCrLf
sInsertInto = sInsertInto & " From [Fact_OK_WV_KS] " & vbCrLf

sInsertInto = sInsertInto & " WHERE (([Fact_OK_WV_KS].[District:School ID] = '[District].[All District ID].[2029].[1908]'))" & vbCrLf
'sInsertInto = sInsertInto & " group by (([Standard_OK_WV_KS], [District], [Test Date] ))"
'sInsertInto = sInsertInto & " OR ([Sales].[Product:Product Family] = '[Product].[All Products].[Non-Consumable]'))" & vbCrLf
'sInsertInto = sInsertInto & "AND (([Sales].[Customers:Country] = '[Customers].[All Customers].[Mexico]')" & vbCrLf
'sInsertInto = sInsertInto & " OR ([Sales].[Customers:Country] = '[Customers].[All Customers].[USA]'))" & vbCrLf

'Response.Write(strCube & "<br>" & sInsertInto)
'Response.End()
Dim objConnection As New ADODB.Connection()

sConnection = sLocation & ";" & vbCrLf & sSourceDSN & ";" & vbCrLf & strCube & ";" & vbCrLf & sInsertInto

objConnection.ConnectionString = sConnection
objConnection.Provider = "MSOLAP"
objConnection.Open()
'Response.Write("cube created")

objConnection.Close()

Thanx again