Method, device, related equipment and index library for constructing earthquake data index library

By building an SR+ tree index structure through a neural network model and the MapReduce framework, the low efficiency of traditional B+ trees in processing massive seismic data is solved, and efficient index construction and fast query are achieved.

CN116414822BActive Publication Date: 2025-09-16CHINA NAT PETROLEUM CORP +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111651350.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-30
Publication Date
2025-09-16
Estimated Expiration
2041-12-30

AI Technical Summary

Technical Problem

The traditional B+ tree construction method is inefficient when constructing and querying massive seismic data, is difficult to parallelize, and has low efficiency in multi-keyword range searches, which cannot meet the indexing needs of large-scale seismic data.

Method used

A node allocation method based on a neural network model is adopted. A distributed node allocation model is generated through sampling prediction. Keywords and trace numbers of seismic trace header data are extracted in parallel as index items. An SR+ tree index structure is constructed, and distributed parallel processing is performed using the MapReduce framework.

Benefits of technology

It improves the construction efficiency and query speed of the seismic data index library, supports multi-keyword range search, reduces the overhead of index construction, and improves the scalability and query performance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116414822B_ABST
    Figure CN116414822B_ABST
Patent Text Reader

Abstract

The present invention discloses a method, apparatus, related equipment, and index library for constructing a seismic data index library. The method may include: performing sampling prediction on trace header data included in acquired seismic data to generate a node allocation model for trace header keywords and distributed nodes; based on the node allocation model, all nodes perform keyword extraction on the trace header data included in data blocks in their matched seismic data in parallel, using the keywords and trace numbers as index items, and generating an index file corresponding to the data block matched by each node based on the index items; and constructing an index library for seismic data based on the index items included in the index file and the offsets of the index items in the index file. The present invention fully utilizes a distributed parallel mode to improve index construction efficiency and uses a new index structure to achieve rapid construction, rapid search, and reading of seismic data indexes, without limiting the number of keywords.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computers and big data processing technology, and in particular to a method and device for constructing a seismic data index library, related equipment, and an index library. Background Art

[0002] Seismic data processing is a critical technology in the oil exploration industry. It processes and calculates seismic data collected in the field using specific processing algorithms, thereby generating images of underground geological structures to guide subsequent drilling and oil extraction operations. With the continuous application of new exploration and high-precision acquisition technologies in oil exploration, the amount of raw seismic data collected in the field has grown rapidly. Currently, the size of a single data set has exceeded the petabyte level, with the number of seismic traces reaching hundreds of billions.

[0003] Seismic applications typically process massive seismic data volumes. Logically, seismic data volumes are similar to data tables in relational databases, organized in rows, with each row being called a seismic trace. A seismic trace consists of a trace header and a trace body. The trace header stores attribute information related to the seismic trace, including shot point coordinates, receiver point coordinates, number of sampling points, shot number, and trace number. Each attribute is called a trace header key. The trace body is a floating-point array, with each floating-point number being called a sampling point. Seismic data volumes are highly structured data, with each seismic trace possessing hundreds of attributes stored in different trace header keys.

[0004] However, many interactive seismic applications, when accessing seismic data volumes, are typically interested in only a subset of the dataset. Therefore, many seismic data accesses specify the value ranges of certain attributes to filter out specific datasets, and may also specify the order of certain attributes to determine how the query results are sorted.

[0005] Because multi-dimensional range queries are the most common data query pattern in seismic applications, query speed is crucial to the performance and user experience of seismic applications, especially interactive ones. Efficient index queries are essential for ensuring query efficiency and reducing latency in seismic data queries. The B+ tree index, a balanced search tree designed for disks or other direct-access auxiliary storage devices, can effectively reduce the number of disk I / O operations during queries. Furthermore, because the B+ tree supports fast range scans along leaf nodes, it offers excellent range query performance. Summary of the Invention

[0006] However, the inventors found that the traditional B+ tree construction method is to insert each record into an empty tree, and the process will include many complex operations, such as node splitting and rotation. For hundreds of billions of unordered data, the overhead of this traditional construction method is huge, and it is difficult to carry out multi-machine parallel construction, and the acceleration ratio in a multi-threaded environment is also relatively limited. At the same time, if each piece of data is stored in a B+ tree, the final size of the tree will also be huge, and the problem of low efficiency will still be faced when searching. In addition, the B+ tree can only be used to search for a single keyword. When searching in a multi-keyword range, it is necessary to first query all data that meets the first keyword condition, and then screen the subsequent keywords, which will cause the search efficiency to be greatly reduced. Therefore, for massive seismic data, it is necessary to design a distributed index construction method that is different from the traditional B+ tree structure to improve index construction efficiency, acceleration ratio, scalability and query efficiency.

[0007] In view of the above problems, the present invention is proposed to provide a method, apparatus, related equipment and index library for constructing a seismic data index library that overcomes the above problems or at least partially solves the above problems.

[0008] In a first aspect, an embodiment of the present invention provides a method for constructing a seismic data index library, which may include:

[0009] Performing sampling prediction on trace header data included in the acquired seismic data to generate a node allocation model of trace header keywords and distributed nodes;

[0010] Based on the node allocation model, all the nodes perform keyword extraction on the trace header data included in the data blocks in the seismic data matched by them in parallel, use the keywords and trace numbers as index items, and generate an index file corresponding to the data blocks matched by each node based on the index items;

[0011] An index library of the seismic data is constructed based on the index items included in the index file and the offsets of the index items in the index file.

[0012] Optionally, the sampling prediction of the trace header data included in the acquired seismic data to generate a node allocation model of the trace header keywords and distributed nodes may include:

[0013] Dividing the acquired seismic data based on the number of nodes included in the server cluster to determine that the number of data blocks after the seismic data is divided matches the number of the nodes;

[0014] Each of the nodes reads the seismic trace data included in the data block in parallel at a preset interval as sampling data to extract a keyword value of the trace header data in the seismic trace data;

[0015] Performing normalization based on the keyword values ​​of the sampled data and the sequence numbers of the nodes to generate a keyword-node allocation table;

[0016] The keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model.

[0017] Optionally, the step of using the keyword-node allocation table as a training sample set and inputting it into a preset neural network model for training to determine a node allocation model may include:

