Abstract:
A method is disclosed for modeling application-level objects in terms of join graphs defined over tables containing structured data residing in a relational database. In accordance with the disclosed metamodel, each object is modeled logically as a join graph. A query received from an application that requests the return of objects meeting certain conditions is reformulated to refer to the metamodel. The metamodel includes an index structure having a plurality of indexes and a set of join conditions that specify relationships between the indexes. Some series of join conditions form join paths, such that each join path originates on an anchor table and ends on a table corresponding to one of the plurality of indexes. The metamodel further includes at least one view representing a subgraph of the join graph having at least one anchor table as a key.
Abstract:
Systems and techniques for mapping data structures in a data processing environment to help ensure the accessibility of stored information. In one implementation, an article includes a machine-readable medium storing instructions. The instructions are operable to cause one or more machines to perform operations. The operations include receiving a first data storage schema in which a characteristic in a first dimension table is mapped by a first table and a second table and generating a second data storage schema. The first table maps the characteristic to a first object that include attributes to which time information is irrelevant to data processing activities and the second table maps the characteristic to a second object that include attributes to which time information is relevant to data processing activities. The second data storage schema includes a fact table including at least some facts drawn from the first data storage schema and a second dimension table that includes at least some characteristics drawn from at least one of the first object and the second object.
Abstract:
A query having multiple parts may be processed to form an intermediate results set. This intermediate results set may be partitioned into a plurality of groups. Thereafter, the groups may be sorted into a plurality of containers so that each container contains data sufficient to calculate one requested result in the multipart query. Related techniques, apparatuses, systems, and computer program products are also described.
Abstract:
Systems and techniques to test a software product in one or more computer systems. In general, in one implementation, the technique includes calling components in a first computer system during execution of a test, recording the calls, and rerunning the recorded calls in a second computer system in order to recreate the behavior of the first computer system during execution of the test.
Abstract:
Methods and apparatus, including computer systems and program products, for executing a query on a subset of data, for example, to facilitate a fast search with a very large result set. In one general aspect, a method of executing a query includes receiving a query for execution on data in the data repository; generating an estimate of a number of results of the query; defining a subset of data in the data repository; determining whether to execute the query on the subset of the data; executing the query on the subset of the data to generate a partial set of results if the query is to be executed on the subset of the data, otherwise executing the query on the data repository to generate a complete set of results; and providing query results.
Abstract:
In a business system, one or more methods can be used to reduce an amount of redundancy in the storage of data. One implementation includes a method of reducing a memory footprint of a database table having multiple rows and one or more columns, in which each of the one or more columns has a cardinality, and the cardinality is a total number of different values in the rows of each column. The method includes comparing the cardinality with a total number of possible values in the rows of at least one column based on a width of the column. The method also includes reducing the width of the column if the cardinality is less than a threshold based on the total number of possible values in the rows of the column.
Abstract:
Methods and apparatus, including computer program products, for compression of tables based on occurrence of values. In general, a number representing an amount of occurrences of a frequently occurring value in a group of adjacent rows of a column is generated, a vector representing whether the frequently occurring value exists in a row of the column is generated, and the number and the vector are stored to enable searches of the data represented by the number and the vector. The vector may omit a portion representing the group of adjacent rows. The values may be dictionary-based compression values representing business data such as business objects. The compression may be performed in-memory, in parallel, to improve memory utilization, network bandwidth consumption, and processing performance.
Abstract:
Methods and apparatus, including computer program products, for block compression of tables with repeated values. In general, value identifiers representing a compressed column of data may be sorted to render repeated values contiguous, and block dictionaries may be generated. A block dictionary may be generated for each block of value identifiers. Each block dictionary may include a list of block identifiers, where each block identifier is associated with a value identifier and there is a block identifier for each unique value in a block. Blocks may have standard sizes and block dictionaries may be reused for multiple blocks.
Abstract:
A query having multiple parts may be processed to form an intermediate results set. This intermediate results set may be partitioned into a plurality of groups. Thereafter, the groups may be sorted into a plurality of containers so that each container contains data sufficient to calculate one requested result in the multipart query. Related techniques, apparatuses, systems, and computer program products are also described.
Abstract:
Methods and apparatus, including computer systems and program products, relating to an information management system and aggregating data by performing table scans. In general, in one aspect, the technique includes receiving a query for a response to a search on a database, loading data from the database into memory, filtering the data based on the query to generate a list of results, buffering at least one key figure corresponding to a result, buffering at least one dimension value corresponding to each key figure, aggregating the dimension values to generate an aggregate key, aggregating key figures corresponding to the sane aggregate key to generate one or more aggregate key figures, and displaying the response to the search on a display device. Loading the data may include compressing the data. Filtering the data may be performed blockwise.