cube - SSAS tabluar mode processing fails with "a lot of rows" -
I have an SSAS Tabular Mode cube that reads data from an Attison Matrix database using ODBC. The process of the project is fine when I am using a data set with 1 million rows, but when I try to use a large (300 million lines), the process runs for about 15 minutes and the message Fails with:
Operation failed because the source database does not exist, the source table does not exist, or because you do not have access to the data source More information: LE DB or ODBC error: [Paraakl] [ODBC Driver] [Piadibi] 57014: error: Canceled question (2545 9) on user request: Description (2545 9) Cancel the user's request; 57014. An error occurred while processing the partition 'XXXX' in the table 'YYYY'. The current operation was canceled because another operation failed in the transaction. The message says that the database is not in existence but it does not make sense because it works perfectly well on the first case (and the difference is only "where segment" of the rows Number) I am using a server whose 96 GB is free and I am running the "processing" process, while all the memory is being used. When all this is consumed, it runs for some sixty seconds and fails. Apart from this, I know of a fact that the 300 million line datasets exported in the CSV file have a raw format of 36 GB, so it should fit in memory without any compression.
I can also guarantee that the query source works fine on its own on the database, so the "query (2545 9) cancellation" message on the user's request is also not understood very well.
Anyone have any ideas on what is happening? Memory consumption can not be estimated on the byte size on the derivative of input rows (resulting cube)
This cube of input is a function of the cartesian graph product of all the specific values of the dimension.
If you were creating cube with 2 input rows on two dimensions and 2 measurements:
state | City | Population --------------------- NY | New York | 8406000 CA | Los Angeles | 3884000 State | City | Population | Number of records - -------------------------------------- Tap. Zero | 12290000 | 2 NY | NULL | 8406000 | 1 NY New York | 8406000 | 1 CA NULL | 3884000 | 1 CA Los Angeles | 3884000 | 1 NULL | Los Angeles | 3884000 | 1 NULL | New York | 8406000 | 1 You can not expect the output to be generated because the input data lines are processed to be equivalent to the size. If the ODBC driver keeps the entire input in memory before you can read it, then you have to have an account for both input and output to stay in memory until the cube generation is complete.
This answer is very clear on this topic:
Comments
Post a Comment