An equal load space-time perception big data storage query method and system based on a storage object separation mechanism

By establishing a two-level index structure based on a storage object separation mechanism and a dynamic partitioning method, the problems of slow query speed and unbalanced load of IoT spatiotemporal data are solved, achieving efficient data retrieval and real-time load balancing, which is suitable for scenarios such as vehicle networking and personnel flow investigation.

CN116775641BActive Publication Date: 2026-04-17INST OF SOFTWARE - CHINESE ACAD OF SCI
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INST OF SOFTWARE - CHINESE ACAD OF SCI
Filing Date
2022-03-11
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

Existing data storage and query methods fail to effectively utilize the time-space attributes of IoT spatiotemporal data, resulting in slow query speeds, especially in common queries such as trajectory tracking, where they lack specificity, and traditional methods fail to achieve real-time load balancing.

Method used

A two-level index structure is established using a storage object separation mechanism. The first-level index is a uniform fine-grained spatial grid, and the second-level index is a time-series index. Data tables are managed by combining B+ trees and skip lists. A time-series model is used for dynamic partitioning to achieve load balancing, and ARIMA model is used for real-time prediction and adjustment.

Benefits of technology

It improves query efficiency, achieves real-time load balancing, reduces memory and disk I/O interaction, enhances the parallelism and continuity of data retrieval, facilitates batch reading, and is suitable for large-scale single-point spatiotemporal data management such as vehicle networking and personnel flow surveys.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116775641B_ABST
    Figure CN116775641B_ABST
Patent Text Reader

Abstract

The application belongs to the field of space-time perception big data fast query of Internet of Things, and particularly relates to a balanced load space-time perception big data storage query method and system based on a storage object separation mechanism. The method comprises the following steps: 1) according to the characteristics of space-time data, a two-level index is constructed with a data table as a basic unit, wherein the first-level index is a grid division of space, and the second-level index is a time series index; 2) the granularity of the first-level index is a data table, and the granularity of the second-level index is a data block composed of multiple data items; a greedy algorithm is used to iteratively calculate the dynamic changes of the space index according to the increase of the amount of stored data; 3) since the space index has a lagging nature when adjusting, a time series model is used to predict the data amount, and the space division method in 2) is used to obtain a space division set; 4) according to the space division structure obtained in 3), each space set is operated by a thread, so that the effect of balanced divide-and-conquer processing of massive data is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of rapid query of spatiotemporal sensing big data in the Internet of Things, specifically involving a method and system for balanced load spatiotemporal sensing big data storage and query based on a storage object separation mechanism. Background Technology

[0002] With the advent of the era of the Internet of Things (IoT), terminal systems, including our mobile phones, in-vehicle systems, and smart homes, are constantly generating massive amounts of data, ushering in a new phase of rapid development for the big data era. The sheer volume, diverse sources, and rapid growth of IoT big data are constantly impacting existing data processing models and challenging current data storage methods. Improving and optimizing data storage and processing methods has become an ongoing research direction.

[0003] This invention addresses the unique properties of spatiotemporal data, which possess both temporal continuity and spatial correlation. By comparing and analyzing current mainstream storage and query methods, it explores a storage and query method for spatiotemporal data generated by IoT (Internet of Things) sensors. Based on the characteristics of the data, the invention optimizes the query process to improve read and write efficiency and better meet the real-time requirements of the big data era.

[0004] Traditional open-source data management solutions lack effective management methods for IoT sampling data. While they have expanded data management methods—for example, MySQL's spatial plugin based on the OpenGIS standard, PostgreSQL's PostGIS plugin for spatial data management, and time-series databases like InfluxDB and TD Engine using time series as an indexing method—none of these methods effectively utilize the time-space attribute. On the other hand, Geohash encoding proposed by Geomesa offers a spatial-temporal fusion encoding method, solving the spatiotemporal query problem to some extent. However, it suffers from drawbacks such as requiring a predefined time start point, slow query speed, and lack of targeted processing for common IoT queries like trajectory tracking. Summary of the Invention

