Data storage method and apparatus, and readable storage medium

WO2026175201A1PCT designated stage Publication Date: 2026-08-27HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2026/077539
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-24
Filing Date
2026-02-06
Publication Date
2026-08-27

Smart Images

  • Figure CN2026077539_27082026_PF_FP_ABST
    Figure CN2026077539_27082026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are a data storage method and apparatus, and a readable storage medium. The method is applied to a cloud management platform for managing infrastructure that provides cloud services, wherein a multi-dimensional database is deployed in the infrastructure, the multi-dimensional database comprises a plurality of dimensions, the minimum data unit is a cell, one cell corresponds to a plurality of member identifiers, and each of the plurality of member identifiers corresponds to one field in one dimension. The method comprises: receiving state setting information that is sent by a user and comprises first member information and first state information; on the basis of a first member identifier included in the first member information, determining a first cell area; and on the basis of the first state information, setting the states of cells in the first cell area, wherein the state may be an unlocked state or a locked state. In the method, by means of state setting information, a cell area is determined and the states of corresponding cells are set, such that a cell state setting operation can be simplified, thereby improving the state setting efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

A data storage method, apparatus, and readable storage medium

[0001] This application claims priority to Chinese Patent Application No. 202510206446.8, filed on February 24, 2025, with the China National Intellectual Property Administration, entitled “A Data Storage Method, Apparatus and Readable Storage Medium”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of multidimensional databases, and more particularly to a data storage method, apparatus, and readable storage medium. Background Technology

[0003] For security or computational purposes, data regions in a multidimensional database require frequent state setting operations to ensure that the data within the target data region is in a state that allows modification or prevents modification. These state setting operations can include data locking or validity control operations, and the target data region is typically a collection of multiple regions.

[0004] Currently, the common method for setting cell states in a multidimensional database involves converting the target data region in a multidimensional database into a two-dimensional region, then repeatedly selecting consecutive target regions within the two-dimensional region and setting the cell states within those regions. Here, a cell is the smallest data unit in a multidimensional database, and each cell corresponds to a member of multiple dimensions. Dimensions are the categorical attributes of the data, and members are the specific values ​​of the dimensions. This state-setting operation requires converting the multidimensional data region into a two-dimensional region before selecting different regions sequentially and setting the cell states of the selected cells individually. This process is complex and inefficient. Summary of the Invention

[0005] This application provides a data storage method, apparatus, and readable storage medium. By receiving status setting information sent by a user, the method determines the selected cell range based on the member information included in the status setting information, and determines the state of each cell within the selected cell range based on the status information included in the status setting information. After determining the selected cell range and the state of the corresponding cells, the method sets the cell state. This process does not require converting the target area in the multidimensional database into a two-dimensional area to set the cell state, simplifying the process of setting the cell state in a multidimensional database, making the operation simple, and improving the efficiency of cell state setting and storage.

[0006] Firstly, this application provides a data storage method applied to a cloud management platform. The cloud management platform manages infrastructure providing cloud services, including database services. A multidimensional database is deployed in the infrastructure, comprising multiple dimensions. The smallest data unit in the multidimensional database is a cell, and one cell corresponds to multiple member identifiers. Each member identifier corresponds to a field in one dimension. The method includes: receiving status setting information sent by a user through a status setting interface, including first member information and first status information. The first member information includes at least one first member identifier, used to indicate a selected first cell region. The first cell region includes one or more cells. The first status information indicates the status of each cell in the first cell region, which can be a locked state or an unlocked state. The status of each cell in the selected first cell region indicated by the first member information is set to the status indicated by the first status information.

[0007] In the above process, the state setting information can be represented in the form of member expressions. Based on the received state setting information, the server can determine the target cell range in the multidimensional database and the state setting of the corresponding cells in the target cell range, and directly set the state of the cells according to the above content. Compared with the current method of setting the state of cells, it is not necessary to first convert the data range in the multidimensional database into a two-dimensional range before selecting a continuous cell range in the two-dimensional range and setting the state of the cells in that range. This simplifies the process of setting the state of cells and improves the efficiency of state setting.

[0008] For example, the first member information includes a parent member identifier and an indicator identifier, wherein the indicator identifier is used to indicate the selection of the cell range corresponding to the child member identifier corresponding to the parent member identifier, the parent member identifier corresponds to the first range, the child member identifier corresponds to the second range, and the value of the first range is equal to the sum of the values ​​of the second range.

[0009] In the above process, the indicator can be a leaf function or other possible indicators, which are not specifically limited in this application. Compared with the current method of selecting a cell range in a two-dimensional area, the above method of indicating a cell range based on member indicators and indicator indicators can simply indicate the relationship between cells, and the description method of setting information has better extensibility and can better represent the characteristics of cells.

[0010] For example, the selected cell range can be a contiguous cell range or a non-contiguous cell range.

[0011] In the above process, the status setting information can include multiple sets of first member information, each set indicating a selected cell range. These multiple cell ranges can be contiguous, non-contiguous, or a combination of both. Compared to the current method of repeatedly selecting a contiguous cell range within a two-dimensional region, the data storage method provided in this application allows for the simultaneous selection of multiple non-contiguous cell ranges, improving the efficiency of cell range determination. Furthermore, it eliminates the need to convert regions in a multidimensional database to two-dimensional regions, simplifying the operation.

[0012] For example, the method further includes: recording the first member identifier and the first state identifier corresponding to each first member identifier in a state list according to the first member identifier and the first state information in the state setting information, wherein the first state identifier is used to indicate that the state of one or more cells corresponding to the first member identifier is the state indicated by the first state information.

[0013] For example, in a case where the state setting information further includes second member information and second state information, wherein the second member information is used to indicate a second cell region by at least one second member identifier, and the second state information is used for the state of each cell in the second cell region, the method further includes: determining a third member identifier based on at least one first member identifier and at least one second member identifier in the state setting information, wherein the third member identifier is a member identifier that exists in both the first member identifier and the second member identifier; and recording, in the state list, the first member identifier excluding the third member identifier and the first member identifier corresponding to each of the first member identifiers, excluding the third member identifier, and the first member identifier in the state setting information. The status identifier records the second status identifier corresponding to each of the second member identifier and the third member identifier, excluding the third member identifier; wherein, the first status identifier is used to indicate that the status of one or more cells corresponding to a first member identifier is the status indicated by the first status information, the second status identifier is used to indicate that the status of one or more cells corresponding to a second member identifier is the status indicated by the second status information, and the third status identifier includes the first status identifier and the second status identifier, and is used to indicate that the status of one or more cells corresponding to a third member identifier is the status indicated by the second status information. The second member information and the second status information are entered in the status setting information in a later order than the first member information and the first status information.

[0014] In the above process, the first and second status identifiers can be represented by numerical codes, alphanumeric codes, or other possible forms. When the third status identifier includes multiple status identifiers, the status of the specified cell is determined according to the status identifier with higher priority, that is, according to the status identifier corresponding to the status information entered later in the input order. Storing the set cell statuses as a status list can occupy less storage space compared to the current method of setting and storing cell statuses. The status list can also be used in subsequent cell status queries, which can improve the efficiency of status query.

[0015] For example, the specific process of performing a data access operation based on the status of the queried cell is as follows: A data access request sent by the user is received. The data access request indicates one or more selected cells through a fourth member identifier, and the data access request is used to instruct the selected cells to perform a data read operation or a data write operation. Then, based on the data access request and the status list, the fourth status identifier corresponding to the fourth member identifier is found from the status list. Based on the fourth status identifier, the status of the one or more selected cells is determined. Then, if the status is unlocked, data in the cell can be read or rewritten. After the operation is completed, a first response message is sent to the user, indicating that the data read operation or the data write operation is complete. Alternatively, if the status is locked, only data in the cell can be queried. After the data access operation is completed or fails, a second response message is sent to the user, indicating that the data read operation or the data write operation failed.

[0016] For example, the specific process of determining the state of one or more selected cells based on the fourth state identifier is as follows: Based on the fourth state identifier, determine a set of state identifiers consisting of state identifiers included in each fourth state identifier; if a set of state identifiers exists and includes multiple state identifiers, determine a target state identifier based on the input order of the multiple state identifiers in the state setting information, and determine the state of one or more selected cells based on the target state identifier, wherein the input order of the target state identifier is later than that of the other state identifiers among the multiple state identifiers; or, if a set of state identifiers exists and includes only one state identifier, determine the state of one or more selected cells based on one state identifier in the set of state identifiers.