[0018] The keyword values ​​in the keyword-node allocation table are used as inputs of a multilayer perceptron neural network model, the serial numbers of the nodes corresponding to the keywords are used as outputs of the multilayer perceptron neural network for training, and the cumulative distribution function of the keywords is fitted to the training results to determine a node allocation model.

[0019] Optionally, based on the node allocation model, all the nodes concurrently extract keywords from the trace header data included in the data blocks in the seismic data they match, use the keywords and trace numbers as index items, and determine the index file corresponding to the data block matched by each node based on the index items, which may include:

[0020] All the nodes divide the trace headers of the seismic trace data included in the data block in parallel to determine trace header data blocks;

[0021] extracting a keyword from the trace header data block, and using the keyword and the trace number of the seismic trace data as an index item;

[0022] The index items are sorted based on the index items and the node allocation model to determine the index file corresponding to the data block matching each node.

[0023] Optionally, extracting a keyword from the trace header data block and using the keyword and the trace number of the seismic trace data as an index item may include:

[0024] Converting the keyword, keyword value, and track number into a key-value data structure, and using the keyword and track number of the key-value data structure as index items;

[0025] The sorting of the index items based on the index items and the node allocation model to determine the index file corresponding to the data block matching each node includes:

[0026] Based on the node allocation model, determine the number of the node where the index item is located to sort all index items and index files;

[0027] According to the sorting result, an ordered index file generated by the seismic data is determined.

[0028] Optionally, after sorting the index items based on the index items and the node allocation model, the method may further include:

[0029] The offset of the index item in each of the nodes in the index file corresponding to each of the nodes is determined to determine the ordered index items in the index file corresponding to each of the nodes.

[0030] Optionally, constructing the index library of the seismic data based on the index items included in the index file and the offsets of the index items in the index file may include:

[0031] Read the index files separately to extract each index item included in the index files;

[0032] The starting range of the keyword included in the index information of the index item and the offset of the index item in the index file are stored as leaf node items of the SR+ tree in the leaf node;

[0033] Based on the capacity of the leaf node, a new leaf node is split until all leaf node items are written into the leaf node;

[0034] Based on all the leaf nodes, generating child nodes of each leaf node to construct an SR+ subtree; wherein the child nodes include the starting range and offset of the keywords of all leaf nodes within the child nodes;

[0035] A root node of the sub-node is generated based on the sub-node, so as to construct the sub-tree into an SR+ tree to represent an index library of the seismic data.

[0036] Optionally, before generating the root node of the child node based on the child node, the following method may also be included:

[0037] A tree top node is constructed based on the child nodes, and it is determined whether the number of the tree top nodes is 1. If so, the tree top node is used as the root node; otherwise, the step of constructing the tree top node based on the child nodes is repeated.

[0038] Optionally, sampling prediction is performed on the trace header data included in the acquired seismic data based on the MapReduce framework to generate a node allocation model of trace header keywords and distributed nodes; and / or, an index file is generated based on the MapReduce framework; and / or, an index library of the seismic data is constructed based on the MapReduce framework.

[0039] In a second aspect, an embodiment of the present invention provides a seismic data index library, which may include:

[0040] Index items, wherein the index item information of the index items includes: a keyword value selected from the seismic trace header data and a seismic trace number;

[0041] The index item and the offset of the index item are stored in a leaf node of the SR+ tree;

[0042] The child nodes in the SR+ tree include the starting range of the key values ​​of all index items of the leaf nodes included in the child nodes;

[0043] The root node in the SR+ tree includes the starting range of the keywords selected from the seismic data.

[0044] In a third aspect, an embodiment of the present invention provides a method for querying seismic data, which may include:

[0045] According to the value of the keyword of the seismic trace to be queried, a search is performed with a pre-built seismic data index library to determine the trace number of the seismic trace;

[0046] The pre-built seismic data index library is constructed according to the method described in the first aspect.

[0047] Optionally, searching in the seismic data index library specifically includes:

[0048] Searching the subtree composed of the child nodes one by one from the child nodes below the root node of the index library to determine whether the value of the keyword of the seismic trace to be queried is within the starting range of the keyword value of the child node;

[0049] If so, searching the child nodes, non-leaf nodes, and leaf nodes included in the child node to determine the position of the index item in the leaf node according to the offset of the index item matched by the keyword value, so as to determine the channel numbers of all the seismic channels that match the keyword of the seismic channel to be queried;

[0050] Otherwise, search the next child node below the root node.

[0051] In a fourth aspect, an embodiment of the present invention provides a device for constructing a seismic data index library, which may include:

[0052] A prediction module, configured to perform sampling prediction on the trace header data included in the acquired seismic data to generate a node allocation model of the trace header keywords and the distributed nodes;

[0053] an extraction module configured to extract keywords from the trace header data included in the data blocks of the seismic data matched by all the nodes in parallel based on the node allocation model, using the keywords and trace numbers as index items, and generating an index file corresponding to the data blocks matched by each node based on the index items;

[0054] A construction module is used to construct an index library of the seismic data based on the index items included in the index file and the offsets of the index items in the index file.

[0055] In a fifth aspect, an embodiment of the present invention provides a seismic data query device, which may include:

[0056] A query module, configured to search a pre-built seismic data index library according to the keyword value of the seismic trace to be queried, so as to determine the trace number of the seismic trace;

[0057] The pre-built seismic data index library is constructed according to the method described in the first aspect.

[0058] In the sixth aspect, an embodiment of the present invention provides a computer-readable storage medium on which a computer program is stored, characterized in that when the program is executed by a processor, it implements the method for constructing the seismic data index library described in the first aspect, or implements the method for querying seismic data as described in the third aspect.

[0059] In the seventh aspect, an embodiment of the present invention provides a computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the program, it implements the method for constructing the seismic data index library as described in the first aspect, or implements the method for querying seismic data as described in the third aspect.

[0060] The beneficial effects of the above technical solutions provided by the embodiments of the present invention include at least:

