[go: up one dir, main page]

WO2025228033A1 - Procédé et appareil de traitement de données, dispositif informatique, et support de stockage - Google Patents

Procédé et appareil de traitement de données, dispositif informatique, et support de stockage

Info

Publication number
WO2025228033A1
WO2025228033A1 PCT/CN2025/085794 CN2025085794W WO2025228033A1 WO 2025228033 A1 WO2025228033 A1 WO 2025228033A1 CN 2025085794 W CN2025085794 W CN 2025085794W WO 2025228033 A1 WO2025228033 A1 WO 2025228033A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimension
multidimensional
members
array
value
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.)
Pending
Application number
PCT/CN2025/085794
Other languages
English (en)
Chinese (zh)
Inventor
李传龙
陈鲁飞
张智为
梁锦伦
周易
刘超
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of WO2025228033A1 publication Critical patent/WO2025228033A1/fr
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Definitions

  • This application relates to the field of multi-dimensional data (MDD) technology, and more particularly to a data processing method, apparatus, computing device, and storage medium.
  • MDD multi-dimensional data
  • a multidimensional database is a type of database used to process multidimensional data. It organizes and stores data in the form of multidimensional arrays (or multidimensional data cubes). Each dimension of the multidimensional array represents an observation of the data, and each dimension includes multiple dimension members (i.e., the values that the dimension can take). Each element in the multidimensional array represents a measure.
  • the data is typically displayed to the user in the form of forms. However, to correctly construct and display these forms on the client side, the database management system first needs to send the form-related information from the multidimensional database to the client.
  • One current implementation involves the database management system determining all values in the multidimensional form to be displayed within the multidimensional database, as well as the row and column coordinates of each value in the form and the corresponding dimension member. This information is then transmitted to the client along with each value, its row and column coordinates, and the correspondence between each value and its dimension member.
  • this approach requires transmitting a large amount of data, resulting in lengthy data transmission times and making it unsuitable for multidimensional forms with a large number of values to display on the client side.
  • This application provides a data processing method, apparatus, computing device, and storage medium that can reduce the amount of data transmitted.
  • this application provides a data processing method executed by a database management system.
  • the method includes: the database management system receiving a query request from a client; determining multiple dimension members associated with a multidimensional form based on the query request; determining data and location information based on the multiple dimension members; converting the data into an array; compressing the location information to obtain compressed information; and finally transmitting the query result to the client.
  • the query result includes the array and the compressed information.
  • the query request instructs data query processing for a multidimensional form associated with a multidimensional database.
  • the multiple dimension members belong to multiple dimensions in the multidimensional database.
  • the data consists of multiple values corresponding to the multiple dimension members in the multidimensional database.
  • the location information indicates the row and column positions of the multiple values in the multidimensional form and the member corresponding to each value among the multiple dimension members.
  • this approach reduces the overall data transmission volume from the database management system to the client by compressing the location information and then sending the compressed information and the generated array (including the aforementioned values) to the client, thereby shortening the data transmission time.
  • the database management system can write the multiple values into an array according to their order in the multidimensional form, and then transmit the array to the client. It should be understood that since the database management system fills the array with the multiple values according to their order in the multidimensional form, when the client receives the array, it can directly load the multiple values into the multidimensional form according to the order of the values in the array. This helps improve the form display speed on the client side, thereby enhancing the user experience.
  • the location information includes row numbers.
  • the database management system can first determine the correspondence between different row numbers of the multidimensional form and the above-mentioned multiple dimension members based on the location information, and then generate compressed information to indicate the above-mentioned correspondence.
  • the database management system first determines the correspondence between different row numbers in the form and the aforementioned multiple dimension members based on location information. Each row number corresponds to a portion of the dimension members, and the dimension members corresponding to different row numbers are not entirely the same. Each row number corresponds to a dimension member under each of the multiple dimensions associated with the multidimensional form, and each row in the form includes one or more values. Then, the database management system generates compressed information to indicate the above correspondence and sends the compressed information to the client. In other words, the database management system converts the correspondence between different values and row/column coordinates and dimension members into the correspondence between different rows and dimension members.
  • this solution can reduce the amount of data transmission to a certain extent.
  • the location information can also include the column number.
  • the database management system can first determine the correspondence between the different column numbers of the multidimensional form and the above-mentioned multiple dimension members based on the location information, and then generate another compressed information, which is used to indicate the above correspondence, and then send the compressed information to the client.
  • the compressed information includes the target row number, the operand corresponding to the first dimension, and the order relationship among members belonging to the first dimension among multiple dimension members.
  • the first dimension is one of multiple dimensions.
  • the index value of the first dimension member corresponding to the target row number in the above order relationship is equal to the remainder obtained by dividing the first value by the number of members belonging to the first dimension among multiple dimension members.
  • the first dimension member belongs to the first dimension, and the first value is the quotient obtained by dividing the target row number by the operand.
  • the operand value is 1; if the number of other dimensions is 1, the operand value is the number of members of other dimensions associated with the multidimensional form; if the number of other dimensions is greater than 1, the operand value is the product of the number of members of other dimensions associated with the multidimensional form.
  • the database management system includes the target row number, the operands corresponding to the first dimension, and the order relationship between members belonging to the first dimension among multiple dimension members in the compressed information.
  • the client receives this compressed information, it can calculate the index value of the first dimension member corresponding to the target row number in the above order relationship based on the target row number (which can be any row number in the form) and the operands corresponding to the first dimension. Then, based on the calculated index value, it determines the first dimension member in the above order relationship.
  • the target row number, the operands corresponding to the first dimension, and the above order relationship implicitly contain the correspondence between the target row number and the first dimension members.
  • the client can determine the first dimension member under the first dimension corresponding to the target row number by calculating based on the target row number, the operands corresponding to the first dimension, and the above order relationship. Dimension members under other dimensions corresponding to the target row number can also be calculated in a similar way.
  • the compressed information also includes a row number array, which contains the different row numbers of the multidimensional form, and the length of the row number array is less than or equal to the product of the number of members of each dimension associated with the multidimensional form.
  • This solution uses a row number array to indicate the number of rows in the form. Based on this row number array and the previously described array containing multiple values from the form, the client can quickly fill in these values in the form according to the row number order, thereby improving the form's display speed on the client.
  • the query results also include style metadata, which indicates the style used by the client when displaying the above values.
  • style can be font size, font, alignment, whether it is bold, background color, the size of the cell containing the value, etc. This application does not make specific limitations on this.
  • the client receives the style metadata, it can control the style used when the above values are displayed in the form based on the style metadata.
  • the query results also include status information, which indicates the status of multiple values in the multidimensional database.
  • the status includes writable and read-only states.
  • a writable state indicates that the value can be modified, while a read-only state indicates that modification is not allowed.
  • the client can control whether users are allowed to modify the value on the client based on the value's status.
  • this application also provides a data processing apparatus, which includes modules for performing the data processing method in the first aspect or any possible implementation of the first aspect.
  • this application also provides a computing device including a processor and a memory.
  • the processor is configured to execute instructions stored in the memory to cause the computing device to perform operational steps of the method as described in any possible implementation of the first aspect.
  • this application also provides a computing device cluster, including at least one computing device, each computing device including a processor and a memory.
  • the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs the operational steps of the method as described in any possible implementation of the first aspect.
  • this application also provides a chip system, the chip system including a processor and a power supply circuit, the power supply circuit being used to supply power to the processor, and the processor being used to execute the operation steps of the method corresponding to the first aspect or any possible implementation of the first aspect.
  • this application also provides a computer-readable storage medium including computer program instructions that, when executed by a cluster of computing devices (including at least one computing device), perform the operational steps of the method as described in any possible implementation of the first aspect.
  • this application also provides a computer program product containing instructions.
  • the instructions When the instructions are executed by a cluster of computing devices (including at least one computing device), the cluster of computing devices causes the cluster of computing devices to perform the operational steps of the method as described in any possible implementation of the first aspect.
  • FIG. 1 is a system architecture diagram provided in this application.
  • Figure 2 is a schematic diagram of a multidimensional form provided in this application.
  • FIG. 3 is a schematic diagram of another multidimensional form provided in this application.
  • Figure 4 is a schematic diagram of the structure of a query result provided in this application.
  • Figure 5 is a schematic diagram of a multidimensional form after blanking provided in this application.
  • FIG. 6 is a flowchart illustrating a data processing method provided in this application.
  • Figure 7 is a schematic diagram of the structure of a computing device provided in this application.
  • Figure 8 is a schematic diagram of a computing device cluster provided in this application.
  • Figure 9 is a schematic diagram of two computing devices provided in this application interacting via a network.
  • This application provides a data processing method executed by a database management system.
  • the system first receives a query request from a client, then determines multiple dimension members associated with a multidimensional form based on the query request, and then determines data and location information based on the multiple dimension members. Subsequently, the data is converted into an array, and the location information is compressed to obtain compressed information. Finally, the query result, including the array and the compressed information, is transmitted to the client.
  • the query request instructs the data query processing of a multidimensional form associated with a multidimensional database.
  • the multiple dimension members belong to multiple dimensions in the multidimensional database.
  • the data consists of multiple values corresponding to the multiple dimension members in the multidimensional database.
  • the location information indicates the row and column positions of the multiple values in the multidimensional form and the member corresponding to each value among the multiple dimension members.
  • this system reduces the amount of data transmitted and thus shortens the data transmission time by compressing the location information and then sending the compressed information and the generated array (including the aforementioned values) to the client.
  • Figure 1 is a system architecture diagram provided in this application, including a client 100, a database management system 200, and a multidimensional database 300.
  • the client 100 and the database management system 200 have a communication connection, which can be a wired connection or a wireless connection.
  • the number of clients 100 establishing a communication connection with the database management system 200 can be one or more ( Figure 1 only shows one client 100 as an example), and this application does not specifically limit this.
  • the multidimensional database 300 and the database management system 200 have a communication connection, which can be a wired connection or a wireless connection.
  • the number of multidimensional databases 300 establishing a communication connection with the database management system 200 can be one or more ( Figure 1 only shows one multidimensional database 300 as an example), and this application embodiment does not specifically limit this either.
  • the client 100 is used to implement human-computer interaction and can be deployed on terminal devices or computing devices.
  • the terminal device can be a smartphone, wearable device, laptop, tablet, in-vehicle device, or smart conferencing device, etc.
  • the computing device can be a server, personal computer (PC), etc.
  • PC personal computer
  • client 100 can be an application (APP) client/mobile client running on a mobile terminal such as a smartphone or wearable device, or software or application running on a computing device (such as a PC client), or a web client accessed through a web browser, or a front-end console of a cloud platform.
  • APP application
  • client 100 can be an application (APP) client/mobile client running on a mobile terminal such as a smartphone or wearable device, or software or application running on a computing device (such as a PC client), or a web client accessed through a web browser, or a front-end console of a cloud platform.
  • APP application
  • a database management system 200 is used to manage a multidimensional database 300.
  • the database management system 200 can be deployed on a single computing device, a cluster of multiple computing devices, or a terminal device.
  • the computing device can be a physical server, a virtual machine, a container, or an edge computing device.
  • a virtual machine refers to a complete computer system simulated by software, possessing full hardware system functionality and running in a completely isolated environment. When creating a virtual machine on a computing device, a portion of the physical machine's hard drive and memory capacity is used as the virtual machine's hard drive and memory capacity.
  • Each virtual machine has an independent basic input/output system (BIOS), hard drive, and operating system, and can be operated like a physical machine.
  • BIOS basic input/output system
  • a container is a portable software unit that can combine an application and all its dependencies into a single software package. This package is not limited by the underlying host operating system, thus eliminating the need to build complex environments and simplifying the application development and deployment process.
  • Edge computing devices refer to devices closer to the data source and end users, characterized by low latency and high bandwidth, such as intelligent routers and edge servers; this application does not specifically limit this. Terminal devices are described above and will not be elaborated upon here.
  • Multidimensional Database 300 is a database used to store multidimensional data. It organizes and stores data in the form of multidimensional arrays (or multidimensional data cubes). Each dimension of the multidimensional array represents an angle/aspect/direction of observing data. Each dimension includes one or more dimension members, that is, the dimension can have one or more values. Each element in the multidimensional array represents a metric.
  • a multidimensional database 300 includes dimensions such as company, year, product, region, and account (i.e., accounting subject) dimensions.
  • the company dimension includes members such as Company A and Company B; the year dimension includes members such as 2019, 2020, and 2021; the product dimension includes members such as Product 1, Product 2, and Product 3; the region dimension includes members such as Region 1 and Region 2; and the account dimension includes members such as sales revenue, sales volume, inventory, and profit margin.
  • the number and types of dimensions and members given in this example are for illustrative purposes only and do not constitute specific limitations. In practical applications, a multidimensional database 300 can have more or fewer dimensions, and each dimension can have one or more members. This application does not impose specific limitations on this.
  • the client 100 and the database management system 200 can be deployed on the same terminal device or computing device; or, the client 100 can be deployed on a terminal device, and the database management system 200 can be deployed on a single computing device or a cluster of computing devices.
  • the multidimensional database 300 and the database management system 200 can be deployed on the same or different computing devices or terminal devices, and this application embodiment is not specifically limited. It should be understood that the examples are for illustration only, and the specific deployment of the client 100, database management system 200, and multidimensional database 300 can be determined according to the actual application scenario.
  • both the client 100 and the database management system 200 can be divided into multiple unit modules.
  • Figure 1 exemplarily illustrates one division method of the client 100 and the database management system 200, wherein the client 100 includes a sending module 110, a receiving module 120, a processing module 130, and an interaction module 140, and the database management system 200 includes a receiving module 210, a processing module 220, and a sending module 230, which will be described in detail below.
  • Sending Module 110 Used to send query requests to the database management system 200.
  • the query request instructs for data query processing of the multidimensional form associated with the multidimensional database 300.
  • the multidimensional form refers to a multidimensional form constructed based on data in the multidimensional database 300.
  • the multidimensional form is associated with multiple dimension members, which belong to multiple dimensions in the multidimensional database 300. These multiple dimensions can be considered as the dimensions associated with the multidimensional form. Each dimension member belongs to only one dimension, and each of these multiple dimensions has at least one dimension member among these multiple dimension members.
  • Query requests can include the following types:
  • the query request includes the identifier (ID) or name of a multidimensional form.
  • the database management system 200 records the correspondence between the ID/name of a multidimensional form and the associated multidimensional members.
  • its sending module 110 sends the query request to the database management system 200 by including the multidimensional form's ID or name in the request, thereby querying the database management system 200 for the data of that multidimensional form.
  • the database management system 200 determines that the client 100 needs to display this multidimensional form, and further determines that the multidimensional form is associated with these multiple dimension members. Subsequently, it retrieves the corresponding values of these multiple dimension members in the multidimensional database 300 (described later).
  • Scenario 2 The query request includes multiple dimension members associated with a multidimensional form.
  • client 100 sends a query request to database management system 200, including multiple dimension members associated with the multidimensional form, thereby querying the database management system 200 for data from the multidimensional form.
  • Database management system 200 can then directly determine the multiple dimension members associated with the multidimensional form based on the query request, and subsequently obtain the corresponding values of these dimension members in the multidimensional database 300 (described later).
  • Scenario 3 The query request includes multiple dimensions associated with a multidimensional form.
  • client 100 sends a query request to database management system 200, including multiple dimensions associated with the multidimensional form, thereby retrieving data from the multidimensional form.
  • Database management system 200 determines each dimension associated with the multidimensional form based on the query request. It then uses all or some dimension members under each dimension as multiple dimension members associated with the multidimensional form, and subsequently retrieves the corresponding values (described later) of these multiple dimension members in multidimensional database 300.
  • some dimension members under each dimension can be a specified number (configurable) of dimension members under that dimension, or specific dimension members under that dimension (which can be specified by the user or set by default in multidimensional database 300). This application does not impose specific limitations on this.
  • a multidimensional form associates multiple dimensions within a multidimensional database 300. For each of these dimensions, the multidimensional form specifically associates with at least one dimension member within that dimension.
  • the number of values corresponding to the multidimensional form in the multidimensional database 300 i.e., the values corresponding to the multiple dimension members associated with multiple forms in the multidimensional database 300
  • the number of values corresponding to the multidimensional form in the multidimensional database 300 is equal to the product of the dimension member data for each dimension associated with the multidimensional form.
  • Each value corresponds to one dimension member in each of the multiple dimensions associated with multiple forms.
  • all dimension members corresponding to each value are referred to as the member tuple for that value; different values have different member tuples.
  • Figure 2 provides an example of a multidimensional form that associates four dimensions in a multidimensional database 300, including the year dimension, product dimension, subject dimension, and region dimension.
  • the multidimensional form associates the two dimension members 2015 and 2016 under the year dimension, the three dimension members Product A, Product B, and Product C under the product dimension, the one dimension member sales volume under the subject dimension, and the two dimension members region 1 and region 2 under the region dimension.
  • Each value corresponds to 4 of the 8 dimension members (belonging to 4 different dimensions associated with a multidimensional form). These 4 dimension members are called the member tuples of that value. Different values have different member tuples, therefore these 12 values have 12 different member tuples.
  • the Cartesian product algorithm can be used to calculate which specific member tuples exist. In mathematics, the Cartesian product refers to an operation between two sets (or more sets) that combines the elements of these sets into ordered pairs, obtaining all possible ordered pairs.
  • the three dimension members under the product dimension as set 2 ⁇ Product A, Product B, Product C ⁇
  • the one dimension member under the subject dimension as set 3 ⁇ Sales ⁇
  • the two dimension members under the region dimension as set 4 ⁇ Region 1, Region 2 ⁇ .
  • the row structure of the multidimensional form can be associated with M dimensions in the multidimensional database 300 (which can be some or all of the multiple dimensions associated with the multidimensional form), where M is greater than or equal to 1, and this application does not specifically limit this.
  • the M dimensions corresponding to the row structure have an order relationship in the multidimensional form. This order relationship can be specified by the user (e.g., through the interaction module 140) or it can be the system default, and this application does not specifically limit this.
  • the row structure of the multidimensional database 300 is associated with one or more dimension members under that dimension (which may be some or all of the dimension members under that dimension). If the row structure is associated with multiple dimension members under that dimension, then these multiple dimension members under that dimension have an order relationship in the multidimensional form. This order relationship can be specified by the user (e.g., through the interaction module 140) or it can be the system default.
  • the row structure of this multidimensional form is associated with the year dimension, product dimension, and subject dimension of the above four dimensions.
  • the order of these three dimensions in the multidimensional form is year dimension ⁇ product dimension ⁇ subject dimension.
  • the multidimensional form is associated with four dimensions in the multidimensional database 300: year, product, subject, and region.
  • the row structure is associated with three of these four dimensions: year, product, and region.
  • the row structure is associated with the two dimension members 2015 and 2016, with their order in the multidimensional form being 2015 ⁇ 2016, corresponding to different rows in the multidimensional form.
  • the row structure is associated with the three dimension members: product A, product B, and product C, with their order in the multidimensional form being product A ⁇ product B ⁇ product C, corresponding to different rows in the multidimensional form.
  • the row structure is associated with the single dimension member "sales volume,” which corresponds to all rows in the multidimensional form.
  • the number of dimension members in each dimension associated with the row structure of a multidimensional form determines the number of rows in the multidimensional form.
  • the number of rows in a multidimensional form is equal to the product of the number of dimension members in each dimension associated with the row structure.
  • the column structure of the multidimensional form can be associated with N dimensions in the multidimensional database 300 (which may be some or all of the multiple dimensions associated with the multidimensional form), where N is greater than or equal to 1, and this application does not specifically limit this.
  • the N dimensions associated with the column structure have an order relationship in the multidimensional form, which can be user-specified or system default, and this application does not limit this.
  • the column structure of the multidimensional database 300 is associated with one or more dimension members under that dimension (which may be some or all of the dimension members under that dimension). If the column structure is associated with multiple dimension members under that dimension, then the multiple dimension members under that dimension have an order relationship in the multidimensional form, which can be user-specified or system default.
  • the number of dimension members in each dimension associated with the column structure of the multidimensional form determines the number of columns in the multidimensional form, and the number of columns in the multidimensional form is equal to the product of the number of dimension members in each dimension associated with the column structure.
  • the column structure of the multidimensional form in Figure 2 only relates to one dimension of the multidimensional database 300, namely the region dimension. Specifically, the column structure relates to two dimension members under the region dimension: Region 1 and Region 2. Their order in the multidimensional form is Region 1 ⁇ Region 2, with Region 1 and Region 2 corresponding to different columns in the multidimensional form. Since the column structure of this multidimensional form only relates to the region dimension, the number of columns in the multidimensional form equals the number of dimension members of the region dimension associated with the column structure, which equals 2 (column numbers from 0 to 1).
  • the number of cells used to populate the values can be determined by multiplying the number of rows by the number of columns.
  • These 12 cells are used to populate the 12 values corresponding to the multidimensional form in the multidimensional database 300.
  • the header or row/column headings are for ease of understanding only; in actual application scenarios, client 100 may not directly display the header in Figure 2.
  • Receiving module 210 Used to receive query requests sent by client 100.
  • Processing module 220 Used to retrieve multiple values from the multidimensional database 300 according to the query request, and then generate query results.
  • the processing module 220 in the database management system 200 by parsing the query request sent by the client 100, can determine the multiple dimension members associated with the multidimensional form (refer to cases one through three described above), and then retrieve the multiple values corresponding to these multiple dimension members from the multidimensional database 300. After the database management system 200 retrieves these multiple values from the multidimensional database 300, it fills these multiple values into the cells at the corresponding row and column positions in the multidimensional form.
  • the multidimensional form in Figure 2 is associated with 8 dimension members. These 8 dimension members belong to 4 dimensions in the multidimensional database 300, namely the year dimension, product dimension, subject dimension, and region dimension. The number of values corresponding to these 8 dimension members in the multidimensional form is 12, and different values have different member tuples.
  • the database management system 200 When the database management system 200 receives a query request from the client 100, it can determine the multiple dimension members associated with the multidimensional form and then retrieve the corresponding values of these dimension members in the multidimensional database 300. For example, in Figure 2, the cell with row number 0 and column number 1 needs to be filled with the member tuple including 2015, product A, sales volume, and region 2. The database management system 200 can retrieve the corresponding value of this member tuple from the multidimensional database 300. The method for retrieving the values to be filled in other cells is similar and will not be described in detail here.
  • the database management system 200 After the database management system 200 obtains these 12 values from the multidimensional database 300, it fills them into the corresponding cells of the multidimensional form in Figure 2, thus obtaining the multidimensional form in Figure 3. It should be noted that the 12 values filled in Figure 3 are only examples and do not constitute specific limitations.
  • the previous section introduced how to obtain the corresponding values of multiple dimension members associated with a multidimensional form in the multidimensional database 300 and fill them into the multidimensional form.
  • the following section explains how to generate query results based on these multiple values.
  • Figure 4 is a schematic diagram of the structure of a query result, including data information and definition information.
  • the data information includes an array of cell values (which is an array). This array of cells indicates the multiple values corresponding to the multiple dimension members associated with the multidimensional form in the multidimensional database 300.
  • the processing module 220 can sequentially fill the values of these 12 cells in the multidimensional form into a cell value array according to the arrangement order of rows 0 to 5 (each row from left to right), resulting in [100,200,NULL,NULL,150,180,200,300,80,120,160,150].
  • the processing module 220 can write the values of these 12 cells into a cell value array according to the arrangement order of rows 5 to 0 (each row from left to right), resulting in [160,150,80,120,200,300,150,180,NULL,NULL,100,200].
  • processing module 220 can sequentially write the values of these 12 cells into a cell value array according to the arrangement order of columns 0 to 1 (each column from top to bottom), resulting in [100,NULL,150,200,80,160,200,NULL,180,300,120,150].
  • processing module 220 can also fill the values of the 12 cells into the cell value array in other arrangements. This application does not impose specific limitations on this. Subsequently, client 100 only needs to use the cell value array and the order in which the values were previously filled into the array to quickly draw these 12 cells on client 100.
  • the data information also includes a cell status array.
  • This array indicates the status of multiple values in the multidimensional form within the multidimensional database 300.
  • the status can include read-only and writable states.
  • a writable state indicates that the value can be modified, while a read-only state indicates that modification is not allowed. If a value is in a writable state, the client 100 can notify the user that the value can be modified, thus allowing the user to modify the value on the client 100. Conversely, if a value is in a read-only state, the client 100 can notify the user that the value cannot be modified, thus preventing the user from modifying the value on the client 100.
  • processing module 220 fills the 12 values in the multidimensional form into the cell value array in the order of rows 0 to 5 (each row from left to right), resulting in [100,200,NULL,NULL,150,180,200,300,80,120,160,150].
  • the processing module 220 can sequentially fill the state flags of the 12 values in the multidimensional form into the cell state array, thus obtaining [0,0,0,0,0,0,1,1,1,1,1,1].
  • the client 100 determines the state of each value through the cell state array, it can render the cells containing values of different states in different ways, such as filling the cells containing read-only values with gray, filling the cells containing writable values with white, etc. This application does not specifically limit this.
  • the position of the same value in the cell value array is consistent with the position of the state marker of that value in the cell state array.
  • the value of the cell in row 2, column 0 of Figure 2 is 150, and its position in the cell value array is the 4th (assuming the position starts from 0). Therefore, the position of the state marker of this value in the cell state array is also the 4th.
  • client 100 can assign values to the corresponding cells and set the cell states according to the correspondence between the two arrays and the order of the elements (value/state) in the arrays.
  • the processing module 220 in the database management system 200 can first obtain the values corresponding to all cells in the multidimensional form from the multidimensional database 300, and then determine whether there are any rows and/or columns in the multidimensional form with all values empty (referred to as empty-cancellable rows and columns). If so, the processing module 220 performs empty-cancellable operation on the empty-cancellable rows and columns, that is, it does not carry the values of the cells in the empty-cancellable rows and columns in the cell value array, and it does not carry the status flags of the cells in the empty-cancellable rows and columns in the cell status array, thereby reducing the amount of data transmitted.
  • the client 100 since the cell value array received by the client 100 does not carry the values of the empty-cancellable rows and columns, and the cell status array does not carry the status flags of the empty-cancellable rows and columns, the client 100 will not display the empty-cancellable rows and columns in the multidimensional form, which can optimize the display effect and user experience of the multidimensional form to a certain extent.
  • this multidimensional form includes 12 cells.
  • the values in these cells are obtained by the database management system 200 from the multidimensional database 300 and filled into the multidimensional form (refer to the previous introduction). Some cells are filled with specific numerical values, while others are filled with NULL, indicating that the corresponding value obtained from the multidimensional database 300 is empty. Of course, other symbols can also be used to indicate that the value is empty, and this application does not specifically limit this. It can be seen that the values of all cells in the first row of this multidimensional form are empty, therefore the first row is a row that can be cleared of empty cells.
  • the processing module 220 of the database management system 200 can write all the values of these 12 cells into a cell value array. For example, the processing module 220 can fill the values of these 12 cells into an array sequentially from row 0 to row 5, resulting in the following cell value array: [100,200,NULL,NULL,150,180,200,300,80,120,160,150]. It can be understood that when the client 100 receives this cell value array, it does not need complex calculations; it can quickly render these 12 cells simply by following the order of row 0 to row 5. Similarly, the database management system 200 can fill the status markers of the values in these 12 cells into a cell status array sequentially from row 0 to row 5. When the client 100 receives this cell status array, it can quickly render the status of the values in these 12 cells simply by following the order of row 0 to row 5.
  • the processing module 220 of the database management system 200 only needs to write the values of the cells in the multidimensional form other than the rows and columns that can be cleared into the cell value array. That is, the values of the cells in Figure 2 other than the first row are sequentially filled into the cell value array, resulting in [100, 200, 150, 180, 200, 300, 80, 120, 160, 150], and the length of this array is 10. It can be understood that when the client 100 receives this cell value array, it does not need to perform complex calculations, but only needs to draw these 10 cells in the order of rows 0 to 5 (excluding the first row) to obtain the multidimensional form after clearing as shown in Figure 5.
  • the database management system 200 can sequentially fill the status markers of the values in the cells other than the first row in Figure 2 into the cell status array.
  • the client 100 receives the cell status array, it only needs to render the status of the values in these 10 cells in the order of rows 0 to 5 (excluding the first row).
  • the query results also include definition information, which is used to indicate the number of rows and columns in the multidimensional form, as well as the dimension members corresponding to each row and column in the multidimensional form.
  • the definition information includes row and column metadata and member metadata.
  • Row and column metadata is used to indicate the number of rows and columns in a multidimensional form. For example, without considering blanking, the number of rows and columns in the multidimensional form can be given directly.
  • the row and column metadata includes a row number array and a column number array.
  • the row number array contains the row numbers of different rows in the multidimensional form, and its length is equal to the number of rows in the multidimensional form. Therefore, the client 100 can determine the number of rows in the multidimensional form based on the row number array.
  • the column number array contains the column numbers of different columns in the multidimensional form, and its length is equal to the number of columns in the multidimensional form. Therefore, the client 100 can determine the number of columns in the multidimensional form based on the column number array, so as to render and display the multidimensional form on the client 100.
  • the database management system 200 can generate a row number array [0,1,2,3,4,5] and a column number array [0,1].
  • the row number array indicates that the multidimensional form has 6 rows
  • the column number array indicates that the multidimensional form has 2 columns.
  • the database management system 200 includes the row number array and column number array in the query results and sends them to the client 100.
  • the client 100 can then determine the number of rows and columns of the multidimensional form based on the row number array and column number array, and by combining this with the cell value array (including the values of 12 cells) in the form information, it can complete the depiction of the 12 cells.
  • the database management system 200 can generate a row number array [0,2,3,4,5] and a column number array [0,1].
  • the row number array indicates that the multidimensional form after the emptying has 5 rows
  • the column number array indicates that the multidimensional form after the emptying has 2 columns. It can be seen that since the first row is empty, the row number array does not carry the row number of the first row. Therefore, the client 100 does not need to render the cells of the first row. It only needs to draw 10 cells based on the row number array, column number array, and cell value array (including the values of the 10 empty cells), so that the multidimensional form after the emptying in Figure 5 can be displayed on the client 100.
  • Member metadata is used to indicate the dimensions corresponding to the row and column structures of a multidimensional form, as well as the information of the dimension members.
  • Member metadata can include the following first and second implementation methods.
  • the member metadata includes the order relationship of the dimension members under each dimension of the row structure in the multidimensional form, the order relationship of the dimension members under each dimension of the column structure in the multidimensional form, and the number of operations for each dimension in the M and N dimensions.
  • the operands of the first dimension fall into the following categories:
  • Type 1 If the number of other dimensions after the first dimension in the M dimensions is 0, then the number of operations for the first dimension is 1.
  • Type 2 If the number of other dimensions following the first dimension in the M dimensions is 1, then the operand of the first dimension is the number of dimension members of the other dimensions in the multidimensional form.
  • Type 3 If the number of other dimensions after the first dimension in the M dimensions is 1, then the operand of the first dimension is the product of the number of dimension members of each of the other dimensions in the multidimensional form.
  • client 100 When client 100 receives the query results transmitted by database management system 200, it can determine the index value of a dimension member corresponding to the target row number (which can be any row in the multidimensional form) under the first dimension based on the operands of the first dimension in the query results and the following decompression algorithm:
  • the order relationship of the dimension members under the first dimension in the multidimensional form is obtained by querying the member metadata based on the index value, and the first dimension member corresponding to the target row number under the first dimension can be determined.
  • the row structure corresponds to three dimensions: year, product, and subject.
  • Their order in the multidimensional form is year ⁇ product ⁇ subject.
  • the multidimensional form associates the two dimension members 2015 and 2016 under the year dimension (which can be some or all of the dimension members under the year dimension), with an order of 2015 ⁇ 2016, which can be represented by the array [2015, 2016], where the index of 2015 is 0 and the index of 2016 is 1.
  • the multidimensional form also associates the three dimension members A, B, and C under the product dimension, with an order of product A ⁇ product B ⁇ product C, which can be represented by the array [product A, product B, product C], where the index of product A is 0, the index of product B is 1, and the index of product C is 2.
  • the multidimensional form only associates the sales volume dimension member under the subject dimension.
  • the number of operands for each dimension of the row structure can be determined as follows:
  • the operand count for the subject dimension is 1;
  • the dimension members corresponding to other rows under each dimension can be determined in the same way as described above, which will not be elaborated on here.
  • the operands of the second dimension fall into the following categories:
  • Type 4 If the number of other dimensions after the second dimension in the N dimensions is 0, then the number of operations for the second dimension is 1.
  • Type 5 If the number of other dimensions following the second dimension in the N dimensions is 1, then the operand of the second dimension is the number of dimension members of the other dimensions in the multidimensional form.
  • Type 6 If the number of other dimensions after the second dimension in N dimensions is 1, then the operand of the second dimension is the product of the number of dimension members of each of the other dimensions in the multidimensional form.
  • client 100 can determine the index value of a dimension member corresponding to the target column number (which can be any column in the multidimensional form) under the second dimension using the following decompression algorithm:
  • the index value of the target row corresponding to a dimension member in the second dimension (target column number / second dimension operand) % the number of dimension members in the second dimension associated with the multidimensional form.
  • the order of the second-dimensional members in the multidimensional form given in the member metadata can be queried based on the index value to determine the second-dimensional member corresponding to the target column number in the second dimension.
  • the column structure of the multidimensional form corresponds to the region dimension.
  • the column structure corresponds to the two dimension members, Region 1 and Region 2, under the region dimension.
  • Their order in the multidimensional form is Region 1 ⁇ Region 2, which can be represented by the array [Region 1, Region 2].
  • the index value of Region 1 is 0, and the index value of Region B is 1.
  • the operand of the region dimension can be determined to be 1.
  • the defined information includes the order of the M dimensions corresponding to the row structure of the multidimensional form in the multidimensional form, the order of the N dimensions corresponding to the column structure of the multidimensional form in the multidimensional form, the order of the dimension members under each dimension corresponding to the row structure in the multidimensional form, the order of the dimension members under each dimension corresponding to the column structure in the multidimensional form, and the number of operations for each of the M and N dimensions.
  • the second implementation does not carry the operands for each dimension in its member metadata. However, it adds the order relationships of the M dimensions and N dimensions in the multidimensional form. As mentioned earlier, the operands for each dimension can be calculated based on the order relationships. Therefore, in the second implementation, when client 100 receives the query results from database management system 200, if client 100 wants to determine which dimension member under the first target dimension corresponds to the target row number in the multidimensional form, it can first calculate the operands of the first target dimension based on the aforementioned order relationships of the M dimensions, and then determine which dimension member under the first target dimension corresponds to the target row based on the operands of the first target dimension (the determination process is the same as described in the first implementation and will not be repeated here).
  • client 100 wants to determine which dimension member under the second target dimension corresponds to the target column in the multidimensional form, it can first calculate the operand of the second target dimension based on the order relationship of the above N dimensions in the multidimensional form, and then determine which dimension member under the second target dimension corresponds to the target column based on the operand of the second target dimension (the determination process is the same as described in the first implementation, and will not be repeated here).
  • the query results may also include basic information of the members of each dimension associated with the multidimensional form.
  • the basic information of the dimension members includes the ID (used to uniquely identify the corresponding dimension member), name, attributes, etc.
  • the query results also include style metadata.
  • Style metadata indicates the style used by the client when displaying multiple values in a multidimensional form.
  • style metadata may include the width and height of the cell, the number of decimal places in the value within the cell, whether the font is bold, the background color, the alignment, and so on.
  • style metadata given in this example is only illustrative and does not constitute a specific limitation.
  • style metadata may include more or fewer descriptions of the style of the cells containing the values.
  • Style metadata can indicate the style of some or all cells in a multidimensional form. These cells uniformly reference this style metadata for cell style rendering. This eliminates the need to specify the style of each cell containing each value in the query results, helping to reduce the amount of data transmitted and improving the form rendering performance of the client.
  • Sending module 230 Used to transmit the query results to the client 100.
  • Receiving module 120 Used to receive query results transmitted from the database management system 200.
  • Processing module 130 Used to parse the obtained query results, and then instruct the interaction module 140 to render and display the multidimensional form based on the parsed content.
  • the receiving module 120 in client 100 receives the query result sent by the database management system 200, it sends the query result to the processing module 130 for parsing.
  • the processing module 130 determines the number of rows and columns of the multidimensional form based on the query result, and then uses the values from the cell value array in the query result to sequentially fill multiple cells of the corresponding number of rows and columns, thus achieving fast rendering and display of the multidimensional form.
  • client 100 needs to determine the dimension member corresponding to a certain value on the multidimensional form, the processing module 130 in client 100 can determine it based on the member metadata and row/column metadata in the query result.
  • client 100 For example, suppose client 100 successfully displays a multidimensional form on client 100 by parsing the query results. Then, the user performs an operation on the interaction module 140 of client 100 to request to view the dimension member corresponding to a certain value in the multidimensional form. Client 100 can determine the dimension member corresponding to the cell based on the member metadata and row and column metadata in the query results (the specific determination method can be referred to the previous introduction), and then prompt the user with the dimension member corresponding to the value.
  • Client 100 can determine the corresponding dimension member based on the member metadata and row/column metadata in the query results (the specific determination method can be found above). It then sends the determined dimension member information and the modified value to the database management system 200. The data management system, based on the received dimension member information, saves the modified value to the corresponding location of that dimension member in the multidimensional database 300. After saving, the database management system 200 can also send a save success message to client 100 to indicate that the modified value has been successfully saved to the multidimensional database 300.
  • Interaction Module 140 This module displays the multidimensional form and facilitates human-computer interaction. Users can specify the dimensions and members associated with the multidimensional form, as well as the order of these dimensions, through the interaction module 140. The specific functions of the interaction module 140 are detailed above and will not be repeated here.
  • the client 100 and database management system 200 in Figure 1 are only exemplarily divided into the functional modules described above based on their functions.
  • the client 100 and database management system 200 in Figure 1 can contain more or fewer modules.
  • one of the modules mentioned above can be split into multiple functional modules, or two or more modules in the client 100/database management system 200 can be merged into one functional module.
  • Other functional modules can also be added to the client 100 and database management system 200.
  • the sending module 110, receiving module 120, processing module 130, interaction module 140, receiving module 210, processing module 220, and sending module 230 can all be implemented in software or in hardware.
  • the implementation method of processing module 220 will be described below.
  • the implementation methods of other modules can refer to the implementation method of processing module 220.
  • processing module 220 may include code running on a compute instance.
  • the compute instance may include at least one of a physical host (compute device), a virtual machine, or a container. Further, there may be one or more compute instances.
  • processing module 220 may include code running on multiple hosts/virtual machines/containers. It should be noted that the multiple hosts/virtual machines/containers used to run the code may be distributed within the same region or in different regions. Further, the multiple hosts/virtual machines/containers used to run the code may be distributed within the same availability zone (AZ) or in different AZs, each AZ comprising one or more geographically proximate data centers. Typically, a region may include multiple AZs.
  • AZ availability zone
  • the multiple hosts/virtual machines/containers used to run the code may be distributed within the same virtual private cloud (VPC) or in multiple VPCs.
  • VPC virtual private cloud
  • a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC. The interconnection between VPCs is achieved through the communication gateway.
  • processing module 220 may include at least one computing device, such as a server.
  • processing module 220 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field-programmable gate array
  • GAL generic array logic
  • the processing module 220 includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, the processing module 220 can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the processing module 220 can be distributed within the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
  • FIG. 6 is a flowchart of a data processing method provided in this application, including the following steps S601 to S606.
  • Client 100 sends a query request to Database Management System 200.
  • the query request is used to instruct data query processing for the multidimensional forms associated with the multidimensional database 300.
  • the database management system 200 receives the query request sent by the client 100.
  • Database Management System 200 determines the multiple dimension members associated with the multidimensional form based on the query request.
  • the aforementioned multiple dimension members belong to multiple dimensions in the multidimensional database 300.
  • Database Management System 200 determines data and location information based on multiple dimensions of members.
  • the data consists of multiple values corresponding to multiple dimension members in the multidimensional database 300.
  • the location information is used to indicate the row and column positions of these multiple values in the multidimensional form and the member corresponding to each value among the multiple dimension members.
  • the database management system 200 first requests the multidimensional database 300 to retrieve the multiple values corresponding to the multiple dimension members in the multidimensional database 300. Then, the multidimensional database 300 responds to the request and sends the multiple values back to the database management system 200.
  • the database management system 200 can directly send information (such as ID or name) of multiple dimension members to the multidimensional database 300. Then, the multidimensional database 300 extracts the corresponding values of the multiple dimension members in the multidimensional database 300 based on the received information, and then returns the multiple values to the database management system 200.
  • information such as ID or name
  • the multidimensional form in Figure 2 is associated with eight dimension members.
  • the database management system 200 can send the IDs of these eight dimension members to the multidimensional database 300, which is equivalent to extending the data query scope to the multidimensional database 300. Then, based on the IDs of these eight dimension members, the multidimensional database 300 extracts the corresponding values of these eight dimension members in the multidimensional database 300 and returns the extracted values to the database management system 200.
  • the database management system 200 may first calculate the member tuple for each of the multiple values, and then send the member tuple corresponding to each value to the multidimensional database 300.
  • the multidimensional database 300 extracts the value at the corresponding position in the multidimensional database 300, which is the value corresponding to the member tuple, and then returns the value and the member tuple to the database management system 200.
  • the database management system 200 can use the Cartesian product algorithm to calculate the member tuples for each of the multiple values. For details, please refer to the previous description; it will not be repeated here. Then, the database management system 200 can send the member tuple of each value to the multidimensional database 300 to request the value corresponding to each member tuple. For any received member tuple, the multidimensional database 300 can extract a value from the corresponding position of that member tuple in the multidimensional database 300, and then return that value along with the member tuple to the database management system 200.
  • the database management system 200 When the database management system 200 obtains multiple values from the multidimensional database 300, it can fill each value into a cell in the multidimensional form that corresponds to the same member tuple, and then use the row and column position of the cell in the multidimensional form as the position information of the value.
  • the database management system 200 has obtained 12 values from the multidimensional database 300, one of which is 100.
  • the member tuples for this value include 2015, Product A, Sales Volume, and Region 1. Since the cell in row 0, column 0 of the multidimensional form also corresponds to this member tuple, the database management system 200 can fill this value into that cell and use the row and column position of that cell in the multidimensional form as the row and column position of the value, i.e., row 0, column 0. It can be understood that other values besides the 12 can also be filled into corresponding cells and their row and column positions determined in a similar way; this will not be discussed further here.
  • the multidimensional form shown in Figure 3 can be obtained, and the position information can be determined.
  • the position information is used to indicate the row and column position of each of the 12 values and the member tuple of each value (i.e., the member corresponding to each value in the multiple dimensions associated with multiple forms).
  • the database management system 200 converts the data into an array and compresses the location information to obtain compressed information.
  • the data consists of multiple values corresponding to various dimensions in the multidimensional database 300. These values can be written into an array according to their order in the multidimensional form. For details on converting the obtained values into an array, please refer to the previous explanation; it will not be repeated here.
  • Location information is used to indicate the row and column positions of multiple values in a multidimensional form and the member corresponding to each value among multiple dimensions.
  • the database management system 200 can first determine the correspondence between different row numbers in the multidimensional form and multiple dimension members based on the location information, and then generate compressed information to indicate this correspondence.
  • the database management system 200 when it receives the multidimensional form in Figure 3, it can determine the location information.
  • This location information indicates the row and column positions of the 12 values and the corresponding member of each value among multiple dimension members. Then, the database management system 200 can determine the dimension members corresponding to each row number in the multidimensional form based on the location information.
  • the dimension members corresponding to row number 0 include 2015, product A, and sales volume; row number 1 includes 2015, product B, and sales volume; row number 2 includes 2015, product C, and sales volume; row number 3 includes 2016, product A, and sales volume; row number 4 includes 2016, product B, and sales volume; and row number 5 includes 2016, product C, and sales volume.
  • the database management system 200 can generate compressed information based on the previously determined correspondence between the 6 row numbers and dimension members.
  • the compressed information is used to indicate the above correspondence.
  • the compressed information includes the above correspondence.
  • the compressed information includes the target row number, the operands corresponding to the first dimension, and the order relationship between members belonging to the first dimension among multiple dimension members associated with the multidimensional form.
  • the first dimension is one of the multiple dimensions associated with the multidimensional form (it can be any dimension associated with a row structure)
  • the target row number is any row number in the multidimensional form
  • the target row number corresponds to a dimension member under the first dimension (denoted as the first dimension member)
  • the index value of the first dimension member in the above order relationship is equal to the remainder obtained by dividing the first value by the number of members belonging to the first dimension among the multiple dimension members
  • the first value is the quotient obtained by dividing the target row number by the operands of the first dimension.
  • the database management system 200 can also determine the correspondence between different column numbers in the multidimensional form and multiple dimension members associated with the multidimensional form based on the location information, and then carry the correspondence in the compressed information, or generate information in the compressed information to indicate the correspondence.
  • the database management system 200 when the database management system 200 receives the multidimensional form in Figure 3, it can determine the location information. This location information indicates the row and column positions of the 12 values and the member corresponding to each value among multiple dimension members. Then, the database management system 200 can determine the dimension member corresponding to each column number in the multidimensional form based on the location information. For example, column number 0 corresponds to region 1, and column number 2 corresponds to region 2. At this point, the database management system 200 can directly include this correspondence in the compressed information, or generate information to indicate this correspondence.
  • This information includes the target column number, the operands corresponding to the second dimension, and the order relationship between members belonging to the second dimension among the multiple dimension members associated with the multidimensional form.
  • the second dimension is one of the multiple dimensions associated with the multidimensional form (it can be any dimension in the column structure)
  • the target column number is any column number in the multidimensional form
  • the target column number corresponds to a dimension member under the second dimension (denoted as the second dimension member)
  • the index value of the second dimension member in the above order relationship is equal to the remainder obtained by dividing the second value by the number of members belonging to the second dimension among the multiple dimension members
  • the second value is the quotient obtained by dividing the target column number by the operands of the second dimension.
  • the compression information also includes a row number array, which contains different row numbers from the multidimensional form.
  • the length of the row number array is less than or equal to the product of the number of members in each dimension associated with the multidimensional form, and the length of the row number array is less than or equal to the product of the number of members in each dimension corresponding to the row structure of the multidimensional form.
  • the length of the row number array is less than the product of the number of members in each dimension corresponding to the row structure of the multidimensional form, thereby reducing the amount of data transmitted to the client 100. If one or more rows in the multidimensional form are not cleared, the length of the row number array is equal to the product of the number of members in each dimension corresponding to the row structure of the multidimensional form.
  • the compressed information may also include a column number array, which includes the different column numbers in the multidimensional form.
  • the length of the column number array is less than or equal to the product of the number of members in each dimension corresponding to the column structure of the multidimensional form. As described above, if one or more columns in the multidimensional form are cleared, the length of the column number array is less than the product of the number of members in each dimension corresponding to the column structure of the multidimensional form. If one or more rows in the multidimensional form are not cleared, the length of the column number array is equal to the product of the number of members in each dimension corresponding to the column structure of the multidimensional form.
  • the database management system 200 transmits query results to the client 100.
  • the query results include arrays and compressed information.
  • the query results may also include style metadata, which indicates the style used when the client displays multiple values.
  • style metadata indicates the style used when the client displays multiple values.
  • the query results also include status information, which indicates the status of multiple values in the multidimensional database 300.
  • Status includes writable and read-only states. Status information can be represented as an array of cell statuses. For details on cell value status arrays, please refer to the previous section; they will not be repeated here.
  • S606 and Client 100 display multidimensional forms based on query results.
  • the database management system 200 first determines the multiple dimension members associated with the multidimensional form based on the query results sent by the client 100. Then, based on these multiple dimension members, it determines the data and location information.
  • the data consists of multiple values corresponding to the multiple dimension members in the multidimensional database 300.
  • the location information indicates the row and column positions of the multiple values in the multidimensional form and the member corresponding to each value among the aforementioned multiple dimension members.
  • the data is then converted into an array, and the location information is compressed to obtain compressed information. Finally, the array and compressed information are carried in the query results for transmission to the client 100.
  • the method provided in this application compresses the location information and then sends the compressed information and the generated array (including the aforementioned values) to client 100. This reduces the overall data transmission volume from database management system 200 to client 100, thereby shortening data transmission time.
  • the array is filled with the values according to their order in the multidimensional form. When client 100 receives this array, it can directly load these values into the multidimensional form displayed on client 100 according to the order of the values in the array, improving the form display speed on client 100 and thus enhancing user experience.
  • This application also provides a data processing apparatus, which includes a receiving module 210, a processing module 220, and a transmitting module 230 as shown in FIG1.
  • This apparatus is specifically used to execute the method steps of the database management system 200 shown in FIG6.
  • FIG6 For details regarding the specific functions and hardware/software implementation of the receiving module 210, processing module 220, and transmitting module 230, please refer to the relevant description in FIG1, which will not be repeated here.
  • this application also provides a computing device 700, including a bus 702, a processor 704, a memory 706, and a communication interface 708.
  • the processor 704, the memory 706, and the communication interface 708 communicate with each other via the bus 702.
  • the computing device 700 may be a server, a laptop computer, a desktop computer, an edge device, etc., and this application does not specifically limit the number of processors and memories in the computing device 700.
  • Bus 702 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 7, but this does not imply that there is only one bus or one type of bus. Bus 702 can include pathways for transmitting information between various components of computing device 700 (e.g., memory 706, processor 704, communication interface 708).
  • PCI Peripheral Component Interconnect
  • EISA Extended Industry Standard Architecture
  • Processor 704 may include any one or more of the following processors: central processing unit (CPU), graphics processing unit (GPU), microprocessor (MP), or digital signal processor (DSP).
  • CPU central processing unit
  • GPU graphics processing unit
  • MP microprocessor
  • DSP digital signal processor
  • the memory 706 may include volatile memory, such as random access memory (RAM).
  • RAM random access memory
  • the processor 704 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
  • ROM read-only memory
  • HDD hard disk drive
  • SSD solid state drive
  • the memory 706 stores executable program code.
  • the processor 704 executes the executable program code to implement the functions of the receiving module 210, processing module 220 and sending module 230 in FIG1, respectively, thereby implementing the method steps of the database management system 200 in FIG6 of this application.
  • the communication interface 708 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 700 and other devices or communication networks.
  • transceiver modules such as, but not limited to, network interface cards and transceivers
  • the computing device 700 may correspond to the database management system 200 or client 100 shown in FIG1 of this application, and may correspond to the corresponding subject in executing the data processing methods shown in FIG2 to FIG6 of this application.
  • Each module of the computing device 700 is for implementing the corresponding process of each method in FIG2 to FIG6. For the sake of brevity, it will not be described in detail here.
  • the computing device 700 may also include a chip system, which includes a processor and a power supply circuit.
  • the power supply circuit supplies power to the processor, and the processor executes the operation steps corresponding to the data processing method.
  • the processor can be implemented using a CPU, or it can be implemented using computing devices or AI chips such as GPUs, DPUs, NPUs, XPUs, SoCs, offloading cards, or accelerator cards.
  • the computing device 700 may include multiple types of processors 704, meaning the computing device 700 is a heterogeneous device.
  • the computing device 700 may include a CPU and a GPU, and the operation steps corresponding to the data processing method can be executed by at least one of the processors 704.
  • the processors 704. For the sake of brevity, further details will not be provided here.
  • the computing device cluster includes at least one computing device.
  • the computing device can be a server, such as a central server, an edge server, or a local server in a local data center.
  • the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
  • the computing device cluster includes at least one computing device 700.
  • the memory 706 of one or more computing devices 700 in the computing device cluster may store the same instructions for executing the methods on the database management system 200 side of Figure 6.
  • the memory 706 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing the methods on the database management system 200 side of FIG6.
  • a combination of one or more computing devices 700 can jointly execute instructions for the methods on the database management system 200 side of FIG6.
  • the memory 706 in different computing devices 700 within the computing device cluster can store different instructions, which are used to execute some functions of the database management system 200 in Figure 1. That is, the instructions stored in the memory 706 of different computing devices 700 can implement the functions of one or more modules among the receiving module 210, processing module 220, and sending module 230.
  • one or more computing devices in a computing device cluster can be connected via a network.
  • This network can be a wide area network (WAN) or a local area network (LAN), etc.
  • Figure 9 illustrates one possible implementation.
  • two computing devices 700A and 700B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device.
  • the memory 706 in computing device 700A stores instructions for performing the functions of the receiving module 210 and the transmitting module 230.
  • the memory 706 in computing device 700B stores instructions for performing the functions of the processing module 220.
  • computing device 700A shown in Figure 9 can also be performed by multiple computing devices 700.
  • the function of computing device 700B can also be performed by multiple computing devices 700.
  • This application also provides another computing device cluster.
  • the connection relationship between the computing devices in this computing device cluster can be similar to the connection method of the computing device cluster shown in FIG9. The difference is that the memory 706 in one or more computing devices 700 in this computing device cluster can store the same instructions for executing the methods on the database management system 200 side of FIG6.
  • the memory 706 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing the methods that implement the database management system 200 side of FIG6.
  • a combination of one or more computing devices 700 can jointly execute instructions for implementing the method steps of the database management system 200 side of FIG6.
  • the computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media.
  • the available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive).
  • the computer-readable storage medium includes instructions that instruct a cluster of computing devices (including at least one computing device) to perform the method steps of the database management system 200 side of FIG. 6.
  • the computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any available medium.
  • the computer program product When the computer program product is run on at least one computing device, it causes the at least one computing device to perform the method steps of the database management system 200 side of FIG6.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