[0017] In the above process, a status list is used to determine the status identifier corresponding to each member identifier of the cell to be queried. Since the status identifiers corresponding to each member identifier can be the same or different, a set of status identifiers needs to be determined. The cell status is then determined based on the highest priority status identifier in the set. Compared to the current method of traversing the tree structure of the multidimensional database based on the cell path to determine the cell status, this method can improve the efficiency of cell status query. Furthermore, depending on whether the cell is in different states, it is determined whether the data access operation can be executed, and based on the completion status of the operation, the corresponding response information is sent to the user to ensure the normal completion of the data access operation.

[0018] For example, the method further includes: determining that the state of one or more selected cells is not specified in the absence of a set of state identifiers.

[0019] Secondly, this application provides a data storage device applied to a cloud management platform. The cloud management platform manages infrastructure providing cloud services, including database services. A multidimensional database is deployed in the infrastructure, comprising multiple dimensions. The smallest data unit in the multidimensional database is a cell, and each cell corresponds to multiple member identifiers. Each member identifier corresponds to a field in one dimension. The device includes a receiving unit and a status setting unit. The receiving unit receives status setting information sent by a user device. The status setting information includes first member information and first status information. The first member information is used to indicate a first cell area using at least one first member identifier. The first cell area includes one or more cells. The first status information indicates the status of each cell in the first cell area, which is either unlocked or locked. The status setting unit sets the status of each cell in the first cell area to the status indicated by the first status information.

[0020] For example, the first member information includes a parent member identifier and an indicator identifier, wherein the indicator identifier is used to indicate the cell range corresponding to the child member identifier corresponding to the parent member identifier. The parent member identifier corresponds to the first area, the child member identifier corresponds to the second area, the value of the first area is equal to the sum of the values ​​of the second area, and both the first area and the second area include one or more cells.

[0021] For example, the selected cell range can be a contiguous cell range or a non-contiguous cell range.

[0022] For example, the device further includes a generation unit. The generation unit is configured to record, in a state list, at least one first member identifier and a first state identifier corresponding to each of the at least one first member identifiers in the state setting information, wherein the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information.

[0023] For example, in a case where the state setting information further includes second member information and second state information, wherein the second member information is used to indicate the second cell region by at least one second member identifier, and the second state information is used to indicate the state of each cell in the second cell region, the generation unit is configured to determine a third member identifier based on at least one first member identifier and at least one second member identifier in the state setting information, wherein the third member identifier is a member identifier that exists in both the first member identifier and the second member identifier; and is further configured to record, in the state list, the first member identifier excluding the third member identifier and the corresponding first member identifier in the state setting information, at least one first member identifier, at least one second member identifier, at least one third member identifier, the first state information, and the second state information, the first member identifier and the corresponding first member identifier in the state list. A status identifier is defined as follows: a first status identifier is defined as the second status identifier corresponding to the second member identifier (excluding the third member identifier), and a third status identifier is defined as the third member identifier. The first status identifier is used to indicate that the status of one or more cells corresponding to a first member identifier is the status indicated by the first status information. The second status identifier is used to indicate that the status of one or more cells corresponding to a second member identifier is the status indicated by the second status information. The third status identifier includes the first status identifier and the second status identifier and is used to indicate that the status of one or more cells corresponding to a third member identifier is the status indicated by the second status information. The second member information and the second status information are entered in the status setting information in a later order than the first member information and the first status information.

[0024] For example, the receiving unit is further configured to receive a data access request sent by a user. The data access request includes a fourth member identifier, which is used to indicate one or more selected cells, and the data access request is used to indicate that a data read operation or a data write operation is performed on the one or more selected cells.

[0025] The device further includes a query unit and a sending unit. The query unit is used to search for the fourth status identifier corresponding to the fourth member identifier from the status list; and is also used to determine the status of one or more selected cells based on the fourth status identifier. The sending unit is used to send a first response message to the user when the status is unlocked, the first response message indicating that the data read operation is complete or the data write operation is complete; or, when the status is locked, send a second response message to the user, the second response message indicating that the data read operation failed or the data write operation failed.

[0026] For example, the query unit is specifically used to determine a set of state identifiers composed of state identifiers included in each of the fourth state identifiers based on the fourth state identifier; when a set of state identifiers exists and the set of state identifiers includes multiple state identifiers, the target state identifier is determined according to the input order of the multiple state identifiers in the state setting information, and the state of one or more selected cells is determined according to the target state identifier, wherein the input order of the target state identifier is later than the other state identifiers among the multiple state identifiers excluding the target state identifier; or, when a set of state identifiers exists and the set of state identifiers includes only one state identifier, the state of one or more selected cells is determined according to one state identifier in the set of state identifiers.

[0027] For example, the query unit is also used to: determine that the status of one or more selected cells is not specified when there is no set of status identifiers.

[0028] Thirdly, this application provides a computing device cluster including at least one computing device, the computing device including a processor and a memory, the processor being configured to execute instructions stored in the memory to cause the computing device to perform the data storage method described in the first aspect.

[0029] Fourthly, embodiments of this application provide a computer program product containing instructions that, when executed by a computing device, cause the computing device to implement the data storage method described in the first aspect.

[0030] Fifthly, embodiments of this application provide a computer-readable storage medium including computer program instructions, which, when executed by a computing device, cause the computing device to implement the data storage method described in the first aspect.

[0031] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Attached Figure Description

[0032] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below.

[0033] Figure 1 is a schematic diagram of a data storage system provided in an embodiment of this application;

[0034] Figure 2 is a flowchart of a data storage method provided in an embodiment of this application;

[0035] Figure 3 is a flowchart of a data access operation execution provided in an embodiment of this application;

[0036] Figure 4 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0037] Figure 5 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;

[0038] Figure 6 is a schematic diagram of a structure in which one or more computing devices are connected via a network, according to an embodiment of this application. Detailed Implementation

[0039] The technical solutions of the embodiments of this application will now be described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.

[0040] Currently, in scenarios involving data locking or validity control operations on data in multidimensional databases, it is necessary to convert the data in the target area of ​​the multidimensional database into a two-dimensional table based on the data query scope. For example, the two-dimensional table shown in Table 1 is obtained by converting all data corresponding to the three dimensions of time, department, and subject in the multidimensional database. The time dimension includes parent members such as first quarter and second quarter, and the first quarter includes three leaf members: January, February, and March. Similarly, the second quarter includes three leaf members: April, May, and June. The department dimension includes three leaf members: marketing department, finance department, and development department. The subject dimension includes three leaf members: procurement expenses, marketing expenses, and labor expenses.

[0041] Table 1

[0042] With the aforementioned two-dimensional table displayed on the client, when a user performs a data locking operation, they need to select a cell range within the table, for example, a range consisting of three cells corresponding to the marketing expenses of the finance department in January, February, and March, and set the status of the cells in that range to locked, so that the data in each cell within that range cannot be modified. Then, the user selects another non-contiguous cell range within the table, for example, a range consisting of three cells corresponding to the purchasing expenses of the finance department in January, February, and March, and sets the status of the cells in that range to locked, so that the data in each cell within that range cannot be modified. Finally, the user performs a validity control operation, selecting another cell range within the table, for example, a cell corresponding to the marketing expenses of the finance department in March, and setting the status of the cells in that range to unlock, so that the data in that cell is not included in the aggregate calculation.

[0043] In the process of setting cell status as described above, the server needs to first convert multiple cells in the multidimensional database into a two-dimensional table as shown in Table 1 above. The process is quite complicated. When it is necessary to set cell status for multiple non-contiguous cell areas, the user needs to select and set the status of each cell area in turn, which results in low efficiency in setting cell status.

[0044] To address the aforementioned issues, this application provides a data storage method. This method determines member information and status information included in the setting information based on the received setting information sent by the user device, and sets the status of cells in the selected cell area indicated by the member information based on the status information. This process does not require converting data in a multidimensional database into a two-dimensional table to set the status of cells in the table, thus simplifying the cell status setting process and improving the efficiency of cell status setting and storage. The data storage method provided in this application is applied to the data storage system shown in Figure 1.

[0045] As shown in Figure 1, which is a schematic diagram of a data storage system provided in an embodiment of this application, the system includes a database 110, a cloud management platform 120, and a client 130. The database 110, the cloud management platform 120, and the client 130 are connected by communication, which can be wired or wireless; this application does not impose a specific limitation. The number of databases 110 connected to by the cloud management platform 120 can be one or more; this application does not impose a specific limitation.