[0005] To address the shortcomings of existing technologies and considering common retrieval needs in application scenarios, this invention provides a load-balanced spatiotemporal sensing big data storage and query method based on a storage object separation mechanism. This method leverages the characteristics of IoT spatiotemporal sensing big data, fully utilizing the temporal and spatial attributes of sensor-collected information to serve common IoT data query needs such as range queries, improving query efficiency and achieving real-time load balancing. This invention can be used for the effective management of large-scale single-point spatiotemporal data in applications such as vehicle networking and personnel flow analysis.

[0006] The technical solution adopted in this invention is as follows:

[0007] A load-balanced, space-time-aware big data storage and query method based on a storage object separation mechanism includes the following steps:

[0008] A two-level index structure for spatiotemporal sensing big data is established. The first-level index consists of several spatial sets formed by merging and managing a uniform, fine-grained spatial grid. Each spatial set has a data table built with the sensor that collected the data as the basic unit. A B+ tree structure is used to manage the data tables built by different sensors. The second-level index is the time series index of a single data table. The data in a single data table is arranged monotonically in ascending order of time. Skip lists are used to manage the time series data.

[0009] Write the IoT sensing sampling data into the secondary index structure;

[0010] The time series model is used to predict the data volume, and the space set of the first-level index is dynamically divided according to the predicted data volume to achieve load balancing in real time.

[0011] Data queries are performed using dynamically partitioned spatial sets as the basic unit, with each spatial set operated by a single thread, achieving balanced divide-and-conquer processing of massive amounts of data.

[0012] Furthermore, the granularity of the first-level index is the data table, while the granularity of the second-level index is the data block composed of multiple data items.

[0013] Furthermore, in the second-level index, data in a single table is timestamped with the time it was generated and stored in a monotonically increasing order of timestamps, using skip lists to link the actual physical storage space on disk.

[0014] Furthermore, the step of writing IoT sensing sampling data into the secondary index structure includes: firstly, extracting spatial data information for calculation to determine the grid location to be stored; then, locking the data table to be stored using a B+ tree index based on the sensor ID that generated the data; and finally, appending the data to the end of the data table based on the timestamp information.

[0015] Furthermore, the following steps are used to merge and manage the homogenized fine-grained spatial grid, forming several spatial sets of the first-level index:

[0016] 1) Based on the number of sets n to be divided, initialize the grid into n sets, where each set contains several grids, i.e., grids. The weight of each grid is the amount of data present in that grid. To ensure consistency in subsequent encoding, the set shape is rectangular. At this point, the calculated threshold parameter is obtained. Where numi The amount of data contained in each set, u is the average of the total amount of data divided by n;

[0017] 2) Iterate through the set using a greedy strategy. Each set is operated on with its neighboring sets. The operation rule is: the current rectangular set expands to the four sides while the neighboring sets shrink. Since the set is limited to a rectangle, the set group with the minimum change is calculated in the expansion direction. The set group is selected to have the effect on r and the direction of maximum gradient descent is selected. The set boundary size is adjusted in the set group.

[0018] 3) Repeat step 2) until the loop ends. The termination condition is when r is less than the set threshold or does not continue to decrease after multiple iterations. At this point, a spatial partition of the balanced data volume is obtained.

[0019] Furthermore, the step of using a time-series model to predict data volume and dynamically partitioning the spatial set based on the predicted data volume includes:

[0020] (1) For each grid, data is continuously written over time, generating a time series about the amount of data in the grid. The time series is subjected to ADF test. If the test is satisfied, proceed to step (2). Otherwise, perform differential processing or other methods to make it a stationary series.

[0021] (2) Based on the time series identification rules, the order of the ARIMA model is determined by combining the ACF plot, PACF plot, AIC criterion and BIC criterion, and the set with the smallest AIC and BIC is selected as the ideal order.

[0022] (3) After determining the ideal order, calculate the amount of data in the grid at time t based on the ARIMA model formula;

[0023] (4) Use the ARIMA model to obtain the data volume prediction results of the grid as the input of step 1) above to achieve real-time load balancing.

[0024] A load-balanced, space-time-aware big data storage and query system based on a storage object separation mechanism, employing the above method, includes:

[0025] The index structure building module is used to build a two-level index structure for spatiotemporal sensing big data. The first-level index consists of several spatial sets formed by merging and managing a uniform fine-grained spatial grid. Each spatial set has a data table built with the sensor that collected the data as the basic unit, and a B+ tree structure is used to manage the data tables built by different sensors. The second-level index is the time series index of a single data table. In a single data table, the data is arranged monotonically in ascending order of time, and a skip list is used to manage the time series data.

[0026] The data writing module is used to write IoT sensing sampling data into the secondary index structure;

[0027] The dynamic partitioning module is used to predict data volume using a time series model. It dynamically partitions the space set of the first-level index according to the predicted data volume to achieve load balancing in real time.

[0028] The data query module is used to query data using dynamically divided spatial sets as the basic unit. Each spatial set is operated by a thread, realizing balanced divide-and-conquer processing of massive amounts of data.

[0029] The beneficial effects of this invention are:

[0030] 1) Compared with traditional indexing and storage methods, the index granularity of the present invention is coarser than that of traditional methods, which can point to more data in a unit of memory and reduce the interaction of memory and disk I / O during retrieval;

[0031] 2) The divide-and-conquer strategy implemented in this invention for data processing can improve the parallelism of data retrieval and reduce time consumption;

[0032] 3) This invention dynamically partitions the set R, achieving real-time load balancing at the data management level;

[0033] 4) The data storage of adjacent time / space in this invention is continuous, which facilitates batch reading and reduces addressing consumption. Attached Figure Description

[0034] Figure 1 This is a schematic diagram of the data processing flow of the present invention.

[0035] Figure 2 This is an index diagram illustrating data management for spatiotemporal sensing data sampled by the Internet of Things. Detailed Implementation

[0036] The technical solution of the present invention will be clearly and completely described below with reference to the embodiments and accompanying drawings. It should be understood that the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0037] The present invention provides a load-balanced, time- and space-aware big data storage and query method based on a storage object separation mechanism, the specific steps of which are as follows:

[0038] 1) Create the minimum adjacency rectangle for the spatial region to be studied (the geographic space that needs to be indexed), and divide the rectangle into uniform grids, denoted as grids. The spatial grid division serves as the basic unit for building the first-level index.

[0039] 2) Establishing a Second-Level Index: A data table is constructed for each individual sensor. Based on the grid division results in step 1), each grid is independently managed by a B+ tree index. The B+ tree index manages the data tables, with all leaf nodes pointing to the data tables generated by the IoT sensors appearing in that grid area. Each data table is named according to the unique sensor identifier of its data source, and each leaf node points to the actual storage location on the disk. For a single data table, data is stored contiguously on the disk. The data table only stores the data generated by that sensor within that grid. Due to the single source and temporally increasing nature of the data, a monotonically increasing time series is used as the indexing method within the data table, forming a time series index, which serves as the second-level index. That is, instead of creating an index for each piece of data within the data table, a data block indexing method is used. Data blocks are sorted by time, and skip lists are used to manage the data blocks. The spatial indexing method described above... Figure 2 As shown.

[0040] 3) When writing data, first, based on the location where the data was generated, the corresponding grid is found according to the spatial index in step 2). Then, the unique identifier of the sensor that generated the data is read, the corresponding leaf node is found through the B+ tree, the end position of the data table corresponding to the leaf node is read, and the data is appended. If the corresponding leaf node does not exist, a new leaf node is added according to the node addition rules of the B+ tree, and a pointer to the new data table on the disk is allocated for it, and the data is written at the pointer position.

[0041] 4) Establishing a first-level index: Since a uniform grid division of the spatial region is insufficient to address the data skew problem in IoT sensing sampling, several grids are merged into a set R for management. That is, the management unit is denoted as R = {R1, R2, R3…R}. n}, where R1, R2, R3…R n This represents the set of n spaces for the first-level index.

[0042] 5) When performing statistical queries such as range queries / nearest neighbor queries, set the query area to be queried as X, obtain the result of X∩R, and then select the R within the intersection range. x Extracted, in R x The search operation is performed at the unit level; for common retrieval methods such as trajectory queries, the results are traversed at the granularity of the data table, and all datasets are returned directly.

