CA2518881A1 - System and method of ready to render business intelligence data sets - Google Patents

System and method of ready to render business intelligence data sets Download PDF

Info

Publication number
CA2518881A1
CA2518881A1 CA002518881A CA2518881A CA2518881A1 CA 2518881 A1 CA2518881 A1 CA 2518881A1 CA 002518881 A CA002518881 A CA 002518881A CA 2518881 A CA2518881 A CA 2518881A CA 2518881 A1 CA2518881 A1 CA 2518881A1
Authority
CA
Canada
Prior art keywords
rowset
row
edge
data
dataset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002518881A
Other languages
French (fr)
Inventor
Soufiane Azizi
David Cushing
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cognos Inc
Original Assignee
Cognos Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cognos Inc filed Critical Cognos Inc
Priority to CA002518881A priority Critical patent/CA2518881A1/en
Priority to CA002551197A priority patent/CA2551197A1/en
Priority to US11/473,916 priority patent/US8112385B2/en
Publication of CA2518881A1 publication Critical patent/CA2518881A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Description

5~~stem and Method of Ready to Repder Business Intelli~enee Data Sets FIELD OF THE 1NVENTiON
The invention relates generally to data access tniddleware, and in particular to a S system and method of ready to render business intelligence data sets.
BACKC'rROUND OF THE INVENTION
Prior to the invention, unformatted, xaw data was returned from a query. A
client application would perform all formatting.
DETAILED DESCRIPTION OF TIIE PREFERRED EMBODIMENTS
The present invezition provides the programmatic retrieval of formatted results of data agnostic queries. The invention also relates to a programming interface that has a structure and semantics that are designed to align with a data agnostic business intelligence query result definition, commonly xeferred to as the QItD, enabling client applications to easily match layout constructs with objects in the formatted result set. The invention can be applied to results obtained fxom SQL, MDT, and other vendor queries as well k'or a BI application that is zequired to tender various types of reports (lists, grouped lists, xtabs, charts, maps, repeaters, and a combination of these), having to deal with raw data means an exponential increase in its complexity. Presenting such an application with a system that turns taw data into highly formatted data gives the BI
application the ability to render all types of reports in a simple and consistent manner, The system provides an abstractioxl and a data model that is independent of the raw underlying data. .
The Result Set programming In~terFace (RSAPI) is the single API for retrieving data from a query framework system. It pxovides a single abstraction, referred to as a master dataset, which logically encapsulates access to results from a variety of data souxce technologies to a variety of reports irr reporting and analysis applications.
-I-RESULT SET RET~tIEVAL OHJECT MODEL
Master Dataset Upon execution of a query, an application obtains a painier to a master dataset (MDS) object. A MDS provides;
~ A sezies of objects that describe the layout of the result set, including:
o The number of edges.
o The layout of ra~wsets along each edge.
o A description of each rowset.
o A description of each column of each rawset~
1 D o A description of the levels represented by a rowset.
a A description of the rowset containing cell values (if applicable).
A method to obtain portions of the result data via an object called a partial data set (PDS), described later.
~ A method to obtain pointers to other MDSs representing detail queries associated witb~ master/detail queries specified in the original query.
The number of edges in a MbS is equal to the ttumbex of edges in t3ie QRD of the wrresponding query, Tn particular, the MDS for alI types of list reports contain a single edge, whilst a cross tab xeport contains one or more edges, as does a chart.
An empty edge specification (i.e, <edgeGroup name="empty"h) is valid; the client expects a valid MDS float describes the empty edge. This a boundary condition that is dealt with the method IsEmptyn of the PDS object.
Data Set Information A MDS is described via a collection ofhierarchically related objects:
~ .TRSDatasetrtxfo From this object, it is possible to obtain information about each edge and about the cell rowset:
_2_ o I,~SEdgeInfo, Describes each edge of the dataset. Each edge also contains one or more logical rowsets, each described izidividually;
~ IRSRowsetlnfo.
Describes a logical rowset, Also contains dimensional information {levels) represented in the rowset, as well as a description of each column in the rowset.
IRSCaIumnXnfo.
Describes the various properties of a column.
~ IRSLevellrafo.
Describes a level re~fercnced by a rowset.
~ IRSRowsetLayaut.
The rowset layout objects describe the manner in which the rowsets of an edge are related to one another.
o IRSRowsetlnfo.
Describes the cell rowset.
~ IRSGolumrzfnfo.
Describes the various properties of a column.
Partial Dataset A master dataset provides an application with access to the definition of the layout of the results of a query, but it does not provide access to the members {or data. values) along the edges of the dataset, or to any factlmeasure {cell) values. To do so requires the use of a partial dataset (1'DS).
A FDS provides access to a portion of a complete dataset. Once created, it provides an application with access to the members of the edge rowsets, as well as the fact values, within tlxe defined scope of the partial dataset. Azi application creates one or more partial datasets to retrieve all of the edge and cell values in a master dataset; an application can simply create a partial dataset that encompasses the entire result set (potentially very expensive), but more typically, will create a partial dataset that corresponds to the portion of the dataset that can be viewed by the user on his or leer _3_ display device, In this interactive type environment, the Query Fraxneworx providers implementing the retrieval of portions of the result set should take advantage of this feature in the RS API to optimize data retrieval from the underlying database by xetrieving the minimum set of data to service the client's request.
S A pDS acts as a factory fot' the following objects:
~ An edge iterator. Though an edge may captain multiple logical rowsets, a single edge iterator is used to navigate through all of the rows of all of the edge's z'owsets, including header and footer rowsets.
~ A cell iteratox, in the case of a cross tab, or possibly, a chart report. A
cell rowset contains data values that are related to rows of each edge of the PDS by edge coordinates.
Each row ofdata contains one ax more columns of data. Each column has several properties associated with it, the choice of which to retrieve is up~to the client to decide.
Edae Iteratars 1 S A single edge iterator, represented by the IRSEdgelterator class, is used to navigate all xows of an edge. TJxe rows are all contained withixx a single, virtual xowset.
Each raw is associated wvith a particular rowset; its ancestor within the result set is also identified. The client uses the ancestor information to determine parentlehild relationships within the data.
Data within the virtual rowset is provided in a manner that is amenable to rendering by client applications.
Level information is supplied to assist a client in the instances where a logical rawset contains members/values fronn multiple hierarchies andlor levels.
All column values have an associated state. 'fhe possible states are:
~ DK.
The column value is valid.
1~)~
The column value is NULL, -4~