[0046] Optionally, the database 110 can be deployed on computing devices, typically across different computing devices, including bare metal servers (BMS), virtual machines, and containers. A BMS refers to a general-purpose physical server, such as an ARM or x86 server; a virtual machine refers to a complete computer system implemented using network functions virtualization (NFV) technology, simulated in software, and running in a completely isolated environment; a container refers to a group of resource-constrained, isolated processes. The database 110 can also be deployed on a cluster of computing devices, which may include multiple of the aforementioned computing devices.

[0047] Optionally, database 110 can be a multidimensional database. A multidimensional database is a database system that stores and manages data using a multidimensional data structure. A multidimensional database includes multiple dimensions, each representing a specific attribute of the data. Each dimension includes at least one member, and each member identifier corresponds to a field within a dimension. The smallest data unit in a multidimensional database is a cell. For example, [January, Finance Department, Marketing Expenses] = 300, where "January" is a member under the time dimension, "Finance Department" is a member under the department dimension, and "Marketing Expenses" is a member under the subject dimension. 300 represents the specific quantitative information corresponding to these three members. The data in the cell is used to support data analysis or calculation, and can be of various types such as numerical or text, which are not specifically limited in this application.

[0048] Optionally, the cloud management platform 120 can be a general-purpose physical server or a virtual machine (VM) implemented based on a general-purpose physical server combined with NFV technology; this application does not specifically limit its scope. The cloud management platform 120 provides an access interface (such as a user interface or API). Users can remotely access the access interface through their user devices, register a cloud account and password on the cloud management platform 120, and log in. Afterward, users can further select and purchase virtual machines of specific specifications on the cloud management platform 120, and remotely log in using the virtual machine's remote login account and password to install and run their applications within the virtual machine. It should be understood that the above examples are for illustrative purposes only and this application does not impose specific limitations.

[0049] Optionally, the cloud management platform 120, upon receiving cell status setting information sent by the user device, determines the selected cell range using the member identifiers included in the setting information, and sets the status of the cells within the cell range according to the status information corresponding to the member information. During the process of setting the cell status, a status list including member identifiers and status identifiers is also generated to store and indicate the status of the cells after setting.

[0050] The cloud management platform 120 is also used to determine the status identifier corresponding to each member identifier based on the pre-generated status list and the member identifier in the data access request after receiving the data access request from the user device, and to determine the status of the queried cell based on the status identifier, so as to determine whether to perform the data access operation.

[0051] Optionally, the client 130 and the cloud management platform 120 can be deployed on different computing devices, or the client 130 can be deployed on a terminal device and the cloud management platform 120 can be deployed on a computing device. When the client 130 and the cloud management platform 120 are deployed on different computing devices, they can be deployed on different computing devices in the same computing device cluster, or on different computing devices in different computing clusters. The specific deployment method can be determined based on the actual application scenario, and this application does not impose any specific limitations.

[0052] Optionally, client 130 includes one or more user devices, which can be deployed on terminal devices or computing devices. Terminal devices include personal computers, smartphones, handheld devices, tablets, mobile laptops, etc., without specific limitations. Computing devices can be BMS, virtual machines, containers, or edge computing devices. For specific descriptions, please refer to the foregoing content, which will not be repeated here.

[0053] Optionally, the client 130 is used to send the cell's status setting information and data access request to the cloud management platform 120, and receive the response information of the data access request sent by the cloud management platform 120.

[0054] It should be understood that the cloud management platform 120 shown in Figure 1 above is only one possible example provided by the embodiments of this application. The system may also include more types and numbers of devices, which are not specifically limited in this application.

[0055] Furthermore, the cloud management platform 120 can be further divided into multiple unit modules. For example, as shown in FIG1, the cloud management platform 120 may include a receiving unit 210 and a status setting unit 220. It should be understood that FIG1 is an exemplary division method, and the cloud management platform 120 may also include more or fewer units. The above units may be merged or split, and this application does not specifically limit this.

[0056] The status setting unit 220 can be a flow control software development kit (SDK), typically provided in software form. It includes a series of interfaces, functions, libraries, documentation, etc., helping developers easily integrate flow control functionality into their applications. Multiple units, such as the receiving unit 210, can also be implemented in software. Furthermore, the receiving unit 210 and the status setting unit 220, among others, can also be implemented in hardware.

[0057] For example, the implementation of the state setting unit 220 will be described below. Similarly, the implementation of the receiving unit 210 and other units can refer to the implementation of the state setting unit 220.

[0058] The state setting unit 220, as an example of a software functional unit, may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the aforementioned computing instance may be one or more. For example, the state setting unit 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 in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0059] As an example of a hardware functional unit, the state setting unit 220 may include at least one computing device, such as a server. Alternatively, the state setting unit 220 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0060] The functions of each unit module in the cloud management platform 120 are explained below.

[0061] The receiving unit 210 is used to receive status setting information sent by the user.

[0062] The status setting information includes first member information and first status information. The first member information includes at least one first member identifier, which indicates a first cell range. All cells in the first cell range have a member identifier that is one of at least one first member identifier. The first status information indicates the status of one or more cells in the first cell range. The cell status can be unlocked or locked.

[0063] Specifically, the status setting information can be represented in the form of member expressions. Compared to the current method of selecting cell ranges in a two-dimensional area, this method can more flexibly indicate the selected cell range and the status of cells corresponding to different cell ranges through specific syntax and member identifiers. For example, the received status setting information is {"locked Area":"['A1','B1',{'C1','C2'}];","excluded Area":"['A2',{'C1','C2'}];"}, where 'A1', 'B1', 'C1', 'C2', and 'A2' are member identifiers used to indicate the two selected cell ranges, "locked Area" is status information used to indicate that the corresponding cell range is in a locked state, and "excluded Area" is also status information, entered later than "locked Area". Combined with "locked Area", it indicates that the corresponding cell range is in an unlocked state.

[0064] In this system, data in unlocked cells can be modified or read, while data in locked cells cannot be modified and is not affected by other data changes or operations, thus ensuring data integrity and accuracy. In addition, locked cells also restrict data reading operations, further enhancing the confidentiality of the data in the cells.

[0065] In one possible implementation, the state setting information can also represent the first member information and the first state information in other possible forms, which this application does not specifically limit. Furthermore, the first member information can be a string or other possible forms. In addition to using letters to represent member identifiers, member identifiers can also be represented by Chinese / English characters with specific meanings, which this application does not specifically limit. Similarly, the first state information can represent different region states in other possible ways, in addition to using characters to represent different region states, which this application does not specifically limit.

[0066] In the above process, the cell range indicated by the first member information can be a continuous cell range or a non-contiguous cell range. Compared with the current method that requires multiple selection operations to select a non-contiguous cell range, the efficiency of determining the selected cell range in this application is higher.

[0067] In one possible implementation, the first member information in the status setting information includes not only a member identifier but also an indicator identifier. This indicator identifier is used to indicate the cell range corresponding to the child member identifier of the parent member identifier. Specifically, the indicator identifier can be the leaf function "LEAVES". For example, in the case where the members corresponding to the time dimension include a two-level relationship of quarters and months, the quarter is the parent member of the month. Specifically, the quarter members include "first quarter", "second quarter", "third quarter" and "fourth quarter", and the months "January", "February" and "March" are child members of "first quarter". The first member information can indicate the cell range corresponding to "January", "February" and "March" through the expression 'first quarter.LEAVES'.

[0068] In one possible implementation, the indicator may also be other possible functions or other indicators of the relationship between cells, which are not specifically limited in this application.

[0069] The status setting unit 220 is used to set the status of each cell in the first cell area to the status indicated by the first status information.

[0070] By using the receiving unit 210 and the status setting unit 220, the selected cell range can be determined by the received member expression, and the status of the cell range can be set according to the status information corresponding to the determined cell range. Compared with the current method of setting the cell status, it is not necessary to convert the target area in the multidimensional database into a two-dimensional table. Furthermore, when multiple non-contiguous cell ranges need to be selected, compared with the current method of selecting contiguous cell ranges multiple times, the status can be determined directly by setting information, thereby simplifying the cell status setting method and improving the efficiency of cell status setting.

[0071] In one possible implementation, the cloud management platform 120 also includes a generation unit 230.