[0043] 6) How to determine R. The number of R is selected based on the host or task configuration. Generally speaking, the number of R is equal to the number of concurrent threads, let's assume it's n.

[0044] (6.1) Based on the desired number of sets n, initialize the grid into n sets, where each set contains several grids (grids). The weight of each grid is the amount of data present in that grid. To ensure consistency in subsequent encoding, the sets are rectangular in shape. The calculated threshold parameter is then obtained as follows: r is an intermediate parameter used in subsequent calculations to measure the balance of the spatial set, where num i The size of the data contained in each set is u, which is the average of the total data size divided by n.

[0045] (6.2) Iterate through each set in a round-robin fashion, using a greedy strategy. Each set operates on its adjacent sets. The operation rule is that the current rectangular set expands to the four sides, and the adjacent sets shrink. At the same time, since the set is limited to a rectangle, the minimum change set group is calculated in the expansion direction. The influence on r is selected, the direction of maximum gradient descent is selected, and the set boundary size is adjusted in the minimum change set group.

[0046] The minimum change set group refers to all sets that will change when the current set changes. The method for calculating the minimum change set group is as follows: Select the boundary to be changed of the current set, and extend it along the perpendicular direction β (also a parameter defined for convenience) of the direction of change of this boundary α (α is used for subsequent description). The extension ends when the sets on both sides of the extension line of the boundary to be changed of the current set are exactly tangent to the boundary parallel to α. Then, all sets on both sides of this extension line constitute the minimum change set group.

[0047] Here, r is an intermediate reference value for measuring the degree of balance. When the set changes, the recalculated value of r may increase or decrease. We aim to select the change scheme that reduces the value of r the most. "Adjusting the size of the set boundary in the set group" refers to the change in the current set caused by applying the selected scheme, and the corresponding change in the set group with the smallest change caused by the change in the current set.

[0048] (6.3) Repeat the operation in (6.2). When r is less than the set threshold or does not continue to decrease after multiple iterations, exit the loop to obtain a spatial partition of balanced data volume.

[0049] 7) The method proposed in step 6) requires prior knowledge of the data volume between each region, and is only suitable for historical data management. It lags behind in handling real-time loads. Therefore, a time series model (such as ARIMA) is introduced to predict the weights of the grid. The specific steps are as follows:

[0050] (7.1) For each grid, data is continuously written over time, generating a time series {y1, y2, y3, y4…y} about the amount of data within the grid. n}, where y1, y2, y3, y4…y n This represents the amount of data within the grid for time segments 1, 2, 3, 4, ..., n. An ADF test is performed on the time series. If the test is satisfied, proceed to (7.2); otherwise, methods such as difference processing are used to make it a stationary series.

[0051] (7.2) Based on the identification rules of time series, the order of the time series model ARIMA is determined by combining the ACF diagram, PACF diagram, AIC criterion and BIC criterion. The ideal order should be selected from the set of AIC and BIC with the smallest values.

[0052] (7.3) After determining the ideal order, according to the model formula Predict the amount of data within the grid at time t, which is also the predicted grid weight. Based on the method proposed in section 6), the set is dynamically adjusted over time to obtain a balanced load in real-time. This represents the predicted data volume within the grid at time t using the d-th order difference obtained from the above calculation. This represents the amount of grid data at time tk after d-order differencing, where t represents the predicted time t, d indicates that the original sequence is a stationary sequence after d-order differencing, and u t Represents the white noise value, γ k θ represents the autocorrelation coefficient. k Represents the moving average coefficient, ∈ t-k denoted by tk, p represents the number of autoregressive terms, and q represents the number of moving average terms. p and q are the order values ​​of the time series model ARIMA, determined by combining ACF plot, PACF plot, AIC criterion, and BIC criterion. They are obtained based on the data performance and have no specific physical meaning. Among them, q is the decay that tends to 0 after order q in the ACF plot, and p is the decay that tends to 0 after order p in the PACF plot.

[0053] 8) Based on the set obtained in step 7), when performing common search query methods for spatiotemporal data such as region query and proximity range query, select the set regions that intersect with the region to be searched. Since the storage between regions is independent and the data volume is roughly the same, start threads of the number of intersecting regions to perform parallel queries.

