Table data processing method and device, computer equipment and storage medium

By introducing a computing engine to calculate formulas and using incremental calculations and results difference comparison and update, the problems of calculation time and high memory usage are solved, and efficient data processing and user experience are achieved.

CN119782326APending Publication Date: 2025-04-08BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411835211.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-12
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

As the number of formulas involved in calculation increases and the complexity of formulas increases, the calculation takes a long time and memory usage is high, which affects the user experience.

Method used

The calculation engine is introduced to pass the data and calculation formulas that need to be calculated to the calculation engine for formula calculation, and the calculation based on increments is realized by determining the data list affected by the calculation formula, and finally only data updates are performed on the data items that have changed.

Benefits of technology

Through the computing power of the computing engine, the calculation performance of formulas is improved, and the incremental calculation and result difference comparison and update are used to reduce the recalculation range and data update range, improve computing efficiency, reduce occupation, and improve user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119782326A_ABST
    Figure CN119782326A_ABST
Patent Text Reader

Abstract

The invention provides a table data processing method and device, computer equipment and a storage medium. The method comprises the steps of obtaining input data in a table, and determining at least one calculation formula influenced by the input data; determining basic data corresponding to the calculation formula according to a node back-end service, and writing the input data and the basic data into a calculation engine; determining a data list influenced by the calculation formula through the node back-end service, transmitting the calculation formula into the calculation engine to calculate the data list, and generating a calculation result; according to the calculation result, determining data items which change before and after calculation in the data list, and performing data updating on the data items; and displaying the updated data list in the table.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a table data processing method, device, computer equipment and storage medium. Background Art

[0002] In the current service field, after getting a piece of data in the table, some existing data needs to be updated. For example, when a new turnover is entered, it will affect the daily turnover, monthly turnover, profit margin, etc., and data needs to be updated. The affected data is generally calculated using the corresponding formula.

[0003] In some scenarios, as the number of formulas involved in the calculation increases and the complexity of the formulas increases, problems such as long calculation time and high memory usage will gradually become prominent, affecting the overall response efficiency, calculation costs, etc., seriously affecting the user experience. Summary of the invention

[0004] In view of this, the present disclosure proposes a table data processing method, apparatus, computer equipment and storage medium to solve or partially solve the above problems.

[0005] Based on the above purpose, the first aspect of the present disclosure provides a table data processing method, including:

[0006] Obtaining input data in a table, and determining at least one calculation formula affected by the input data;

[0007] Determine the basic data corresponding to the calculation formula according to the node backend service, and write the input data and the basic data into the calculation engine;

[0008] Determine the data list affected by the calculation formula through the node backend service, pass the calculation formula into the calculation engine to calculate the data list, and generate a calculation result;

[0009] According to the calculation result, determine the data items in the data list that have changed before and after the calculation, and update the data of the data items;

[0010] The updated data list is displayed in the table.

[0011] In a second aspect of the present disclosure, a table data processing device is provided, comprising:

[0012] A first module is used to obtain input data in a table and determine at least one calculation formula affected by the input data;

[0013] The second module is used to determine the basic data corresponding to the calculation formula according to the node backend service, and write the input data and the basic data into the calculation engine;

[0014] The third module is used to determine the data list affected by the calculation formula through the node backend service, pass the calculation formula to the calculation engine to calculate the data list, and generate a calculation result;

[0015] A fourth module is used to determine, according to the calculation result, data items in the data list that have changed before and after the calculation, and update the data items;

[0016] The fifth module is used to display the updated data list in the table.

[0017] In a third aspect of the present disclosure, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the method described in the first aspect is implemented.

[0018] According to a fourth aspect of the present disclosure, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores computer instructions, wherein the computer instructions are used to enable a computer to execute the method described in the first aspect.

[0019] As can be seen from the above, the table data processing method, device, computer equipment and storage medium provided by the present disclosure, when it is necessary to use the node backend service for calculation, introduce a calculation engine, pass the data and calculation formula to be calculated to the calculation engine, use the calculation engine to calculate the formula, and on this basis, by determining the data list affected by the calculation formula, only calculate the data list, so as to achieve calculation based only on increments, and after completing the calculation of the data list, compare the data items before and after the calculation of the data list, determine the data items that have changed, and finally update the data only for the changed data items, so as to quickly complete the update of the data list. In this way, the calculation power of the calculation engine can be used to greatly improve the performance of formula calculation, and the incremental calculation method and the result difference comparison and update can be used to reduce the recalculation range after obtaining the new input data, as well as the range of data update at the end, so as to further improve the calculation efficiency and reduce the occupancy. Finally, the overall reaction efficiency is improved, the cost is reduced, and the user experience is greatly improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure or related technologies, the drawings required for use in the embodiments or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0021] Figure 1 A schematic diagram of an exemplary system 100 according to an embodiment of the present disclosure is shown.