[0061] An embodiment of the present invention provides a method, apparatus, related equipment and index library for constructing a seismic data index library. The method may include: performing sampling prediction on the trace header data included in the acquired seismic data to generate a trace header keyword and a node allocation model of distributed nodes; based on the node allocation model, all nodes perform keyword extraction on the trace header data included in the data blocks in the seismic data they match in parallel, using the keyword and trace number as index items, and generating an index file corresponding to the data block matched by each node based on the index items; constructing an index library for seismic data based on the index items included in the index file and the offset of the index item in the index file.

[0062] In the method for constructing the seismic data index library provided in an embodiment of the present invention, each node in the cluster extracts seismic trace header data in parallel, and uses the sampled data to calculate the approximate distribution pattern of the entire data, generating a node allocation model for use in subsequent data sorting; in the data sorting part, each node in the cluster reads the seismic trace header data in parallel and extracts the value of the selected keyword and the trace number as an index item, and then sends the index items of different ranges to a specific node for sorting through the node allocation model, and finally generates multiple index files that are ordered both within and between files. When constructing the index library, all index files are read in parallel and the index items are scanned equidistantly to obtain the range and starting offset of each keyword value in each index item to construct the index library of seismic data. Furthermore, the present invention makes full use of the distributed parallel mode to improve the efficiency of index construction, and uses a new index structure to achieve rapid construction, rapid search and reading of seismic data indexes, without limiting the number of keywords.

[0063] Other features and advantages of the present invention will be described in the following description, and in part will become apparent from the description, or will be understood by practicing the present invention. The purpose and other advantages of the present invention can be realized and obtained by the structures particularly pointed out in the written description and the accompanying drawings.

[0064] The technical solution of the present invention is further described in detail below through the accompanying drawings and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0065] The accompanying drawings are used to provide a further understanding of the present invention and constitute a part of the specification. Together with the embodiments of the present invention, they are used to explain the present invention and do not constitute a limitation of the present invention. In the accompanying drawings:

[0066] Figure 1 A flowchart of a method for constructing a seismic data index library provided in an embodiment of the present invention;

[0067] Figure 2 This is a specific flow chart of step S11 provided in an embodiment of the present invention;

[0068] Figure 3 A flowchart of sampling prediction based on the MapReduce framework provided in an embodiment of the present invention;

[0069] Figure 4 This is a specific flow chart of step S12 provided in an embodiment of the present invention;

[0070] Figure 5 A flowchart of generating an index file based on the MapReduce framework provided in an embodiment of the present invention;

[0071] Figure 6This is a specific flow chart of step S13 provided in an embodiment of the present invention;

[0072] Figure 7 A flowchart of building an index library based on the MapReduce framework provided in an embodiment of the present invention;

[0073] Figure 8 A flowchart of a specific method for constructing a seismic data index library provided in an embodiment of the present invention;

[0074] Figure 9 A schematic structural diagram of a device for constructing a seismic data index library provided in an embodiment of the present invention;

[0075] Figure 10 A flowchart of a seismic data query method provided in an embodiment of the present invention;

[0076] Figure 11 This is a flowchart of a specific seismic data query method provided in an embodiment of the present invention. DETAILED DESCRIPTION

[0077] Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.

[0078] The present invention provides a method for constructing a seismic data index library. Figure 1 As shown, the method may include the following steps:

[0079] Step S11: performing sampling prediction on the trace header data included in the acquired seismic data to generate a node allocation model of trace header keywords and distributed nodes.

[0080] This step is to sample and predict all earthquake data, analyze the sample data, and determine the overall distribution pattern of all earthquake data so as to distribute the earthquake data to different nodes in the server cluster for parallel processing.

[0081] It should be noted that the seismic data provided in the embodiments of the present invention is seismic data for a region, oil field, or work area, i.e., a single seismic data volume. Once obtained, this single seismic data volume is immutable. Those skilled in the art should understand that seismic data differs from geographic information such as POIs used in navigation. In navigation, POI data can be added, updated, or deleted. However, after seismic data is collected in the field, the trace header information for each seismic data track and the data collected at the sampling points remain unchanged, and these individuals should not be confused by this. Therefore, the index library of seismic data generated by this method is not updateable.

[0082] Step S12: Based on the node allocation model, all nodes perform keyword extraction on the trace header data included in the data blocks in the seismic data they match in parallel, using the keywords and trace numbers as index items, and generating index files corresponding to the data blocks matched by each node based on the index items.

[0083] In this step, all nodes extract keywords from the database corresponding to the nodes in parallel to construct index items for each seismic data and generate ordered index files for all seismic channels.

[0084] Step S13: construct an index library of seismic data based on the index items included in the index file and the offsets of the index items in the index file.

[0085] In the method for constructing the seismic data index library provided in an embodiment of the present invention, each cluster node extracts seismic trace header data in parallel. Using the sampled data, the cluster node calculates the approximate distribution pattern of the entire data and generates a node allocation model for subsequent data sorting. During the data sorting phase, each cluster node reads the seismic trace header data in parallel and extracts the value of a selected keyword and the trace number as an index item. The node allocation model then sends index items of different ranges to a specific node for sorting, ultimately generating multiple index files that are ordered both within and between files. When constructing the index library, all index files are read in parallel and the index items are scanned equidistantly to obtain the range and starting offset of each keyword value in each index item segment to construct the seismic data index library.

[0086] The inventors discovered that the R-tree extends the concept of the B-tree to multidimensional space and is currently the most popular dynamic spatial index structure, widely used in various spatial databases. The R-tree structure represents each two-dimensional data unit as a point in a two-dimensional coordinate system. Each non-leaf node of the R-tree represents a rectangle encompassing all points in the subtree, and each leaf node contains multiple pointers to data units. Based on this storage structure, multi-dimensional range queries can be performed while traversing only a few leaf nodes, and the query efficiency is significantly higher than that of traditional B+ tree query methods.

[0087] Therefore, in response to the limitations of single-keyword queries in traditional B+ trees and the inefficiency of their construction methods, the present invention combines the concepts of B+ trees and R trees to design an SR+ tree index structure, and constructs the SR+ tree based on a bulk-loading method. Using the bulk-loading method requires sorting the data first, then obtaining the range and starting offset of each keyword value for each index item, and loading them into the SR+ tree leaf nodes in an orderly batch manner as leaf node items of the SR+ tree. A leaf node capacity limit is set, and whenever the node size exceeds the set value, a new node is split to continue loading, and a new root node is constructed for the two nodes until all the data is loaded. This avoids the huge overhead of insertion operations during SR+ tree construction. The leaf nodes of the SR+ tree store the range of each keyword value and its offset in the index file, while non-leaf nodes only store the range of each keyword value and indicate their corresponding child node numbers through the subscripts in the nodes where they are located.