[0072] The generation unit 230 is used to record at least one first member identifier and a first state identifier corresponding to each of the at least one first member identifiers in the state setting information received above, and the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information.

[0073] In the case where the status setting information also includes second member information and second status information, wherein the second member information is used to indicate the second cell region by at least one second member identifier, and the second status information is used to indicate the status of each cell in the second cell region, the generation unit 230 is further configured to determine a third member identifier based on at least one first member identifier and at least one second member identifier in the status setting information, wherein the third member identifier is a member identifier that exists in both the first member identifier and the second member identifier; and is further configured to record, in the status list, the first member identifier excluding the third member identifier and the corresponding first member identifier, respectively, based on at least one first member identifier, at least one second member identifier, at least one third member identifier, the first status information, and the second status information in the status setting information. A status identifier is defined as follows: a first status identifier is defined as the second status identifier corresponding to the second member identifier (excluding the third member identifier), and a third status identifier is defined as the third member identifier. The first status identifier is used to indicate that the status of one or more cells corresponding to a first member identifier is the status indicated by the first status information. The second status identifier is used to indicate that the status of one or more cells corresponding to a second member identifier is the status indicated by the second status information. The third status identifier includes the first status identifier and the second status identifier and is used to indicate that the status of one or more cells corresponding to a third member identifier is the status indicated by the second status information. The second member information and the second status information are entered in the status setting information in a later order than the first member information and the first status information.

[0074] In one possible implementation, the first and second state identifiers can be represented by numerical codes, letter codes, or other possible forms, which are not specifically limited in this application. The third state identifier is a set of numbers corresponding to the first and second state identifiers respectively. Furthermore, when the number corresponding to a state identifier is empty, the state identifier can indicate that the corresponding cell range is in an unspecified state. Alternatively, the unspecified state of a cell can also be represented by numerical codes, letter codes, or other possible forms, which are not specifically limited in this application.

[0075] In one possible implementation, the generated state list is a bitmap index, a special data structure index in a database that stores data in the form of a bitmap. Since the types of cell states are limited—only locked, unlocked, or unspecified—and the corresponding state identifiers are also few, a bitmap index allows for quick location of rows containing specific state identifiers during subsequent cell state queries, improving query efficiency and significantly saving storage space occupied by cell states. In another possible implementation, the state list can also be stored in other forms, which this application does not specifically limit.

[0076] In one specific implementation, when the state setting information is {"locked Area":"['A1','B1',{'C1','C2'}];","excluded Area":"['A2',{'C1','C2'}];"}, then "['A1','B1',{'C1','C2'}];" is the first member information, "locked Area" is the first state information, "['A2',{'C1','C2'}];" is the second member information, and "excluded Area" is the third state information. "Area" is the second state information. When the first state identifier corresponding to the first state information is [1] and the second state identifier corresponding to the second state information is [2], 'A1', 'B1', 'C1' and 'C2' all correspond to the first state identifier [1], and 'A2', 'C1' and 'C2' all correspond to the second state identifier [2]. It is determined that the member identifiers that exist in both the first member identifier and the second member identifier are 'C1' and 'C2'. Therefore, according to the priority of the first state information and the second state information, the third state identifiers corresponding to 'C1' and 'C2' are determined to be [1, 2]. The stored state list includes at least the following: 'A1'-[1]; 'B1'-[1]; 'A2'-[2]; 'C1'-[1, 2]; 'C2'-[1, 2].

[0077] In one possible implementation, the status setting information may include more group member information and status information. The specific process of generating the status list is similar to the process described above, and will not be repeated here.

[0078] In the above process, after the state setting unit sets the cell state, the generation unit generates a state list to store the cell states. If the state of cells within the same cell range is set multiple times, the corresponding state identifier is recorded based on the state information of each setting. This allows the cell state of the cell range to be indicated based on the state identifier corresponding to the later set state. The state list occupies relatively little storage space and can accurately indicate the state of the cells corresponding to each member identifier, facilitating subsequent cell state queries and improving the efficiency of cell state lookup.

[0079] In addition to setting the status of cells as described above, the cloud management platform 120 can also query the status of cells, determine whether to perform data access operations based on the queried cell status, and send the response information of the data access request to the user.

[0080] In one possible implementation, the cloud management platform 120 further includes a query unit 240 and a sending unit 250.

[0081] When the receiving unit receives a data access request sent by the user equipment, the data access request includes a fourth member identifier, which is used to indicate one or more selected cells. If the data access request is used to indicate that a data read operation or a data write operation is to be performed on the selected cells, the query unit 240 is used to find the fourth status identifier corresponding to the fourth member identifier from the status list, and determine the status of one or more selected cells based on the fourth status identifier.

[0082] In one possible implementation, the cloud management platform 120 further includes a processing unit 260.

[0083] The processing unit 260 is configured to perform a data read or data write operation and generate a first response message when the query unit determines that the selected cell is in an unlocked state; the first response message is used to indicate that the data read operation is completed or the data write operation is completed; and is also configured to stop performing the data access operation and generate a second response message when the query unit determines that the selected cell is in a locked state. The second response message is used to indicate that the data read operation failed or the data write operation failed.

[0084] The sending unit 250 is used to send the first response information and the second response information generated by the processing unit to the user.

[0085] In one possible implementation, when the fourth member identifier is only one member identifier, the query unit 240 is specifically used to determine the status identifier corresponding to the fourth member identifier based on the status list, and to determine the status of the cell corresponding to the fourth member identifier based on the status identifier. After the query unit determines the status of the cell, the cloud management platform 120 also sends the status of the cell to the user device through the sending unit 250.

[0086] In another possible implementation, when the fourth member identifier includes multiple member identifiers, the query unit 240 is specifically used to determine the fourth state identifier corresponding to each fourth member identifier according to the state list, and then further determine the state identifier set composed of the state identifiers included in each fourth state identifier, and determine the state of the cell indicated by the fourth member identifier according to the state identifier set.

[0087] In one possible implementation, when the status identifier set includes multiple status identifiers, the query unit 240 is specifically used to determine the target status identifier based on the input order of the status information corresponding to the multiple status identifiers in the status setting information, and to determine the status of the cell indicated by the fourth member identifier based on the target status identifier, wherein the status information corresponding to the target status identifier is input in the status setting information later than the status information corresponding to other status identifiers in the status identifier set, and the target status identifier has the highest priority.

[0088] In another possible implementation, if the set of status identifiers includes only one status identifier, the query unit 240 is specifically used to determine the status of the cell indicated by the fourth member identifier based on the unique status identifier in the set.

[0089] In another possible implementation, in the absence of a set of status identifiers, the query unit 240 is specifically used to determine that the status of the cell indicated by the fourth member identifier is an unspecified status.

[0090] In the above process, the query unit determines the status identifier corresponding to each member identifier based on the received query information and the pre-generated status list, and determines the status of the queried cell area based on the status identifier. Compared with the current method of traversing the tree structure of the multidimensional database based on the cell path in the query information and determining the status of the cell based on the node attributes, the operation process is simpler and improves the efficiency of cell status query.

[0091] In summary, this application provides a cloud management platform. Through the cooperation of the receiving unit 210, the status setting unit 220, the generating unit 230, the querying unit 240, and the sending unit 250, the system can simplify the status setting process of cells and improve the efficiency of status setting by setting information with strong descriptive capabilities. Furthermore, by generating and storing a status list, the system can record the status of cells to improve the efficiency of cell status query.

[0092] It should be understood that the data storage system shown in Figure 1 above is only one possible implementation, and the system may include more types and numbers of devices, which are not specifically limited in this application.

[0093] As shown in Figure 2, which is a flowchart of a data storage method provided in an embodiment of this application, the method is applied to the cloud management platform of the system shown in Figure 1, and the method includes the following steps.

[0094] S210: Receive status setting information sent by the user, wherein the status setting information includes first member information and first status information.

[0095] The status setting information is sent in the form of member expressions, which are expressions using specific syntax. Compared to simple lists, this form of status setting information has stronger descriptive performance and can flexibly represent complex cell ranges and the statuses that need to be set for each cell range. In one possible implementation, the status setting information can also represent each selected cell range and the status information corresponding to each cell range in other possible forms, which are not specifically limited in this application.

[0096] When the state setting information is a member expression, the first member information can be a string that includes at least one member identifier. The string can also include indicator identifiers for various functions such as leaf functions. This application does not specifically limit the specific form of the first member information.