[0022] Figure 2 A flowchart of an exemplary method 200 provided in an embodiment of the present disclosure is shown.

[0023] Figure 3 A schematic diagram of an exemplary device 300 provided by an embodiment of the present disclosure is shown.

[0024] Figure 4 A schematic diagram of an exemplary computer device 400 provided by an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0025] In order to make the purpose, technical solutions and advantages of this specification more clear, this specification is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.

[0026] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the embodiments of the present disclosure should be understood by people with ordinary skills in the field to which the present disclosure belongs. The "first", "second" and similar words used in the examples of the present disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. "Including" or "including" and similar words mean that the elements or objects appearing before the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0027] It is understandable that before using the technical solutions disclosed in the embodiments of the present disclosure, the types, scope of use, usage scenarios, etc. of the personal information involved in the present disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.

[0028] For example, in response to receiving an active request from a user, a prompt message is sent to the user to clearly prompt the user that the operation requested to be performed will require obtaining and using the user's personal information. Thus, the user can autonomously choose whether to provide personal information to software or hardware such as an electronic device, application, server, or storage medium that performs the operation of the technical solution of the present disclosure according to the prompt message.

[0029] As an optional but non-limiting implementation, in response to receiving an active request from the user, the prompt information may be sent to the user in the form of a pop-up window, in which the prompt information may be presented in text form. In addition, the pop-up window may also carry a selection control for the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0030] It is understandable that the above notification and the process of obtaining user authorization are merely illustrative and do not constitute a limitation on the implementation of the present disclosure. Other methods that meet the relevant laws and regulations may also be applied to the implementation of the present disclosure.

[0031] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and relevant provisions.

[0032] In order to make the purpose, technical solutions and advantages of this specification more clear, this specification is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.

[0033] Figure 1 FIG. 1 is a schematic diagram of an exemplary system 100 according to an embodiment of the present disclosure. The system 100 may be a system for implementing corresponding table data processing.

[0034] like Figure 1 As shown, taking the case where a terminal device and a server jointly execute an object display method as an example, the system 100 may include a terminal device 102, a server 104, and a database server 106. The terminal device 102 and the server 104 are connected via a network, such as a wired or wireless network connection. Optionally, the device for implementing table data processing may be integrated in the terminal device 102. The database server 106 and the server 104 are connected via a network, such as a wired or wireless network connection. The database server 106 may store various data related to the execution of the data processing method, such as calculation formulas, corresponding basic data, data lists, and the like.

[0035] The terminal device 102 may be installed with various applications (Application, APP, Chinese abbreviation: application), such as image processing applications, video conferencing applications, life service applications, reading applications, video applications, social applications, payment applications, web browsers and instant messaging tools, etc. These applications can be used to input data or display data lists (before or after update). As an optional example, the application (APP) installed on the terminal device 102 can be downloaded and installed from the server 104.

[0036] The terminal device 102 here can be hardware or software. When the terminal device 102 is hardware, it can be various electronic devices with a display screen, including but not limited to smart phones, tablet computers, e-book readers, MP3 players, laptop computers (Laptops) and desktop computers (PCs), etc. When the terminal device 102 is software, it can be installed in the electronic devices listed above. It can be implemented as multiple software or software modules (for example, to provide distributed services), or it can be implemented as a single software or software module. It is not specifically limited here.

[0037] The server 104 may be a server that provides various services. For example, it may be a background server that provides support for various applications displayed on the terminal device 102. The database server 106 may also be a database server that provides various services. It is understood that if the server 104 can implement the relevant functions of the database server 106, the database server 106 may not be provided in the system 100.

[0038] Here, the server 104 and the database server 106 can also be hardware or software. When they are hardware, they can be implemented as a distributed server cluster consisting of multiple servers, or as a single server. When they are software, they can be implemented as multiple software or software modules (for example, to provide distributed services), or as a single software or software module. No specific limitation is made here.

[0039] It should be noted that the table data processing method provided in the embodiment of the present disclosure can be executed by the system 100. Specifically, it can be executed interactively between the terminal device 102, the server 104 and the database server 106. It is understood that in the case where the terminal device 102 has the functions required by the server 104 and the database server 106 to execute the table data processing method, the terminal device 102 can also execute it alone. It should be understood that Figure 1The number of terminal devices 102, servers 104, database servers 106 and users 108 in the figure is only for illustration. According to actual needs, there may be any number of terminal devices, users, servers and database servers.

[0040] In an exemplary application scenario, user 108 can input or enter data through terminal device 102, and server 104 can execute a table data processing method based on the input data, and provide corresponding table data processing services to user 108, and display the operation interface or results (such as an updated data list) of the table data processing service on the page through terminal device 102.