[0088] In an optional embodiment, in actual seismic trace data, different keywords vary in attributes such as type, value range, and distribution. To avoid the "water bucket effect" caused by some nodes in a server cluster processing too much data, which would negatively impact overall efficiency, it is necessary to ensure that the amount of sorted data allocated to each node is as evenly distributed as possible. This requires scanning the entire data before sorting to determine all possible keyword values ​​and the number of traces in which each value appears. These values ​​are then distributed as evenly and orderly as possible to different nodes based on the number of traces for each value. Scanning all trace headers can also be achieved based on the MapReduce framework. First, in the Map phase, each node reads the trace header keywords in parallel, calculates the keyword information read (i.e., the keyword value and the number of traces contained in the value), and sends the keyword information for each node to a unique node. Then, in the Reduce phase, the receiving node collects all keyword information and merges it into a total keyword information table. Each node is assigned the most even number of traces possible based on the keyword value, ultimately generating a distribution table for the sorted data range for each node. Afterwards, each node reads the allocation table during the sorting phase and sends different values ​​to the designated node, achieving segmented sorting. A search structure is then constructed for each file. The order between the structures allows them to be directly merged into an overall index search structure, and a single search can obtain the result.

[0089] Since the efficiency of scanning all the data is very low, and given that there are many channels with the same keyword value in the actual data, it is not possible to evenly distribute the same number of channels to each node for sorting, a method combining sampling and machine learning can be used to predict the distribution of the data. Figure 2 and Figure 3As shown, the above step S11 performs sampling prediction on the trace header data included in the acquired seismic data based on the MapReduce framework to generate a node allocation model of the trace header keywords and distributed nodes, which may specifically include the following steps:

[0090] Step S111 : dividing the acquired seismic data based on the number of nodes included in the server cluster to ensure that the number of data blocks after the seismic data is divided matches the number of nodes.

[0091] In this step, set the sampling scale and the number of Reducers to 1, and use the MapReduce framework to evenly distribute the sampling scale to each node. In the MapReduce framework, the Map stage can use the GetPartition function to send the Value of the same Key value to the same Reducer for unified processing. Therefore, when using the MapReduce framework for sorting, each index item data can be sent to the Reducer with a specified number. Set an ordered, continuous, and non-overlapping keyword range for each Reducer. Each Mapper sends the index item to the Reducer responsible for processing the index item. After sorting, the Reducer will generate multiple ordered index files, and each file is also ordered. In this way, the parallelism of the cluster is maximized during sorting.

[0092] Step S112: Each node reads the seismic trace data included in the data block in parallel at a preset interval as sampling data to extract the keyword value of the trace header data in the seismic trace data.

[0093] In this step, in the Map stage, each node reads seismic traces at intervals according to the sampling scale, extracts the selected keyword value in each seismic trace, and ensures that the number of seismic traces sampled and read meets the sampling scale.

[0094] Step S113: Perform normalization processing based on the keyword values ​​and node serial numbers of the sampled data to generate a keyword-node allocation table.

[0095] In this step, in the Reduce phase, the read keyword information is integrated, and the sampling results are regarded as the overall data scan results to generate a subsequent allocation table for the sorted data range of each node.

[0096] Step S114: The keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model.

[0097] In this step, the keyword value is used as input and the node number specified for the value is used as output. After normalization, it is passed into the machine learning model for training according to the proportion of the keyword value, and the cumulative distribution function of the keyword is fitted.

[0098] Specifically, in this step, the keyword value in the keyword-node allocation table is used as the input of the multilayer perceptron neural network model, the serial number of the node corresponding to the keyword is used as the output of the multilayer perceptron neural network for training, and the cumulative distribution function of the keyword is fitted to the training result to determine the node allocation model.

[0099] In the embodiment of the present invention, in the sampling prediction part, each node of the cluster extracts seismic trace header data in parallel, and uses the sampling data to calculate the approximate distribution law of the entire data to generate a node allocation model for use in subsequent data sorting.

[0100] In another optional embodiment, the traditional distributed sorting algorithm is divided into two parts: internal sorting of each node and merge sorting. In the final stage of sorting, the ordered data of each node needs to be merged and sorted. However, the merge step will concentrate all data IO on a single node, resulting in a serious reduction in sorting efficiency and a significant increase in time consumption. To this end, a segmented sorting method can be used to avoid merging and improve sorting efficiency. First, the data distribution is determined by scanning the data as a whole, and then data of different non-intersecting numerical ranges are evenly allocated to each node, so that the sorted files are ordered both internally and between files, thereby obtaining an overall ordered sorting result. As the second part of the SR+ tree index construction process, the data sorting part has the two purposes of sorting and generating index data files. Reference Figure 4 and Figure 5 As shown, the above step S12 generates an index file based on the MapReduce framework, which may specifically include the following steps:

[0101] Step S121: All nodes divide the trace headers of the seismic trace data included in the data block in parallel to determine a trace header data block.

[0102] In this step, the header data will be evenly divided into multiple segments in the Map stage. Each Map task is responsible for reading a segment of data, and then these Map tasks are evenly distributed to the Map Workers of each node in the cluster to complete.

[0103] Step S122: extract keywords from the trace header data block, and use the keywords and the trace numbers of the seismic trace data as index items.

[0104] Specifically, the keyword, keyword value, and track number are converted into a key-value data structure, with the keyword and track number in the key-value data structure used as index items. After receiving a Map task, the Map Worker begins processing the corresponding track header data segment. It reads all track headers, sequentially extracts the selected keyword data and track number from each track as index items, and stores them as key / value pairs.

[0105] Step S123: Sort the index items based on the index items and the node allocation model to determine the index file corresponding to the data block matching each node.

[0106] Specifically, based on the node allocation model, the node number of the index item is determined to sort all index items and index files; that is, the Map Worker obtains the node number corresponding to each index item by calling the node allocation model, and sends each key / value to the corresponding Reduce Worker for sorting, thereby achieving segmented sorting.