[0054] The following uses the vehicle network dataset of City A as an example to illustrate the operation process of this invention.

[0055] In response to the characteristics of spatiotemporal sensing big data in the Internet of Things (taking the Internet of Vehicles as an example, referred to as vehicle data below), the dataset contains basic field information such as time (time stamp), spatial (latitude and longitude) information, and other attribute information (vehicle type, vehicle events, etc.).

[0056] 1) First, read the map information of City A and obtain its minimum adjacent rectangle. The border of this rectangle is parallel to the longitude and latitude lines respectively. The top-left corner (latitude, longitude) coordinates of the minimum adjacent rectangle are (lat1, lon1), and the bottom-right corner (latitude, longitude) coordinates are (lat2, lon2). Set the north-south length of the grid to no greater than y and the east-west length to no greater than x. Then, divide the minimum adjacent rectangle of City A into (floor((lon2-lon1) / x)+1) horizontally and ((floor((lat1-lat2) / y)+1)) vertically, where floor is the floor operator. Each grid independently manages a B+ tree, which manages the data tables. The table name is the unique car_id of that region. The B+ tree is initially empty.

[0057] 2) When data is written, the grid to which the data should be written is determined based on the spatial attribute data of the spatiotemporal information. The B+ tree managed by the grid is located, and the leaf node is found through the car_id of the vehicle that generated the data. The data table named after the car_id is then found.

[0058] 3) The data table stores the data generated by this vehicle within this grid. Since all data in the table is generated by the same vehicle, the data follows a monotonically increasing time series and is appended to the end of the data table. It is worth noting that the data table does not store dense time indexes for each data row; instead, it stores sparse indexes in data blocks consisting of a fixed number of data rows. Because the data is stored incrementally over time, this increases the size of the data pointed to by each unit of index.

[0059] 4) The data insertion process is completed by repeating steps 2) and 3).

[0060] 5) Since a uniform grid division method was used in 1) for the study area A city, the generation of spatiotemporal data is not spatially uniform. As data is continuously written, the data volume between grids often differs greatly. Therefore, based on the grid defined in 1), certain rules are used to combine the grids into several sets R, so that the data volume in each set R is roughly equal.

[0061] 6) How to determine R. The number of R is selected based on the host or task configuration. Generally, the number of R is equal to the number of concurrent threads, let's assume it's n;

[0062] (6.1) Based on the desired number of sets n, initialize the grid into n sets, each containing several grids (grids). Assign a weight to each grid equal to the amount of data present in that grid. To ensure consistency in subsequent encoding, the set shape should be rectangular. The calculated threshold parameter is then obtained as follows: Where num i The size of the data contained in each set is u, which is the average of the total data size divided by n.

[0063] (6.2) Iterate through the set using a greedy strategy. Each set operates on its adjacent sets. The operation rule is that the current rectangular set expands on all four sides, while the adjacent sets shrink. At the same time, since the set is limited to a rectangle, the set group with the minimum change is calculated in the expansion direction. The influence on r is selected, the direction of maximum gradient descent is selected, and the set boundary size is adjusted in the set group.

[0064] (6.3) Repeat the operation in (6.2). When r is less than the set threshold or does not continue to decrease after multiple iterations, exit the loop to obtain a spatial partition of balanced data volume.

[0065] 7) The method proposed in 6) requires prior knowledge of the data volume between each region. While applicable to historical data management, it exhibits lag in handling real-time loads. Therefore, the ARIMA model is introduced to predict the weights of the grid. The specific steps are as follows:

[0066] (7.1) For each grid, data is continuously written over time, generating a time series {y1, y2, y3, y4...y} about the amount of data within the grid. n}, perform an ADF test on the time series. If the test is satisfied, proceed to (7.2); otherwise, perform differencing or other methods to make it a stationary series.

[0067] (7.2) Based on the time series identification rules, the order of the ARIMA(p,d,q) model is determined by combining the ACF plot, PACF plot, AIC criterion and BIC criterion. The ideal order should be selected from the set of AIC and BIC with the smallest values.