[0041] As described in the background technology section, in some examples, the calculation service of the formula will be performed with the help of the node backend service. In some specific scenarios, the node backend service can be a Node.js backend service. However, with the increase in data complexity and the increase in the amount of calculation, since the node backend service in this application is a single-threaded computing service, it is not suitable for CPU-intensive computing scenarios. When faced with scenarios with large amounts of calculation, it will cause performance problems such as long calculation time and high memory usage, so it needs to be adjusted to a certain extent.

[0042] In combination with the above-mentioned actual situation, the disclosed embodiment provides a method for processing table data. When it is necessary to use the node backend service for calculation, a calculation engine is introduced, the data and calculation formula to be calculated are passed to the calculation engine, and the calculation engine is used to calculate the formula. At the same time, on this basis, by determining the data list affected by the calculation formula, only the data list is calculated, so as to achieve calculation based only on increments, and after completing the calculation of the data list, the data items before and after the calculation of the data list are compared to determine the data items that have changed, and finally only the data items that have changed are updated, so as to quickly complete the update of the data list. In this way, the calculation power of the calculation engine can be used to greatly improve the performance of formula calculations, and the incremental calculation method and the result difference comparison update can be used to reduce the recalculation range after obtaining the new input data, as well as the range of the final data update, so as to further improve the calculation efficiency and reduce the occupancy. Ultimately, the overall response efficiency is improved, the cost is reduced, and the user experience is greatly improved.

[0043] Figure 2 200 according to an exemplary method 200 provided in accordance with an embodiment of the present disclosure. Optionally, the method 200 can be used to process table data, especially to respond quickly in a node backend service scenario to improve overall efficiency. Figure 1 The terminal device 102 can also be implemented by Figure 1 The system 100 is implemented as follows.

[0044] like Figure 2 As shown, the table data processing method exemplarily proposed in the embodiment of the present disclosure may specifically include the following steps.

[0045] Step 202: Obtain input data in a table, and determine at least one calculation formula affected by the input data.

[0046] In this step, the table can be a table file for data recording, which can contain more than one kind of data, and the input data can be data input for a certain item or a certain column in the table. Afterwards, the input data can be input by the user through the corresponding window, or it can be batch input using a table, etc., or the system automatically obtains it according to the setting. For example, in a sales scenario, the table can be used to calculate and record the turnover statistics and related data, and the input data can be a newly added sales data. Of course, the sales can be newly generated in real time, or it can be the sales data that has not been entered found during the verification process. After obtaining the input data, it can be directly stored in the database. At the same time, due to the attributes or tags attached to it when the data is input, the corresponding influence relationship can be determined for it, such as the data it will affect or the calculation formula that causes the impact. In a more specific example, after a turnover data is input, according to the prior setting, it may affect the data such as daily turnover, monthly turnover, and rate of return, and the corresponding different data will have different calculation formulas set accordingly. Therefore, after an input data is entered, the affected calculation formula can be determined according to the input data.

[0047] Step 204, determining the basic data corresponding to the calculation formula according to the node backend service, and writing the input data and the basic data into the calculation engine.

[0048] In this step, the node backend service is used as an example, which can be a Node.js backend service. Node.js backend service is a service built on the Node.js platform, which can process HTTP requests and responses, interact with the database, and provide API interfaces for front-end calls. The node backend service can be used to determine the basic data used by the calculation formula in the database, such as the calculation formula corresponding to the daily turnover and monthly turnover in the above example, and its basic data can be all the turnover data in a certain day or a certain month. After that, the input data and the basic data can be written to the structure that needs to be calculated or recalculated later. In this solution, a calculation engine will be added on the basis of the node backend service, and the formula calculation work will be specifically performed through the calculation engine. In an example, the Rust calculation engine can be used to perform the corresponding formula calculation later, and then the data can be written to the Rust calculation engine. The input data here can also be considered as part of the basic data for the database, and can be written together.

[0049] It should be noted that the Rust computing engine is a data processing engine written in Rust. As a system programming language, Rust focuses on security, concurrency and performance. Its performance is close to that of C and C++ because it allows direct access to hardware resources and has no runtime or garbage collection overhead. At the same time, Rust provides powerful concurrent programming support, allowing developers to write efficient code that runs on multi-core processors. It helps avoid data competition and other concurrency problems through immutable sharing, mutable borrowing, and sending / synchronization traits. In this way, the Rust computing engine can be used to achieve concurrent asynchronous processing of data, thereby improving data processing capabilities.