[0107] Based on the sorting results, the ordered index files generated for the seismic data are determined. Specifically, after receiving all key / value pairs from the MapWorker, the Reduce Worker sorts the index data stored in these key / value pairs according to keyword order and stores the sorted index data in the file corresponding to that Reduce Worker. Simultaneously, information about each keyword (unrepeated values, next keyword maximum value, next keyword minimum value, etc.) is collected and written to the corresponding keyword information file. At this point, all trace header index data is extracted and sorted into multiple index files.

[0108] In the data sorting part of the embodiment of the present invention, each node in the cluster reads the seismic trace header data in parallel and extracts the value of the selected keyword and the trace number as the index item, and then sends the index items of different ranges to the specific node for sorting through the node allocation model, and finally generates multiple index files that are ordered both within and between files.

[0109] In another optional embodiment, to construct an index library, after sorting the index items based on the index items and the node allocation model, it also includes: determining the offset of the index items in each node in the index file corresponding to each node, so as to determine the ordered index items in the index file corresponding to each node.

[0110] In another optional embodiment, the SR+ tree construction part reads all index files in parallel and scans index items at equal intervals to obtain the range and starting offset of each keyword value in each index item, and stores it in the leaf node as the leaf node item of the SR+ tree. Set the capacity limit of the leaf node, and if the node is full, split a new node for storage. The leaf node of the SR+ tree stores the range of each keyword value and its offset in the index file, and the non-leaf node only stores the range of each keyword value, and indicates its corresponding child node number through the subscript in the node where it is located. Figure 6 and Figure 7 As shown, the SR+ tree structure is constructed in parallel based on the MapReduce framework. First, SR+ subtrees are constructed for multiple ordered index files, then root nodes are constructed for all subtrees, and all subtrees are merged into one SR+ tree. The above step S13 of distributed SR+ tree construction can specifically include the following steps:

[0111] Step S131: Read the index files separately to extract each index item included in the index files. In the Map phase, each Map task is responsible for reading one index file, and then these Map tasks are evenly distributed to the Map Workers of each node in the cluster to complete.

[0112] Step S132: The starting range of the keyword included in the index information of the index item and the offset of the index item in the index file are stored as leaf node items of the SR+ tree in the leaf node.

[0113] In this step, after receiving a Map task, the Map Worker scans each index item in the index file one by one and saves index item information (i.e., the starting range of each keyword and the offset of the item in the index file) for each fixed range as a leaf node item in the SR+ tree. A capacity limit is set for the SR+ tree's leaf nodes. Whenever the limit is reached, a new leaf node is split until all leaf node items are written to the leaf node.

[0114] Step S133: Split out new leaf nodes based on the capacity of the leaf nodes until all leaf node items are written into the leaf nodes.

[0115] Step S134: Based on all leaf nodes, generate child nodes of each leaf node to construct an SR+ subtree; wherein the child nodes include the starting range and offset of the keywords of all leaf nodes within the child nodes.

[0116] In this step, after all leaf nodes are generated, a parent node (child node or root node) is constructed for each leaf node from the bottom up. Each non-leaf node in the SR+ tree stores the starting range of key values ​​for all of its child nodes. When a parent node reaches its capacity limit, a new parent node is requested to continue writing until the parent node is constructed.

[0117] Step S135: construct a tree top node based on the child nodes, and determine whether the number of tree top nodes is 1. If so, use the tree top node as the root node; otherwise, repeat the step of constructing the tree top node based on the child nodes.

[0118] Step S136: Generate a root node of the sub-node based on the sub-node to construct the sub-tree into an index library for representing seismic data using the SR+ tree.

[0119] In this step, once the SR+ tree corresponding to the index file is constructed, each keyword range and SR+ tree number stored in the SR+ tree are stored in key / value pairs. The Map Worker then sends all key / value pairs to a single ReduceWorker. After receiving the key / value pairs from the MapWorker, the ReduceWorker writes the SR+ tree information to the SR+ tree information file in order of SR+ tree numbers. This completes the SR+ tree structure.

[0120] The method for constructing the above-mentioned seismic data index library provided in an embodiment of the present invention and the design concept of the SR+ tree index structure have the following main features: the SR+ tree index is constructed based on the batch loading method, and the construction process is divided into three parts: sampling prediction, data sorting and SR+ tree construction; during sampling prediction, a machine learning model is used to predict data distribution, and segmented sorting is performed through the node sequence numbers assigned by the model to achieve efficient large-scale data sorting; each part of the index construction process is constructed in a distributed manner based on the MapReduce programming model; the number of index files is the same as the number of cluster nodes, and the number of SR+ subtrees is the same as the number of index files; the SR+ tree is constructed by performing equidistant scanning on the index files, and the entire keyword range can be screened simultaneously during search; non-leaf nodes of the SR+ tree point to child nodes through subscripts, and leaf nodes point to indexes through stored index offsets; the number of index keywords is not limited.

[0121] In a specific embodiment, the specific implementation of the method for constructing the seismic data index library can refer to Figure 8As shown in the figure, the construction of the SR+ tree index is mainly divided into two parts: data sorting and building the SR+ tree. The data sorting part can be further divided into sampling scanning and segment sorting. First, based on the MapReduce framework and the machine learning model, data sampling and distribution rules are learned to generate a node allocation model; then, based on the MapReduce framework, the node allocation model is used to generate the index and segment sort to generate multiple ordered index files; finally, the MapReduce framework is used to parallelize the construction of the SR+ tree for each index file. When querying the SR+ tree index, the node items are scanned one by one from the root node, and the index blocks that may match the index items are searched from top to bottom, and finally the index items that meet the conditions of each keyword range are summarized. The specific implementation steps of each part are as follows:

[0122] Data sampling and data distribution learning based on MapReduce framework and machine learning model:

[0123] In the Map phase, the MLTraceScanInputFormat class is called to partition the data into blocks. The number of blocks is determined based on the number of available nodes in the cluster, and the blocks are stored in the InputSplit class. MLTraceScan is a user-defined module that can be understood as machine learning seismic trace scanning.

[0124] After receiving the task, MapWorker uses the MLTraceScanRecordReader class to read the header data of each data block by randomly sampling at intervals. It reads one header data at a time and extracts the selected keyword value in the header and stores it in a key / value pair.