[0097] The status setting information includes one or more first member identifiers. When multiple first member identifiers are included, they can be a field corresponding to each of multiple dimensions, multiple fields within the same dimension, a field corresponding to several dimensions, or multiple fields corresponding to several dimensions. For example, in the case of three dimensions—time, department, and subject—if the first member information includes only one first member identifier, specifically ['January'], the first member identifier is the member "January" under the time dimension. If the first member information includes multiple first member identifiers, specifically ['January', 'Finance Department', 'Marketing Expenses'; 'March'], the first member identifiers are the member "January" under the time dimension, the member "Finance Department" under the department dimension, the member "Marketing Expenses" under the subject dimension, and the member "March" under the time dimension. These multiple first member identifiers can indicate the cell ranges corresponding to "January", "Finance Department", and "Marketing Expenses", as well as the cell range corresponding to "March".

[0098] In one possible implementation, the first member identifier may also be represented in other forms, which are not specifically limited in this application.

[0099] The first member information is used to indicate the selected first cell range by the first member identifier corresponding to the cell. The first cell range includes one or more cells, and the member identifier corresponding to each cell is the member identifier in the first member identifier. In one possible implementation, the first cell range can be a continuous cell range or a non-contiguous cell range, and this application does not specifically limit this.

[0100] In one possible implementation, when a dimension includes members with a parent-child relationship, in order to indicate the cell area corresponding to the child member, the first member information includes not only the parent member identifier corresponding to the child member, but also a first indicator identifier. The first indicator identifier is used to indicate the cell area corresponding to the child member identifier corresponding to the parent member identifier. Specifically, it can be a leaf function (LEAVES) or other possible representations, which are not specifically limited in this application.

[0101] The status setting information includes first status information used to indicate the status of each cell in the first cell range. The status of the cell indicated by the first status information can be unlocked or locked. Specifically, when the status indicated by the first status information is locked, the first status information can be ['locked Area'], indicating that the data in the corresponding cell cannot be modified; when the status indicated by the first status information is unlocked, the first status information can be ['unlocked Area'], indicating that the data in the corresponding cell cannot be read or modified.

[0102] When the state setting information is a member expression, the first state information can be different identifiers or Chinese and English characters with specific meanings. This application does not impose specific limitations on the format of the first state information.

[0103] In one possible implementation, the first state information may also be represented by other content, which is not specifically limited in this application.

[0104] In one possible implementation, the state setting information may include, in addition to the first member information and the first state information, second member information and second state information. The second member information, like the first member information, includes one or more second member identifiers used to indicate the selected second cell region. The second state information indicates the state of each cell within the second cell region and is different from the first state information. When the second member information and the second state information are entered later than the first member information and the first state information in the state setting information, the second state information has higher priority than the first state information. The state of cells within a certain cell region jointly indicated by the first member information and the second member information is determined based on the second state information.

[0105] In the above process, the first member information and the first state information in the state setting information can describe and determine complex cell ranges, as well as the states that need to be set for cells in each cell range. Compared with the current method of first converting the data in the multidimensional database into a two-dimensional table and then selecting continuous cell ranges in the two-dimensional table, there is no need to perform a two-dimensional table conversion, which can simplify the cell range determination operation. Moreover, it can determine complex, non-contiguous cell ranges without requiring multiple selections, thus improving the efficiency of cell range determination.

[0106] S220: Set the state of each cell in the first cell range indicated by the first member information to the state indicated by the first state information.

[0107] After receiving the status setting information, the status setting information is analyzed to determine the first member information and the first status information included in the status setting information. Then, the status of each cell in the first cell area indicated by the first member information is set to the status indicated by the first status information.

[0108] In one specific implementation, the status setting information including first member information, first status information, second member information, and second status information is {"locked Area":"['First Quarter'.LEAVES','Finance Department',{'Purchasing Expenses','Marketing Expenses'}];","excluded Area":"['March',{'Marketing Expenses'}];"}, wherein the first member information is ['First Quarter'.LEAVES','Finance Department',{'Purchasing Expenses','Marketing Expenses'}], the first status information is "locked Area", the second member information is ['March',{'Marketing Expenses'}], and the second status information is "excluded Area". Since the 'First Quarter'.LEAVES' information in the first member actually indicates the sub-member identifiers 'January', 'February', and 'March', the processor first sets the cell status of the area corresponding to the purchase and marketing expenses of the Finance Department in January, February, and March to the locked state indicated by the first status information. Then, it sets the cell status of the area corresponding to the marketing expenses of all departments in March to the unlocked state indicated by the second status information. Among them, the cell area corresponding to the marketing expenses of the Finance Department in March is first set to the locked state and then set to the unlocked state. Since the second status information has a higher priority, the cell status of the area corresponding to the marketing expenses of the Finance Department in March is finally set to the unlocked state.

[0109] Compared to the current method of setting cell states, the above process of setting cell states allows for direct setting of cell states based on the state setting information. It eliminates the need to convert data from a multidimensional database into a two-dimensional table, and also eliminates the need to select cell ranges based on the row and column information of a two-dimensional table and set cell states sequentially. This simplifies the cell state setting operation and improves the efficiency of state setting.

[0110] In summary, the cell state setting method provided in this application embodiment, by setting information including member information and state information, can determine one or more cell regions and the state corresponding to each cell region, and set the cell state in the cell region according to the cell state information. Compared with the current method, which expands a multi-dimensional region into a two-dimensional form, selects a continuous cell region in the two-dimensional data set according to a preset range, and sets the cell state, the cell state setting process is simplified. Furthermore, it can simultaneously set the state of multiple non-contiguous cell regions, improving the efficiency of cell state setting. In addition to the above, the cell state setting method provided in this application embodiment can also determine and store a state list based on the state setting information. This state list can store the set cell states in a smaller storage space, improving the efficiency of cell state query in subsequent queries.

[0111] In one possible implementation, the cell state setting method provided in this application embodiment can also be applied to other scenarios that require multi-region state storage, and this application does not specifically limit it.

[0112] In one possible implementation, in addition to setting the state of the cell according to the received state setting information, the server also determines and stores the state list according to the first member information and the first state information included in the state setting information.

[0113] The status list can be a bitmap index, a special data structure index in a database that stores data in bitmap form. Since cell states include locked, unlocked, and unspecified states, each can be represented by a separate index number in the status list. Specifically, the index number can be a numeric number, an alphabetical number, etc. When the cell state is unspecified, the index number can be empty. This application does not impose specific limitations on the specific form of the index number. In one possible implementation, the status list can also be stored in other forms, which this application does not specifically limit.

[0114] In one possible implementation, based on at least one first member identifier and first state information included in the first member information, at least one first member identifier and a first state identifier corresponding to each of the at least one first member identifier are recorded in the state list. The first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information.

[0115] In another possible implementation, where the state setting information further includes second member information and second state information, wherein the second member information is used to indicate the second cell region by at least one second member identifier, and the second state information is used to indicate the state of each cell in the second cell region, based on at least one first member identifier and at least one second member identifier included in the state setting information, a member identifier that exists in both the first member identifier and the second member identifier is designated as a third member identifier; based on at least one first member identifier, at least one second member identifier, at least one third member identifier, the first state information, and the second state information in the state setting information, the first member identifier excluding the third member identifier and the first state label corresponding to each of the first member identifiers are recorded in the state list. The system records the second state identifiers corresponding to the second member identifier and the third member identifier, excluding the third member identifier; wherein, the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information, the second state identifier is used to indicate that the state of one or more cells corresponding to a second member identifier is the state indicated by the second state information, and the third state identifier includes the first state identifier and the second state identifier, and is used to indicate that the state of one or more cells corresponding to a third member identifier is the state indicated by the second state information. The second member information and the second state information are entered in the state setting information in a later order than the first member information and the first state information.

[0116] In a specific implementation, when the status setting information is {"locked Area":"['First Quarter'.LEAVES','Finance Department',{'Purchase Expenses','Marketing Expenses'}];","excluded Area":"['March',{'Marketing Expenses'}];"}, and the first member identifier and corresponding first status identifier determined according to the status setting information are "'January'-[1];'February'-[1];'March'-[1];'Finance Department'-[1];'Purchase Expenses'-[1];'Marketing Expenses'-[1]", and the second member identifier and corresponding second status identifier are "'March'-[2];'Marketing Expenses'-[2]", the third member identifier and corresponding third status identifier are determined as "'March'-[1,2];'Marketing Expenses'-[1;2]", and the final determined status list can be as follows: "'January'-[1,2];'Marketing Expenses'-[1;2]". ];'February'-[1];'March'-[1,2];'Finance Department'-[1];'Purchasing Expenses'-[1];'Marketing Expenses'-[1,2]”, where index number [1] indicates that the cell is locked, index number [2] indicates that the cell is unlocked, and index number [1,2] also indicates that the cell is unlocked. In addition, the index numbers corresponding to the member identifiers of multiple months belonging to the time dimension with 'January', 'February' and 'March', the member identifiers of multiple departments belonging to the department dimension with 'Finance Department', and the member identifiers of multiple departments belonging to the subject dimension with 'Purchasing Expenses' and 'Marketing Expenses' are empty.