[0050] As the complexity of the calculation formula increases, and the amount of basic data involved increases, if the data itself is copied or written directly, it will undoubtedly cause a certain amount of system occupancy, increase the processing time and increase the memory usage. Therefore, in some examples, after the node backend service knows the storage location of the native binary data of the input data and the basic data, it can directly inform the calculation engine without further processing (such as reading, interpretation, etc.), so that the data is transmitted in the form of native binary data. Specifically, after the node backend service knows the storage location of the native binary data of the input data and the basic data, the message will inform the node backend service in the form of a pointer to know the location of the input data and the basic data. In the general process, the node backend service will find the data location according to the pointer and then read the data. In this example, these pointers are not further operated directly, and the pointers are directly informed to the calculation engine. When the calculation engine calculates a calculation formula, it can directly find the corresponding native binary data according to the pointer, thereby setting up different data copies for different calculation formulas, and these data copies all point to the original data in the database. This allows the calculation formulas to be processed asynchronously without affecting each other, and because only pointers are being passed, the response speed of data processing can be improved. That is, in some examples, writing the input data and the basic data into the computing engine includes: determining the storage location of the native binary data of the input data and the basic data, and transmitting the storage location to the computing engine in the form of a pointer, so that the computing engine can find the native binary data corresponding to the required data according to the corresponding pointer.

[0051] Furthermore, in order to facilitate data acquisition, in some examples, the input data and basic data can be synchronously written into the basic storage block used to store the formula calculation results. In some examples, the basic storage block here may be Base Storage. In the general formula calculation process, the basic storage block is generally used to store some unchanging data used in the formula calculation, such as variables input by the user, weight parameters in the formula, some constants, and so on. Afterwards, the calculation process will be carried out in the data block. In some examples, the data block may be a Data Chunk, and the calculation results will be temporarily stored in the data block. When the basic storage block changes, the data block will be cleared, so every time the data or metadata changes, the data block will be cleared, which will cause the full recalculation of the formula.

[0052] Step 206: Determine the data list affected by the calculation formula through the node backend service, pass the calculation formula to the calculation engine to calculate the data list, and generate a calculation result.

[0053] In this step, when a specific data is stored, other information may be stored together. For example, when daily turnover data is stored, date and time information, personnel information and other information will also be recorded. Therefore, it is generally stored in the form of a table. Therefore, in this solution, the node backend service can first determine the specific affected data list in the corresponding storage file according to the calculation formula. Specifically, it can be determined which column of data in the table needs to be recalculated, rather than recalculating and determining the entire table. That is, it can be understood as only performing incremental calculations.

[0054] It should be noted that in a specific scenario, the applicant has counted the time consumption of the 600,000-cell write link, and then, based on this, counted the proportion of data transmission changes before and after writing. According to the statistical results, it can be seen that it is limited by the current data writing capabilities, such as the write performance of the underlying relational database. The 600,000-cell write link takes about 115 seconds. And after recalculating most of the actual formula scenarios, the proportion of unchanged formula calculation results is basically above 90%. Therefore, the unchanged formula calculation results can be trimmed in advance before writing to the database to reduce the time consumption of the write link. In order to trim the parts of the formula calculation results that have not changed, this solution eliminates the unaffected parts and the unchanged parts by means of incremental calculation of this step and comparison of the results before and after calculation in step 208.

[0055] In this example, after determining the affected data list, the calculation formula can be passed to the calculation engine, so that the calculation engine recalculates the data in the data list and generates the calculation result. In this process, in order to facilitate the comparison of data in the data list in the subsequent steps, the data in the data list can be stored before the data calculation, and the data can be recalculated after the storage is completed. For example, a data list is used to record the specific value of the daily turnover. In order to facilitate data management, the data list generally does not only record the daily turnover of one day, but will record the daily turnover of one month, one year or even more days. If a new input data is entered, it may only affect the data of a certain data item in the data list, and then the determination work of step 208 is required. Therefore, before recalculating the data in the data list, the data in the current data list can be recorded. In a more specific example, the list data before calculation can be stored in the basic storage block to form comparison data. At the same time, in order to store these comparison data, the basic storage block can add a data structure for describing the row calculation state of the formula in its structure to store the comparison data.

[0056] That is, in some examples, the calculation formula is passed to the calculation engine to calculate the data list, including: storing the list data of the data list before calculation in the basic storage block to form comparison data; calling the input data and the basic data from the basic storage block, recalculating the data list using the calculation formula, and generating calculation data. At the same time, for the basic storage block, a data structure for describing the row calculation state of the formula can be added to the basic storage block for storing the comparison data. Among them, combined with the above, since the formula calculation process is generally carried out in the data block, and the data block will be cleared every time a change occurs, it is not possible to directly store data in the data block, and then a new data structure can be constructed in the basic storage block. The comparison data is stored using the new data structure, and then after the data recalculation is completed in the data block, the calculation data is generated, and the comparison data and the calculation data can be compared after the calculation data is transferred to the basic storage block.