La présente demande concerne un procédé et un appareil de traitement de données, un dispositif informatique et un support de stockage. Le procédé comprend les étapes suivantes : un système de gestion de base de données reçoit une demande d'interrogation envoyée par un client, détermine, sur la base de la demande d'interrogation, une pluralité d'éléments de dimension associés à une forme multidimensionnelle, détermine des données et des informations de position sur la base de la pluralité d'éléments de dimension, puis convertit les données en un réseau, compresse les informations de position pour obtenir des informations compressées, et transmet finalement un résultat d'interrogation à un client, le résultat d'interrogation comprenant le réseau et les informations compressées. La demande d'interrogation est utilisée pour indiquer un traitement d'interrogation de données d'une forme multidimensionnelle associée à une base de données multidimensionnelle, la pluralité d'éléments de dimension appartenant à une pluralité de dimensions dans la base de données multidimensionnelle, les données étant une pluralité de valeurs correspondant à la pluralité d'éléments de dimension dans la base de données multidimensionnelle, et les informations de position étant utilisées pour indiquer des positions de rangée et de colonne de la pluralité de valeurs dans la forme multidimensionnelle et l'élément correspondant de chaque valeur parmi la pluralité d'éléments de dimension. Le procédé de la présente demande peut réduire la quantité de transmission de données et la durée de transmission.
PCT/CN2025/085794 2024-04-30 2025-03-28 Procédé et appareil de traitement de données, dispositif informatique, et support de stockage Pending WO2025228033A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410547898.8 2024-04-30
CN202410547898.8A CN120873006A (zh) 2024-04-30 2024-04-30 数据处理方法、装置、计算设备及存储介质

