Method for storing time series data and server apparatus supporting same
By employing a meta table for hash values and compressing less frequently accessed data, the method addresses storage inefficiencies in time-series databases, improving capacity and retrieval efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-10-01
- Publication Date
- 2026-04-16
AI Technical Summary
Time-series databases face challenges with high disk usage and memory requirements due to repeated storage of labels and infrequent queries on older data, leading to inefficient storage and retrieval of time-stamped data.
Implementing a method that uses a meta table to store hash values of labels separately and compresses less frequently accessed data, reducing storage capacity and maintaining frequently accessed data in an uncompressed state for efficient data management.
Reduces storage capacity and memory usage by minimizing redundant label storage and optimizing data retrieval, enhancing the efficiency of time-series data management in databases.
Smart Images

Figure KR2025015654_16042026_PF_FP_ABST
Abstract
Description
Method for storing time-series data and server device supporting the same
[0001] The embodiments disclosed in this document relate to a method for storing time-series data and a server device supporting the same.
[0002] Time-stamped data (or time series data) can be data stored over time on a system or application server. Time-stamped data consists of data generated from a single data source as time progresses and can be used to track changes over time. For example, time-stamped data can include household temperatures, economic indicators, records of a user's sleep patterns, or records of running or walking. Historical data recorded on a server or sensor data can also be time-stamped data. Alternatively, social media apps like Instagram and Facebook provide services that store, read, and display storylines over time, and in this case, time-stamped data can be utilized.
[0003] A Time Series Database (TSDB) is a database designed to store or process time-series data, capable of rapidly and accurately handling large-scale data accumulating in real time. TSDBs store time-series data along with time information (e.g., timestamps) and can be managed to facilitate data analysis over time. Additionally, TSDBs can be used to store or read user health information over time (e.g., heart rate, steps, sleep, stress) and sensing data generated by IoT devices (e.g., temperature, humidity, and light intensity) on portable electronic devices (e.g., smartphones, tablet PCs).
[0004] Since time-series databases record and store historical data along with time, the main operations (or behaviors) that occur in time-series databases are data insertion and deletion, and the frequency of data updates may be low or non-existent.
[0005] A server device according to one embodiment may include at least one processor comprising a communication circuit, a memory, a time series database, and a processing circuitry. The memory may store instructions such that, when executed individually or collectively by the at least one processor, the server device stores a label included in the time series data and a first hash value corresponding to the label in a first table, receives the time series data from an external device through the communication circuit, hashes the label of the received time series data to generate a second hash value, checks whether the second hash value is included in the first table, and if the second hash value is included in the first table, stores the time series data with the label removed and the second hash value in a second table, checks the data prior to a reference time among the time series data stored in the second table, and compresses and stores a specified range of data among the data prior to the reference time in a third table.
[0006] A method for storing time series data according to one embodiment may be performed on a server device. The method for storing time series data may include: storing a label included in the time series data and a first hash value corresponding to the label in a first table; receiving the time series data from an external device; hashing the label of the received time series data to generate a second hash value; checking whether the second hash value is included in the first table; if the second hash value is included in the first table, storing the time series data with the label removed and the second hash value in a second table; checking data prior to a reference time among the time series data stored in the second table; and compressing and storing a specified data range among the data prior to the reference time in a third table.
[0007] According to one embodiment, a computer-readable storage medium may store instructions executable by a processor of a server device. When the instructions are executed, the server device may perform the following operations: storing a label included in time-series data and a first hash value corresponding to the label in a first table; receiving the time-series data from an external device; hashing the label of the received time-series data to generate a second hash value; checking whether the second hash value is included in the first table; if the second hash value is included in the first table, storing the time-series data with the label removed and the second hash value in a second table; checking data prior to a reference time among the time-series data stored in the second table; and compressing and storing a specified range of data prior to the reference time in a third table.
[0008] FIG. 1 is a configuration diagram of a server device according to one embodiment.
[0009] FIG. 2 is a flowchart illustrating a method for managing a time-series database according to one embodiment.
[0010] FIG. 3 is an example diagram showing the storage of time series data according to one embodiment.
[0011] FIG. 4 is an example diagram showing the compression of time series data according to one embodiment.
[0012] FIG. 5 is a flowchart illustrating the writing of time series data according to one embodiment.
[0013] FIG. 6a is a flowchart illustrating the compression of time series data according to one embodiment.
[0014] FIG. 6b shows a normal distribution representing the calculation of density values and threshold settings of time series data according to one embodiment.
[0015] FIG. 7 is a flowchart illustrating the reading of compressed stored time series data according to one embodiment.
[0016] FIG. 8 is a block diagram of an electronic device in a network environment according to various embodiments.
[0017] In relation to the description of the drawings, the same or similar reference numerals may be used for identical or similar components.
[0018] Hereinafter, various embodiments of this document are described with reference to the accompanying drawings. However, this is not intended to limit the technology described in this document to specific embodiments and should be understood to include various modifications, equivalents, and / or alternatives to the embodiments of this document. In relation to the description of the drawings, similar reference numerals may be used for similar components.
[0019]
[0020] FIG. 1 is a configuration diagram of a server device according to one embodiment.
[0021] Referring to FIG. 1, the server device (101) may include a processor (120), memory (130), communication circuit (140), and a time-series database (150). FIG. 1 is illustrated with a focus on the configuration related to the management of the time-series database (150) but is not limited thereto. For example, the server device (101) may further include a display (or monitoring unit).
[0022] According to one embodiment, the processor (120) may receive metric data from an external device (e.g., a plurality of application servers) through a communication circuit (140). The metric data may be data that measures values representing the performance and status of a system or application server. The metric data may include various information regarding the performance and status of a system or application server and may be used to monitor the operation of the system or application server.
[0023] For example, metric data may include the total number of requests received by each application server and the processing time for each request. In this case, the metric data can be used to monitor the load and response time of the application servers. As another example, the metric data may include information related to the number of concurrent clients connected to each application server, the number of threads in use, and the thread pool size. As yet another example, the metric data may include statistics on the number of errors that occurred at each application server and various HTTP status codes. As yet another example, the metric data may include data on the usage of system resources, such as CPU, memory, and disk space, for each application server.
[0024] According to one embodiment, the processor (120) may temporarily store metric data in memory (130). The temporarily stored metric data may be output sequentially according to chronological order. For example, the memory (130) may include a queue capable of storing a large amount of metric data received from an application server for a certain period for monitoring the application server. The processor (120) may generate time-series data by processing the metric data stored in the queue (e.g., aggregation, ETL: extract, transform, load). The process of generating time-series data may vary depending on the architecture.
[0025] The processor (120) can store the generated time series data in the time series database (150). The processor (120) can query the stored time series data by period to display it on a monitoring screen or transmit it to an external device.
[0026] A time series database (150) can store time series data. In the time series database (150), insert operations on time series data may occur frequently. The time series database (150) can store time series data with the same label but different time stamps in different rows. In the time series database (150), update operations on time series data may rarely occur. Additionally, in the time series database (150), delete operations on time series data may occur for rows with older time stamps when the retention period has passed. Due to the nature of time series data, data from the most recent point in time is primarily queried, and queries on older data may be relatively infrequent.
[0027] According to one embodiment, time series data may include a metric name, a time stamp, a label (or tag), and a field value. The time stamp may indicate the time at which the metric data was generated. The label (or tag) may include a plurality of attributes for the metric data (wherein each of the plurality of attributes may also be referred to as a label or tag; hereinafter the same applies). The label (or tag) may be a string value. The field value may include a substantive measurement value associated with the label (or tag).
[0028] According to one embodiment, in the time series database (150), the same label (or tag) may be recorded repeatedly at different times. In this case, the disk usage of the time series database (150) may increase, and a large amount of memory may be required to load data when the time series database (150) is running.
[0029] According to one embodiment, the processor (120) can reduce disk usage and memory usage of the time series database (150) by using multiple data reduction methods.
[0030] For example, the processor (120) can reduce the storage capacity of the time series data by using a meta table that separately stores the actual values of the labels. The processor (120) can pre-hash combinations of values that the labels (or tags) of the time series data may have and store them in a separate meta table. In the time series data table that stores the time series data, hash values may be stored instead of the actual values of the labels (or tags). In this case, the storage capacity of the time series data can be reduced by preventing the actual values of the labels (or tags) from being repeatedly entered in the time series data table (see FIG. 3).
[0031] As another example, the processor (120) can compress time-series data prior to a reference time (e.g., 7, 30, or 60 days) that is not frequently accessed according to specified conditions and manage it in a separate compression table. This can reduce disk usage of the time-series database (150) (see FIG. 4).
[0032] According to one embodiment, the processor (120) may selectively apply a method using a meta table of hashing values and a method using a compression table depending on the option. For example, both methods may be applied to the time series database (150), or only one of the two methods may be applied to the time series database (150).
[0033]
[0034] FIG. 2 is a flowchart illustrating a method for managing a time-series database according to one embodiment.
[0035] Referring to FIGS. 1 and 2, in operation 210, the processor (120) may store a label included in the time series data and a first hash value corresponding to the label (a hash value of a label of the previous time series data, or a hash value of a label stored in advance) in a first table (hereinafter, meta table). For example, the processor (120) may hash combinations of values that the label (or tag) of the time series data may have in advance and store them in a separate meta table.
[0036] In operation 220, the processor (120) can receive time series data from an external device (e.g., an application server) through a communication circuit (140). For example, the time series data may include a metric name, a time stamp, a label (or tag), and a field value.
[0037] In operation 230, the processor (120) may hash the label of the received time series data (or metric data) to generate a second hash value (the hash value of the label of the current time series data, or the hash value of the label of additional time series data). If the label includes multiple attributes, the processor (120) may combine the values of each attribute and hash the combined value to generate a second hash value.
[0038] In operation 240, the processor (120) can check whether the second hash value is included in the first table (meta table).
[0039] In operation 245, if the second hash value is not included in the first table (meta table) (operation 240-NO), the processor (120) can store the second hash value and the value of the label corresponding to the second hash value in the meta table.
[0040] In operation 250, if the second hash value is included in the first table (meta table) (operation 240-YES), or if the second hash value is newly stored in the first table, the processor (120) may store the time series data with the label removed and the second hash value in the second table (hereinafter, time series data table). The processor (120) may not store the actual value of the label in the time series data table. By doing so, the processor (120) can primarily reduce the storage capacity of the time series data.
[0041] In operation 260, the processor (120) can check time series data prior to the reference time among the time series data stored in the second table. The processor (120) can determine the reference time based on the characteristics of the time series data (metric data). For example, the reference time can be set to 1 day, 7 days, or 30 days.
[0042] In operation 270, the processor (120) can compress and store a specified range of data prior to the reference time in a third table (hereinafter, compression table).
[0043] According to one embodiment, the processor (120) may maintain time series data after a reference time (e.g., 7 days, 30 days, 60 days) in an uncompressed state. The processor (120) may improve data accessibility by maintaining time series data with a high probability of querying in an uncompressed state.
[0044]
[0045] FIG. 3 is an exemplary diagram illustrating the storage of time series data according to one embodiment. FIG. 3 is exemplary and is not limited thereto.
[0046] Referring to FIG. 3, the original time series data (310) may include a time stamp (311), a field value (312), and a label (315). The time stamp (311) may indicate the time at which the metric data occurred. The field value (312) may be an actual measurement of the metric data. The label (315) may indicate various attributes of the metric data.
[0047] According to one embodiment, the label (315) of the original time series data (310) may include a plurality of attributes (or a plurality of factors, a plurality of elements). Each of the plurality of attributes may have one of a predetermined value. For example, if the plurality of attributes includes three attributes such as status, service, and location, the first attribute status may have 200, the second attribute service may have one of A, B, or C, and the third attribute location may have one of Seoul, Ireland, or Singapore.
[0048] According to one embodiment, the processor (120) can generate a time series data table (320) and a meta table (330) based on the original time series data (310) and store them in a time series database (150). The processor (120) can reduce the storage capacity of the time series data by storing the meta table (330), which stores the actual values of the labels separately, separately from the time series data table (320).
[0049] The time series data table (320) may include a time stamp (321), a field value (322), and a hash value (325) of a label. The time series data may be stored sequentially according to the time stamp (321). The time stamp (321) and the field value (322) may be identical to the original time series data (310). The processor (120) may generate a hash value (325) by hashing each combination of the values of the label (315) of the original time series data (310).
[0050] The processor (120) may store a hash value (325) corresponding to a label (315) in a time series data table (320) and may not store the actual value of the label (315) in the time series data table (320). The actual value of the label (315) may be stored in a meta table (330).
[0051] Accordingly, for time series data rows (150) that have the same label but different time stamps, the label (315) is not duplicated, and only a simplified hash value (325) is stored, so the storage capacity of the time series data table (320) can be significantly reduced.
[0052] The meta table (330) may include hash values (331) and labels (332). The hash values (331) may be generated one by one according to the combination of values that each label may have. The labels (332) may include all combinations of values of the labels (315) included in the original time series data (310).
[0053] For example, the meta table (330) can store a second hash value (e.g., 2a398c) corresponding to status: 200, service: A, location: Seoul. The meta table (330) can store a second value (e.g., qw838e) corresponding to status: 200, service: B, location: Ireland. The meta table (330) can store a third value (e.g., p9e323) corresponding to status: 200, service: C, location: Singapore. The meta table (330) may list only one row according to the combination of values constituting the label (332) and may not list duplicates for labels of the same value. Through this, the storage capacity of the time series data can be significantly reduced.
[0054] According to one embodiment, the processor (120) can generate and store a hash value (331) based on a combination of values that constitute a label (332) included in the original time series data (310) up to that point. When a new combination of values occurs in the label of the time series data, the processor (120) can add a new row to the meta table (330) and store a hash value corresponding to the new combination of values in the time series data table (320).
[0055] According to one embodiment, the processor (120) may pre-store hash values corresponding to all combinations of labels of time series data in a meta table (330). Alternatively, the processor (120) may pre-store a specified number of hash values in the meta table (330) according to the order of highest probability of occurrence among all combinations of labels.
[0056] According to one embodiment, the primary key of the meta table (330) may be a hash value (331). When reading time series data stored in the time series data table (320) (e.g., at a user's request), the processor (120) can check the actual value of the corresponding label in the meta table (330) using the hash value (325) of the time series data as a key.
[0057] According to one embodiment, the processor (120) may delete time series data after a specified retention period has elapsed. The processor (120) may delete data of a meta table (330) that is not referenced in the time series data table (320) at a specified interval. The processor (120) may retain data of a meta table (330) that is referenced in the time series data table (320).
[0058]
[0059] FIG. 4 is an exemplary diagram illustrating the compression of time series data according to one embodiment. FIG. 4 is exemplary and is not limited thereto.
[0060] Referring to FIG. 4, the processor (120) can reduce storage capacity by compressing the time series data table (420) in a specified manner. For example, the processor (120) can compress some columns of the time series data prior to a reference time (425) and manage them in a separate compressed table (450).
[0061] According to one embodiment, the time series data table (420) may include a time stamp (421), a separator (422), a label (423), and a field value (424). The time stamp (421) may indicate the time at which the time series data was generated. The separator (e.g., sequence) (422) may include a value (or flag, bit) that distinguishes time series data having the same time stamp (421) from one another. The label (423) may include values for multiple attributes of the time series data. For example, the label (423) may include attributes of service, host, status, and country, and may include the values of each attribute. The field value (424) may include actual measurements of the metric data.
[0062] According to one embodiment, the processor (120) may store time series data (hereinafter referred to as cold data) (4211) prior to a reference time (e.g., 7 days, 30 days, 60 days) (425) among the time series data in a separate compression table (450). The processor (120) may reduce the storage capacity of the time series data by compressing the cold data, which has a low queryability.
[0063] According to one embodiment, the processor (120) may maintain time-series data (hereinafter referred to as hot data) (4212) after a reference time (e.g., 7 days, 30 days, 60 days) (425) in an uncompressed state. The processor (120) may increase data accessibility by maintaining hot data with a high probability of querying in an uncompressed state.
[0064] According to one embodiment, the processor (120) may compress some columns of cold data and store them in a compression table (450). For example, the processor (120) may determine the time stamp (421), separator (423), and label (423), excluding the field value (424), as the compression range (420a). The processor (120) may store the field value (424) in the compression table (450) without compression.
[0065] According to one embodiment, the processor (120) can compress cold data in preset time block units. The time block units may be preset periods such as 1 hour, 6 hours, or 1 day. The time block units may be set differently depending on the frequency of occurrence of time series data and the amount of data.
[0066] According to one embodiment, the processor (120) can store a start time (451) and an end time (452) in time block units together with the compressed data (453) in a compression table (450) that stores the compressed cold data.
[0067] According to one embodiment, when a query of compressed cold data occurs, the processor (120) can compare the start time (451) and end time (452) with the queried time zone and decompress the data in units of time blocks and load it into memory.
[0068] According to one embodiment, when a label (423) is replaced with a hash value of a string and stored (see FIG. 3), the processor (120) can compress the hash value. When the hash value of the label is compressed, time-series data can be queried by referring to a meta table after decompressing the cold data.
[0069] According to one embodiment, if the label (423) is not replaced with the hash value of the string and stored, time series data can be queried without referring to the meta table.
[0070] According to one embodiment, the processor (120) may selectively perform compression based on the density value of the cold data (e.g., cardinality value). For example, time series data may have an imbalance in which data is stored in a concentrated manner only at specific times depending on its characteristics (e.g., sleep state records, running / walking records). The processor (120) may selectively perform compression for time periods when the amount of time series data is small by analyzing the density value of the cold data. Additional information regarding selective compression may be provided through FIGS. 6a and 6b.
[0071]
[0072] FIG. 5 is a flowchart illustrating the writing of time series data according to one embodiment.
[0073] Referring to FIG. 5, in operation 510, the processor (120) can hash the label of the time series data (or metric data) to be stored to generate a hash value (hash key value) (second hash value). If the label includes multiple attributes, the processor (120) can hash the values of each attribute to generate a second hash value.
[0074] In operation 520, the processor (120) can check whether the second hash value is included in the meta table. The meta table may be a table that stores combinations of the hash value of the label and the label value.
[0075] For example, as shown in FIG. 3, the meta table (330) may include a hash value (331) and a label (332). The hash value (331) may be generated one by one according to a combination of label values. The processor (120) can check whether the second hash value is included in the hash value (331) of the meta table (330).
[0076] In operation 530, if the second hash value is not included in the meta table (operation 520-NO), the processor (120) may store the second hash value and the value of the label corresponding to the second hash value in the meta table.
[0077] In operation 540, the processor (120) may replace the label of the time series data (or metric data) for which a write was requested with the second hash value when the second hash value is included in the meta table (operation 520-YES) or when the second hash value is newly stored in the meta table (530). In this case, the label of the time series data is not stored in the time series data table, and the actual value of the label may be stored in a separate meta table in a non-duplicate form.
[0078]
[0079] FIG. 6a is a flowchart illustrating the compression of time series data according to one embodiment.
[0080] Referring to FIG. 6a, in operation 610, the processor (120) can store time series data in a time series database. The time series data may be stored in chronological order. The time series data may include a metric name, a time stamp, a label (or tag), and a field value. The label (or tag) may be stored as its original value or replaced with a hash value.
[0081] In operation 620, the processor (120) can check whether cold data exists prior to the reference time. The processor (120) can determine the reference time (lifecycle) based on the characteristics of the time series data (metric data). For example, the reference time can be set to 1 day, 7 days, or 30 days.
[0082] According to one embodiment, compression of time-series data by the following compression-related operation may occur only for cold data. When a write operation occurs, the compression-related operation may not occur.
[0083] According to one embodiment, if no cold data exists (operation 620-NO), the processor (120) may terminate the compression process of the time series data.
[0084] According to one embodiment, even if cold data exists, the processor (120) may not perform the compression process of the time series data according to an internal setting.
[0085] In operation 630, if there is cold data prior to the reference time (operation 620-YES), the processor (120) can check whether an option to selectively allow compression based on the density value of the cold data (hereinafter, selective compression option) is enabled.
[0086] According to one embodiment, the processor (120) can perform compression regardless of the density value of the cold data when the selective compression option is disabled (operation 630-NO) (go to operation 660).
[0087] In operation 640, if the optional compression option is enabled (operation 630-YES), the processor (120) can calculate a density value of the cold data. The density value can be calculated as a numerical value of the cardinality of the cold data. Additional information regarding the calculation of the density value can be provided through FIG. 6b.
[0088] According to one embodiment, the processor (120) can calculate the density value of the entire cold data or calculate the density value of the cold data for each specified time block unit (e.g., 1 hour, 6 hours, 1 day).
[0089] In operation 650, the processor (120) can determine whether the density value of the cold data exceeds (or is greater than) a preset threshold. The threshold may be predetermined by reflecting the capacity of the time series database and the characteristics of the time series data.
[0090] According to one embodiment, if the density value of the cold data is below a threshold value (operation 650-NO), the processor (120) can terminate the compression process of the time series data.
[0091] In operation 660, if the density value of the cold data exceeds a threshold (operation 650-YES) or if the processor (120) has the selective compression option disabled (operation 630-NO), the processor (120) can compress the cold data. The processor (120) can perform compression of the cold data in specified time block units (e.g., 1 hour, 6 hours, 1 day). The time block units can be set differently depending on the frequency of occurrence of the time series data and the amount of data.
[0092] According to one embodiment, the processor (120) can perform compression on data within a specified range among the cold data. The compression range may be a time stamp, a sequence, or a label value (if a hash value is stored as a label value, a hash value).
[0093] In operation 670, the processor (120) can delete the cold data before compression from the time series data table when compression is complete. This can increase the storage efficiency of the time series database.
[0094] According to one embodiment, the processor (120) may store compressed cold data in a compression table along with a start time stamp and an end time stamp of each block. This allows the decompression time to be reduced when the compressed data is retrieved.
[0095]
[0096] FIG. 6b shows a normal distribution representing the calculation of density values and threshold settings of time series data according to one embodiment. FIG. 6b is exemplary and is not limited thereto.
[0097] Referring to FIG. 6b, the processor (120) can determine whether to compress the time series data based on the cold data density value when compressing the time series data. The cold data density value may represent the cardinality value of the cold data. Cardinality may refer to the number of elements in a set. The cardinality value of the cold data may be determined based on the combination of labels (or tags) of the time series data during a specific time interval.
[0098] For example, in the case of Prometheus products, a label can include status and method. The status can have two values, 200 and 404, and the method can have two values, GET and POST. In this case, a maximum cardinality of 4 can occur within a specific time interval. If a host label is added and host can have 10 values, the cardinality can be determined as 2 * 2 * 10 = 40.
[0099] According to one embodiment, the processor (120) may selectively perform compression based on the calculated cold data density value. The processor (120) may not perform compression in data intervals of distribution where the cold data density is low.
[0100] According to one embodiment, the processor (120) can calculate the density value of cold data for each specified unit of time (e.g., 1 hour, 6 hours, 1 day). The cardinality value may be the number of unique data elements within the unit of time.
[0101] According to one embodiment, the processor (120) may set a threshold for data density, perform compression for cold data exceeding the threshold, and not perform compression for cold data below the threshold. The threshold may be determined in advance by reflecting the capacity of the time series database and the characteristics of the time series data.
[0102] According to one embodiment, the processor (120) may set the threshold value to a predetermined value (static value). Alternatively, the processor (120) may set the threshold value to a dynamically determined value (dynamic value) by calculating the distribution of the Cardinality values in time units over the entire period.
[0103] In the case of a dynamic determination method, if the distribution of cardinality values is at a level where a normal distribution (680) as in FIG. 6b can be produced, the processor (120) can determine a threshold value (681) by utilizing the normal distribution (680). For example, the processor (120) can set the threshold value (681) to a point (lower 2.14% group) corresponding to mean (X) - 2 sigma (2s).
[0104] FIG. 6b is exemplary and is not limited thereto. For example, the processor (120) may set a threshold point (lower 15.74% group) corresponding to the average (X) - 1 sigma (1s).
[0105] According to one embodiment, if the sample size is too small to yield a normal distribution (680) for the distribution of cardinality values, the processor (120) can set a threshold value by utilizing the T-distribution.
[0106]
[0107] FIG. 7 is a flowchart illustrating the reading of compressed stored time series data according to one embodiment.
[0108] Referring to FIG. 7, in operation 710, the processor (120) can store time series data in a time series database. The labels (or tags) of the time series data can be stored as actual values or replaced with hash values. Additionally, cold data can be managed in a separate compression table according to specified conditions.
[0109] In operation 720, the processor (120) can read data of the queried time period from the time series data table.
[0110] In operation 730, the processor (120) can determine whether the data of the queried time period contains cold data. The cold data prior to the reference time may be in a compressed state.
[0111] According to one embodiment, if the query is not for compressed cold data (operation 730-NO), the processor (120) may perform operation 760.
[0112] In operation 740, if the query is for compressed cold data (operation 730-YES), the processor (120) can look up blocks corresponding to the queried time zone from the compression table. The processor (120) can check the start time stamp and end time stamp stored together with the compressed blocks. The processor (120) can look up compressed blocks in which the queried time zone overlaps at least partially with the start time stamp and end time stamp.
[0113] In operation 750, the processor (120) can decompress the queried compressed block and cache it in memory so that it can be used while the time series database is running.
[0114] In operation 760, the processor (120) can determine whether the label is hashed data. Hashed data may be data in which the original label is deleted from the time series data table and a first hash value corresponding to the label is stored together with the time series data.
[0115] According to one embodiment, if the label is not hashed data (operation 760-NO), the processor (120) may perform operation 790.
[0116] In operation 770, if the label is hashed data (operation 760-YES), the processor (120) can group the time series data according to the hash value. The processor (120) can load the result data grouped by the hash value from the time series data table into memory. Through grouping, it is possible to prevent increased memory usage when reading and joining values corresponding to each hash value (hash key) from the meta table.
[0117] In operation 780, the processor (120) can join the grouping result and the label value of the meta table to form a data set for generating a result value.
[0118] In operation 790, the processor (120) can use the data set to output result values according to conditions entered in the query (e.g., Where or Group by conditions). The result values may include actual values of the labels.
[0119]
[0120] FIG. 8 is a block diagram of an electronic device (e.g., server device (101) of FIG. 1) (801) in a network environment (800) according to various embodiments. Referring to FIG. 8, in the network environment (800), the electronic device (801) may communicate with an electronic device (802) through a first network (898) (e.g., a short-range wireless communication network) or with an electronic device (804) or a server (808) through a second network (899) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (801) may communicate with the electronic device (804) through a server (808). According to one embodiment, the electronic device (801) may include a processor (820), memory (830), input module (850), sound output module (855), display module (860), audio module (870), sensor module (876), interface (877), connection terminal (878), haptic module (879), camera module (880), power management module (888), battery (889), communication module (890), subscriber identification module (896), or antenna module (897). In some embodiments, at least one of these components (e.g., connection terminal (878)) may be omitted from the electronic device (801), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (876), camera module (880), or antenna module (897)) may be integrated into a single component (e.g., display module (860)).
[0121] The processor (820) can control at least one other component (e.g., a hardware or software component) of the electronic device (801) connected to the processor (820) by executing software (e.g., a program (840)), for example, and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (820) can store commands or data received from other components (e.g., a sensor module (876) or a communication module (890)) in volatile memory (832), process the commands or data stored in volatile memory (832), and store the resulting data in non-volatile memory (834). According to one embodiment, the processor (820) may include a main processor (821) (e.g., a central processing unit or an application processor) or an auxiliary processor (823) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (801) includes a main processor (821) and an auxiliary processor (823), the auxiliary processor (823) may be configured to use lower power than the main processor (821) or to be specialized for a designated function. The auxiliary processor (823) may be implemented separately from the main processor (821) or as part thereof.
[0122] The auxiliary processor (823) may control at least some of the functions or states associated with at least one component of the electronic device (801) (e.g., display module (860), sensor module (876), or communication module (890)) on behalf of the main processor (821) while the main processor (821) is in an inactive (e.g., sleep) state, or together with the main processor (821) while the main processor (821) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (823) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (880) or communication module (890)). According to one embodiment, the auxiliary processor (823) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (801) itself where the artificial intelligence is performed, or through a separate server (e.g., server (808)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.
[0123] The memory (830) can store various data used by at least one component of the electronic device (801) (e.g., processor (820) or sensor module (876)). The data may include, for example, software (e.g., program (840)) and input or output data for related commands. The memory (830) may include volatile memory (832) or non-volatile memory (834).
[0124] The program (840) may be stored as software in memory (830) and may include, for example, an operating system (842), middleware (844), or an application (846).
[0125] The input module (850) can receive commands or data to be used for a component of the electronic device (801) (e.g., processor (820)) from outside the electronic device (801) (e.g., user). The input module (850) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0126] The sound output module (855) can output a sound signal to the outside of the electronic device (801). The sound output module (855) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.
[0127] The display module (860) can visually provide information to an external (e.g., user) of the electronic device (801). The display module (860) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (860) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.
[0128] The audio module (870) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (870) can acquire sound through the input module (850) or output sound through the sound output module (855) or an external electronic device (e.g., electronic device (802)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (801).
[0129] The sensor module (876) can detect the operating state of the electronic device (801) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (876) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0130] The interface (877) may support one or more specified protocols that can be used for the electronic device (801) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (802)). According to one embodiment, the interface (877) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0131] The connection terminal (878) may include a connector through which the electronic device (801) can be physically connected to an external electronic device (e.g., electronic device (802)). According to one embodiment, the connection terminal (878) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0132] The haptic module (879) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (879) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.
[0133] The camera module (880) can capture still images and video. According to one embodiment, the camera module (880) may include one or more lenses, image sensors, image signal processors, or flashes.
[0134] The power management module (888) can manage the power supplied to the electronic device (801). According to one embodiment, the power management module (888) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).
[0135] The battery (889) can supply power to at least one component of the electronic device (801). According to one embodiment, the battery (889) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0136] The communication module (890) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (801) and an external electronic device (e.g., electronic device (802), electronic device (804), or server (808)), and the performance of communication through the established communication channel. The communication module (890) may include one or more communication processors that operate independently of the processor (820) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (890) may include a wireless communication module (892) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (894) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (804) via a first network (898) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (899) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (892) can identify or authenticate the electronic device (801) within a communication network such as the first network (898) or the second network (899) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (896).
[0137] The wireless communication module (892) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (892) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (892) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (892) can support various requirements specified in the electronic device (801), external electronic device (e.g., electronic device (804)), or network system (e.g., second network (899)). According to one embodiment, the wireless communication module (892) can support a Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for realizing URLLC.
[0138] An antenna module (897) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (897) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (897) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (898) or a second network (899), may be selected from the plurality of antennas, for example, by a communication module (890). A signal or power may be transmitted or received between the communication module (890) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (897).
[0139] According to various embodiments, the antenna module (897) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.
[0140] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.
[0141] According to one embodiment, commands or data may be transmitted or received between the electronic device (801) and an external electronic device (804) through a server (808) connected to a second network (899). Each of the external electronic devices (802, or 804) may be the same or a different type of device as the electronic device (801). According to one embodiment, all or part of the operations performed on the electronic device (801) may be performed on one or more of the external electronic devices (802, 804, or 808). For example, if the electronic device (801) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (801) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (801). The electronic device (801) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (801) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (804) may include an Internet of Things (IoT) device. The server (808) may be an intelligent server using machine learning and / or neural networks. According to one embodiment, the external electronic device (804) or the server (808) may be included within a second network (899).The electronic device (801) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0142] In time-series databases, due to the nature of time-series data, different rows are added if the time stamps differ, even if they have the same label or tag. As the number of label or tag types and values increases, disk usage increases, and a large amount of memory is required to load large amounts of data when running the time-series database.
[0143] A server device according to one embodiment may include at least one processor comprising a communication circuit, a memory, a time series database, and a processing circuitry. The memory may store instructions such that, when executed individually or collectively by the at least one processor, the server device stores a label included in the time series data and a first hash value corresponding to the label in a first table, receives the time series data from an external device through the communication circuit, hashes the label of the received time series data to generate a second hash value, checks whether the second hash value is included in the first table, and if the second hash value is included in the first table, stores the time series data with the label removed and the second hash value in a second table, checks the data prior to a reference time among the time series data stored in the second table, and compresses and stores a specified range of data among the data prior to the reference time in a third table.
[0144] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may store the first table and the label in the first table if the second hash value is not included in the first table.
[0145] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may set the first hash value as the primary key in the first table.
[0146] According to one embodiment, the data range may include at least one of the time stamp of the time series data, a separator distinguishing the time stamp, and the first hash value.
[0147] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may be configured to exclude the field value of the time series data from the data range.
[0148] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may divide data prior to the reference time into designated time blocks and perform compression in said time blocks.
[0149] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may store the start time and end time of the time block unit together with the compressed data of the time block unit in the third table.
[0150] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may check the density value of the data prior to the reference time, and if the density value exceeds a specified threshold, compress and store the data prior to the reference time in the third table.
[0151] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may determine the density value based on the number of possible combinations of the labels.
[0152] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may determine the threshold value based on the normal distribution of the density value.
[0153] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may delete data prior to the reference time from the second table after the third table is stored.
[0154] According to one embodiment, when the instructions are executed individually or collectively by the at least one processor, the server device may, when a query for the time series data occurs, retrieve data of the queried time period, group the time series data according to the hash value of the label in the second table, and join the result of the grouping with the label of the first table to generate a result value for the query.
[0155] A method for storing time series data according to one embodiment may be performed on a server device. The method for storing time series data may include: storing a label included in the time series data and a first hash value corresponding to the label in a first table; receiving the time series data from an external device; hashing the label of the received time series data to generate a second hash value; checking whether the second hash value is included in the first table; if the second hash value is included in the first table, storing the time series data with the label removed and the second hash value in a second table; checking data prior to a reference time among the time series data stored in the second table; and compressing and storing a specified data range among the data prior to the reference time in a third table.
[0156] According to one embodiment, the method may further include the operation of storing the first table and the label in the first table when the second hash value is not included in the first table.
[0157] According to one embodiment, the operation of storing the hash value in a first table may include the operation of setting the first hash value as a primary key in the first table.
[0158] According to one embodiment, the data range may include at least one of the time stamp of the time series data, a separator distinguishing the time stamp, and the first hash value.
[0159] According to one embodiment, the operation of compressing and storing in a third table may include the operation of excluding the field value of the time series data from the data range.
[0160] According to one embodiment, the operation of compressing and storing in the third table may include the operation of dividing data prior to the reference time into designated time block units, and the operation of performing compression in the time block units.
[0161] According to one embodiment, the operation of compressing and storing in the third table may include the operation of storing the start time and end time of the time block unit together with the compressed data of the time block unit in the third table.
[0162] According to one embodiment, the operation of compressing and storing in the third table may include the operation of checking the density value of data prior to the reference time, and the operation of compressing and storing the data prior to the reference time in the third table when the density value exceeds a specified threshold.
[0163] According to one embodiment, a computer-readable storage medium may store instructions executable by a processor of a server device. When the instructions are executed, the server device may perform the following operations: storing a label included in time-series data and a first hash value corresponding to the label in a first table; receiving the time-series data from an external device; hashing the label of the received time-series data to generate a second hash value; checking whether the second hash value is included in the first table; if the second hash value is included in the first table, storing the time-series data with the label removed and the second hash value in a second table; checking data prior to a reference time among the time-series data stored in the second table; and compressing and storing a specified range of data prior to the reference time in a third table.
[0164] A server device according to one embodiment disclosed in this document can effectively reduce the amount of data stored by hashing combinations of label (or tag) values of time series data and storing them in a separate meta table.
[0165] A server device according to one embodiment disclosed in this document can significantly reduce disk usage by compressing time-series data, which has been reduced through hashing, according to specified conditions.
[0166] A server device according to one embodiment disclosed in this document can load and use a smaller amount of data in memory when querying time-series data that has been reduced through hashing.
[0167] A server device according to an embodiment disclosed in this document can save memory usage by performing grouping based on hash values when querying time-series data that has been reduced through hashing.
[0168]
[0169] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.
[0170] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B and C," and "at least one of A, B, or C" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as “coupled” or “connected” to another (e.g., 2nd) component, with or without the terms “functionally” or “communicationly,” it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.
[0171] The term “module” as used in the various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0172] Various embodiments of the present document may be implemented as software (e.g., program (840)) comprising one or more instructions stored in a storage medium (e.g., internal memory (836) or external memory (838)) readable by a machine (e.g., electronic device (801)). For example, a processor (e.g., processor (820)) of the machine (e.g., electronic device (801)) may call at least one of the one or more instructions stored in the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.
[0173] According to one embodiment, the method according to the various embodiments disclosed herein may be provided as included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0174] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In a server device, Communication circuit; Memory; Time series database; and It includes at least one processor comprising processing circuitry, and When the above memory is executed individually or collectively by the at least one processor, the server device, Labels included in time series data and first hash values corresponding to said labels are stored in a first table, and Through the above communication circuit, the time series data is received from an external device, and A second hash value is generated by hashing the label of the received time series data above, and Check whether the above second hash value is included in the above first table, and If the second hash value is included in the first table, the time series data with the label removed and the second hash value are stored in the second table, and Check the data prior to the reference time among the time series data stored in the second table above, and A server device that stores instructions to compress and store a specified range of data prior to the above reference time in a third table.
2. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that stores the first table and the label in the first table when the second hash value is not included in the first table.
3. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that sets the first hash value as the primary key in the first table above.
4. In paragraph 1, the above data range is A server device comprising at least one of the time stamp of the time series data, a separator distinguishing the time stamp, and the first hash value.
5. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that excludes the field value of the time series data from the above data range.
6. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, The data prior to the above reference time is divided into specified time blocks, and A server device that performs compression in the above time block units.
7. In paragraph 6, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that stores the start and end times of the time block units in the third table together with the compressed data of the time block units.
8. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, Check the density value of the data prior to the above reference time, and A server device that compresses and stores data prior to the reference time in the third table when the above density value exceeds a specified threshold.
9. In paragraph 8, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that determines the density value based on the number of possible combinations of the above labels.
10. In paragraph 9, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that determines the threshold value based on the normal distribution of the density values.
11. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, A server device that deletes data prior to the reference time from the second table after the third table is stored.
12. In paragraph 1, when the instructions are executed individually or collectively by the at least one processor, the server device, When a query occurs regarding the above time series data, retrieve the data for the queried time period, and In the second table above, time series data is grouped according to the hash value of the label, and A server device that joins the results of the grouping above with the labels of the first table above to generate a result value for the above query.
13. A method for storing time-series data performed on a server device, An operation of storing a label included in the time series data and a first hash value corresponding to the label in a first table; The operation of receiving the time series data from an external device; An operation to generate a second hash value by hashing the label of the received time series data; An operation to check whether the above second hash value is included in the above first table; If the second hash value is included in the first table, the operation of storing the time series data with the label removed and the second hash value in the second table; An operation to check data prior to the reference time among the time series data stored in the second table above; and A method comprising the operation of compressing and storing a specified range of data prior to the above reference time in a third table.
14. In Paragraph 13, A method further comprising the operation of storing the first table and the label in the first table when the second hash value is not included in the first table.
15. In paragraph 13, the operation of storing the above hash value in the first table is, A method comprising the operation of setting the first hash value as the primary key in the first table above.
Citation Information
Patent Citations
Time series search engine
KR101380936B1
Method and Apparatus for Detecting Pseudo Periodic Patterns of Real Time Data Streams
KR102023504B1
Method of Producing Calcium Carbonate
KR1020240029864A
Apparutus and Method of Detecting Thickness
KR1020240072445A
Adaptive querying of time-series data over tiered storage
US11461347B1