[0057] In some examples, for a calculation formula in an application, it may contain multiple levels of sub-formulas, such as calculation formula F1=F2+F3+C, where, to calculate calculation formula F1, it is necessary to first calculate calculation formula F2 and calculation formula F3, where calculation formula F2 and calculation formula F3 can be considered as first-level sub-formulas of calculation formula F1. When the calculation formula is passed into the calculation engine for calculation, the structure of the calculation formula can be analyzed first to determine at least one level of sub-formulas it contains, and then a topological sequence diagram is formed based on the hierarchical relationship of these sub-formulas. Finally, the calculation formula is transmitted to the calculation engine in the form of a topological sequence diagram, so that the calculation engine can determine the calculation relationship between the multi-level formulas according to the topological sequence diagram, and perform calculations step by step. For formulas at the same level, synchronous multi-threaded calculations can be performed to improve calculation efficiency. That is, in some examples, the passing the calculation formula into the calculation engine to calculate the data list includes: analyzing the calculation formula to determine at least one first-level sub-formula contained in the calculation formula; establishing a topological sequence graph of the calculation formula based on the at least one first-level sub-formula; and passing the calculation formula into the calculation engine in the form of the topological sequence graph, so that the calculation engine performs calculations in sequence according to the topological sequence graph.

[0058] Further, in combination with the calculation formula F1=F2+F3+C in the above example, the calculation formula can only be divided at the formula level in the node backend service, and for the more detailed basic data field C, it can only be calculated when the F1 formula is calculated. The basic data field C here can be understood as some constant terms or hyperparameters after calculation with the help of simple basic data. The amount of calculation for the basic data field C itself is different in different scenarios, which will also affect the calculation efficiency to a certain extent. Therefore, in the calculation engine, since the calculation engine can theoretically perceive more details of the expression and execution layer, the basic data field C in the calculation formula F1 can be determined on the basis of the above example, and then before the calculation, the basic data field C can be regarded as at least one level of sub-formula, and the topological sequence diagram can be updated accordingly, so that the calculation can be performed according to the updated topological sequence diagram, which can further improve the calculation efficiency. For example, in the calculation formula F1=F2+F3+C, the basic data field C can be calculated at the same time when the sub-formulas of F2 and F3 are calculated. That is, in some examples, after the calculation formula is passed into the calculation engine in the form of the topological sequence graph, the method also includes: the calculation engine analyzes the calculation formula corresponding to the topological sequence graph to determine whether it contains basic data fields; in response to containing the basic data fields, the basic data fields are regarded as the at least one first-level sub-formula, and the topological sequence graph is updated.

[0059] In some examples, in order for the computing engine to more conveniently understand the calculation formula transmitted from the node backend service, the calculation formula can be compiled into a corresponding abstract syntax tree (AST); the calculation formula can be transmitted to the computing engine in the form of an abstract syntax tree. Specifically, for a calculation formula, the formula can be compiled in the node backend service stage, and the corresponding editor can be called to compile and return the abstract syntax tree; then, through the serialization logic of the abstract syntax tree, a JSON structure is generated to describe each node of the abstract syntax tree; finally, this JSON structure is passed to the computing engine for parsing, and the corresponding calculation formula is expanded in the computing engine. That is, in some examples, the calculation formula is passed to the computing engine to calculate the data list, including: compiling the calculation formula into a corresponding abstract syntax tree according to the format requirements of the computing engine; transmitting the abstract syntax tree to the computing engine.

[0060] Step 208: Determine, based on the calculation result, the data items in the data list that have changed before and after the calculation, and update the data items.

[0061] In this step, according to the introduction and calculation of step 206, a new calculation result of the data list, specifically the calculation data, is calculated in the calculation engine. Then, by determining the data items in the data list that have changed before and after the calculation, the changed items can be determined in the data list, so that data can be updated only for the changed items and related data.

[0062] In combination with the above example, taking the daily turnover data list as an example, the data list may list daily turnover data for many days, and a new input data may only correspond to the daily turnover data for one of the days, which may only affect one of the data items in the data list. Then, by comparing the data list before and after, the changed items can be determined, so that only the changed data items are updated, and the others are not processed, thereby further improving the data processing speed.

[0063] Of course, in specific application scenarios, different fields or different data may have different specific structures for comparison. For example, when comparing hyperlinks, you can compare the IUrlSegment field in the specific cell of the table; when comparing geographic fields, you can compare the {locations:{poiInfo:IPoiInfo;}[];} field in the specific cell of the table, and so on.

[0064] Finally, in combination with the foregoing example, the process of determining the data items in the data list that have changed before and after the calculation may be to compare the comparison data with the calculation data, determine the changed items therein, and use this to update the data items.

[0065] Step 210: Display the updated data list in the table.

[0066] In this step, after the data list is updated, it can be output by display, and specifically, the updated data list can be displayed in a table. Of course, the updated data list or table can be displayed to the current operator, or stored, etc. That is, for the updated data list or table, it can be displayed and output on the corresponding device to give the operator corresponding feedback. Of course, in other examples, the output method for the updated data list or table may not be limited to output display, and it can also be used to store, display, use or reprocess the updated data list or table. According to different application scenarios and implementation needs, the specific output method for the updated data list or table can be flexibly selected.