Publications (1)

Publication Number Publication Date
WO2025228033A1 true WO2025228033A1 (fr) 2025-11-06

Family

ID=97459889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/085794 Pending WO2025228033A1 (fr) 2024-04-30 2025-03-28 Procédé et appareil de traitement de données, dispositif informatique, et support de stockage

Country Status (2)

Country Link
CN (1) CN120873006A (fr)
WO (1) WO2025228033A1 (fr)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060007731A1 (en) * 2004-07-09 2006-01-12 Microsoft Corporation Database query tools
US20080114793A1 (en) * 2006-11-09 2008-05-15 Cognos Incorporated Compression of multidimensional datasets
CN104361118A (zh) * 2014-12-01 2015-02-18 中国人民大学 一种适应协处理器的混合olap查询处理方法
CN112632061A (zh) * 2020-12-03 2021-04-09 海腾保险代理有限公司 一种多维数据存储方法及装置
CN114138821A (zh) * 2022-01-12 2022-03-04 广州思迈特软件有限公司 一种数据库查询方法、系统和电子设备
CN117648385A (zh) * 2023-11-24 2024-03-05 哈尔滨工业大学 适用于多维数据库的内外存压缩及元组更新插入方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060007731A1 (en) * 2004-07-09 2006-01-12 Microsoft Corporation Database query tools
US20080114793A1 (en) * 2006-11-09 2008-05-15 Cognos Incorporated Compression of multidimensional datasets
CN104361118A (zh) * 2014-12-01 2015-02-18 中国人民大学 一种适应协处理器的混合olap查询处理方法
CN112632061A (zh) * 2020-12-03 2021-04-09 海腾保险代理有限公司 一种多维数据存储方法及装置
CN114138821A (zh) * 2022-01-12 2022-03-04 广州思迈特软件有限公司 一种数据库查询方法、系统和电子设备
CN117648385A (zh) * 2023-11-24 2024-03-05 哈尔滨工业大学 适用于多维数据库的内外存压缩及元组更新插入方法