[0117] In one possible implementation, the state setting information may also include more member information and state information. The specific process of generating the state list is similar to the process described above, and will not be repeated here.

[0118] In the above process, if the state list generated by the server is stored in the form of a bitmap index, the storage space occupied by the state of the cell can be greatly reduced, and the state of the cell corresponding to each member identifier can be accurately indicated. In the subsequent state query process, the efficiency of cell state query can be improved.

[0119] Once the data storage method shown in Figure 2 is completed and a status list of the record cell status settings is generated, the cloud management platform, upon receiving a data access request from the user, first obtains the cell status based on the data access request. The specific process is shown in Figure 3 below.

[0120] As shown in Figure 3, which is a flowchart of a data access operation execution provided by an embodiment of this application, the method is applied to the data storage system shown in Figure 1 and includes the following steps.

[0121] S310: Receives data access requests sent by users.

[0122] The data access request includes at least one member identifier, which may indicate one or more cells whose status needs to be queried. Specifically, if the at least one member identifier includes one member identifier included in each dimension of the multidimensional database, the data access request indicates one cell; if the at least one member identifier includes multiple member identifiers included in each dimension of the multidimensional database, or if some dimensions include one or more member identifiers, the data access request indicates multiple cells. The status of each cell in the one or more cells may be the same or different, and this application does not specifically limit this.

[0123] A data access request is used to instruct the cloud management platform to perform a data read operation or a data write operation on one or more selected cells. Before performing the data access operation, the data access request is also used to instruct the cloud management platform to query the status of the selected cells in advance.

[0124] S320: Find the corresponding status identifier for each member identifier from the status list.

[0125] In one possible implementation, when a data access request indicates a cell, the status identifier corresponding to each member identifier is determined based on the status list and a member identifier corresponding to each of the multiple dimensions included in the data access request. If a member identifier exists in the status list, the status identifier corresponding to the member identifier in the list is determined; if no member identifier exists in the status list, the status identifier corresponding to the member identifier is determined to be empty.

[0126] In another possible implementation, when the data access request indicates multiple cells, the member identifiers corresponding to the multiple dimensions of each cell are determined. Then, according to the status list, the status identifiers corresponding to the multiple member identifiers of each cell are determined in sequence.

[0127] S330: Determine the status of one or more selected cells based on the status identifier corresponding to each member identifier.

[0128] Given that the status identifiers corresponding to multiple member identifiers of the cell to be queried are determined, a set of status identifiers that are included in all the status identifiers is determined. Based on the status identifier with the highest priority in the set of status identifiers, the status of one or more cells selected by the data access request is determined.

[0129] In one possible implementation, if a set of state identifiers exists, the number of state identifiers in the set of state identifiers is further determined.

[0130] In one possible implementation, when the status identifier set includes multiple status identifiers, it is necessary to determine the target status identifier with the highest priority among the multiple status identifiers, and determine the state of the corresponding cell based on the target status identifier. The specific operations of the above process are as follows: determine the input order of the status information corresponding to each of the multiple status identifiers in the status setting information; determine the target status identifier corresponding to the status information with the latest input order based on the input order; and determine the cell state based on the target status identifier and the correspondence between status identifiers and status information during the generation of the status list. For example, in the case where the status identifier set is [M, N], [M] corresponds to the locked state, and [N] corresponds to the unlocked state, since the order of M and N in the status identifier set can be the same as the input order of the corresponding status information in the setting information, the target status identifier [N] in the status identifier set [M, N] is determined, thereby determining the cell state as unlocked, so that the data in the cell does not participate in the aggregation calculation.

[0131] In another possible implementation, if the set of status identifiers includes only one status identifier, the status of the cell to be queried is determined based on the status of the cell indicated by the status information corresponding to that status identifier.

[0132] In another possible implementation, if there is no set of status identifiers, it is determined that the status identifier corresponding to the cell whose status needs to be queried is empty, and the status of the cell is determined to be "unspecified".

[0133] S340: Based on the status of the selected cell, send the response information corresponding to the data access request to the user.

[0134] After determining the status of one or more selected cells, since data in locked cells cannot be read and cells are not allowed to be rewritten, while data in unlocked cells can be both read and rewritten, the decision to execute a data access request is made in advance based on the cell status.

[0135] In one possible implementation, when the selected cell is in an unlocked state, a data access operation is performed to read data from the cell or write new data to the cell, generating a first response message, which is then sent to the user. Specifically, when the data access request is for reading data from the cell, the first response message indicates that the data reading operation is complete and also includes the data from the selected cell; when the data access request is for writing data to the cell, the first response message indicates that the data writing operation is complete.

[0136] In another possible implementation, if the selected cell is in a locked state, it is determined that a data access operation cannot be performed, a second response message is generated, and this second response message is sent to the user. The second response message indicates that either the data read operation or the data write operation has failed.

[0137] In another possible implementation, when the selected cell is in an unspecified state, it is necessary to determine whether to perform a data access operation based on user permissions and the cell's protection status. For example, if the selected cell is in a protected state, only a data read operation can be performed, and no data write operation can be performed. Only a response message indicating the completion of the data read operation can be generated and sent to the user. If the selected cell is not in a protected state, both data read and data write operations can be performed. The cloud management platform generates a first response message and sends it to the user.

[0138] Currently, data in multidimensional databases is represented in a tree structure. When a user device needs to query the status of a specific cell, since each node in the tree structure can be a dimension or a member, the processor, after receiving the target cell path sent by the user device, decomposes the target cell path according to the hierarchical structure of the tree. The target cell path includes a member from each of the multiple dimensions. Starting from the root node of the tree structure, the processor traverses downwards according to the hierarchy of the target cell path until it reaches the target child node (i.e., the target cell), thus determining the cell status. The cell status can be locked, unlocked, or unspecified. This method of querying cell status requires traversing the tree structure, resulting in slow query efficiency. However, the data access operation execution method provided in this application, by querying the member identifiers and status list included in the information, determines the status identifier corresponding to each member identifier and determines the cell status based on the intersection of all status identifiers and the priority of the status identifiers in the intersection. Compared to traversing the tree structure, this method improves the efficiency of querying cell status.

[0139] In this embodiment, since the data in an unlocked cell can be modified or read, but the data in a locked cell cannot be modified and data reading operations are restricted, the cell state can be determined in advance based on the target cell path in the data access request. This can determine whether the data access operation can be executed normally, thereby avoiding abnormalities in data reading or writing operations and ensuring the accuracy, integrity and confidentiality of the data.

[0140] In one possible implementation, the data storage method provided in this application can be applied not only to the multidimensional database scenario described above, but also to scenarios involving the analysis of multidimensional data and the locking and validity control of corresponding data, such as BI analysis tools or platforms. This application does not make any specific limitations in this regard.

[0141] In one specific implementation, the multidimensional model includes three dimensions: time, organization, and subject. The time dimension comprises two layers: quarters and months. Quarters are parent members of months, and months are leaf members. The organization and subject dimensions are also leaf members. Specifically, the time dimension includes four parent members: first quarter, second quarter, third quarter, and fourth quarter. January to March are leaf members of the first quarter, April to June are leaf members of the second quarter, July to September are leaf members of the third quarter, and October to December are leaf members of the fourth quarter. The organization dimension includes at least leaf members such as the finance department, marketing department, and development department. The subject dimension includes at least leaf members such as procurement expenses, marketing expenses, and labor expenses.

[0142] Some of the original data for the multidimensional model are shown in Table 2 below.

[0143] Table 2