[0068] (7.3) After determining the parameters, follow the model formula. Calculate the predicted data volume within the grid at time t. Based on the method proposed in section 6), dynamically adjust the set over time to obtain a balanced load in real-time.

[0069] 8) When performing range-based queries such as area range / nearby queries, the query area is set as X, the result of X∩R is obtained, and the corresponding thread is started for the intersecting R to perform the query according to the query conditions; when performing trajectory queries, each R set can be traversed to find the car_id in each grid and read the information in batches.

[0070] The method described above, for spatiotemporal data, creates an index at the data table level based on its spatiotemporal attributes, rather than at the data item level. This reduces the granularity of the index object, greatly reduces the size of the index, and decreases the number of memory and disk I / O interactions during data retrieval.

[0071] The method described above in this invention takes into account the impact of data volume on the spatial indexing effect and adopts a dynamic adjustment method for region division based on data volume to ensure the effectiveness of data indexing.

[0072] The method described above in this invention addresses the partitioning lag problem caused by requiring a known data distribution as input, and uses the ARIMA model to obtain the grid prediction results to achieve real-time load balancing.

[0073] Based on the same inventive concept, another embodiment of the present invention provides a load-balanced, space-time-aware big data storage and query system based on a storage object separation mechanism using the above-described method, comprising:

[0074] The index structure building module is used to build a two-level index structure for spatiotemporal sensing big data. The first-level index consists of several spatial sets formed by merging and managing a uniform fine-grained spatial grid. Each spatial set has a data table built with the sensor that collected the data as the basic unit, and a B+ tree structure is used to manage the data tables built by different sensors. The second-level index is the time series index of a single data table. In a single data table, the data is arranged monotonically in ascending order of time, and a skip list is used to manage the time series data.

[0075] The data writing module is used to write IoT sensing sampling data into the secondary index structure;

[0076] The dynamic partitioning module is used to predict data volume using a time series model. It dynamically partitions the space set of the first-level index according to the predicted data volume to achieve load balancing in real time.

[0077] The data query module is used to query data using dynamically divided spatial sets as the basic unit. Each spatial set is operated by a thread, realizing balanced divide-and-conquer processing of massive amounts of data.

[0078] Based on the same inventive concept, another embodiment of the present invention provides an electronic device (computer, server, smartphone, etc.) including a memory and a processor, wherein the memory stores a computer program configured to be executed by the processor, and the computer program includes instructions for performing the steps of the method of the present invention.

[0079] Based on the same inventive concept, another embodiment of the present invention provides a computer-readable storage medium (such as ROM / RAM, disk, optical disk), wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a computer, it implements the various steps of the method of the present invention.

[0080] The above embodiments are merely illustrative of the principles and effects of the present invention and are not intended to limit the scope of the invention. Any person skilled in the art can make modifications and variations to the embodiments without departing from the technical principles and spirit of the present invention. The scope of protection of the present invention should be determined by the claims.

Claims

1. A balanced load space-time perception big data storage query method based on a storage object separation mechanism, characterized in that, Includes the following steps: A two-level index structure for spatiotemporal sensing big data is established. The first-level index consists of several spatial sets formed by merging and managing a uniform, fine-grained spatial grid. Each spatial set has a data table built with the sensor that collected the data as the basic unit. A B+ tree structure is used to manage the data tables built by different sensors. The second-level index is the time series index of a single data table. The data in a single data table is arranged monotonically in ascending order of time. Skip lists are used to manage the time series data. Write the IoT sensing sampling data into the secondary index structure; The time series model is used to predict the data volume, and the space set of the first-level index is dynamically divided according to the predicted data volume to achieve load balancing in real time. Data queries are performed using dynamically partitioned spatial sets as the basic units, with each spatial set operated by a single thread, achieving balanced divide-and-conquer processing of massive amounts of data. The following steps are used to form several space sets for the first-level index: 1) Based on the number of sets n to be divided, initialize the grid into n sets, where each set contains several grids, i.e., grids, and the weight of each grid is the amount of data in that grid; to ensure consistency in subsequent encoding, the set shape is rectangular, and the calculated threshold parameter is obtained at this time. ,in num i The amount of data contained in each set, u is the average of the total amount of data divided by n; 2) Iterate through each set in a round-robin fashion, using a greedy strategy. Each set is operated on with its adjacent sets. The operation rule is: the current rectangular set expands to the four sides, while the adjacent sets shrink. Since the set is limited to a rectangle, the set group with the minimum change is calculated in this expansion direction. The set group is selected to have the effect on r and the direction of maximum gradient descent is selected. The set boundary size is adjusted in the set group. 3) Repeat step 2) until the loop ends. The termination condition is when r is less than the set threshold or does not continue to decrease after multiple iterations. At this point, a spatial partition of the balanced data volume is obtained.

