Semiconductor data processing method, device and storage medium
By analyzing and storing semiconductor data configuration information, and generating a visual interface in response to interface access requests, the problem of not meeting the data filtering and pulling requirements of different users in the prior art is solved, and dynamic updates and flexible data processing effects are achieved.
Patent Information
- Application Number
- CN202411455947.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-18
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2044-10-18
AI Technical Summary
The prior art cannot meet the data screening and data pulling analysis needs of different users on the semiconductor visual analysis page, resulting in the inability to dynamically update the configuration content to meet the diverse data processing needs of users.
By analyzing the semiconductor data file under the preset storage path, semiconductor data configuration information is obtained and stored in the preset data structure in the form of key-value pairs. In response to the interface access request, the target semiconductor data configuration information is determined, and a visual interface is generated based on the information.
It realizes dynamic update of semiconductor configuration content according to different data needs, meets users' data processing needs in the semiconductor visual analysis interface, and improves the flexibility and efficiency of data source pulling.
Smart Images

Figure CN119003841B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the semiconductor field, and in particular to a semiconductor data processing method, device and storage medium. Background Art
[0002] In the semiconductor industry, visual interfaces are widely used in many fields, such as semiconductor design, manufacturing, testing, etc. Through these interfaces, engineers and researchers can more easily understand the characteristics of semiconductors, optimize design solutions, improve production efficiency, and perform fault diagnosis and repair.
[0003] Each semiconductor manufacturer has different data content, data types, data points of interest, and desired display effects on the page. For example, customer data may be test data / production line data from multiple links such as WAT (Wafer Acceptance Test), CP (Chip Probing), and FDC (Fault Detection and Classification System). Different data types need to display different data filter items, data levels, and data analysis requirements on the visualization page. Therefore, the current visualization analysis page cannot include the data analysis configuration required by different customers, and different types of data have different requirements for display on the visualization analysis page. In the existing technology, the visualization interface is mainly configured by establishing an association between the data source and the visualization component. How to solve the data filtering / data pull analysis requirements of different customers on the visualization analysis page is an urgent problem to be solved.
[0004] There is a problem in the related technology that the data screening / data pulling and analysis needs of different users on the semiconductor visualization analysis page cannot be met, and no effective solution has been proposed yet. Summary of the invention
[0005] In this embodiment, a semiconductor data processing method, device and storage medium are provided to solve the problem in the related art that the data screening and data pulling analysis needs of different users on the semiconductor visualization analysis page cannot be met.
[0006] In a first aspect, a semiconductor data processing method is provided in this embodiment, the method comprising:
[0007] Parsing the semiconductor data file under the preset storage path to obtain semiconductor data configuration information, and storing the semiconductor data configuration information in the form of key-value pairs in a preset data structure; the semiconductor data file is stored in a preset database;
[0008] In response to an interface access request, determining target semiconductor data configuration information in the preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters;
[0009] A visualization interface is generated according to the target semiconductor data configuration information.
[0010] In some embodiments, the step of parsing the semiconductor data file under the preset storage path to obtain the semiconductor data configuration information and storing the semiconductor data configuration information in the form of a key-value pair in a preset data structure includes:
[0011] Acquire a first data file under a preset storage path, wherein the semiconductor data file includes a first data file; the first data file includes a preset data source number;
[0012] Parsing the first data file to obtain data source information;
[0013] According to the data source number, the data source information is stored in a preset data structure in the form of a key-value pair.
[0014] In some embodiments, the step of parsing the semiconductor data file under the preset storage path to obtain the semiconductor data configuration information and storing the semiconductor data configuration information in the form of a key-value pair in a preset data structure further includes:
[0015] Acquire a second data file under a preset storage path, the semiconductor data file including a second data file; the second data file is associated with the first data file through the data source number;
[0016] Parsing the second data file to obtain data type information; the data type information includes a data type value and configuration data of multiple sub-modules; the second data file includes multiple sub-modules;
[0017] The data type value and the configuration data of the submodule are stored in a preset data structure in the form of key-value pairs.
[0018] In some embodiments, in response to the interface access request, determining the target semiconductor data configuration information in the preset data structure according to the interface access request includes:
[0019] Determining a plurality of data type values in a preset data structure according to the interface access request;
[0020] In response to a data type value selection instruction, determining a target data type value corresponding to the data type value selection instruction;
[0021] The target data type value is used as the key data in the key-value pair, and the configuration data of the target submodule is determined in a preset data structure; the target semiconductor data configuration information includes the target data type value and the configuration data of the target submodule.
[0022] In some embodiments, generating a visualization interface according to the target semiconductor data configuration information includes:
[0023] In response to the data query request, determining a data source connection object according to a target data source number corresponding to a target data type value carried in the data query request;
[0024] Obtaining target data results from the data source connection object according to the configuration data of the plurality of target submodules determined in the preset data structure and the filter parameter values selected by the visualization page;
[0025] The target data result is displayed in the visualization interface.
[0026] In some of the embodiments, obtaining the target data result from the data source connection object according to the configuration data of the plurality of target submodules determined in the preset data structure and the filter parameter value selected by the visualization page includes:
[0027] In response to a data query request, determining a relevant data table according to data list information in the data query request;
[0028] Determine the target data table to be queried and the query field to be queried in the target data table according to the pre-set association information of the relevant data table;
[0029] According to the filter conditions selected by the user and the query fields to be queried in each target data table, the target data results of each target data table are obtained.
[0030] In some embodiments, the method further comprises:
[0031] grouping the target data results according to the association information preset in the target data table of the target data results;
[0032] Match the target data results according to the connection order and related information of the data tables.
[0033] In some of the embodiments, the filtering condition selected by the user includes the filtering condition selected by the user in the visualization interface and / or the preset filtering condition in the data table.
[0034] In some of the embodiments, obtaining the target data result of each target data table according to the screening condition selected by the user and the query field to be queried in each target data table includes:
[0035] When the number of queries in the target data table exceeds a threshold, the query statements are segmented and grouped according to pre-configured query segmentation fields and grouping sizes;
[0036] The query results are concurrently acquired according to the segmentation and grouping, and the query results of multiple segmentation and grouping are assembled to obtain the target data result.
[0037] In some embodiments, the method further comprises:
[0038] Create multiple threads, and add the multiple data source information to the queues of the multiple threads respectively;
[0039] In response to the interface access request, multiple threads are executed concurrently, and correspondingly multiple semiconductor data configuration information is obtained.
[0040] In a second aspect, a semiconductor data processing device is provided in this embodiment, the device comprising: a configuration module and a generation module;
[0041] The configuration module is used to parse the semiconductor data file under the preset storage path to obtain semiconductor data configuration information; store the semiconductor data configuration information in a preset data structure in the form of a key-value pair; the semiconductor data file is stored in a preset database; and is also used to respond to an interface access request and determine the target semiconductor data configuration information in the preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters;
[0042] The generating module is used to generate a visual interface according to the target semiconductor data configuration information in response to a data query request.
[0043] In a third aspect, a storage medium is provided in this embodiment, on which a computer program is stored, and when the program is executed by a processor, the visualization interface configuration method described in the first aspect is implemented.
[0044] Compared with the related art, a semiconductor data processing method, device and storage medium provided in this embodiment obtain corresponding semiconductor configuration information through a semiconductor data file created by a user, and store the configuration information in a preset data structure, namely a memory map; receive a user's interface access request, determine the target semiconductor data configuration information corresponding to the interface access request, and generate a corresponding visualization interface, which is conducive to dynamically updating the semiconductor configuration content according to different data requirements and realizing the pulling of data sources, thereby helping to meet the user's data processing needs in the semiconductor visualization analysis interface.
[0045] Details of one or more embodiments of the present application are set forth in the following drawings and description to make other features, objects, and advantages of the present application more readily apparent. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0047] Figure 1 is a hardware structure block diagram of a terminal of a semiconductor data processing method according to an embodiment of the present application;
[0048] Figure 2 is a flow chart of a semiconductor data processing method according to an embodiment of the present application;
[0049] Figure 3 is a flow chart of the semiconductor data processing method of this specific embodiment;
[0050] Figure 4 It is a schematic diagram of the flow of semiconductor data flow in an embodiment of the present application;
[0051] Figure 5 It is a structural block diagram of a semiconductor data management device according to an embodiment of the present application. DETAILED DESCRIPTION
[0052] In order to more clearly understand the purpose, technical solutions and advantages of the present application, the present application is described and illustrated below in conjunction with the accompanying drawings and embodiments.
[0053] Unless otherwise defined, the technical terms or scientific terms involved in this application shall have the general meaning understood by people with general skills in the technical field to which this application belongs. The words "one", "a", "the", "these" and the like in this application do not indicate a quantitative limitation, and they may be singular or plural. The terms "include", "comprise", "have" and any variants thereof involved in this application are intended to cover non-exclusive inclusions; for example, a process, method and system, product or device comprising a series of steps or modules (units) is not limited to the listed steps or modules (units), but may include unlisted steps or modules (units), or may include other steps or modules (units) inherent to these processes, methods, products or devices. The words "connect", "connected", "coupled" and the like involved in this application are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. The "multiple" involved in this application refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there may be three relationships, for example, "A and / or B" may mean: A exists alone, A and B exist at the same time, and B exists alone. Generally, the character " / " indicates that the objects associated with each other are in an "or" relationship. The terms "first", "second", "third", etc. in this application are only used to distinguish similar objects and do not represent a specific ordering of the objects.
[0054] The method embodiment provided in this embodiment can be executed in a terminal, a computer or a similar computing device. For example, running on a terminal, Figure 1 1 is a hardware structure block diagram of a terminal of a semiconductor data processing method according to an embodiment of the present application. Figure 1 As shown, the terminal may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 and a memory 104 for storing data, wherein the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA. The above terminal may also include a transmission device 106 and an input and output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is for illustration only and does not limit the structure of the above terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations shown.
[0055] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the semiconductor data processing method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, to implement the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the terminal via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0056] The transmission device 106 is used to receive or send data via a network. The above network includes a wireless network provided by a communication provider of the terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (Radio Frequency, referred to as RF) module, which is used to communicate with the Internet wirelessly.
[0057] Each semiconductor manufacturer has different data content, data types, data points of interest, and desired display effects on the page. For example, customers may have test data / production line data from multiple links such as WAT / CP / FDC, and different data types need to display different data filter items, data levels, and data analysis requirements on the visualization page. Therefore, the visualization analysis page cannot cover the data analysis configurations required by different customers, and different types of data have different display requirements on the visualization analysis page. How to solve the data filtering / data pulling analysis needs of different customers on the visualization analysis page? Therefore, in order to solve the problem that the data pulling function does not meet the actual needs due to various differences when used by actual customers, this application extracts various variable contents that are dependent on the data pulling logic into external configurations to provide manufacturers with the ability to adjust the configuration according to their actual situation to achieve the desired effect.
[0058] In this embodiment, a semiconductor data processing method is provided. Figure 2 is a flow chart of a semiconductor data processing method according to an embodiment of the present application. Figure 2 As shown, the process includes the following steps:
[0059] Step S210, parse the semiconductor data file under the preset storage path to obtain semiconductor data configuration information, and store the semiconductor data configuration information in the form of key-value pairs in a preset data structure; the semiconductor data file is stored in a preset database.
[0060] Among them, the processor obtains the semiconductor data file under the preset storage path in the database and parses the semiconductor data file. Exemplarily, the preset data structure is a memory map, and the semiconductor data file includes a database file (database-db file) and a configuration information file (json file) under each data type. Further, the db file is read, parsed to obtain the corresponding data source information, and a corresponding data source connection object is generated; the json file is read, and the corresponding data type configuration information is parsed; the semiconductor data configuration information includes the data source information obtained by parsing the db file and the data type configuration information obtained by parsing the json file. According to the data source number, the data source connection object is stored in the preset data structure in the form of a key-value pair, and at the same time, the data type value and the sub-module configuration corresponding to the data type configuration information are stored in the preset data structure in the form of a key-value pair.
[0061] Step S220, in response to the interface access request, determining target semiconductor data configuration information in a preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters.
[0062] Among them, when the user initiates an interface access request or performs a data screening action, the processor determines the corresponding target semiconductor data configuration information in a preset data structure according to the interface access request or the data screening action. Further, when the user initiates an interface access request or performs a data screening action, the processor determines the corresponding data type value according to the interface access request, and reads the target semiconductor data configuration information corresponding to the data type value in the preset data structure according to the data type value. Since the business of pulling semiconductor data usually involves associated queries of multiple tables, the target semiconductor data configuration information also includes multiple interrelated configuration parameters.
[0063] Step S230: generating a visualization interface according to the target semiconductor data configuration information.
[0064] Among them, the processor generates a corresponding screening interface according to the acquired target semiconductor data configuration information and the configuration information of different attributes in the target semiconductor configuration information. At the same time, different screening interfaces provide corresponding data to the user according to different attributes of the configuration information.
[0065] Through the above steps, the corresponding semiconductor configuration information is obtained according to the semiconductor data file created by the user, and the configuration information is stored in a preset data structure; thereafter, the user's interface access request is received, the target semiconductor data configuration information corresponding to the interface access request is determined, and the corresponding visualization interface is generated, which is conducive to dynamically updating the semiconductor configuration content according to different data requirements to realize the pulling of data sources, thereby meeting the user's data processing requirements in the semiconductor visualization analysis interface.
[0066] In some embodiments, step S210 includes steps S211 to S212.
[0067] Step S211, obtaining a first data file in a preset storage path, where the semiconductor data file includes the first data file; the first data file includes a preset data source number.
[0068] The processor obtains a semiconductor data file under a preset storage path, and the semiconductor data file includes a first data file. Further, the first data file includes the aforementioned database file, and the data source in the first data file has a corresponding data source number and data source related information (such as data source type, data source driver and other basic information).
[0069] Step S212: parse the first data file to obtain data source information and store the data source information in a preset data structure in the form of a key-value pair according to the data source number.
[0070] Among them, the processor parses the first data file, namely the database file, obtains the corresponding data source information, and generates a corresponding data source connection object; and then stores the data source number and the data source connection object in the form of a key-value pair in a preset data structure, namely a memory map.
[0071] Through the above steps, the first data file in the semiconductor data file is parsed to obtain data source information, and the data source connection object corresponding to the data source information is stored in a preset data structure in the form of a key-value pair according to the data source number in the first data file. The semiconductor configuration information corresponding to the first data file is obtained according to the semiconductor data file, and the semiconductor configuration information is stored in the memory map in the form of a key-value pair, which is conducive to dynamically updating the semiconductor configuration content according to different data requirements, realizing the pulling of data sources, and thus meeting the data processing requirements of users in the semiconductor visualization analysis interface.
[0072] In some of the embodiments, step S210 also includes steps S213 to S215.
[0073] Step S213, obtaining a second data file in a preset storage path, where the semiconductor data file includes the second data file; the second data file is associated with the first data file through a data source number.
[0074] The processor obtains a second data file in the semiconductor data file under the preset storage path, and the second data file is the configuration information file corresponding to the above data type. Since there are multiple associated data in the semiconductor data, the data source number is used to associate the data source file with the configuration information file corresponding to the data type, which is conducive to obtaining the required associated data in the semiconductor data file.
[0075] Step S214, parsing the second data file to obtain data type information; the data type information includes a data type value and configuration data of multiple sub-modules; the second data file includes multiple sub-modules.
[0076] The processor parses the second data file to obtain data type information. Since the second data file includes multiple sub-modules, the data type information is decomposed to obtain configuration data of the multiple sub-modules. Meanwhile, the data type information includes a data type value.
[0077] Specifically, each data type includes multiple sub-module configurations, and the specific sub-module configurations include:
[0078] The data table configuration (tables configuration) will configure all data table information (including table name, column name mapping, etc.), preset filtering conditions, and join parameters (columns and joint table types) used when joining data tables for each data type when pulling data.
[0079] Primary data table configuration (primaryTable configuration), including the primary data table name, time column, data segmentation queryKey required for large data volumes, grouping size queryLimit, index column, and other information under each data type.
[0080] The information configuration of all filter items under each data type (filterDefinitions configuration), which contains the configuration information of all filter items under each data type, such as whether the wafer is required, whether it is selected by default, and the display name of the visualization page.
[0081] Query level configuration (queryLevels configuration) mainly involves some unique display configurations and query configurations under each data level. This configuration contains the configuration information of all data levels under the data type. According to the data level division, each data level contains the visualization page display name of the level, pullable data columns, optional sub-table columns, statistical columns, etc.; data levels can include raw\lot\wafer.
[0082] Step S215, storing the data type value and the configuration data of the submodule in a preset data structure in the form of a key-value pair.
[0083] After parsing the second data file, the processor obtains the configuration data and data type values of multiple submodules. Then, the data type value is used as the key and the configuration data of the submodule is used as the value, and they are stored in multiple memory maps respectively, that is, the data type value and the configuration data of the submodule are stored in the preset data structure in the form of key-value pairs.
[0084] Through the above steps, the second data file is parsed, and the configuration data and data type values of multiple sub-modules are obtained, and then the data type values and configuration data are stored in a preset data structure in the form of key-value pairs. This is beneficial for dynamically updating the semiconductor configuration content in the data structure according to different data requirements, realizing the pulling of data sources, and thus helping to meet the various data processing needs of different users in the semiconductor visualization analysis interface.
[0085] In some embodiments, step S220 includes steps S221 to S223.
[0086] Step S221, determining multiple data type values in a preset data structure according to the interface access request.
[0087] After receiving the user's interface access request, the processor parses the existing multiple data type values in the preset data structure and displays the names of the multiple data type values in the visual interface for the user to select.
[0088] Step S222, in response to the data type value selection instruction, determining a target data type value corresponding to the data type value selection instruction.
[0089] When the user selects a data type value from the displayed list of data type values, a data type value selection instruction is generated; the processor responds to the data type value selection instruction and further determines that the data type value selected by the user is the target data type value.
[0090] Step S223, using the target data type value as the key data in the key-value pair, determining the configuration data of the target submodule in the preset data structure; the target semiconductor data configuration information includes the target data type value and the configuration data of the target submodule.
[0091] Among them, the processor determines the target data type value as the key data key in the form of a key-value pair, and obtains the configuration data of the corresponding target sub-module in a preset data structure, namely, map, with the target data type value, integrates the configuration data of the target sub-module, and then obtains the target semiconductor data configuration information.
[0092] Through the above steps, the processor provides multiple data type values to the user according to the user's interface access request; then, according to the target data type value selected by the user, in the preset data structure, the configuration data of the target sub-module stored in the form of a key-value pair with the target data type value is obtained, and then the configuration data of multiple target sub-modules are assembled and parsed in real time, thereby providing the user with a data screening interface, which is conducive to dynamically acquiring semiconductor configuration content according to different data requirements, realizing the pulling of data sources, and meeting the user's data processing needs in the semiconductor visualization analysis interface.
[0093] In some embodiments, step S230 includes steps S231 to S232.
[0094] Step S231 , in response to a data query request, determining a data source connection object according to a target data source number corresponding to a target data type value carried in the data query request.
[0095] Among them, when the user needs to perform data query, the processor receives and responds to the user's data query request, and determines the target data type value carried in the data query request, and then determines the corresponding target data source number according to the target data type value, and finally determines the data source connection object according to the target data source number.
[0096] Step S232, obtaining target data results from the data source connection object according to the configuration data of multiple target submodules determined in the preset data structure and the filter parameter values selected by the visualization page; and displaying the target data results in the visualization interface.
[0097] The processor determines the configuration data of multiple target submodules and the filter parameter value selected by the visualization page in a preset data structure according to the semiconductor data configuration information, and then determines the target data result in the data source connection object according to the configuration data and the filter parameter value, and then displays the target data result in the visualization interface to display the data information required by the user to the user. Exemplarily, the filter parameter value can be a filter parameter value for filtering the configuration data, and can also be a filter parameter value for filtering the data source.
[0098] Furthermore, in response to a data query request, the relevant data table is determined according to the data list information in the data query request; the target data table to be queried and the query field to be queried in the target data table are determined according to the pre-set association information of the relevant data table; and the target data results of each target data table are obtained according to the filtering conditions selected by the user and the query fields to be queried in each target data table.
[0099] The filtering conditions selected by the user include the filtering conditions selected by the user in the visualization interface and / or the preset filtering conditions in the data table.
[0100] In the above embodiment, the processor obtains the target data result from the data source connection object according to the configuration data of the multiple target submodules determined in the preset data structure and the filter parameter value selected by the visualization page, and then displays the target data result in the visualization interface. Through the above steps, the accuracy of obtaining the data required by the user, that is, the target data result, is improved, and the data processing requirements of the user in the semiconductor visualization analysis interface are further met. Through the above steps, when the user needs to query data, the processor responds to the data query request and determines the target data source number therein, and then determines the data source connection object according to the target data source number. Thereafter, the configuration data and data source connection objects of the corresponding multiple submodules are determined in the preset data structure, and the target data result is determined according to the configuration data and the filter parameter value selected by the visualization page to generate a visualization interface, which is conducive to providing users with fast and convenient data query, and then is conducive to dynamically obtaining semiconductor configuration content according to different data requirements, realizing the pulling of data sources, and is conducive to meeting the data processing requirements of users in the semiconductor visualization analysis interface.
[0101] Furthermore, the semiconductor data processing method further includes: grouping the target data results according to the association information pre-set in the target data table of the target data results; matching the target data results according to the connection sequence and association information of the data table. When configuring the data table, the corresponding column association information is pre-set according to the association relationship of the data table of the actual semiconductor data, and then the target data results are grouped and matched, which is conducive to improving the efficiency and accuracy of semiconductor data result processing.
[0102] In some of the embodiments, obtaining target data results of each target data table according to the filter condition selected by the user and the query field to be queried in each target data table includes:
[0103] When the number of queries in the target data table exceeds the threshold, the query statements are segmented and grouped according to the pre-configured query segmentation fields and grouping sizes; query results are obtained concurrently according to the segmentation and grouping, and the query results of multiple segmentation and grouping are assembled to obtain the target data results.
[0104] In this embodiment, during the SQL (Structured Query Language, database language) query process of the target data table, in order to avoid excessive data volume involved in a single SQL and reduce the pressure on the database, we adopted the idea of concurrent pulling, and sliced and grouped the SQL with large amounts of data according to the query segmentation field (queryKey) and group size (queryLimit) and other parameters configured in the main data table, and obtained the SQL query results corresponding to multiple slice groups, and then sent the SQL query results in parallel according to the grouped groups, and finally assembled the results of the concurrent queries one by one to obtain the query results of the SQL with large amounts of data, which is conducive to improving the efficiency of SQL result queries, that is, improving the efficiency of semiconductor data result processing.
[0105] In some of the embodiments, the semiconductor data processing method further includes: creating multiple threads, and adding multiple data source information to queues of the multiple threads respectively; in response to an interface access request, executing the multiple threads concurrently, and correspondingly obtaining multiple semiconductor data configuration information.
[0106] Among them, multiple data source information is added to multiple thread queues respectively. When the user initiates an interface access request, the threads corresponding to the interface access request are executed concurrently, thereby improving the stability and efficiency of data pulling, avoiding interference between data sources, and reducing the time consumption of data query.
[0107] The present embodiment is described and illustrated by means of specific examples below.
[0108] Figure 3 FIG. 1 is a flow chart of the semiconductor data processing method of this specific embodiment. Figure 3 As shown, the semiconductor data processing method includes the following steps:
[0109] Step S310, configuring a semiconductor data file.
[0110] Specifically, the configuration file can be divided into two parts: data source configuration and DataType configuration (data type configuration). Create a db file and a json file in the specified directory location, that is, the first data file and the second data file in the aforementioned embodiment, and ensure that the file content meets the configuration requirements of the data source and data type (DataType).
[0111] Furthermore, when configuring the data source, first create a db file corresponding to the data source and configure the following content: dataSourceNo (data source unique number), used to mark each data source, DataType configuration associates the data source through dataSourceNo; dataSourceType (data source type), such as MySQL, Oracle, Doris, etc.; driver (data source driver name), url (data source connection information), username (data source connection user name), password (data source connection password), version (file version number); Minldle / maxActive / initialSize, respectively, the minimum number of threads (optional, if not configured, the default is a preset number), the maximum number of threads (optional, if not configured, the default is a preset number), and the initial number of threads (optional, if not configured, the default is a preset number), which are used to generate a database connection pool.
[0112] Furthermore, when configuring DataType, create a json file with the same name according to the DataType value and configure it. The configuration is specifically divided into the following five parts.
[0113] 1. Basic configuration. This configuration includes basic information such as the name displayed on the visualization page of DataType, the file version number, the bound data source number, etc. For example, set the file version number (version) to 1, the name displayed on the visualization page to WAT_TEST_Oracle, and the bound data source number to 15loracle.
[0114] 2. Tables configuration. This configuration includes all the data table information (table name, column name mapping relationship) involved in DataType data pulling, preset filtering conditions, and join parameters (columns and joint table types) used when joining data tables; tables is a list, and each table element has the following items to be configured: table, fill in the data table name; columns, the mapping relationship between the data table field Label and the field name; linkColumns, the field Label name used when joining data tables; linkColumns is used to record the corresponding Label name of col to be used when joining each table.
[0115] For example, when table A joins table B, you need to know the corresponding mapping relationships joinCol; then you need to configure col to construct A inner join B on A.col_a = B.col_b. Among them, joinCol represents the attributes configured in each table, that is, which columns are used to match and associate between tables.
[0116] Furthermore, when linkColumns is set to LogID, when it is used, the table name involved in this query is first determined based on the dataColumn selected by the user on the page; then the joinCol configured for each of these tables is found, and it is determined whether the joinCol exists in the upstream and downstream tables to allocate cols, and whether other intermediate tables need to be linked. For example, now it is determined that the tables wat_test_log and wat_test_data are involved, and both tables are configured with LogID, then first determine whether the LogID Label exists in these two tables, and if it does, record this relationship. Afterwards, when the tables wat_test_log and wat_test_data are linked in memory, they are matched directly based on the actual values of their respective LogIDs. For example, the records with logID=1 in wat_test_log and the records with logID=1 in wat_test_data are merged together in memory.
[0117] Other data that need to be configured include: joinType, optional, data table join type, left join needs to be configured with left_join, if not configured, the default is inner_join. preconditions, optional, preset filter conditions for the current table, after configuring this condition, queries involving this table will be processed with the corresponding filter conditions preset. preCondition, its function is a built-in condition, for example, if DataType:[1] is configured in pro_duct_config, then every time a query sql assembly involving pro_duct_config is performed, the sql statement with the condition dataType in ("1") will be added to the sql for pre-filtering. In essence, there may be some unnecessary invalid data in the database, and users do not care about this data, so the corresponding content can be configured in advance to avoid seeing this data on the page.
[0118] 3. primaryTable configuration: This configuration includes the name of the primary data table of DataType, time column, data segmentation queryKey required for large data volumes, grouping size queryLimit, index column, and rework column used during rework.
[0119] Specifically, table indicates the name of the main table of DataType, that is, the table value of the first table element in the tables configuration; timeCol indicates the Label value corresponding to the time column in the main table; queryKey indicates the Label value corresponding to the primary key used for query segmentation; indexCols is a non-mandatory value and is used when an index column other than queryKey is needed to speed up the query. If not configured, queryKey is used as the index to speed up the query by default.
[0120] Furthermore, index is a means to speed up query in database, and you can set index for database fields to speed up query. The querykey configured by the user must be the index field in the database, otherwise the query will be very slow (basically there will be index settings in this kind of business, even if there is no index, you can directly modify the data table to add it). However, in some business scenarios, there is more than one index in the data table, and the queryKey is relatively coarse, and may all be indexes at the wafer level; in some cases, such as functional design check fdc and image raw data raw, there may be a finer-grained index runId at these levels; then it supports additional configuration of runId to speed up raw-level queries.
[0121] Furthermore, you need to configure reworkCols. The reworkCols value is a non-mandatory value, which indicates the column Label set used for rework. If it is not configured, rework is not supported by default. Rework is a solution for the situation where there is remeasured data. A wafer may be measured multiple times. The difference between each measurement is that the columns such as time are different in addition to the measured value. So when the user queries the data of such a wafer, he needs to clarify the actual data he is concerned about, whether it is the latest wafer data, the earliest wafer data, or all wafer data. In the database, if you need to find the earliest and latest data in the data of the same wafer, you need a batch of columns to distinguish them. This column is configured in rework. Here, waferId and testType are configured, so waferId, testType, and testTime (timeCol will be automatically added) are used as the only standard to identify the wafer data, and aggregate values are taken according to timeCol (for example, max or min); in sql, they are expressed as group by wafer_id and test_type respectively.
[0122] 4. FilterDefinitions configuration: This configuration contains the configuration information of all filter items under DataType, such as whether wafer is required, whether it is selected by default, and the display name of the visualization page.
[0123] 5. queryLevels configuration: queryLevels configuration mainly involves some unique display configurations and query configurations for each dataLevel. This configuration contains the configuration information of all DataLevels under DataType. According to the DataLevel division, each DataLevel contains the visualization page display name of the level, pullable data columns, optional sub-table columns, statistical columns and other contents.
[0124] The data source configuration file provides the database information configuration that users need to use, and the DataType configuration file provides the data pull content for a certain test type of the user. The two are bound through the dataSourceNo parameter. The data source configuration file uses a custom and unique dataSourceNo as an identifier, while the DataType configuration file needs to configure a dataSourceNo to determine the data source that the DataType depends on.
[0125] Step S320, parsing the configuration file and generating screening information.
[0126] Specifically, read all db files under the specified path, parse each db file to register the data source, generate the corresponding data source connection object and store it in the memory map in key-value format according to the data source number. Read all JSON files under the specified path, parse to obtain the DataType configuration of all configurations, and decompose each DataType configuration to obtain each sub-module configuration, and then use the DataType value as the key and the sub-module configuration content as the value to store them in multiple maps. When the user accesses the visualization page of data pulling, the front end will parse the existing DataType name list from the obtained configuration file content list for the user to choose.
[0127] Step S330, generating a visualization interface according to the semiconductor data configuration information obtained by querying.
[0128] Specifically, when a user selects a DataType, the front end will use the DataType value as a parameter to access the back end, and the back end will use the DataType value as a key to read the sub-module configuration information from each memory map, and then assemble the configuration of the DataType in real time and parse and return it; the front end will automatically generate a data pull filter page and a DataLevel filter page for the user to pull data based on the returned content. When the user pulls data, the corresponding data source connection object is found according to the data source number in the DataType; then the sub-module configuration information of the DataType is queried in each map, combined with the filter parameter value selected by the user, the underlying SQL connection database is assembled for query, and finally the results are returned to the user for display.
[0129] Through the above solution, the front end of the semiconductor data processing system can dynamically generate a visualization page for data pulling according to the configuration, while the back end can dynamically splice SQL according to the configuration to change the data pulling logic; therefore, on the basis of dynamically loading the DataType configuration, the user can dynamically update the DataType configuration content to modify the underlying data pulling logic of the DataType according to the data relationship of each actual scenario; the data source switching that the DataType depends on can also be achieved by dynamically loading the data source configuration, which is conducive to meeting the user's data processing needs in the semiconductor visualization analysis interface.
[0130] In one embodiment, Figure 4 Schematic diagram of semiconductor data flow in the embodiment of the present application. Figure 4, when the user provides relevant test raw data, that is, the user provides semiconductor data, the semiconductor data is stored in the database; according to the data configuration requirements, the data source configuration file and DataType configuration file of the semiconductor data in the database are configured. Afterwards, the back end uses the structured query language SQL to pull semiconductor data from the database for assembly; the back end parses the configuration file information, and returns the parsed configuration information and the pulled data set to the front end, where the configuration information is the target semiconductor data information in the aforementioned embodiment. The front end generates a visualization page for the user to choose, that is, generates a visualization data pull configuration page, a data table, etc. When the user confirms that the data type value is obtained, that is, when pulling data from a certain DataType, first select the relevant options for data pulling, and then click the button to trigger the back end to pull data. The back end dynamically assembles SQL according to the configuration information and the pull items selected by the user, and pulls all data from the data source bound to the DataType through dataSourceNo, that is, the data source number in the aforementioned embodiment, and then returns the data results to the front end to display to the user. Furthermore, in the above process, the backend will first query the data source in advance according to the filter item information configured by the user in the DataType file, and query the alternative values of all filter items for the user to choose; when the user has made his selection and clicks the query button, the backend will actually pull the data according to the passed filter value.
[0131] Furthermore, in order to ensure stable and fast data pulling, this application introduces a database thread pool, and a separate thread pool management is performed for each configured data source. On the one hand, it is helpful to avoid mutual interference between thread pools of various data sources, and on the other hand, the thread pool is used to reduce the overhead of frequently creating database connection objects during the screening value and data pulling process, ensuring the query capability and speed of each data source.
[0132] In addition to introducing the database thread pool, in order to reduce the pressure on the database, speed up the query speed, and reduce time consumption during the data pulling process, you can also use index pre-query, memory link data instead of database join, concurrent query data and assembly methods. For example, index pre-query is to first query the value of the index column configured in the DataType configuration file, and assemble it into the subsequent SQL as a condition, using the database index push-down function to avoid the SQL triggering a full table scan when querying and pulling data for large amounts of data.
[0133] When pulling DataType data, a large number of data tables need to be joined, and when join is running in the database, data expansion will occur, resulting in a large amount of duplicate and invalid data and unnecessary overhead. In order to avoid this problem, when the amount of data is large, avoid using the database join directly, but query the column results required by each join table with a small amount of data, and then find out the table with a large amount of data separately, and then group the data according to the join column in the configuration information to obtain the grouping result, and then assemble the data directly in the memory map according to the grouping result. At the same time, in the SQL query process of these tables, the idea of concurrent pulling is adopted, and the large SQL with a large amount of data is sliced and grouped according to the queryKey, queryLimit and other parameters configured by DataType, and then the SQL query results are sent concurrently by group, and finally the results of the concurrent queries are assembled one by one to obtain the query results of the large SQL, thereby avoiding the situation where the amount of data involved in a single SQL is too large, which is conducive to reducing the pressure on the database.
[0134] Furthermore, when performing a memory link, first obtain the column information of the dataColumn selected by the user to be queried, and search the table (list) from the tables in turn to determine the table involved in the queried dataColumn; then determine the final table set to be queried and the col set to be queried in each table according to the joinCol and joinType information configured in the tables; further, the col set to be queried in each table represents the columns actually involved in building the SQL, and there are multiple sources of such columns. For example, in the first case, the query now involves multiple tables, one of which is the product_config table; the field is selected in the dataColumn, and this field is found to come from the product_config table after searching, so the prodcut_faimly field is assigned to this table. In the second case, joinCol is needed to connect to the product_config table, so the joinCol value of each record needs to be known. Now joinCol configures productId, so when querying the product_config table, productId also needs to be found, so that the value of productId can be used in memory to match other tables to achieve memory join later. Therefore, in the end, the columns that product_config needs to query are product_family and product_id. The query SQL statement that is finally constructed for this table may be select product_family and product_id from product_configwhere, etc.
[0135] Afterwards, based on the predetermined index value set conditions and the filter conditions selected by the user, combined with the col that needs to be queried for each table, the result set of each table is found out in turn; further, by setting the index value set conditions, the scanning range of the data table content during the query can be narrowed according to the characteristics of the index, thereby speeding up the query.
[0136] The table result set is grouped in memory according to the joinCol of the table, which is conducive to matching directly in memory according to joinCol. Finally, the grouped joinValue->table result set can be matched directly according to the link order of tables and the column information of joinCol to realize memory link. Among them, joinValue represents the value of joinCol in the queried data. For example, table A has four cols abcd, and three dataColumns abc are selected on the user page, and the joinCol configured for table A in the table is b and d; then when we perform a single table query on table A, we need to query the four cols abcd; and if the table result set is (1,1,1,1)(1,2,3,1)(1,2,4,1); then we perform joint grouping according to the values of the two joinCols b and d, and obtain two groups of data, one group is b=1\d=1, and the other group is b=2\d=1; then match with other tables according to this b and d combination value; after matching, merge the corresponding result sets, and achieve the same effect as sql join.
[0137] It should be noted that the steps shown in the above process or the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0138] In this embodiment, a semiconductor data processing device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. The terms "module", "unit", "subunit", etc. used below can implement a combination of software and / or hardware of predetermined functions. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.
[0139] Figure 5 is a structural block diagram of a semiconductor data management device according to an embodiment of the present application. Figure 5 As shown, the device includes: a configuration module 10 and a generation module 20.
[0140] Configuration module 10 is used to parse semiconductor data files under a preset storage path, obtain semiconductor data configuration information, and store the semiconductor data configuration information in a preset data structure in the form of key-value pairs; the semiconductor data files are stored in a preset database; and is also used to respond to an interface access request and determine the target semiconductor data configuration information in a preset data structure according to the interface access request; the target semiconductor data configuration information includes multiple interrelated configuration parameters.
[0141] The generating module 20 is used to generate a visual interface according to the target semiconductor data configuration information in response to a data query request.
[0142] It should be noted that the above modules can be functional modules or program modules, and can be implemented by software or hardware. For modules implemented by hardware, the above modules can be located in the same processor; or the above modules can be located in different processors in any combination.
[0143] In this embodiment, an electronic device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in the above method embodiment.
[0144] Optionally, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.
[0145] Optionally, in this embodiment, the processor may be configured to perform the following steps through a computer program:
[0146] S1, parse the semiconductor data file under the preset storage path, obtain the semiconductor data configuration information, and store the semiconductor data configuration information in the form of key-value pairs in a preset data structure; the semiconductor data file is stored in a preset database.
[0147] S2, in response to the interface access request, determining target semiconductor data configuration information in a preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters.
[0148] S3, generating a visualization interface according to the target semiconductor data configuration information.
[0149] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementation modes, and will not be repeated in this embodiment.
[0150] In addition, in combination with the semiconductor data processing method provided in the above embodiments, a storage medium may be provided in this embodiment to implement the semiconductor data processing method. The storage medium stores a computer program, and when the computer program is executed by a processor, any semiconductor data processing method in the above embodiments is implemented.
[0151] It should be understood that the specific embodiments described herein are only used to explain the application, rather than to limit it. Based on the embodiments provided in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the protection scope of this application.
[0152] Obviously, the drawings are only some examples or embodiments of the present application. For ordinary technicians in the field, the present application can also be applied to other similar situations based on these drawings without creative work. In addition, it is understandable that although the work done in this development process may be complicated and lengthy, for ordinary technicians in the field, certain changes in design, manufacturing or production based on the technical content disclosed in this application are only conventional technical means and should not be regarded as insufficient content disclosed in this application.
[0153] The term "embodiment" in this application refers to a specific feature, structure or characteristic described in conjunction with the embodiment that can be included in at least one embodiment of the present application. The appearance of this phrase in various locations in the specification does not necessarily mean the same embodiment, nor does it mean that it is mutually exclusive with other embodiments and is independent or optional. It is clearly or implicitly understood by those of ordinary skill in the art that the embodiments described in this application can be combined with other embodiments without conflict.
[0154] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of patent protection. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the scope of protection of the present application. Therefore, the scope of protection of the present application shall be subject to the attached claims.
Claims
1. A semiconductor data processing method, characterized in that: The method comprises: Parsing the semiconductor data file under the preset storage path to obtain semiconductor data configuration information, and storing the semiconductor data configuration information in the form of key-value pairs in a preset data structure; the semiconductor data file is stored in a preset database; In response to an interface access request, determining target semiconductor data configuration information in the preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters; Generate a visualization interface according to the target semiconductor data configuration information; The generating of a visualization interface according to the target semiconductor data configuration information further includes: In response to the data query request, determining a data source connection object according to a target data source number corresponding to a target data type value carried in the data query request; Obtaining target data results from the data source connection object according to the configuration data of the plurality of target submodules determined in the preset data structure and the filter parameter values selected by the visualization interface; Displaying the target data results in the visualization interface; The method also includes: configuring a semiconductor data file; the configuration file includes a data type configuration, and data table information is involved when configuring the data type; when configuring the data table, the corresponding column association information is pre-set according to the association relationship of the data table of the actual semiconductor data to group and match the target data results.
2. The semiconductor data processing method according to claim 1, characterized in that: The step of parsing the semiconductor data file under the preset storage path to obtain semiconductor data configuration information and storing the semiconductor data configuration information in the form of a key-value pair in a preset data structure includes: Acquire a first data file under a preset storage path, wherein the semiconductor data file includes a first data file; the first data file includes a preset data source number; Parsing the first data file to obtain data source information; According to the data source number, the data source information is stored in a preset data structure in the form of a key-value pair.
3. The semiconductor data processing method according to claim 2, characterized in that: The method of parsing the semiconductor data file under the preset storage path to obtain semiconductor data configuration information and storing the semiconductor data configuration information in the form of key-value pairs in a preset data structure also includes: Acquire a second data file under a preset storage path, the semiconductor data file including a second data file; the second data file is associated with the first data file through the data source number; Parsing the second data file to obtain data type information; the data type information includes a data type value and configuration data of multiple sub-modules; the second data file includes multiple sub-modules; The data type value and the configuration data of the submodule are stored in a preset data structure in the form of key-value pairs.
4. The semiconductor data processing method according to claim 1 or claim 3, characterized in that: The step of responding to the interface access request and determining the target semiconductor data configuration information in the preset data structure according to the interface access request includes: Determining a plurality of data type values in a preset data structure according to the interface access request; In response to a data type value selection instruction, determining a target data type value corresponding to the data type value selection instruction; The target data type value is used as the key data in the key-value pair, and the configuration data of the target submodule is determined in a preset data structure; the target semiconductor data configuration information includes the target data type value and the configuration data of the target submodule.
5. The semiconductor data processing method according to claim 4, characterized in that: The step of obtaining target data results from the data source connection object according to the configuration data of the multiple target submodules determined in the preset data structure and the filter parameter values selected by the visualization page includes: In response to a data query request, determining a relevant data table according to data list information in the data query request; Determine the target data table to be queried and the query field to be queried in the target data table according to the pre-set association information of the relevant data table; According to the filter conditions selected by the user and the query fields to be queried in each target data table, the target data results of each target data table are obtained.
6. The semiconductor data processing method according to claim 5, characterized in that: The method further comprises: grouping the target data results according to the association information preset in the target data table of the target data results; Match the target data results according to the connection order and related information of the data tables.
7. The semiconductor data processing method according to claim 5, characterized in that: The filtering conditions selected by the user include the filtering conditions selected by the user in the visualization interface and / or the preset filtering conditions in the data table.
8. The semiconductor data processing method according to claim 5, characterized in that: The step of obtaining target data results of each target data table according to the screening conditions selected by the user and the query fields to be queried in each target data table includes: When the number of queries in the target data table exceeds a threshold, the query statements are segmented and grouped according to pre-configured query segmentation fields and grouping sizes; The query results are concurrently acquired according to the segmentation and grouping, and the query results of multiple segmentation and grouping are assembled to obtain the target data result.
9. The semiconductor data processing method according to claim 2, characterized in that: The method further comprises: Create multiple threads, and add the multiple data source information to the queues of the multiple threads respectively; In response to the interface access request, multiple threads are executed concurrently, and correspondingly multiple semiconductor data configuration information is obtained.
10. A semiconductor data processing device, characterized in that: The device comprises: a configuration module and a generation module; The configuration module is used to parse the semiconductor data file under the preset storage path, obtain semiconductor data configuration information, and store the semiconductor data configuration information in the form of key-value pairs in a preset data structure; the semiconductor data file is stored in a preset database; and is also used to respond to an interface access request and determine the target semiconductor data configuration information in the preset data structure according to the interface access request; the target semiconductor data configuration information includes a plurality of interrelated configuration parameters; The generation module is used to generate a visualization interface according to the target semiconductor data configuration information in response to a data query request; the generation of the visualization interface according to the target semiconductor data configuration information also includes: in response to the data query request, determining the data source connection object according to the target data source number corresponding to the target data type value carried in the data query request; obtaining the target data result from the data source connection object according to the configuration data of multiple target sub-modules determined in a preset data structure and the filter parameter value selected by the visualization page; displaying the target data result in the visualization interface; and also includes: configuring the semiconductor data file; the configuration file includes the data type configuration, and the data table information is involved when the data type is configured; when configuring the data table, according to the association relationship of the data table of the actual semiconductor data, the corresponding column association information is pre-set to group and match the target data results.
11. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the semiconductor data processing method according to any one of claims 1 to 9 are implemented.
Citation Information
Patent Citations
Data exporting method and device, electronic equipment, storage medium and program product
CN115495496A
Spacecraft data analysis system, method, medium and equipment
CN116028566A
Cooperative guidance online evaluation method in battlefield environment
CN116050052A