Also Published As

Publication number Publication date
CN120873006A (zh) 2025-10-31

Similar Documents

Publication Publication Date Title
US10558659B2 (en) Techniques for dictionary based join and aggregation
CN108519967B (zh) 图表可视化方法、装置、终端和存储介质
US9418101B2 (en) Query optimization
JP2021170409A (ja) ラベルデータ処理方法、装置、機器及び記憶媒体
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
CN116783588A (zh) 用于大元数据管理的列技术
US20240393928A1 (en) Generating aggregate data geospatial grid cells for encoding in vector tiles
US20260010548A1 (en) Data management method and computing device
US20220374406A1 (en) KV Database Configuration Method, Query Method, Device, and Storage Medium
US11030177B1 (en) Selectively scanning portions of a multidimensional index for processing queries
CN116257180A (zh) 数据访问方法及装置
EP4621593A1 (fr) Procédés et appareils de stockage de données pour base de données de graphes
WO2025228033A1 (fr) Procédé et appareil de traitement de données, dispositif informatique, et support de stockage
WO2023220973A1 (fr) Procédé et appareil de traitement de données, et dispositif électronique et support de stockage lisible par ordinateur
CN117255992A (zh) 无模式数据的高效存储和查询
CN111767279A (zh) 数据合并方法和装置
WO2025222913A1 (fr) Procédé et appareil d'interrogation de données, dispositif informatique et support de stockage
US8171046B1 (en) Converting CQL query results into user-controllable objects
CN117609386A (zh) 数据分片存储方法、装置、设备及存储介质
CN110427377A (zh) 数据处理方法、装置、设备和存储介质
CN117389960A (zh) 文件解析方法、装置、设备、存储介质和程序产品
CN111309704B (zh) 数据库操作方法和数据库操作系统
CN118069024A (zh) 数据存储方法、装置和存储介质及电子设备
CN121051120A (zh) 一种数据写入方法及相关装置
CN120849662A (zh) 一种数据显示方法、系统及相关设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25797209

Country of ref document: EP

Kind code of ref document: A1