2. The method of claim 1, wherein, The granularity of the first-level index is the data table, and the granularity of the second-level index is the data block composed of multiple data items. In the second-level index, data in a single table is timestamped according to the time of generation and stored in a monotonically increasing manner according to the timestamp, and skip lists are used to link the actual storage on the physical disk space.

3. The method of claim 1, wherein, The step of writing IoT sensing sampling data into the secondary index structure includes: first, extracting spatial data information for calculation to determine the grid location to be stored; then, locking the data table to be stored using a B+ tree index based on the sensor ID that generated the data; and finally, appending the data to the end of the data table based on the timestamp information.

4. The method according to claim 1, characterized in that, The minimum change set group refers to all sets that will change when the current set changes. The method to calculate the minimum change set group is as follows: select the boundary to be changed of the current set, and extend it in the direction β perpendicular to the direction of change α of this boundary. The extension point is the boundary on both sides of the extension line of the boundary to be changed of the current set that is exactly tangent to the boundary parallel to α. Then all sets on both sides of this extension line are the minimum change set group.

5. The method of claim 1, wherein, The method of using a time-series model to predict data volume and dynamically partitioning the spatial set based on the predicted data volume includes: (1) For each grid, data is continuously written over time, generating a time series about the amount of data in the grid. The time series is subjected to ADF test. If the test is satisfied, proceed to step (2). Otherwise, perform difference processing or other methods to make it a stationary series. (2) Based on the time series identification rules, the order of the ARIMA model is determined by combining the ACF plot, PACF plot, AIC criterion and BIC criterion, and the set with the smallest AIC and BIC is selected as the ideal order. (3) After determining the ideal order, calculate the amount of data in the grid at time t based on the ARIMA model formula; (4) Use the ARIMA model to obtain the data volume prediction results of the grid as the input of step 1) to achieve real-time load balancing.

6. The method of claim 1, wherein, The method of using dynamically divided spatial sets as the basic unit for data querying includes: when performing regional queries and adjacent range queries, selecting set regions that intersect with the region to be searched, and starting threads for parallel queries based on the number of intersecting regions.

7. A balanced load space-time aware big data storage query system based on a storage object separation mechanism using the method of any one of claims 1-6. include: The index structure building module is used to build a two-level index structure for spatiotemporal sensing big data. The first-level index consists of several spatial sets formed by merging and managing a uniform fine-grained spatial grid. Each spatial set has a data table built with the sensor that collected the data as the basic unit. A B+ tree structure is used to manage the data tables built by different sensors. The second-level index is the time series index of a single data table. The data in a single data table is arranged monotonically in ascending order of time. Skip lists are used to manage the time series data. The data writing module is used to write IoT sensing sampling data into the secondary index structure; The dynamic partitioning module is used to predict data volume using a time series model. It dynamically partitions the space set of the first-level index according to the predicted data volume to achieve load balancing in real time. The data query module is used to query data using dynamically divided spatial sets as the basic unit. Each spatial set is operated by a thread, realizing balanced divide-and-conquer processing of massive amounts of data.

8. An electronic device, comprising: It includes a memory and a processor, the memory storing a computer program configured to be executed by the processor, the computer program including instructions for performing the method of any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, which, when executed by a computer, implements the method described in any one of claims 1 to 6.

Citation Information

Patent Citations

  • A satellite remote sensing big data optimization inquiry method based on a mixed index

    CN109284338A

  • Distributed space-time object proximity query method based on Spark

    CN112699173A