[0067] For example, for an application scenario in which the method of this example is executed on a single device, the updated data list or table can be directly output in a displayed manner on the display component (display, projector, etc.) of the current device, so that the operator of the current device can directly see the contents of the updated data list or table from the display component.

[0068] For another example, in an application scenario where the method of this example is executed on a system composed of multiple devices, the updated data list or table can be sent to other preset devices as recipients in the system, that is, the synchronization terminal, through any data communication method (wired connection, NFC, Bluetooth, wifi, cellular mobile network, etc.), so that the synchronization terminal can perform subsequent processing on it. Optionally, the synchronization terminal can be a preset server, which is generally set up in the cloud as a data processing and storage center, which can store and distribute the updated data list or table; wherein the recipient of the distribution is the terminal device, and the holder or operator of these terminal devices can be the system operator (user), system maintenance personnel, data analyst, etc.

[0069] For another example, in an application scenario where the method of this example is executed on a system consisting of multiple devices, the updated data list or table can be sent directly to a preset terminal device through any data communication method, and the terminal device can be one or more of the ones listed in the preceding paragraphs.

[0070] It can be seen from the above embodiments that the table data processing method provided by the embodiment of the present disclosure, by introducing a calculation engine when it is necessary to use the node backend service for calculation, passing the data and calculation formula to be calculated to the calculation engine, and using the calculation engine to perform formula calculation, and on this basis, by determining the data list affected by the calculation formula, only the data list is calculated, so as to achieve calculation based only on increments, and after completing the calculation of the data list, the data items before and after the calculation of the data list are compared to determine the data items that have changed, and finally only the data items that have changed are updated, so as to quickly complete the update of the data list. In this way, the calculation power of the calculation engine can be used to greatly improve the performance of formula calculation, and the incremental calculation method and the result difference comparison update can be used to reduce the recalculation range after obtaining the new input data, as well as the range of the final data update, so as to further improve the calculation efficiency and reduce the occupancy. Ultimately, the overall response efficiency is improved, the cost is reduced, and the user experience is greatly improved.

[0071] It should be noted that the method of the embodiment of the present disclosure can be performed by a single device, such as a computer or a server. The method of the embodiment of the present disclosure can also be applied in a distributed scenario and completed by multiple devices cooperating with each other. In the case of such a distributed scenario, one of the multiple devices can only perform one or more steps in the method of the embodiment of the present disclosure, and the multiple devices will interact with each other to complete the described method.

[0072] It should be noted that the above is a description of a specific embodiment of the present disclosure. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the above embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0073] Based on the same technical concept, corresponding to any of the above-mentioned embodiment methods, the present disclosure also provides a table data processing device. Figure 3 FIG. 3 is a schematic diagram of an exemplary device 300 provided in an embodiment of the present disclosure. Figure 3 As shown, the device 300 can be used to implement the method 200, and can further include the following modules.

[0074] The first module 310 is used to obtain input data in a table and determine at least one calculation formula affected by the input data.

[0075] The second module 320 is used to determine the basic data corresponding to the calculation formula according to the node backend service, and write the input data and the basic data into the calculation engine.

[0076] The third module 330 is used to determine the data list affected by the calculation formula through the node backend service, pass the calculation formula to the calculation engine to calculate the data list, and generate a calculation result.

[0077] The fourth module 340 is used to determine, based on the calculation result, the data items in the data list that have changed before and after the calculation, and update the data items.

[0078] The fifth module 350 is used to display the updated data list in the table.

[0079] In some exemplary embodiments, the second module 320 is further configured to:

[0080] The input data and the basic data are synchronously written into a basic storage block used for storing formula calculation results.

[0081] In some exemplary embodiments, the third module 330 is further configured to:

[0082] storing the list data of the data list before calculation into the basic storage block to form comparison data;

[0083] The input data and the basic data are retrieved from the basic storage block, and the data list is recalculated using the calculation formula to generate calculation data.

[0084] In some exemplary embodiments, the fourth module 340 is further configured to:

[0085] The comparison data and the calculation data are compared to determine the changed items therein as the data items, thereby updating the data items.

[0086] In some exemplary embodiments, the basic storage block includes a data structure for describing a row calculation state of a formula, which is used to store the comparison data.

[0087] In some exemplary embodiments, the third module 330 is further configured to:

[0088] Analyze the calculation formula to determine at least one first-level sub-formula included in the calculation formula;

[0089] Establishing a topological sequence diagram of the calculation formula according to the at least one first-level sub-formula;

[0090] The calculation formula is transmitted to the calculation engine in the form of the topological sequence diagram, so that the calculation engine performs calculations in sequence according to the topological sequence diagram.

[0091] In some exemplary embodiments, the third module 330 is further configured to:

[0092] The computing engine analyzes the computing formula corresponding to the topological sequence diagram to determine whether it contains basic data fields;

[0093] In response to including the basic data field, the basic data field is regarded as the at least one level sub-formula, and the topological sequence graph is updated.