[0125] MapWorker sends each key / value pair to a unique Reduce task through the partitioning function GetPartition(conststd::string&key,conststd::string&value,intnumPartitions) of the Partitioner class.

[0126] After receiving all the key / value pairs sent by MapWorker, ReduceWorker uses the Compare(conststd::string&key1,conststd::string&key2) function of the MLTraceScanComparator class to sort the received index item sample data.

[0127] After the Reduce part is completed, the number of different values ​​of each keyword in the ordered index samples is counted, and the index item samples are distributed to each node in an orderly manner as evenly as possible to generate a keyword-node allocation table.

[0128] An MLP model is constructed based on the Libtorch framework, and the keyword values ​​and node numbers in the keyword-node assignment table are passed into the model as input and output respectively for training.

[0129] Finally, the trained model and its parameter information are stored in non-volatile storage.

[0130] Data sorting based on the MapReduce programming model:

[0131] In the Map phase, the MLTraceSortInputFormat class is called to divide the data into blocks. The number of divided data blocks is determined based on the number of available nodes in the cluster, and the blocks are stored in the InputSplit class.

[0132] After receiving the task, MapWorker uses the MLTraceSortRecordReader class to read the header data of each data block, extracts the selected keyword value in each header, and stores it together with the current track number in a key / value pair.

[0133] MapWorker reads the node allocation model through the partitioning function GetPartition of the MLTraceSortPartitioner class, inputs the keyword value of each index item into the model, obtains the corresponding node number, and sends each key / value pair to the corresponding Reduce task.

[0134] After receiving the key / value pairs sent by MapWorker, ReduceWorker uses the Compare function of the MLTraceSortComparator class to sort the received index data, and finally uses the MLTraceSortRecordWriter class to write the index data and keyword information to non-volatile storage.

[0135] SR+ tree construction based on MapReduce programming model:

[0136] In the Map stage, the MakeRtreeIndexInputFormat class is called to divide the data into blocks. The number of data blocks is determined based on the number of index files and stored in the InputSplit class.

[0137] After receiving the task, MapWorker uses the MakeRtreeIndexRecordReader class to read the index data for each data block. Each time a fixed number of index items are read, the key value range of the index is calculated and stored in the leaf node using the addToRTreeLeaf(RTreeLeafNodeItem*item) function, along with the starting offset of the segment in the index file. Once all leaf nodes are created, the buildRTree() function is used to construct the SR+ subtree from the bottom up, and the root node information of the SR+ subtree is stored in the key / value pair.

[0138] MapWorker sends each key / value pair to a unique Reduce task (before the task starts, the number of Reduce tasks has been set to 1 through the SetNumReduceTasks(intnum) function).

[0139] After receiving the key / value pairs from MapWorker, ReduceWorker summarizes the SR+ tree information and generates a root node and writes it to non-volatile storage.

[0140] The distributed SR+ tree index construction algorithm designed and implemented by the present invention based on the MapReduce programming model can utilize the high-performance cluster computing resources of multiple nodes to quickly and concurrently build indexes, greatly improving efficiency.

[0141] Based on the same inventive concept, an embodiment of the present invention further provides a device for constructing a seismic data index library, referring to Figure 9 As shown, it may include: a prediction module 91, an extraction module 92 and a construction module 93, and its working principle is as follows:

[0142] The prediction module 91 is used to perform sampling prediction on the trace header data included in the acquired seismic data to generate a node allocation model of the trace header keywords and the distributed nodes;

[0143] The extraction module 92 is used to extract keywords from the trace header data included in the data blocks of the seismic data matched by all the nodes in parallel based on the node allocation model, use the keywords and trace numbers as index items, and generate an index file corresponding to the data blocks matched by each node based on the index items;

[0144] The construction module 93 is used to construct an index library of the seismic data based on the index items included in the index file and the offsets of the index items in the index file.

[0145] In an optional embodiment, the prediction module 91 is specifically configured to:

[0146] Dividing the acquired seismic data based on the number of nodes included in the server cluster to determine that the number of data blocks after the seismic data is divided matches the number of the nodes;

[0147] Each of the nodes reads the seismic trace data included in the data block in parallel at a preset interval as sampling data to extract a keyword value of the trace header data in the seismic trace data;

[0148] Performing normalization based on the keyword values ​​of the sampled data and the sequence numbers of the nodes to generate a keyword-node allocation table;

[0149] The keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model.

[0150] More specifically, the prediction module 91 uses the keyword value in the keyword-node allocation table as the input of the multi-layer perceptron neural network model, uses the serial number of the node corresponding to the keyword as the output of the multi-layer perceptron neural network for training, and fits the cumulative distribution function of the keyword to the training result to determine the node allocation model.

[0151] In another optional embodiment, the extraction module 92 is specifically configured to:

[0152] All the nodes divide the trace headers of the seismic trace data included in the data block in parallel to determine trace header data blocks;

[0153] Extracting a keyword from the trace header data block, and using the keyword and the trace number of the seismic trace data as an index item; specifically, converting the keyword, keyword value, and trace number into a key-value data structure, and using the keyword and trace number of the key-value data structure as an index item;

[0154] Based on the index items and the node allocation model, the index items are sorted to determine the index file corresponding to the data block matching each node. Specifically, based on the node allocation model, the node number of the index item is determined to sort all the index items and index files; based on the sorting result, the ordered index file generated by the seismic data is determined.

[0155] In another optional embodiment, the extraction module 92 is further configured to determine the offset of the index item in each node in the index file corresponding to each node, so as to determine the ordered index items in the index file corresponding to each node.

[0156] In another optional embodiment, the construction module 93 is specifically configured to:

[0157] Read the index files separately to extract each index item included in the index files;

[0158] The starting range of the keyword included in the index information of the index item and the offset of the index item in the index file are stored as leaf node items of the SR+ tree in the leaf node;

[0159] Based on the capacity of the leaf node, a new leaf node is split until all leaf node items are written into the leaf node;

[0160] Based on all the leaf nodes, generating child nodes of each leaf node to construct an SR+ subtree; wherein the child nodes include the starting range and offset of the keywords of all leaf nodes within the child nodes;