[0144] When it's necessary to lock the cells corresponding to the marketing expenses and purchasing expenses of the finance department in the first quarter, and unlock the marketing expenses in March, the server receives the following status setting information from the user device: {"locked Area":"['First Quarter'.LEAVES,'Finance Department',{'Purchasing Expenses''Marketing Expenses'}];","excluded Area":"['March','Marketing Expenses'];"}. Here, the first member information ['First Quarter'.LEAVES,'Finance Department',{'Purchasing Expenses''Marketing Expenses'}] represents "the marketing expenses and purchasing expenses of the finance department corresponding to each leaf member in the first quarter," and the second member information ['March', 'Marketing Expenses'] represents "the marketing expenses in March." The first status information "locked Area" indicates the locked area, and the second status information "excluded Area" indicates the unlocked area.

[0145] Upon receiving the status setting information input by the user device, after parsing the content of the member expression in the status setting information, a bitmap index is determined, including the member identifier and the bitmap index number corresponding to each member identifier. For example: 'January':[1]; 'February':[1]; 'March':[1,2]; 'Finance Department':[1,2]; 'Marketing Department':[2]; 'Development Department':[2]; 'Procurement Expenses':[1]; 'Marketing Expenses':[1,2]. Among them, the data in [] is used to represent the bitmap index number, which is used to indicate the locked area or the unlocked area.

[0146] In the above process, the server can determine multiple non-contiguous regions and the status of each region based on a single input from the user device, which can improve the descriptive ability of different regions and the efficiency of cell status setting; the server generates and stores bitmap indexes based on the locked and unlocked regions corresponding to the cells, which can reduce the storage space occupied by data storage information.

[0147] In one specific implementation, after generating and storing the above status list "'January':[1]; 'February':[1]; 'March':[1,2]; 'Finance Department':[1,2]; 'Marketing Department':[2]; 'Development Department':[2]; 'Purchasing Expenses':[1]; 'Marketing Expenses':[1,2]", when the user device needs to perform a query cell status or a write operation, the user device needs to send a data access request to the server. The data access request includes a member expression used to indicate a specific cell, for example, [February, 'Finance Department', 'Marketing Expenses'. When the server receives a data access request, it determines the bitmap indexes corresponding to the multiple members included in the data access request based on the pre-generated bitmap indexes. For example, the bitmap index corresponding to "February" is [1], the bitmap index corresponding to "Finance Department" is [1,2], and the bitmap index corresponding to "Marketing Expenses" is [1,2]. Based on the three bitmap indexes corresponding to the three members, the intersecting bitmap index is determined to be [1]. The area corresponding to the bitmap index number in this bitmap index is a locked area. The cell to be queried is in this locked area, and the cell to be queried is determined to be in a locked state. At this time, data cannot be written to the cell.

[0148] In another specific implementation, when a user device needs to query the status of the cell corresponding to [March, 'Finance Department', 'Marketing Expenses'], the server determines the bitmap indexes corresponding to the three members "March", "Finance Department", and "Marketing Expenses" based on the data access request and the bitmap indexes. These three bitmap indexes are [1,2], [1,2], and [1,2], respectively. The intersecting bitmap index is determined to be [1,2]. The area corresponding to the bitmap index number in this bitmap index is first set to a locked state and then set to an unlocked state. Since the unlocked state has a higher priority, the status of the cell to be queried is unlocked.

[0149] In another specific implementation, when a user device needs to query the status of the cell corresponding to [March, 'Development Department', 'Labor Costs'], the server determines the bitmap indexes corresponding to the three members "March", "Development Department", and "Labor Costs" based on the data access request and the bitmap index. These three bitmap indexes are [1,2], [2], and []. Among them, the cell corresponding to "Labor Costs" has not been set to a status and has no corresponding bitmap index number, so the bitmap index is empty. The bitmap index obtained by intersecting the above three bitmap indexes is also empty, thus determining that the cell to be queried has not been set to a status.

[0150] The above process determines the cell to be queried by analyzing the member identifiers included in the query information, and determines the status identifier corresponding to each member identifier according to the status list. The status of the cell is then determined based on the status identifier. Compared with the current method of determining the status of the cell by traversing the tree structure, this method can improve the efficiency of cell status query.

[0151] As shown in Figure 4, which is a schematic diagram of a computing device according to an embodiment of this application, the computing device is used to deploy the cloud management platform shown in Figure 1, and to implement the data storage method shown in Figure 2 and the data access operation execution method shown in Figure 3. The computing device 400 includes at least a bus 410, a processor 420, a memory 430, and a communication interface 440. The processor 420, the memory 430, and the communication interface 440 communicate with each other via the bus 410. It should be understood that this application does not limit the number of processors and memories in the computing device 400.

[0152] Bus 410 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 4, but this does not imply that there is only one bus or one type of bus. Bus 410 can include pathways for transmitting information between various components of computing device 400 (e.g., processor 420, memory 430, communication interface 440).

[0153] The processor 420 may include any one or more processors such as a central processing unit (CPU), a microprocessor (MP), or a digital signal processor (DSP) for executing program code.

[0154] The memory 430 may include volatile memory, such as random access memory (RAM). The memory 430 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD), or a combination of the above. The memory 430 stores executable program code. It stores executable program code corresponding to one or more of the following units: receiving unit 210, status setting unit 220, generation unit 230, query unit 240, sending unit 250, and processing unit 260. The processor 420 executes the executable program code to implement the functions of the aforementioned receiving unit 210 to processing unit 260, thereby realizing the data storage method shown in FIG2 and the data access operation execution method shown in FIG3. That is, the memory 430 stores instructions for executing the data storage method and the data access operation execution method. In addition, the memory 430 can also store more types and quantities of data, such as generated status lists, etc., which are not specifically limited in this application.

[0155] The communication interface 440 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 400 and other devices or communication networks.

[0156] It should be noted that Figure 4 is merely one possible implementation of the embodiment of this application. In actual applications, the computing device may include more or fewer components, and this application does not make any specific limitations in this regard.

[0157] As shown in Figure 5, which is a schematic diagram of a computing device cluster according to an embodiment of this application, the computing device cluster includes at least one computing device, which can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone. The memory 430 of one or more computing devices 400 in the computing device cluster can store the same instructions for executing the data access operation execution method and data storage method provided in this application.

[0158] In some possible implementations, the memory 430 of one or more computing devices 400 in the computing device cluster may also store partial instructions for executing data access operation execution methods and data storage methods, respectively. In other words, a combination of one or more computing devices 400 can jointly execute the instructions for executing data access operation execution methods and data storage methods.

[0159] It should be noted that the memory 430 in different computing devices 400 within the computing device cluster can store different instructions, which are used to execute partial functions of multiple units. That is, the instructions stored in the memory 430 of different computing devices 400 can implement the functions of one or more units among the receiving unit 210 to the processing unit 260.

[0160] In some possible implementations, 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 6 is a schematic diagram of a structure in which one or more computing devices are connected via a network, according to an embodiment of this application.

[0161] As shown in Figure 6, computing device 400A includes a bus 410A, a processor 420A, a memory 430A, and a communication interface 440A, while computing device 400B includes a bus 410B, a processor 420B, a memory 430B, and a communication interface 440B. The two computing devices 400A and 400B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this possible implementation, the memory 430A in computing device 400A stores instructions for executing the functions of the receiving unit 210, the status setting unit 220, and the generation unit 230. Simultaneously, the memory 430B in computing device 400B stores instructions for executing the functions of the query unit 240, the processing unit 260, and the sending unit 250. Through data interaction, computing devices 400A and 400B can implement the data access operation execution method and data storage method provided in this application.

[0162] This application also provides a computer-readable storage medium storing instructions that, when executed on a processor, enable the implementation of the data storage method shown in FIG2 and the data access operation execution method shown in FIG3.

[0163] This application also provides a computer program product in which the data storage method shown in FIG2 and the data access operation execution method shown in FIG3 are implemented when the computer program product is running on a processor.

[0164] When computer program instructions are loaded or executed on a computer, all or part of the processes or functions according to the embodiments of this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.

[0165] Computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. A computer-readable storage medium can be any available medium that a computer can access, or a data storage node such as a server or data center that contains at least one set of available media. Available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., high-density digital video discs (DVDs), or semiconductor media).

[0166] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.

Claims

1. A data storage method, characterized in that, The method is applied to a cloud management platform, which manages infrastructure providing cloud services, including database services. The infrastructure deploys a multidimensional database, which includes multiple dimensions. The smallest data unit in the multidimensional database is a cell, and each cell corresponds to multiple member identifiers. Each member identifier corresponds to a field in one dimension. The status setting information sent by the user is received through the status setting interface. The status setting information includes first member information and first status information. The first member information is used to indicate a first cell area through at least one first member identifier. The first cell area includes one or more cells. The first status information is used to indicate the status of each cell in the first cell area. The status is either an unlocked state or a locked state. Set the state of each cell in the first cell area to the state indicated by the first state information.