[0094] In some exemplary embodiments, the second module 320 is further configured to:

[0095] Determine the storage location of the native binary data of the input data and the basic data, and transmit the storage location to the computing engine in the form of a pointer, so that the computing engine finds the native binary data corresponding to the required data according to the corresponding pointer.

[0096] In some exemplary embodiments, the third module 330 is further configured to:

[0097] Compiling the calculation formula into a corresponding abstract syntax tree according to the format requirements of the calculation engine;

[0098] The abstract syntax tree is transmitted to the computing engine.

[0099] For the convenience of description, the above device is described by dividing it into various modules according to its functions. Of course, when implementing the present disclosure, the functions of each module can be implemented in the same or multiple software and / or hardware.

[0100] The device of the above embodiment is used to implement the corresponding method 200 in any of the above embodiments, and has the beneficial effects of the corresponding method 200 embodiment, which will not be described in detail here.

[0101] Based on the same technical concept, corresponding to any of the above-mentioned embodiments and methods, the embodiment of the present disclosure further provides a computer device for implementing the above-mentioned method 200. Figure 4 FIG. 4 is a schematic diagram showing the hardware structure of an exemplary computer device 400 provided in an embodiment of the present disclosure. The computer device 400 can be used to implement Figure 1 In some scenarios, the computer device 400 can also be used to implement Figure 1 Server 104 and database server 106.

[0102] like Figure 4 As shown, the computer device 400 may include: a processor 402, a memory 404, a network module 406, a peripheral interface 408 and a bus 410. The processor 402, the memory 404, the network module 406 and the peripheral interface 408 are connected to each other in communication within the computer device 400 through the bus 410.

[0103] Processor 402 may be a central processing unit (CPU), an image processor, a neural network processor (NPU), a microcontroller (MCU), a programmable logic device, a digital signal processor (DSP), an application specific integrated circuit (ASIC), or one or more integrated circuits. Processor 402 may be used to perform functions related to the technology described in the present disclosure. In some embodiments, processor 402 may also include multiple processors integrated into a single logical component. For example, Figure 4 As shown, processor 402 may include a plurality of processors 402a, 402b, and 402c.

[0104] The memory 404 may be configured to store data (eg, instructions, computer code, etc.). Figure 4 As shown, the data stored in the memory 404 may include program instructions (e.g., program instructions for implementing the method 200 of the embodiment of the present disclosure) and data to be processed (e.g., the memory may store configuration files of other modules, etc.). The processor 402 may also access the program instructions and data stored in the memory 404, and execute the program instructions to operate on the data to be processed. The memory 404 may include a volatile storage device or a non-volatile storage device. In some embodiments, the memory 404 may include a random access memory (RAM), a read-only memory (ROM), an optical disk, a magnetic disk, a hard disk, a solid-state drive (SSD), a flash memory, a memory stick, etc.

[0105] The network interface 406 can be configured to provide the computer device 400 with communication with other external devices via a network. The network can be any wired or wireless network capable of transmitting and receiving data. For example, the network can be a wired network, a local wireless network (e.g., Bluetooth, WiFi, near field communication (NFC)), a cellular network, the Internet, or a combination thereof. It is understood that the type of network is not limited to the above specific examples.

[0106] The peripheral interface 408 can be configured to connect the computer device 400 to one or more peripheral devices to achieve information input and output. For example, the peripheral devices can include input devices such as a keyboard, a mouse, a touch pad, a touch screen, a microphone, and various sensors, and output devices such as a display, a speaker, a vibrator, and an indicator light.

[0107] The bus 410 may be configured to transmit information between various components of the computer device 400 (e.g., the processor 402, the memory 404, the network interface 406, and the peripheral interface 408), such as an internal bus (e.g., a processor-memory bus), an external bus (USB port, PCI-E bus), etc.

[0108] It should be noted that, although the architecture of the above-mentioned computer device 400 only shows the processor 402, the memory 404, the network interface 406, the peripheral interface 408 and the bus 410, in the specific implementation process, the architecture of the computer device 400 may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the architecture of the above-mentioned computer device 400 may also only include the components necessary for implementing the embodiments of the present disclosure, and does not necessarily include all the components shown in the figure.

[0109] Based on the same technical concept, corresponding to any of the above-mentioned embodiments, the present disclosure also provides a non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores computer instructions, and the computer instructions are used to enable the computer to execute method 200 described in any of the above embodiments.

[0110] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be achieved by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.

[0111] The computer instructions stored in the storage medium of the above embodiment are used to enable the computer to execute the method 200 described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0112] Based on the same technical concept, corresponding to the method 200 described in any of the above embodiments, the present disclosure further provides a computer program product, including computer program instructions, which, when executed on a computer, enable the computer to execute the method 200 described in any of the above embodiments. In some embodiments, the computer program instructions may be executed by one or more processors of a computer so that the computer and / or the processor execute the method 200. Corresponding to the execution subject corresponding to each step in each embodiment of the method 200, the processor that executes the corresponding step may belong to the corresponding execution subject.