[0161] Constructing a tree top node based on the child nodes, and determining whether the number of the tree top nodes is 1, if so, using the tree top node as the root node; otherwise, repeating the step of constructing the tree top node based on the child nodes;

[0162] A root node of the sub-node is generated based on the sub-node, so as to construct the sub-tree into an SR+ tree to represent an index library of the seismic data.

[0163] Based on the same inventive concept, an embodiment of the present invention further provides a seismic data index library, which may include:

[0164] Index item, the index item information includes: the keyword value selected from the seismic trace header data and the seismic trace number;

[0165] Index items and their offsets are stored in the leaf nodes of the SR+ tree;

[0166] A child node in an SR+ tree includes the starting range of the key values ​​of all index items of the leaf nodes it includes;

[0167] The root node in the SR+ tree includes the starting range of the keyword selected in the seismic data.

[0168] Based on the same inventive concept, an embodiment of the present invention further provides a method for querying seismic data, which may include:

[0169] According to the keyword value of the seismic channel to be queried, a search is performed with the pre-built seismic data index library to determine the channel number of the seismic channel;

[0170] The pre-built seismic data index library is constructed according to the above-mentioned seismic data index library construction method.

[0171] In an alternative embodiment, referring to Figure 10 and Figure 11 As shown in the figure, searching in the seismic data index library specifically includes:

[0172] Step S101: Search the subtree composed of the child nodes below the root node of the index library one by one.

[0173] Step S102: determine whether the value of the keyword of the seismic channel to be queried is within the starting range of the keyword value of the child node; if so, execute step S103; otherwise, execute step S101 to search the next child node below the root node.

[0174] Step S103, search the child nodes, non-leaf nodes and leaf nodes included in the child nodes to determine the position of the index item in the leaf node according to the offset of the index item matched by the keyword value, so as to determine the channel numbers of all seismic channels that match the keyword of the seismic channel to be queried.

[0175] Reference Figure 11 As shown, starting from the root node, node items are compared one by one. If there may be an index item that meets the conditions in the node item range, then enter its subtree and continue searching until the leaf node; otherwise, the next node item is matched and judged until the end.

[0176] Compare the node items one by one in the leaf nodes, and search for index blocks (a section of index items) where there may be index items that meet the conditions, until the end.

[0177] The index block in the corresponding index data file is read according to the offset stored in the queried leaf node item, and all index items contained in the index block are continuously screened one by one to obtain a set of index items that all meet the keyword conditions.

[0178] The seismic trace data corresponding to the index item set that meets the conditions is read using the trace number stored in the index item, thereby completing the range search of the multi-dimensional keyword. At this point, the SR+ tree index query is completed.

[0179] Multi-dimensional range query: Obtain the current index information using a given index path, reading the first keyword information file and the SR+ tree root node file. Using the search_index function, starting from the SR+ tree root node, search the given start and end ranges for each keyword, storing all matching index items in the keyDatas array. Aggregate all index item results, continue filtering other attributes (such as grouping and tolerance), and store matching index items in the BATraceIndexs class.

[0180] Compared with traditional B+ tree and R-tree index structures, the present invention has the following advantages:

[0181] 1) Combining the multi-dimensional indexing concept of the R-tree with the B+-tree allows a single query to filter out the entire keyword range, significantly improving the efficiency of multi-dimensional queries. At the same time, the SR+-tree can quickly scan the range along the leaf nodes, giving it better range query performance.

[0182] 2) SR+ tree construction uses a batch loading approach, first sorting the data into a master index file before constructing the SR+ tree. This two-layer index structure significantly reduces the SR+ tree index construction overhead and capacity while ensuring query efficiency.

[0183] 3) We designed and implemented a distributed index construction algorithm based on the MapReduce programming model, which can quickly and concurrently build indexes using the computing resources of multiple nodes and has good scalability, thereby improving the efficiency of index construction and enhancing the user experience of interactive applications.

[0184] 4) Design the overall index structure without limiting the number of index keywords.

[0185] Based on the same inventive concept, an embodiment of the present invention also provides a query device for seismic data, which may include: a query module, used to search a pre-constructed seismic data index library according to the value of the keyword of the seismic channel to be queried, so as to determine the channel number of the seismic channel; wherein the pre-constructed seismic data index library is constructed according to the above-mentioned seismic data index library construction method.

[0186] Based on the same inventive concept, an embodiment of the present invention further provides a computer-readable storage medium on which a computer program is stored. When the program is executed by a processor, it implements the above-mentioned method for constructing the seismic data index library or the above-mentioned method for querying seismic data.

[0187] Based on the same inventive concept, an embodiment of the present invention also provides a computer device, including a memory, a processor, and a computer program stored in the memory and runnable on the processor. When the processor executes the program, it implements the above-mentioned method for constructing the seismic data index library, or implements the above-mentioned method for querying seismic data.

[0188] The principles of the problems solved by the above-mentioned devices, media, related equipment and index library in the embodiments of the present invention are similar to the method of constructing the aforementioned seismic data index library. Therefore, their implementation can refer to the implementation of the aforementioned method, and the repeated parts will not be repeated.

[0189] Those skilled in the art will appreciate that embodiments of the present invention may be provided as methods, systems, or computer program products. Thus, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage and optical storage, etc.) containing computer-usable program code.

[0190] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowcharts and / or block diagrams. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0191] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

[0192] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0193] Obviously, those skilled in the art may make various changes and modifications to the present invention without departing from the spirit and scope of the present invention. Thus, if such changes and modifications fall within the scope of the claims and their equivalents, the present invention is intended to include such changes and modifications.

Claims

1. A method for constructing a seismic data index library, characterized in that: include: Dividing the acquired seismic data based on the number of nodes included in the server cluster to determine that the number of data blocks after the seismic data is divided matches the number of the nodes; Each of the nodes reads the seismic trace data included in the data block in parallel at a preset interval as sampling data to extract a keyword value of the trace header data in the seismic trace data; Performing normalization based on the keyword values ​​of the sampled data and the sequence numbers of the nodes to generate a keyword-node allocation table; The keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model; Based on the node allocation model, all the nodes perform keyword extraction on the trace header data included in the data blocks in the seismic data matched by them in parallel, use the keywords and trace numbers as index items, and generate an index file corresponding to the data blocks matched by each node based on the index items; An index library of the seismic data is constructed based on the index items included in the index file and the offsets of the index items in the index file.