2. The method according to claim 1, characterized in that, The first member information includes a parent member identifier and an indicator identifier. The indicator identifier is used to indicate the selection of the cell range corresponding to the child member identifier corresponding to the parent member identifier. The parent member identifier corresponds to a first region, and the child member identifier corresponds to a second region. The value of the first region is equal to the sum of the values ​​of the second region. Both the first region and the second region include one or more cells.

3. The method according to claim 1 or 2, characterized in that, The method further includes: Based on the at least one first member identifier and the first state information in the state setting information, the at least one first member identifier and the first state identifier corresponding to each of the at least one first member identifier are recorded in the state list. The first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information.

4. The method according to claim 1 or 2, characterized in that, The method further includes second member information and second status information, wherein the second member information is used to indicate a second cell region by at least one second member identifier, and the second status information is used to indicate the status of each cell in the second cell region. A third member identifier is determined based on the at least one first member identifier and the at least one second member identifier in the status setting information, wherein the third member identifier is a member identifier that exists in both the first member identifier and the second member identifier; Based on the at least one first member identifier, the at least one second member identifier, the at least one third member identifier, the first state information, and the second state information in the state setting information, record in the state list the first member identifier (excluding the third member identifier) ​​and the first state identifier corresponding to each of the first member identifiers, record the second member identifier (excluding the third member identifier) ​​and the second state identifier corresponding to each of the second member identifiers, and record the third member identifier and the third state identifier corresponding to each of the third member identifiers. Wherein, the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information, the second state identifier is used to indicate that the state of one or more cells corresponding to a second member identifier is the state indicated by the second state information, the third state identifier includes the first state identifier and the second state identifier, and is used to indicate that the state of one or more cells corresponding to a third member identifier is the state indicated by the second state information, wherein the input order of the second member information and the second state information in the state setting information is later than that of the first member information and the first state information.

5. The method according to claim 3 or 4, characterized in that, The method further includes: Receive a data access request sent by a user. The data access request includes a fourth member identifier, which is used to indicate one or more selected cells. The data access request is used to indicate that a data read operation or a data write operation is performed on the one or more selected cells. Search the state list for the fourth state identifier corresponding to the fourth member identifier; The state of the selected one or more cells is determined based on the fourth state identifier; When the state is the unlocked state, a first response message is sent to the user. This first response message indicates that the data read operation is complete, or that the data write operation is complete; or... If the state is the locked state, a second response message is sent to the user, the second response message indicating that the data read operation failed, or the data write operation failed.

6. The method according to claim 5, characterized in that, Determining the state of the selected one or more cells based on the fourth state identifier includes: Based on the fourth state identifier, determine the set of state identifiers that each fourth state identifier includes; If the set of status identifiers exists, and the set includes multiple status identifiers, a target status identifier is determined according to the input order of the status information corresponding to each of the multiple status identifiers in the status setting information. The status of the selected one or more cells is then determined based on the target status identifier, wherein the input order of the status information corresponding to the target status identifier is later than the input order of the status information corresponding to the other status identifiers among the multiple status identifiers; or... If the set of status identifiers exists and the set of status identifiers includes only one status identifier, the status of the selected one or more cells is determined based on one status identifier in the set of status identifiers.

7. The method according to claim 6, characterized in that, The method further includes: If the set of state identifiers does not exist, it is determined that the state of the selected one or more cells is not specified.

8. A data storage device, characterized in that, An apparatus is applied to a cloud management platform for managing infrastructure providing cloud services, including database services. The infrastructure deploys a multidimensional database, which includes multiple dimensions. The smallest data unit in the multidimensional database is a cell, and each cell corresponds to multiple member identifiers. Each member identifier corresponds to a field in one dimension. The apparatus includes: A receiving unit is configured to receive status setting information sent by a user, wherein the status setting information includes first member information and first status information, the first member information is used to indicate a first cell area by at least one first member identifier, the first cell area includes one or more cells, and the first status information is used to indicate the status of each cell in the first cell area, the status being either an unlocked state or a locked state. A status setting unit is used to set the status of each cell in the first cell area to the status indicated by the first status information.

9. The apparatus according to claim 8, characterized in that, The first member information includes a parent member identifier and an indicator identifier. The indicator identifier is used to indicate the selection of the cell range corresponding to the child member identifier corresponding to the parent member identifier. The parent member identifier corresponds to a first region, and the child member identifier corresponds to a second region. The value of the first region is equal to the sum of the values ​​of the second region. Both the first region and the second region include one or more cells.

10. The apparatus according to claim 8 or 9, characterized in that, The device further includes a generation unit: The generation unit is configured to record, in the state list, the at least one first member identifier and the first state information corresponding to each of the at least one first member identifier and the first state information in the state setting information, wherein the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information.

11. The apparatus according to claim 8 or 9, characterized in that, The device further includes a second member information and a second state information, wherein the second member information is used to indicate a second cell region by at least one second member identifier, and the second state information is used to indicate the state of each cell in the second cell region. In this case, the device also includes a generation unit. The generation unit is configured to determine a third member identifier based on the at least one first member identifier and the at least one second member identifier in the state setting information, wherein the third member identifier is a member identifier that exists in both the first member identifier and the second member identifier; It is also used to record, in the status list, the first member identifier excluding the third member identifier and the first status identifier corresponding to each of the first member identifiers, the second member identifier excluding the third member identifier and the second status identifier corresponding to each of the second member identifiers, and the third status identifier corresponding to each of the third member identifiers, based on the at least one first member identifier, the at least one second member identifier, the at least one third member identifier, the first status information and the second status information in the status setting information; Wherein, the first state identifier is used to indicate that the state of one or more cells corresponding to a first member identifier is the state indicated by the first state information, the second state identifier is used to indicate that the state of one or more cells corresponding to a second member identifier is the state indicated by the second state information, the third state identifier includes the first state identifier and the second state identifier, and is used to indicate that the state of one or more cells corresponding to a third member identifier is the state indicated by the second state information, wherein the input order of the second member information and the second state information in the state setting information is later than that of the first member information and the first state information.

12. The apparatus according to claim 10 or 11, characterized in that, The receiving unit is also configured to receive a data access request sent by a user. The data access request includes a fourth member identifier, which is used to indicate one or more selected cells. The data access request is used to indicate that a data read operation or a data write operation is performed on the one or more selected cells. The device also includes a query unit and a sending unit: The query unit is used to search for the fourth state identifier corresponding to the fourth member identifier from the state list; It is also used to determine the state of the selected one or more cells based on the fourth state identifier; The sending unit is configured to send a first response information to the user when the state is the unlocked state. The first response information is used to indicate that the data reading operation is completed, or that the data writing operation is completed. or, If the state is the locked state, a second response message is sent to the user, the second response message indicating that the data read operation failed, or the data write operation failed.

13. The apparatus according to claim 12, characterized in that, The query unit is specifically used for: Based on the fourth state identifier, determine the set of state identifiers that each fourth state identifier includes; If the set of status identifiers exists, and the set includes multiple status identifiers, a target status identifier is determined according to the input order of the status information corresponding to each of the multiple status identifiers in the status setting information. The status of the selected one or more cells is then determined based on the target status identifier, wherein the input order of the status information corresponding to the target status identifier is later than the input order of the status information corresponding to the other status identifiers among the multiple status identifiers; or... If the set of status identifiers exists and the set of status identifiers includes only one status identifier, the status of the selected one or more cells is determined based on one status identifier in the set of status identifiers.

14. The method according to claim 13, characterized in that, The query unit is also used for: If the set of state identifiers does not exist, it is determined that the state of the selected one or more cells is not specified.

15. A computing device cluster, characterized in that, The device includes at least one computing device, the computing device comprising a processor and a memory, the processor being configured to execute instructions stored in the memory to cause the computing device to perform the method as described in any one of claims 1-7.

16. A computer program product containing instructions, characterized in that, When the instructions are executed by the computing device, the computing device performs the method as described in any one of claims 1-7.

17. A computer-readable storage medium, characterized in that, Includes computer program instructions that, when executed by a computing device, cause the computing device to perform the method as described in any one of claims 1-7.