[0113] The computer program product of the above embodiment is used to enable the computer and / or the processor to execute the method 200 described in any of the above embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be described in detail here.

[0114] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present disclosure (including the claims) is limited to these examples. Based on the concept of the present disclosure, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the embodiments of the present disclosure as described above, which are not provided in detail for the sake of simplicity.

[0115] In addition, to simplify the description and discussion, and in order not to make the embodiments of the present disclosure difficult to understand, the known power / ground connections to the integrated circuit (IC) chips and other components may or may not be shown in the provided figures. In addition, the device can be shown in the form of a block diagram to avoid making the embodiments of the present disclosure difficult to understand, and this also takes into account the fact that the details of the implementation of these block diagram devices are highly dependent on the platform on which the embodiments of the present disclosure will be implemented (that is, these details should be fully within the scope of understanding of those skilled in the art). Where specific details (e.g., circuits) are set forth to describe exemplary embodiments of the present disclosure, it is apparent to those skilled in the art that the embodiments of the present disclosure can be implemented without these specific details or with changes in these specific details. Therefore, these descriptions should be considered illustrative rather than restrictive.

[0116] Although the present disclosure has been described in conjunction with specific embodiments of the present disclosure, many replacements, modifications and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may use the embodiments discussed.

[0117] The embodiments of the present disclosure are intended to cover all such substitutions, modifications and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present disclosure should be included in the scope of protection of the present disclosure.

Claims

1. A table data processing method, comprising: Obtaining input data in a table, and determining at least one calculation formula affected by the input data; Determine the basic data corresponding to the calculation formula according to the node backend service, and write the input data and the basic data into the calculation engine; Determine the data list affected by the calculation formula through the node backend service, pass the calculation formula into the calculation engine to calculate the data list, and generate a calculation result; According to the calculation result, determine the data items in the data list that have changed before and after the calculation, and update the data of the data items; The updated data list is displayed in the table.

2. The method according to claim 1, wherein: Writing the input data and the basic data into a computing engine comprises: The input data and the basic data are synchronously written into a basic storage block used for storing formula calculation results.

3. The method according to claim 2, wherein: The step of transferring the calculation formula to the calculation engine to calculate the data list includes: storing the list data of the data list before calculation into the basic storage block to form comparison data; The input data and the basic data are retrieved from the basic storage block, and the data list is recalculated using the calculation formula to generate calculation data.

4. The method according to claim 3, wherein: The determining of the data items in the data list that have changed before and after the calculation includes: The comparison data and the calculation data are compared to determine the changed items therein as the data items, thereby updating the data items.

5. The method according to claim 3, wherein: The basic storage block includes a data structure for describing the row calculation state of the formula, and is used for storing the comparison data.

6. The method according to claim 1, wherein: The step of transferring the calculation formula to the calculation engine to calculate the data list includes: Analyze the calculation formula to determine at least one first-level sub-formula included in the calculation formula; Establishing a topological sequence diagram of the calculation formula according to the at least one first-level sub-formula; The calculation formula is transmitted to the calculation engine in the form of the topological sequence diagram, so that the calculation engine performs calculations in sequence according to the topological sequence diagram.

7. The method according to claim 6, wherein: After the calculation formula is input into the calculation engine in the form of the topological sequence graph, the method further includes: The computing engine analyzes the computing formula corresponding to the topological sequence diagram to determine whether it contains basic data fields; In response to including the basic data field, the basic data field is regarded as the at least one level sub-formula, and the topological sequence graph is updated.

8. The method according to claim 1, wherein: Writing the input data and the basic data into the Rust computing engine includes: Determine the storage location of the native binary data of the input data and the basic data, and transmit the storage location to the computing engine in the form of a pointer, so that the computing engine finds the native binary data corresponding to the required data according to the corresponding pointer.

9. The method according to claim 1, wherein: The step of transferring the calculation formula to the calculation engine to calculate the data list includes: Compiling the calculation formula into a corresponding abstract syntax tree according to the format requirements of the calculation engine; The abstract syntax tree is transmitted to the computing engine.

10. A table data processing device, comprising: A first module is used to obtain input data in a table and determine at least one calculation formula affected by the input data; The second module is used to determine the basic data corresponding to the calculation formula according to the node backend service, and write the input data and the basic data into the calculation engine; The third module is used to determine the data list affected by the calculation formula through the node backend service, pass the calculation formula to the calculation engine to calculate the data list, and generate a calculation result; A fourth module is used to determine, according to the calculation result, data items in the data list that have changed before and after the calculation, and update the data items; The fifth module is used to display the updated data list in the table.

11. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method according to any one of claims 1 to 9 is implemented.

12. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to enable a computer to execute the method according to any one of claims 1 to 9.