2. The method according to claim 1, characterized in that The keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model, including: The keyword values ​​in the keyword-node allocation table are used as inputs of a multilayer perceptron neural network model, the serial numbers of the nodes corresponding to the keywords are used as outputs of the multilayer perceptron neural network for training, and the cumulative distribution function of the keywords is fitted to the training results to determine a node allocation model.

3. The method according to claim 1, characterized in that Based on the node allocation model, all the nodes perform keyword extraction on the trace header data included in the data blocks in the seismic data matched thereto in parallel, use the keyword and trace number as index items, and determine the index file corresponding to the data block matched by each node based on the index items, including: All the nodes divide the trace headers of the seismic trace data included in the data block in parallel to determine trace header data blocks; extracting a keyword from the trace header data block, and using the keyword and the trace number of the seismic trace data as an index item; The index items are sorted based on the index items and the node allocation model to determine the index file corresponding to the data block matching each node.

4. The method according to claim 3, characterized in that The step of extracting a keyword from the trace header data block and using the keyword and the trace number of the seismic trace data as an index item includes: Converting the keyword, keyword value, and track number into a key-value data structure, and using the keyword and track number of the key-value data structure as index items; The sorting of the index items based on the index items and the node allocation model to determine the index file corresponding to the data block matching each node includes: Based on the node allocation model, determine the number of the node where the index item is located to sort all index items and index files; According to the sorting result, an ordered index file generated by the seismic data is determined.

5. The method according to claim 3, characterized in that After sorting the index items based on the index items and the node allocation model, the method further includes: The offset of the index item in each of the nodes in the index file corresponding to each of the nodes is determined to determine the ordered index items in the index file corresponding to each of the nodes.

6. The method according to claim 5, characterized in that The step of constructing an index library of seismic data based on index items included in the index file and offsets of the index items in the index file includes: Read the index files separately to extract each index item included in the index files; The starting range of the keyword included in the index information of the index item and the offset of the index item in the index file are stored as leaf node items of the SR+ tree in the leaf node; Based on the capacity of the leaf node, a new leaf node is split until all leaf node items are written into the leaf node; Based on all the leaf nodes, generating child nodes of each leaf node to construct an SR+ subtree; wherein the child nodes include the starting range and offset of the keywords of all leaf nodes within the child nodes; A root node of the sub-node is generated based on the sub-node, so as to construct the sub-tree into an SR+ tree to represent an index library of the seismic data.

7. The method according to claim 6, characterized in that Before generating the root node of the child node based on the child node, the method further includes: A tree top node is constructed based on the child nodes, and it is determined whether the number of the tree top nodes is 1. If so, the tree top node is used as the root node; otherwise, the step of constructing the tree top node based on the child nodes is repeated.

8. The method according to any one of claims 1 to 7, characterized in that Based on the MapReduce framework, sampling prediction is performed on the trace header data included in the acquired seismic data to generate a node allocation model of trace header keywords and distributed nodes; and / or, an index file is generated based on the MapReduce framework; and / or, an index library of the seismic data is constructed based on the MapReduce framework.

9. A seismic data index library, characterized in that: The seismic data index library is constructed according to the method for constructing a seismic data index library according to any one of claims 1 to 8, comprising: Index items, wherein the index item information of the index items includes: a keyword value selected from the seismic trace header data and a seismic trace number; The index item and the offset of the index item are stored in a leaf node of the SR+ tree; The child nodes in the SR+ tree include the starting range of the key values ​​of all index items of the leaf nodes included in the child nodes; The root node in the SR+ tree includes the starting range of the keywords selected from the seismic data.

10. A method for querying seismic data, characterized in that: include: According to the value of the keyword of the seismic trace to be queried, a search is performed with a pre-built seismic data index library to determine the trace number of the seismic trace; The pre-built seismic data index library is constructed according to the method described in any one of claims 1 to 8.

11. The query method according to claim 10, characterized in that: Searching in the seismic data index library specifically includes: Searching the subtree composed of the child nodes one by one from the child nodes below the root node of the index library to determine whether the value of the keyword of the seismic trace to be queried is within the starting range of the keyword value of the child node; If so, searching the child nodes, non-leaf nodes, and leaf nodes included in the child node to determine the position of the index item in the leaf node according to the offset of the index item matched by the keyword value, so as to determine the channel numbers of all the seismic channels that match the keyword of the seismic channel to be queried; Otherwise, search the next child node below the root node.

12. A device for constructing a seismic data index library, characterized in that: include: A prediction module is configured to divide the acquired seismic data based on the number of nodes included in the server cluster to determine that the number of data blocks after the seismic data is divided matches the number of nodes; each of the nodes reads the seismic trace data included in the data blocks in parallel at a preset interval as sampling data to extract a keyword value of the trace header data in the seismic trace data; Based on the keyword values ​​of the sampled data and the sequence numbers of the nodes, normalization processing is performed to generate a keyword-node allocation table; the keyword-node allocation table is used as a training sample set and input into a preset neural network model for training to determine a node allocation model; an extraction module configured to extract keywords from the trace header data included in the data blocks of the seismic data matched by all the nodes in parallel based on the node allocation model, using the keywords and trace numbers as index items, and generating an index file corresponding to the data blocks matched by each node based on the index items; A construction module is used to construct an index library of the seismic data based on the index items included in the index file and the offsets of the index items in the index file.

13. A seismic data query device, characterized in that: include: A query module, configured to search a pre-built seismic data index library according to the keyword value of the seismic trace to be queried, so as to determine the trace number of the seismic trace; The pre-built seismic data index library is constructed according to the method described in any one of claims 1 to 8.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, it implements the method for constructing a seismic data index library as described in any one of claims 1 to 8, or implements the method for querying seismic data as described in claim 10 or 11.

15. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, it implements the method for constructing a seismic data index library as described in any one of claims 1 to 8, or implements the method for querying seismic data as described in claim 10 or 11.

Citation Information

Patent Citations

  • Hadoop-based construction method for distributed search engine

    CN102915365A

  • Seismic data multi-dimensional range query method and device

    CN112860734A