~ NA
The colunam value is not applicable in the current row.
~ SECIJI~TY
A column's value is not available due to security restrictions.
~ DIVBYZERO
A nurnexic value is not available due to a divide-by-zero error, ~ O'YEIifLO'W
An overflow error occurred during the calculation of a column's value ~ ERROR
An error not encompassed by any of the previous status codes.
Positiaz~in~,within an Edge Rowset All of the rows of data axe contained within a single, virtual edge rowsct_ Each row is uniquely identified by the combination of its rowset id and its row number within its rawset. Detail row numbers are assigned independent of rowsets.
RowsetIDs are unique identif ere of the Logical rowSets that comprise the single virtual edge rowSet. RowSetlDs are unique in the context of the entire edge.
Row numbers are unique identifiers of the rows that comprise a logical rowSet.
Each row in att edge rowset is uniquely identified by its (rowset id, row #) tuple. Detail row numbers start at 1, increment by 1, and are unique in the context of the nnaster dataset. Navigation by rowset idlrow # is performed using the Gato method of the IRSL~'dgelterator class.
'The NextlPrevioz~r methods move relative to the overall virtual rowset, not the individual logical rowsets within it, The Goto, Next, and Previoa~r methods of an edge iterator move the iterator to the appropriate row in order to access the columns associated with the row.
They return true only if the row is within the partial data set bonds.
Thus, the positional Constructs discussed above are summarized as follows:

~ Rowset 1D, The identifier of the logical rowset to which a row of data belongs. The meaning of the rowsetlD order is that rowsetID should be the position of tile xowset in the rowsetV~ector.
~ Row Number.
The xow's unique identifier within its logical rowset (Read, the rowset of the Masterdataset, ~nofi the rowset of the partialDataset), but are not requixed to follow any particular sequence. Each xow in an edge xowset is uniquely identified by its (rowset id, row #) tuple. The basis for the Gotc~ method is a (rowset id, row #) tuple.
~ betail Row Number.
A, unidue, sequential value used to identify roves of detail data along an edge.
They start at 1 and increment by 1 ~ k'ar a partial dataset created relative to end of data, detail row numbers start at ~l at EOD and decrement by 1 towards the start of the rowset. A detail row number Qf 0 indicates a non-detail row of data. A
row of data from a sux~nrnary (headerlfooter) rowset cannot represent detail data.
~ Coordinate.
A unique value along an edge that is used to correlate a row along att edge with a row of data in the cell rowset. A coordiztate from each edge is required to 24 uniquely identify a single rorw in the cell rowset, Cell coordinates can be any value, but are unique along an edge, A cell rowset is required to return data in row-major order. A coordinate of-1 indicates that a row of data has no corresponding row ix: the cell rowset, v Row Ordinal.
A row's upique identifier within an entire edge rnwset. The ordinal Xs simply the tuple comprised of a rowset ID and row num6er_ The RSOrdirral class encapsulates the iwa pieces of information.
Fositio~Ctzn~ within an Edge Rowset, PDS Created Relative to EOD
The IRSMasterl7ataset:: GetFartial.~atas~et (described later) interprets a negative number of detail row numbexs to indicate that the first value (row number) is relative to _0_ the end of the corresponding edge. For example, the pair of values (100, -20) indicates a partial dataset containing 20 details rows ending at the 100 row from the end of data.
The IRSEdgeIterator: GetItowNumber method for an edge of a partial dataset created relative to EOD, returns negative row numbers, the last of Which is -1. Row numbers are decremented by 1 towards the beginning of the partial dataset.
Using the previously stated example, the edge rowset would begin at -20 and end at -1.
Note that the non-detail row numbers are also affected by creating a partial dataset relative to EO~.
'That is, the last row 1n~ a rowsct is numbered -1 and previous row numbers arc decren~,ented by 1.
Rowset Iteration A. client application uses the rowset id, row #, and ancestor id to guide its navigation of an edge's virtual rowset. 'The application has available to it a small set of navigational methods:
~ IILSEdgeIterator::ToFirstRow ~ IRSEdgeIterator::ToLastltow IRSEdgeIteratot'::Next ~ IRSEdgeIterator::Previous ~ IRSEdgelterator::Goto A client application examines each row's rowset number in order to determine how to interpret the data contained in the row (using the rowset identif er as an index into the edge's array ofIRSRowsetlnfo structures. As well, a client application interpret ancestry and rowset information in order to recognize both ragged and unbalanced paths wAthin a result Set.
The Result Set Object Model which abstracts the results of a BI query az~d forms the basis of the rendered result set.
'fhe systems and methods according to the present invention may be implemented by any hardware, software or a combination ofhardware and software having the functions described above. The software code, either in its entirety or a part thereof, may be stored in a computer readable xxxemory. Further, a computer data signal representing the sollware node that may be embedded in a carrier wave may be transmitted via a communication network. Such a computer readable merrtory and a computer data signal are also within the scope of the present invention, as Well as the hardware, sof~vvare and the combination thereof.
While particular embodiments of the present invention have been shown and described, changes and modifications may be made to such embodiments without departing from the true scope of the invention.
_g_

Claims

WHAT IS CLAIMED IS:
1. A method of obtaining a ready-to-render dataset comprising the steps of:
providing a master dataset comprising:
an edge component for describing an edge of the dataset;
a row component for describing a row of the dataset; and a plurality of column components for describing properties of a column of the dataset; and providing access to a portion of a complete dataset for holding values in the components of the master dataset.
CA002518881A 2005-09-13 2005-09-13 System and method of ready to render business intelligence data sets Abandoned CA2518881A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CA002518881A CA2518881A1 (en) 2005-09-13 2005-09-13 System and method of ready to render business intelligence data sets
CA002551197A CA2551197A1 (en) 2005-09-13 2006-06-23 System and method of ready to render business intelligence result sets
US11/473,916 US8112385B2 (en) 2005-09-13 2006-06-23 Ready to render business intelligence result sets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002518881A CA2518881A1 (en) 2005-09-13 2005-09-13 System and method of ready to render business intelligence data sets

Publications (1)

Publication Number Publication Date
CA2518881A1 true CA2518881A1 (en) 2007-03-13

Family

ID=37856499

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002518881A Abandoned CA2518881A1 (en) 2005-09-13 2005-09-13 System and method of ready to render business intelligence data sets

Country Status (2)

Country Link
US (1) US8112385B2 (en)
CA (1) CA2518881A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313153A1 (en) * 2007-05-25 2008-12-18 Business Objects, S.A. Apparatus and method for abstracting data processing logic in a report
US8103687B2 (en) * 2008-06-03 2012-01-24 Microsoft Corporation Selecting member sets for generating asymmetric queries
CN102026148A (en) * 2009-09-17 2011-04-20 中兴通讯股份有限公司 Business user data management system and method for realizing business user data management
US20140304218A1 (en) * 2013-04-09 2014-10-09 International Business Machines Corporation Augmenting a business intelligence report with a search result

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864871A (en) * 1996-06-04 1999-01-26 Multex Systems Information delivery system and method including on-line entitlements
US6275819B1 (en) * 1999-03-16 2001-08-14 Novell, Inc. Method and apparatus for characterizing and retrieving query results
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US20020091681A1 (en) * 2000-04-03 2002-07-11 Jean-Yves Cras Report then query capability for a multidimensional database model
US20030172082A1 (en) * 2002-03-06 2003-09-11 Jeffrey Benoit Method and system for accessing action item information
US7051038B1 (en) * 2002-06-28 2006-05-23 Microsoft Corporation Method and system for a reporting information services architecture
US7181450B2 (en) * 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US20050262087A1 (en) * 2003-05-19 2005-11-24 Ju Wu Apparatus and method for maintaining row set security through a metadata interface
CA2429909A1 (en) * 2003-05-27 2004-11-27 Cognos Incorporated Transformation of tabular and cross-tabulated queries based upon e/r schema into multi-dimensional expression queries
US20050038767A1 (en) * 2003-08-11 2005-02-17 Oracle International Corporation Layout aware calculations
WO2005020104A1 (en) * 2003-08-18 2005-03-03 Sap Aktiengesellschaft User-requested search or modification of indices for search engines
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US7359898B1 (en) * 2004-02-26 2008-04-15 Yahoo! Inc. Scoring mechanism selection along multiple dimensions
US7454412B2 (en) * 2004-06-16 2008-11-18 Sap Aktiengesellschaft Compiling values that relate to aggregate data
US7516121B2 (en) * 2004-06-23 2009-04-07 Oracle International Corporation Efficient evaluation of queries using translation

Also Published As

Publication number Publication date
US8112385B2 (en) 2012-02-07
US20070061292A1 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
US10402421B2 (en) Systems and methods for interest-driven data sharing in interest-driven business intelligence systems
KR102134494B1 (en) Profiling data with location information
US7246108B2 (en) Reusing optimized query blocks in query processing
US9760571B1 (en) Tabular DB interface for unstructured data
US20140310260A1 (en) Using persistent data samples and query-time statistics for query optimization
US7836022B2 (en) Reduction of join operations when archiving related database tables
US20140101133A1 (en) Estimating rows returned by recursive queries using fanout
US20100146003A1 (en) Method and system for building a B-tree
US8402017B2 (en) Method for altering database views dependent on rules
US20100082577A1 (en) Multidimensional data space queries with expression evaluation
US20100235344A1 (en) Mechanism for utilizing partitioning pruning techniques for xml indexes
US20060026133A1 (en) Determining query cost based on subquery filtering factor
EP2891993A1 (en) Method for virtualizing large-scale distributed heterogeneous data
US10296497B2 (en) Storing a key value to a deleted row based on key range density
US20090150366A1 (en) Expression replacement in virtual columns
US7519574B2 (en) Associating information related to components in structured documents stored in their native format in a database
US7693845B2 (en) Database systems, methods and computer program products using type based selective foreign key association to represent multiple but exclusive relationships in relational databases
CA2518881A1 (en) System and method of ready to render business intelligence data sets
US10915541B2 (en) Generic API
US10366067B2 (en) Adaptive index leaf block compression
US10528538B2 (en) Leveraging SQL with user defined aggregation to efficiently merge inverted indexes stored as tables
US11556532B2 (en) Hash trie based optimization of database operations
US20200004848A1 (en) Semantic layer generation
US7707138B2 (en) Identifying columns for row based operations
Engle A Methodology for Evaluating Relational and NoSQL Databases for Small-Scale Storage and Retrieval

Legal Events

Date Code Title Description
FZDE Discontinued