WO2024071505A1 - 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 - Google Patents
멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 Download PDFInfo
- Publication number
- WO2024071505A1 WO2024071505A1 PCT/KR2022/015613 KR2022015613W WO2024071505A1 WO 2024071505 A1 WO2024071505 A1 WO 2024071505A1 KR 2022015613 W KR2022015613 W KR 2022015613W WO 2024071505 A1 WO2024071505 A1 WO 2024071505A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- query
- data
- queries
- data processing
- processing system
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 221
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003672 processing method Methods 0.000 title abstract description 6
- 230000008569 process Effects 0.000 claims description 33
- 238000004458 analytical method Methods 0.000 claims description 20
- 238000013468 resource allocation Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 21
- 238000013473 artificial intelligence Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 238000013145 classification model Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010923 batch production Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Definitions
- the present invention relates to a method for processing multi-queries based on a multi-query scheduler and a data processing system that provides such method. More specifically, a method for processing multi-queries based on a multi-query scheduler that performs processing scheduling for multi-queries including multiple queries in order to efficiently utilize computing resources and improve data processing speed, and such methods. It relates to a data processing platform that provides.
- the purpose of the present invention is to solve all of the above-mentioned problems.
- the present invention processes structured data and unstructured data using one language based on an extended SQL (structured query language) and one platform, and includes multiple queries included in the input multi-query through a multi-query scheduler.
- the purpose is to efficiently process queries using different computing resources.
- the present invention aims to process multi-queries by scheduling computing resources to be used for processing the plurality of queries and the correlation between the plurality of queries included in the input multi-query based on the multi-query scheduler. .
- a representative configuration of the present invention to achieve the above object is as follows.
- a method of processing a multi-query based on a multi-query scheduler includes the steps of a data processing system receiving an input multi-query, and the multi-query scheduler of the data processing system receiving the multi-query. - May include scheduling the processing order of a plurality of queries included in the query.
- the scheduling of the processing order of the plurality of queries includes the step of the multi-query analysis unit of the multi-query scheduler analyzing the plurality of queries to determine the processing order of the plurality of queries and the multi-query scheduler
- the query queue may include scheduling a plurality of queries on the queue in consideration of the processing order of the plurality of queries determined by the multi-query analysis unit.
- the multi-query analysis unit may determine a processing order of the plurality of queries based on dependency scores and computing resource allocation data.
- a data processing system that processes multi-queries includes a multi-query scheduler implemented to receive an input multi-query and schedule the processing order of a plurality of queries included in the input multi-query. may include.
- the multi-query scheduler includes a multi-query analysis unit implemented to analyze the plurality of queries and determine a processing order of the plurality of queries, and a processing order of the plurality of queries determined by the multi-query analysis unit. Considering this, it may include a query queue implemented to schedule a plurality of queries on the queue.
- the multi-query analysis unit may determine a processing order of the plurality of queries based on dependency scores and computing resource allocation data.
- structured data and unstructured data are processed using one language based on extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler. It can be processed efficiently using extended SQL (structured query language) and one platform, and multiple queries use different computing resources through a multi-query scheduler.
- multi-queries can be processed by scheduling computing resources to be used for processing the plurality of queries and the correlation between the plurality of queries included in the multi-query based on the multi-query scheduler.
- Figure 1 is a conceptual diagram showing an existing data processing system.
- Figure 2 is a conceptual diagram showing a data processing system for processing structured data and unstructured data on one platform according to an embodiment of the present invention.
- Figure 3 is a conceptual diagram showing a data processing system for processing structured data and unstructured data on one platform according to an embodiment of the present invention.
- Figure 4 is a conceptual diagram showing the operation of a data processing system according to an embodiment of the present invention.
- Figure 5 is a conceptual diagram showing the operation of a data processing system according to an embodiment of the present invention.
- Figure 6 is a conceptual diagram showing a data processing method based on a data processing system according to an embodiment of the present invention.
- Figure 7 is a conceptual diagram showing a method of analyzing queries and processing data in a data processing system according to an embodiment of the present invention.
- Figure 8 is a conceptual diagram showing a resource distribution algorithm according to an embodiment of the present invention.
- Figure 9 is a conceptual diagram showing a data processing system that processes input multi-query according to an embodiment of the present invention.
- Figure 10 is a conceptual diagram showing the operation of a multi-query scheduler according to an embodiment of the present invention.
- Figure 1 is a conceptual diagram showing an existing data processing system.
- a data processing method for structured data 100 and unstructured data 120 in an existing data processing system is disclosed.
- Structured data 100 is data that is stored in tables according to schema and can be connected between tables through relationships. Structured data 100 can be displayed in rows and columns with an appropriately defined schema for the information it holds. Each column represents a different property, while each row contains data associated with a single instance of the property. Rows and columns can form a table that can be easily referenced, different tables can be linked, and a relational database 140 can be formed when several tables are sequentially linked.
- Unstructured data 120 is data that is different from structured data 100 and has no set rules, making it difficult to easily understand the meaning of the value, and may include data such as voice, image, and video.
- the existing data processing system could only query structured data (100) based on SQL (structured query language), and a NoSQL database without a specific schema was used to process unstructured data (120).
- the existing data processing system was capable of real-time querying of structured data (100), but real-time querying of unstructured data (120) was not possible.
- unstructured data 120 is processed through batch processing instead of real time processing. Because of this, real-time search for images, videos, and voices was impossible in existing data processing systems. More specifically, in existing data processing systems, it is difficult to analyze large amounts of unstructured data 120 in real time. Therefore, processing was performed based on the Lambda architecture (150), which combines a data table that can be acquired in real time and a batch table that has been calculated in advance at a fixed time, and structured data (100) and unstructured data (120) are separated. It was processed based on DBMS (database management system).
- DBMS database management system
- unstructured data 120 in the existing data processing system In order to learn about unstructured data 120 in the existing data processing system, artificial intelligence learning within the database was not possible.
- the existing data processing system performed learning on structured data (100) based on an AI engine implemented in the database, but learning on unstructured data (120) was not processed based on SQL within the database, so unstructured data within the database AI engine modeling based on was impossible.
- the existing data processing system when performing modeling for an AI engine, creates a sample table 160 through sampling from the parameter table of the operating system to perform modeling, and a modeling platform that performs modeling and actual operation are used to perform modeling.
- the operating platforms are different. In this case, the problem of inaccurate modeling results occurs due to differences between the modeling platform and the operating platform.
- parameter data can exist in various forms other than tables, it takes time to transform and extract the data, and a considerable amount of time is also required to preprocess the data for modeling.
- sample data includes both structured and unstructured data
- Lambda architecture must be applied to existing data processing systems. If you develop through Lambda architecture, you will use various platforms and languages, but you will waste a lot of time integrating them due to differences in characteristics and interoperability issues between platforms.
- parameter data is managed in one form (table), and the process of extracting sample data is possible through a simple query statement and does not require a lambda architecture.
- AI modeling for structured and unstructured data also has the advantage of being able to be easily processed without integration problems using one platform and one language.
- the data processing platform can process structured data 100 and unstructured data 120 based on one language based on one platform.
- the data processing platform not only enables more accurate modeling by having an operating platform and a modeling platform on one platform, but also enables structured data 100 and unstructured data 120 without separate batch processing. It can provide AI modeling functions based on .
- Figure 2 is a conceptual diagram showing a data processing system for processing structured data and unstructured data on one platform according to an embodiment of the present invention.
- the data processing system is capable of processing unstructured data 220 and structured data 210 on one platform.
- a data processing syntax for processing unstructured data 220 together with structured data 210 on one platform is newly defined, and an extended SQL (extended SQL) that can use the newly defined data processing syntax is provided. 240) can be defined.
- General queries for structured data 210 may be processed based on existing SQL such as PostgreSQL, and queries for unstructured data may be processed based on extended SQL 240 newly defined in the present invention.
- An extended SQL engine 250 may be defined to process the newly defined data processing syntax on the extended SQL 240.
- the extended SQL engine 250 may be an engine that enables processing of newly defined data processing syntax.
- Nested query 230 is a mixed query for structured data 210 and unstructured data 220, enabling sequential or complex processing of structured data 210 and unstructured data 220 stored in the database. can do.
- the structured data 210 and unstructured data 220 are processed on one platform. It is processed based on the extended SQL engine 250, and data processing for structured data 210 and unstructured data 220 is performed simultaneously on one database 260 based on nested query 230. It can be done. Based on this, AI modeling for structured data 210 and unstructured data 220 is also performed on the AI engine 270 of the data processing system.
- the AI engine may be provided in advance with various AI engines such as classification models, regression models, recommendation models, and voice recognition models, or can be used without restrictions, such as models created by the user or AI engines provided as open source.
- the data processing system of the present invention can process unstructured data 220 within one platform without separate batch processing, separate language, or separate platform.
- the data processing system of the present invention is an integrated platform that allows both structured data 210 and unstructured data 220 to be queried using only SQL and enables AI modeling for structured data 210 and unstructured data 220. Therefore, since the modeling platform and the operating platform are the same, the problem of poor modeling accuracy due to different parameters can be reduced.
- the data processing system of the present invention can apply the functions of RDB (relational database), AI, and big data platform in one platform, and can dramatically reduce inefficiencies that occur during AI-based digital transformation. Based on big data processing and distributed parallel processing technology, it enables data processing more than twice as fast as before.
- RDB relational database
- AI AI
- big data platform in one platform, and can dramatically reduce inefficiencies that occur during AI-based digital transformation.
- big data processing and distributed parallel processing technology it enables data processing more than twice as fast as before.
- a method of processing structured data and unstructured data in a database includes the steps of a data processing system receiving a nested query and the data processing system performing processing on the nested query. can do.
- a nested query may be a query that mixes a first query for unstructured data and a second query for structured data.
- the step of processing a nested query includes a step in which the data processing system performs processing on unstructured data based on an extended SQL engine that processes extended structured query language (SQL), and a data processing system that processes PostgreSQL (PostgreSQL). It may include processing structured data based on a general SQL engine that processes structured query language.
- SQL extended structured query language
- PostgreSQL PostgreSQL
- the data processing system creates data tables for structured data and data tables for unstructured data and processes them in one database, and the data processing system supports artificial intelligence engine modeling based on structured data and unstructured data in one database. You can.
- the data processing system may perform individual processing for each of structured data and unstructured data.
- the data processing system may be implemented to receive unstructured data processing queries and structured data processing queries, and process the unstructured data processing queries and structured data processing queries.
- An unstructured data processing query may be a query for processing only unstructured data
- a structured data processing query may be a query for processing only structured data.
- Unstructured data processing queries can be processed based on extended SQL and extended SQL engines, and structured data processing queries can be processed based on general SQL (PostgreSQL) and general SQL engines.
- Figure 3 is a conceptual diagram showing a data processing system for processing structured data and unstructured data on one platform according to an embodiment of the present invention.
- a nested query for processing unstructured data and structured data may be input as the input query 300.
- a nested query may include a first query 310, a second query 320, and a third query 330, and the first query 310 and the third query 330 are extended queries. 350, and the second query 320 may be a general query 360.
- the first query 310 may be PRINT IMAGE
- the second query 320 may be SELECT
- the third query 330 may be SEARCH IMAGE.
- the first query 310, the second query 320, and the third query 330 may form an input query in a nested structure.
- the input query 300 may be parsed through a parser. Based on the lexer, nested queries are divided into general queries (360) and extended queries (350), and the parser can split the general queries (360) and extended queries (350).
- the first query 310, the second query 320, and the third query 330 may be interpreted and processed through cloud analysis and a query tree.
- the third query 330, the second query 320, and the first query 310 may be processed in this order.
- the first query 310 and the third query 330 are extended queries 350 and can be processed based on an extended SQL engine
- the second query 320 is a general query, which is PostgreSQL, a SQL engine for general query processing. It can be processed based on the engine.
- the standardized SQL engine and PostgreSQL engine can be connected to one database and process queries. Artificial intelligence learning based on structured and unstructured data is possible based on one database.
- Figure 4 is a conceptual diagram showing the operation of a data processing system according to an embodiment of the present invention.
- the query function for unstructured data can be performed based on the extended SQL below.
- unstructured data (images, audio, video, etc.) can be created as an unstructured data table converted to a user-defined vector format based on a numerical algorithm.
- an image file that exists in a specific path can be created in the database as an unstructured data table using an attribute extraction artificial intelligence model.
- an image file that exists in a specific path can be created on the database as a data table using an additional attribute extraction artificial intelligence model.
- the SEARCH syntax can be used to search for content, meaning, or similarity in unstructured data.
- Table 3 below is an example of the SEARCH syntax.
- the SEARCH statement can be used to search for similar images based on an image quantification artificial intelligence model.
- the above query syntax is a newly defined syntax for SQL confirmed in the present invention.
- search image data, audio data, and video data based on keywords or text based on an unstructured data table created based on the above query syntax.
- search image data, audio data, and video data based on image data, audio data, and video data.
- real-time search for the above unstructured data is possible in addition to real-time search for existing structured data.
- nested queries which are a combination of queries on unstructured data and structured data, are also possible, making modeling using both unstructured and structured data possible.
- Figure 5 is a conceptual diagram showing the operation of a data processing system according to an embodiment of the present invention.
- ML functions for unstructured data can be performed based on extended SQL as shown below.
- a user can use the "BUILD MODEL" syntax to create a movie recommendation model that recommends movies using an artificial intelligence model.
- the "EVALUATE USING" statement can be used to evaluate the classification model that the user created in Learning a Model.
- FIT MODEL a new model can be created that is trained using a newly added dataset to a model the user previously created.
- data preprocessing used in an existing classification model can be applied to data preprocessing of a data set for learning another model.
- Table 9 below is an example of the "PREDICT UDING" syntax.
- the movie recommendation model that the user created in model training based on the "DELETE MODEL" statement may be deleted from the database.
- AI modeling based on unstructured data and structured data can be performed on a single platform, a data processing system, without a separate batch process.
- a pre-generated AI model and an AI model created by a user may be located.
- various AI models such as classification models, regression models, recommendation systems, and voice recognition models can be created.
- Figure 6 is a conceptual diagram showing a data processing method based on a data processing system according to an embodiment of the present invention.
- processing of structured data and unstructured data may be performed based on the data processing system's own database.
- users can use their own database and utilize the functions of the extended SQL and extended SQL engine provided by the data processing system based on the API.
- the processing of structured and unstructured data based on the data processing system's own database can be expressed in the term internal data processing.
- the processing of structured and unstructured data based on an external database rather than the data processing system's own database can be expressed in the term external data processing.
- external data In order to use the data processing system according to an embodiment of the present invention from the outside for external data processing, external data must be stored and converted into the data processing system of the present invention using the provided 'API' or 'data transfer method'.
- the data processing system of the present invention can be utilized using the API. That is, both the internal engine and the PostgreSQL engine can perform data processing by accessing the database according to the embodiment of the present invention rather than an external database.
- users can perform learning based on separate unstructured data stored in the user's database based on the functions of extended SQL and extended SQL engine through API.
- a specific user may be a security company and operate a user database that stores CCTV footage.
- users can perform artificial intelligence learning on CCTV images based on data stored in the user database.
- Structured data and unstructured data can be inserted from an external database into the database of the data processing system of the present invention based on a query statement for unstructured data for processing structured data and unstructured data defined in the present invention.
- AI modeling for structured data and unstructured data input to the data processing system according to an embodiment of the present invention can be performed based on the AI engine of the data processing system according to an embodiment of the present invention.
- the method of processing structured data and unstructured data on a plurality of different databases includes the steps of a data processing system receiving external data from an external database, the data processing system converting the external data, and the data processing system converting the external data. It may include processing the external data.
- the external data includes structured data and unstructured data
- the data processing system processes structured data and unstructured data based on nested queries
- the nested query is the first query for unstructured data and the second query for structured data. It may be a mixed query of 2 queries.
- a data processing system can process unstructured data based on unstructured data processing queries, and the data processing system can process structured data based on structured data processing queries.
- a nested query is a query that combines a first query for unstructured data and a second query for structured data
- an unstructured data processing query is a query for processing only the unstructured data
- a structured data processing query is a query for processing only structured data. It could be a query for
- the data processing system creates data tables for structured data and data tables for unstructured data and processes them in one database, and the data processing system supports artificial intelligence engine modeling based on structured data and unstructured data in one database. You can.
- Figure 7 is a conceptual diagram showing a method of analyzing queries and processing data in a data processing system according to an embodiment of the present invention.
- a method that analyzes an input query and processes unstructured data and structured data in one data processing system, but utilizes different processing resources when processing the query.
- a query for processing unstructured data and/or structured data may be input as an input query.
- the entered query may be a general query for unstructured data or structured data, or a nested query for mixed processing of unstructured data and structured data.
- the input query may be parsed through the parser 700.
- Nested queries are divided into general queries and extended queries, and the parser unit 700 can split the general queries and extended queries.
- a plurality of queries included in the input query may be analyzed and processed through the cloud analyzer 710 and the query tree 720.
- a nested query is input as an input query, and the nested query may include a first query 715, a second query 725, and a third query 735.
- the cloud analyzer 710 may determine which computing resources should be used to process the first query 715, second query 725, and third query 735. More specifically, the cloud analyzer 710 can determine whether the query should be executed on the CPU 770 or the GPU 780 through analysis of a plurality of queries included in the nested query.
- the cloud analyzer 710 determines the expected execution efficiency and expected execution speed of each of a plurality of queries based on the resource distribution algorithm according to an embodiment of the present invention, and determines the expected execution efficiency and expected execution speed of the plurality of queries based on the expected execution efficiency and expected execution speed.
- Each can be assigned to the CPU 770 or GPU 780.
- first query 715 and the third query 735 are extended queries
- the second query 725 is a general query.
- the first query 715 and the third query 735 can be processed based on the extended SQL engine 760
- the second query 725 is a general query
- the PostgreSQL engine (750) is a SQL engine for general query processing. ) can be processed based on.
- the first query 715 may be processed based on the GPU 780
- the third query 735 may be processed based on the CPU 770
- the second query 725 may be processed based on the GPU 780.
- the processing speed of nested queries can be improved and computing resources can be utilized more efficiently.
- This resource distribution algorithm can be applied and utilized to both the PostgreSQL engine (750), a SQL engine for general queries, and the extended SQL engine (760) for extended queries, and modeling is also performed using GPU, providing fast modeling results. can be derived.
- Figure 8 is a conceptual diagram showing a resource distribution algorithm according to an embodiment of the present invention.
- a method for determining whether to use the CPU 860 or the GPU 850 when processing an extended query 800 and a general query 820 is disclosed.
- the first type expansion query 803 which must be processed based on a model that essentially requires the use of the GPU 850 on the expansion engine, can be processed based on the GPU 850.
- the second type extended query 806, which can be processed without necessarily using the GPU 850 on the expansion engine, is processed by the CPU 860 or It can be processed based on GPU 850.
- CPU execution ability can be determined based on query processing speed, resource usage, and query cost when processing queries based on CPU.
- GPU execution ability can be determined based on query processing speed, resource usage, and query cost when processing queries based on GPU.
- the query cost to determine CPU execution ability is determined based on data processing volume (row processed) and CPU operation cost
- the query cost to determine GPU execution ability is determined based on data processing volume (row processed) and GPU operation cost.
- General queries can be processed based on CPU or GPU, considering CPU execution ability and GPU execution ability among computing resources.
- CPU execution ability and GPU execution ability for extended queries and general queries can be determined by considering the overall cost. The smaller the overall cost, the more advantageous the resource may be.
- the total cost may be the sum of the start-up cost and run cost. The smaller the overall cost, the more advantageous the resource may be when used.
- Startup cost may be a cost incurred before the first tuple is fetched.
- a tuple is a collection of attribute values related to a given list in a database.
- the startup cost of an index node scan is the cost of reading the index page to access the first tuple of the target table.
- the run cost may be the cost of accessing all tuples.
- CPU run cost and GPU run cost can be determined as shown in the equation below.
- GPU run cost (gpu_tuple_cost + gpu_operator_cost) x N tuple + seq_page_cost x N page
- CPU run cost (cpu_tuple_cost + cpu_operator_cost) x N tuple + seq_page_cost x N page
- gpu_tuple_cost is the cost of GPU processing table rows during operation.
- gpu_operator_cost is the cost for the GPU to process table tuples as operators or functions.
- cpu_tuple_cost is the cost for the CPU to process table rows during operation.
- cpu_operator_cost is the cost for the CPU to process table tuples as operators or functions.
- N tuple is the number of table tuples.
- seq_page_cost is the cost of retrieving a page.
- N page is the number of index pages.
- Figure 9 is a conceptual diagram showing a data processing system that processes input multi-query according to an embodiment of the present invention.
- FIG. 9 discloses a method of scheduling processing of a plurality of queries included in the input multi-query based on a multi-query scheduler when receiving the input multi-query.
- the input multi-query 900 may be a query including a plurality of queries.
- the input multi-query 900 may include a first query, a second query, a third query, and a fourth query.
- the first query may be SELECT
- the second query may be BUILD
- the fourth query may be PRINT.
- the multi-query scheduler 920 may include a multi-query analyzer 940 and a query queue 960.
- the multi-query analysis unit 920 may analyze a plurality of queries included in the input multi-query 900 and determine the processing order of the plurality of queries.
- the query queue 960 may schedule a plurality of queries on the queue by considering the processing order of the plurality of queries determined by the multi-query analysis unit 920.
- Queries scheduled on the queue can be delivered to the parser unit. Thereafter, as in the above-mentioned procedure, the query may be parsed by the parser unit, divided into a general query and an extended query, and interpreted and processed through the cloud analyzer unit and the query tree unit.
- the cloud analysis unit can determine the engine to process the query and the computing resource (CPU or GPU) to process the query and transfer it to the determined engine (PostgreSQL engine or extension engine) for processing.
- Figure 10 is a conceptual diagram showing the operation of a multi-query scheduler according to an embodiment of the present invention.
- the multi-query scheduler 1000 analyzes the dependency score 1020 and computing resource allocation data 1040 for an input query that comes in the form of a multi-query, and calculates the dependency score 1020 and computing resource allocation. Based on the data 1040, the processing order of a plurality of queries included in the input multi-query can be determined.
- the dependency score 1020 may be determined through cross-correlation between a plurality of queries included in the input multi-query. For example, if the third query is dependent on results processed based on the first query and the second query, the third query may be a query that has dependency on the first query and the second query. When the fourth query is processed independently, the fourth query may be a query that has no dependency on other queries.
- the dependency score 1020 may be determined for a query that can be performed after processing another query, and may have a relatively high value as the dependency on other queries increases.
- Computing resource allocation data 1040 may be data about whether the query will be processed based on CPU or GPU processing units, and if the query is processed based on CPU or GPU, computing resources to be allocated.
- the multi-query scheduler 1000 may determine whether a query will be processed based on which processing unit, CPU or GPU, based on the resource distribution algorithm described above.
- the multi-query scheduler 1000 can obtain data on allocated computing resources when a query is processed based on CPU or GPU based on the method for determining CPU execution ability and GPU execution ability described above. .
- CPU execution ability can be determined based on query processing speed, resource usage, and query cost when processing queries based on CPU.
- GPU execution ability can be determined based on query processing speed, resource usage, and query cost when processing queries based on GPU.
- the query cost to determine CPU execution ability is determined based on data processing volume (row processed) and CPU operation cost
- the query cost to determine GPU execution ability is determined based on data processing volume (row processed) and GPU operation cost.
- dependency score 1020 may be determined to be processed based on different priorities depending on the type of query.
- Queries for creating tables or models can be defined as priority processing queries, and even within priority processing queries, separate priorities can be given based on scores.
- COPY, CREATE, and BUILD may be processed preferentially as priority processing queries.
- processing priority is determined in the order COPY > CREATE > BUILD > PREDICT > SELECT_1 > SELECT_2, and the query queue can reconfigure the queue for performing queries.
- the multi-query analysis unit may first check the dependency of a plurality of queries included in the input multi-query and then determine the execution order of each of the plurality of queries.
- the GPU execution capability and CPU execution capability for each of the plurality of queries may be determined secondarily by considering the total cost described above. Based on GPU execution ability and CPU execution ability, it is determined whether each of the plurality of queries included in the query group is assigned to the CPU or GPU, and the execution order can be determined so that the lower the overall cost, the faster the query is executed.
- the cloud analyzer of the multi-query analysis unit analyzes the correlation of multiple queries included in the input multi-query, and preferentially executes a specific query among the multiple queries based on the correlation (dependency) of the multiple queries. You can decide to do it.
- the total cost (sum of startup cost and run cost) for each of the plurality of queries may be determined.
- the major resource may be determined to be CPU or GPU based on the total cost information of each of the plurality of queries. The lower the overall cost, the higher the priority. Multiple query groups can be queued to be processed with higher priority, but CPU and GPU can be selectively used as major resources depending on execution ability.
- queries located at the front of the input multi-query can be queued to be processed with higher priority.
- Query 1 has a small overall cost as the first priority, uses GPU as a major resource, and can include the query written at the very beginning in the input multi-query.
- Query 2 is ranked 3rd and can use GPU as a major resource with small overall cost.
- Query 3 can use CPU as a major resource with a small overall cost of rank 2.
- Query 4 is ranked 4th, has a small overall cost, uses CPU as a major resource, and can include queries written last in the input multi-query.
- query groups may be stacked in the queue to be processed in the following order: query 1, query 3, query 2, and query 4.
- Figure 11 is a conceptual diagram showing a method of processing an input multi-query according to an embodiment of the present invention.
- the execution order of the query group can be determined by considering the dependency, total cost, and location of the query. .
- query 1 (1110) includes a total cost of 3 and PREDICT USING (my_model) as a query statement.
- Query 2 (1120) includes a total cost of 2 and CREATE TABLE (my_model) as a query statement.
- Query 3 (1130) has a total cost of 5 and may include BUILD MODEL (my_model) as a query statement.
- query 2 (1120) with a total cost of 1 may be executed considering the total cost
- query 1 (11110) with a total cost of 3 may be executed.
- the embodiments according to the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium.
- the computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination.
- Program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable by those skilled in the computer software field.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc.
- Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- a hardware device can be converted into one or more software modules to perform processing according to the invention and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Operations Research (AREA)
Abstract
본 발명은 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템에 관한 것이다. 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법은 데이터 처리 시스템이 입력 멀티-쿼리를 수신하는 단계와 데이터 처리 시스템의 멀티-쿼리 스케줄러가 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 스케줄링 하는 단계를 포함할 수 있다.
Description
본 발명은 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템에 관한 것이다. 보다 상세하게는 컴퓨팅 자원의 효율적인 활용과 데이터 처리 스피드를 향상시키기 위해 복수의 쿼리를 포함하는 멀티-쿼리에 대한 처리 스케줄링을 수행하는 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 플랫폼에 관한 것이다.
급속한 비대면 환경과 모바일 우선 전략에 따라 해마다 많은 정형 데이터 및 비정형 데이터의 폭발적인 증가와 생성은 모든 분야에서 빅데이터를 활용한 새로운 의사 결정과 서비스를 요구하고 있다.
이와 같이 데이터의 급격한 증가와 소비는 향후 더욱 가속화될 예정이며, 이러한 정형 데이터 뿐만 아니라, 비정형 데이터에 포함되어 있는 다양한 패턴들을 수집하고 정제하고 분석하여 미래의 성장동력을 찾는 것이 기업들의 새로운 비즈니스 모델이 되고 있다.
기존 선행 기술로는 국내출원번호10-2014-0036626건이 있다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은, 확장된 SQL(structured query language) 및 하나의 플랫폼을 기반으로 하나의 언어를 사용하여 정형 데이터와 비정형 데이터를 처리하되, 멀티-쿼리 스케줄러를 통해 입력 멀티-쿼리에 포함된 복수의 쿼리를 서로 다른 컴퓨팅 자원을 사용하여 효율적으로 처리하는 것을 목적으로 한다.
또한, 본 발명은, 멀티-쿼리 스케줄러를 기반으로 입력 멀티-쿼리에 포함된 복수의 쿼리 간의 상관 관계 및 복수의 쿼리의 처리를 위해 사용될 컴퓨팅 자원을 스케줄링하여 멀티-쿼리를 처리하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 따르면, 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법은 데이터 처리 시스템이 입력 멀티-쿼리를 수신하는 단계와 상기 데이터 처리 시스템의 상기 멀티-쿼리 스케줄러가 상기 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 스케줄링 하는 단계를 포함할 수 있다.
한편, 상기 복수의 쿼리의 처리 순서를 스케줄링 하는 단계는 상기 멀티-쿼리 스케줄러의 멀티-쿼리 분석부가 상기 복수의 쿼리를 분석하여 상기 복수의 쿼리의 처리 순서를 결정하는 단계와 상기 멀티-쿼리 스케줄러의 쿼리 큐가 상기 멀티-쿼리 분석부에 의해 결정된 상기 복수의 쿼리의 처리 순서를 고려하여 큐 상에 복수의 쿼리를 스케줄링하는 단계를 포함할 수 있다.
또한, 상기 멀티-쿼리 분석부는 종속성 스코어 및 컴퓨팅 자원 할당 데이터를 기반으로 상기 복수의 쿼리의 처리 순서를 결정할 수 있다.
본 발명의 다른 실시예에 따르면, 멀티-쿼리를 처리하는 데이터 처리 시스템은 입력 멀티-쿼리를 수신하고, 상기 입력 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 스케줄링 하도록 구현되는 멀티-쿼리 스케줄러를 포함할 수 있다.
한편, 상기 멀티-쿼리 스케줄러는 상기 복수의 쿼리를 분석하여 상기 복수의 쿼리의 처리 순서를 결정하도록 구현되는 멀티-쿼리 분석부와 상기 멀티-쿼리 분석부에 의해 결정된 상기 복수의 쿼리의 처리 순서를 고려하여 큐 상에 복수의 쿼리를 스케줄링하도록 구현되는 쿼리 큐를 포함할 수 있다.
또한, 상기 멀티-쿼리 분석부는 종속성 스코어 및 컴퓨팅 자원 할당 데이터를 기반으로 상기 복수의 쿼리의 처리 순서를 결정할 수 있다.
본 발명에 의하면, 확장된 SQL(structured query language) 및 하나의 플랫폼을 기반으로 하나의 언어를 사용하여 정형 데이터와 비정형 데이터가 처리되되, 멀티-쿼리 스케줄러를 통해 복수의 쿼리가 서로 다른 컴퓨팅 자원을 사용하여 효율적으로 처리될 수 있다.
또한, 본 발명에 의하면, 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리에 포함된 복수의 쿼리 간의 상관 관계 및 복수의 쿼리의 처리를 위해 사용될 컴퓨팅 자원을 스케줄링하여 멀티-쿼리가 처리될 수 있다.
도 1은 기존 데이터 처리 시스템을 나타낸 개념도이다.
도 2는 본 발명의 실시예에 따른 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 처리하기 위한 데이터 처리 시스템을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 처리하기 위한 데이터 처리 시스템을 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 데이터 처리 시스템의 동작을 나타낸 개념도이다.
도 5는 본 발명의 실시예에 따른 데이터 처리 시스템의 동작을 나타낸 개념도이다.
도 6은 본 발명의 실시예에 따른 데이터 처리 시스템을 기반으로 한 데이터 처리 방법을 나타낸 개념도이다.
도 7은 본 발명의 실시예에 따른 데이터 처리 시스템에서 쿼리를 분석하여 데이터를 처리하는 방법을 나타낸 개념도이다.
도 8은 본 발명의 실시예에 따른 자원 분배 알고리즘을 나타낸 개념도이다.
도 9는 본 발명의 실시예에 따른 입력 멀티-쿼리(input multi-query)를 처리하는 데이터 처리 시스템을 나타낸 개념도이다.
도 10은 본 발명의 실시예에 따른 멀티-쿼리 스케줄러의 동작을 나타낸 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여 지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 바람직한 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 기존 데이터 처리 시스템을 나타낸 개념도이다.
도 1에서는 기존에 정형 데이터와 비정형 데이터를 처리하는 데이터 처리 시스템이 개시된다.
도 1을 참조하면, 기존 데이터 처리 시스템의 정형 데이터(100) 및 비정형 데이터(120)에 대한 데이터 처리 방식이 개시된다.
정형 데이터(100)는 스키마에 따라 테이블에 저장되고 관계를 통해 테이블 간에 연결이 가능한 데이터이다. 정형 데이터(100)는 보유하고 있는 정보에 대한 적절히 정의된 스키마를 가지고 행과 열로 표시될 수 있다. 각 열은 다른 속성을 나타내는 반면, 각 행에는 단일 인스턴스의 속성과 연결된 데이터가 있다. 행과 열은 쉽게 참조할 수 있는 테이블을 형성할 수 있고, 서로 다른 테이블들은 연결될 수 있고, 여러 테이블이 연속적으로 연결되어 있으면 관계형 데이터베이스(140)가 형성될 수 있다.
비정형 데이터(120)는 정형 데이터(100)와 다른 데이터로서 정해진 규칙이 없어서 값의 의미를 쉽게 파악하기 힘든 데이터로서 음성, 이미지, 영상과 같은 데이터를 포함할 수 있다.
기존 데이터 처리 시스템은 SQL(structured query language)을 기반으로 정형 데이터(100)에 대한 쿼리만이 가능하였고, 비정형 데이터(120)에 대한 처리를 위해서는 특정 스키마가 없는 NoSQL 데이터베이스가 사용되었다.
또한, 기존의 데이터 처리 시스템은 정형 데이터(100)에 대한 실시간 쿼리가 가능하였으나, 비정형 데이터(120)에 대한 실시간 쿼리가 불가능하였다. 기존 데이터베이스 처리 시스템에서 비정형 데이터(120)는 실시간 처리(real time processing) 대신 배치 처리(batch processing)을 통해 처리되었다. 이로 인해, 기존의 데이터 처리 시스템에서 이미지, 영상, 음성에 대한 실시간 검색이 불가하였다. 보다 구체적으로 기존의 데이터 처리 시스템에서 비정형 데이터(120)는 대량의 데이터를 실시간으로 분석하기 어렵다. 따라서, 실시간으로 획득이 가능한 데이터 테이블과 정해진 시간에 계산을 미리 해놓은 배치(Batch) 테이블을 결합하는 람다 아키텍처(150) 기반의 처리가 수행되었고, 정형 데이터(100)와 비정형 데이터(120)가 별도의 DBMS(database management system)를 기반으로 처리되었다.
또한, 기존의 데이터 처리 시스템은 비정형 데이터(120)에 대한 배치 프로세싱을 위해 다양한 파이프라인, 다양한 프레임워크, 다양한 언어를 사용하였다. 따라서, 하나의 가버넌스를 기반으로 한 데이터의 처리가 불가능하였고, 개발 이후 유지 보수가 어려웠다.
또한, 기존의 데이터 처리 시스템에서 비정형 데이터(120)에 대한 학습을 위해서는 데이터베이스 내에서의 인공 지능 학습이 불가하였다. 기존의 데이터 처리 시스템은 정형 데이터(100)에 대한 학습을 데이터베이스에 구현된 AI 엔진을 기반으로 수행하였으나, 비정형 데이터(120)에 대한 학습은 데이터베이스 내에서 SQL 기반으로 처리되지 않았기 때문에 데이터베이스 안에서 비정형 데이터를 기반으로 한 AI 엔진 모델링은 불가능하였다.
또한, 기존의 데이터 처리 시스템은 AI 엔진에 대한 모델링을 수행시 운영계의 모수 테이블에서 샘플링을 통해 샘플 테이블(160)을 생성하여 모델링을 수행하게 되고, 모델링을 수행하는 모델링 플랫폼과 실제 운영을 수행하는 운영 플랫폼이 서로 상이하다. 이러한 경우, 모델링 플랫폼과 운영 플랫폼의 차이로 인해 모델링 결과가 정확하지 않은 문제점이 발생된다.
기존 데이터 처리 시스템에서는 샘플 데이터를 활용하여 AI 모델링 하는데까지 정말 많은 시간이 소요된다.
기존 데이터 처리 시스템에서는 모수 테이블에서 샘플 데이터를 추출해오는 과정이 수행된다. 모수 데이터가 테이블 형태가 아닌 다양한 형태로 존재할 수 있기 때문에 데이터를 변형 및 추출해오는 과정에서 시간이 소요되고, 또 모델링 하기 위해 데이터를 전처리 하는 과정에서도 상당한 시간이 요구된다.
또한, 기존 데이터 처리 시스템의 AI 모델링 과정에서 샘플 데이터는 정형과 비정형 데이터를 모두 포함하고 있고 정형/비정형 AI모델링을 하기 위해 기존 데이터 처리 시스템에서는 람다 아키텍처를 필수로 적용해야 한다. 람다 아키텍처를 통해서 개발을 하게 된다면 다양한 플랫폼과 언어를 사용하게 되는데 플랫폼 간의 특성 차이, 연동 문제 등으로 접목시키는데 시간을 많이 허비하게 된다.
이뿐만 아니라, 모수 테이블에서 데이터를 추출하고 람다 아키텍처 상에서 AI 모델링을 하는 동안 모수 테이블/데이터에 실시간으로 새로운 데이터들이 쌓이게 되는데 그렇게 되면 기존 데이터 처리 시스템에서 만들어진 AI 모델을 적용했을 때 예측 결과(모델의 결과 값)가 정확하지 않다는 문제점이 있다. 그렇다면 다시 한번 모델링을 하기 위해서 1번 프로세스와 2번 프로세스를 거치는 등 많은 시간이 소요된다.
본 발명의 실시예에 따른 데이터 처리 시스템이 사용되는 경우, 모수 데이터가 하나의 형태(테이블)로 관리되고, 샘플 데이터를 추출해 오는 과정도 간단한 쿼리문을 통해 가능하고 람다 아키텍처를 필요로 하지 않기 때문에 정형 데이터 및 비정형 데이터에 대한 AI 모델링 또한 하나의 플랫폼과 하나의 언어를 사용하여 연동 문제없이 쉽게 프로세스 할 수 있다는 장점이 있다.
따라서, 본 발명의 실시예에 따른 데이터 처리 플랫폼은 하나의 플랫폼을 기반으로 하나의 언어를 기초로 정형 데이터(100)와 비정형 데이터(120)를 처리할 수 있다.
또한, 본 발명의 실시예에 따른 데이터 처리 플랫폼은 하나의 플랫폼 상에 운영 플랫폼과 모델링 플랫폼이 위치하여 보다 정확한 모델링이 가능할 뿐만 아니라, 별도의 배치 프로세싱 없이 정형 데이터(100) 및 비정형 데이터(120)를 기반으로 한 AI 모델링 기능을 제공할 수 있다.
이하, 보다 구체적인 본 발명의 실시예에 따른 데이터 처리 플랫폼의 기능이 개시된다.
도 2는 본 발명의 실시예에 따른 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 처리하기 위한 데이터 처리 시스템을 나타낸 개념도이다.
도 2에서는 정형 데이터 및 비정형 데이터를 하나의 플랫폼 상에서 처리하기 위한 데이터 처리 시스템이 개시된다.
도 2를 참조하면, 데이터 처리 시스템은 비정형 데이터(220)와 정형 데이터(210)를 하나의 플랫폼 상에서 처리 가능하다. 본 발명에서는 비정형 데이터(220)를 정형 데이터(210)와 함께 하나의 플랫폼에서 처리하기 위한 데이터 처리 신택스(syntax)가 새롭게 정의되고, 새롭게 정의된 데이터 처리 신택스의 사용이 가능한 확장(extended) SQL(240)이 정의될 수 있다.
정형 데이터(210)에 대한 일반 쿼리는 PostgreSQL과 같은 기존의 SQL을 기반으로 처리되고 비정형 데이터에 대한 쿼리는 본 발명에서 새롭게 정의된 확장 SQL(240)을 기반으로 처리될 수 있다.
확장 SQL(240) 상에서 새롭게 정의된 데이터 처리 신택스를 처리하기 위한 확장 SQL 엔진(250)이 정의될 수 있다. 확장 SQL 엔진(250)은 새롭게 정의된 데이터 처리 신택스를 처리 가능하도록 하기 위한 엔진일 수 있다.
기존의 데이터 처리 시스템과 다르게 확장 SQL 엔진(250)을 기반으로 네스티드 쿼리(nested query)(230)가 가능하다. 네스티드 쿼리(230)는 정형 데이터(210) 및 비정형 데이터(220)에 대한 혼합적인 쿼리로서 데이터베이스에 저장된 정형 데이터(210)와 비정형 데이터(220)에 대한 순차적인 처리 또는 복합적인 처리를 가능하게 할 수 있다.
즉, 기존에 정형 데이터(210)와 비정형 데이터(220)가 별도의 DBMS(database management system)를 기반으로 처리되는 것과 다르게 본 발명에서는 정형 데이터(210)와 비정형 데이터(220)가 하나의 플랫폼 상에서 확장 SQL 엔진(250)을 기반으로 처리되고, 네스티드 쿼리(nested query)(230)를 기반으로 정형 데이터(210)와 비정형 데이터(220)에 대한 데이터 프로세싱이 하나의 데이터 베이스(260) 상에서 동시에 이루어질 수 있다. 이를 기반으로 정형 데이터(210)와 비정형 데이터(220)에 대한 AI 모델링도 데이터 처리 시스템의 AI 엔진(270) 상에서 이루어진다.
AI 엔진은 분류 모델, 회귀 모델, 추천 모델, 음성 인식 모델 등 다양한 AI 엔진이 미리 제공될 수도 있고, 사용자가 직접 생성한 모델, 오픈 소스로 제공되는 AI 엔진 등 제한 없이 사용될 수 있다.
본 발명의 데이터 처리 시스템은 비정형 데이터(220)에 대한 별도의 배치 프로세싱, 별도의 언어, 별도의 플랫폼 없이 하나의 플랫폼 내에서 처리 가능하다. 본 발명의 데이터 처리 시스템은 정형 데이터(210)와 비정형 데이터(220) 모두 SQL 만으로 쿼리 가능하고 정형 데이터(210)와 비정형 데이터(220)에 대한 AI 모델링을 가능하게 하는 통합 플랫폼이다. 따라서 모델링 플랫폼과 운영 플랫폼이 동일하므로 모수가 달라져서 모델링의 정확도가 떨어지는 문제도 줄어들 수 있다.
또한, 본 발명의 데이터 처리 시스템은 RDB(relational database), AI 그리고 빅데이터 플랫폼(big data platform)의 기능을 하나의 플랫폼에서 적용할 수 있으며 AI 기반의 디지털 전환시 발생하는 비효율성을 획기적으로 줄일 수 있고, 빅데이터 처리 및 분산 병렬 처리 기술을 기반으로 하여 기존 대비 2배 이상 빠른 데이터 처리를 가능하게 한다.
즉, 본 발명의 실시예에 따르면, 데이터베이스 상에서 정형 데이터와 비정형 데이터를 처리하는 방법은 데이터 처리 시스템이 네스티드 쿼리를 수신하는 단계와 데이터 처리 시스템이 네스티드 쿼리에 대한 처리를 수행하는 단계를 포함할 수 있다. 네스티드 쿼리는 비정형 데이터에 대한 제1 쿼리 및 정형 데이터에 대한 제2 쿼리를 혼합한 쿼리일 수 있다.
네스티드 쿼리에 대한 처리를 수행하는 단계는, 데이터 처리 시스템이 확장된 SQL(extended structured query language)을 처리하는 확장 SQL 엔진을 기반으로 비정형 데이터에 대한 처리를 수행하는 단계와 데이터 처리 시스템이 PostgreSQL(structured query language)을 처리하는 일반 SQL 엔진을 기반으로 정형 데이터에 대한 처리를 수행하는 단계를 포함할 수 있다.
데이터 처리 시스템은 정형 데이터에 대한 데이터 테이블 및 비정형 데이터에 대한 데이터 테이블을 생성하여 하나의 데이터베이스 상에서 처리하고, 데이터 처리 시스템은 정형 데이터 및 비정형 데이터를 기반으로 한 인공 지능 엔진 모델링을 하나의 데이터베이스 상에서 지원할 수 있다.
또한, 본 발명의 실시예에 따르면, 데이터 처리 시스템은 정형 데이터 및 비정형 데이터 각각에 대한 개별적인 처리를 수행할 수도 있다. 데이터 처리 시스템은 비정형 데이터 처리 쿼리 및 정형 데이터 처리 쿼리를 수신하고, 비정형 데이터 처리 쿼리 및 정형 데이터 처리 쿼리를 처리하도록 구현될 수 있다. 비정형 데이터 처리 쿼리는 비정형 데이터만을 처리하기 위한 쿼리이고, 정형 데이터 처리 쿼리는 정형 데이터만을 처리하기 위한 쿼리일 수 있다.
비정형 데이터 처리 쿼리는 확장 SQL 및 확장 SQL 엔진을 기반으로 처리 되고, 정형 데이터 처리 쿼리는 일반 SQL(PostgreSQL) 및 일반 SQL 엔진을 기반으로 처리될 수 있다.
도 3은 본 발명의 실시예에 따른 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 처리하기 위한 데이터 처리 시스템을 나타낸 개념도이다.
도 3에서는 기존에 정의된 일반 쿼리와 비정형 데이터를 위해 확장된 SQL을 기반으로 정의된 확장 쿼리가 네스티드 쿼리를 형성하고, 네스티드 쿼리가 데이터 처리 시스템에서 처리되는 방법이 개시된다.
도 3을 참조하면, 입력 쿼리(300)로서 비정형 데이터 및 정형 데이터에 대한 처리를 위한 네스티드 쿼리가 입력될 수 있다.
예를 들어, 네스티드 쿼리는 제1 쿼리(310), 제2 쿼리(320) 및 제3 쿼리(330)를 포함할 수 있고, 제1 쿼리(310) 및 제3 쿼리(330)는 확장 쿼리(350)이고, 제2 쿼리(320)는 일반 쿼리(360)일 수 있다.
제1 쿼리(310)는 PRINT IMAGE, 제2 쿼리(320)는 SELECT, 제3 쿼리(330)는 SEARCH IMAGE일 수 있다. 제1 쿼리(310), 제2 쿼리(320) 및 제3 쿼리(330)는 네스티드 구조로 입력 쿼리를 형성할 수 있다.
입력 쿼리(300)는 파서를 통해 파싱될 수 있다. 렉서(lexer)를 기반으로 네스티트 쿼리는 일반 쿼리(360)와 확장 쿼리(350)로 구분되고, 파서는 일반 쿼리(360)와 확장 쿼리(350)를 분할할 수 있다.
제1 쿼리(310), 제2 쿼리(320) 및 제3 쿼리(330)는 클라우즈 아날라이즈(clause analyze) 및 쿼리 트리(query tree)를 통해 해석되어 처리될 수 있다. 제3 쿼리(330), 제2 쿼리(320) 및 제1 쿼리(310)의 순서로 처리될 수 있다.
제1 쿼리(310) 및 제3 쿼리(330)는 확장 쿼리(350)로서 확장 SQL 엔진을 기반으로 처리될 수 있고, 제2 쿼리(320)는 일반 쿼리로서 일반 쿼리 처리를 위한 SQL 엔진인 PostgreSQL 엔진을 기반으로 처리될 수 있다.
표준화 SQL 엔진과 PostgreSQL 엔진은 하나의 데이터베이스와 연결되어 쿼리를 처리할 수 있다. 하나의 데이터베이스를 기반으로 정형 데이터 및 비정형 데이터를 기반으로 한 인공 지능 학습이 가능하다.
도 4는 본 발명의 실시예에 따른 데이터 처리 시스템의 동작을 나타낸 개념도이다.
도 4에서는 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 동시에 처리하기 위한 확장된 SQL 중 쿼리 기능이 개시된다.
도 4를 참조하면, 비정형 데이터에 대한 쿼리 기능은 아래와 같은 확장된 SQL을 기반으로 수행될 수 있다.
(1) 저장 모델 확인(LIST)(410)
사용자는 "LIST" 구문을 사용하여 비정형 데이터를 프로세싱하기 위한 비정형 데이터 테이블을 위해 미리 생성된 모델(pre-built model)과 사용자가 생성한 사용자 생성 모델을 확인할 수 있다.
예를 들어, LIST MODEL 기능을 통해 사용자에 의해 생성된 사용자 생성 모델에 대한 확인이 가능하고, LIST PREBUILT MODEL 기능을 사용하여 미리 생성된 모델에 대한 확인이 가능하다.
(2) 비정형 데이터 변환(CREATE TABLE)(420)
"CREATE TABLE" 구문을 사용하여 비정형 데이터(이미지, 오디오, 비디오 등)는 수치화 알고리즘을 기초로 사용자형 벡터 형식으로 변환한 비정형 데이터 테이블로 생성될 수 있다.
아래의 표 1은 CREATE TABLE 구문의 예시이다
<표 1>
CREATE TABLE [사용자 지정 데이터 테이블의 이름]
USING [사용할 인공지능 모델]
AS [사용할 데이터 세트]
예를 들어, CREATE TABLE기능을 사용하여 특정 경로에 존재하는 이미지 파일을 속성 추출 인공지능 모델을 사용하여 비정형 데이터 테이블로서 데이터베이스 상에 생성할 수 있다.
(3) 비정형 특성 추가(CONVERT USING)(430)
사용자는 "CONVERT USING" 구문을 사용하여 이미지, 비디오, 음성 등 비정형 데이터의 정보를 이용해서 수치화 알고리즘을 사용하여 벡터 형식으로 변환하고 이값을 사용할 데이터 세트에 추가할 수 있다.
아래의 표 2는 CONVERT USING 구문의 예시이다
<표 2>
CONVERT USING [사용할 인공지능 모델]
OPTIONS(
Table_name=[저장될 테이블명]
)
AS
[사용할 데이터 세트]
예를 들어, CONVERT USING 기능을 사용하여 특정 경로에 존재하는 이미지 파일을 추가적인 속성 추출 인공지능 모델을 사용하여 데이터 테이블로서 데이터베이스 상에 생성할 수 있다.
(4) 비정형 데이터 검색(SEARCH)(440)
SEARCH 구문은 비정형 데이터에서 내용이나 의미 또는 유사도 등을 검색하기 위해 사용될 수 있다.
아래의 표 3은 SEARCH 구문의 예시이다.
<표 3>
SEARCH [사용자 지정 데이터 테이블 이름]
USING [사용할 인공지능 모델]
AS [사용할 데이터 세트]
예를 들어, 이미지 수치화 인공 지능 모델을 기반으로 유사 이미지에 대한 검색을 진행하기 위해 SEARCH 구문이 활용될 수 있다.
(5) 결과 출력(PRINT)(450)
사용자는 "PRINT" 구문을 사용하여 이미지, 오디오 및 비디오 파일을 출력할 수 있다. 또한, 서브 쿼리를 사용하여 "PRINT" 구문을 통해 나온 결과를 바로 출력할 수 있다.
아래의 표 4는 "PRINT" 구문의 예시이다.
<표 4>
PRINT IMAGE, AUDIO, VIDEO
AS [출력할 데이터 세트]
예를 들어, PRINT 쿼리문을 사용하여 데이터 테이블에 있는 이미지 파일/비디오 파일/오디오파일들을 출력할 수 있다.
위의 쿼리 신택스(syntax)는 본 발명에서 확정된 SQL을 위해 새롭게 정의된 신택스이다.
위와 같은 쿼리 신텍스를 기반으로 만들어진 비정형 데이터 테이블을 기반으로 키워드 또는 텍스트를 기반으로 한 이미지 데이터, 오디오 데이터, 비디오 데이터의 검색이 가능하다. 또한, 이미지 데이터, 오디오 데이터, 비디오 데이터를 기반으로 한 이미지 데이터, 오디오 데이터, 비디오 데이터의 검색도 가능하다.
즉, 본 발명의 실시예에 따른 데이터 처리 시스템에서는 기존의 정형 데이터에 대한 실시간 검색에 추가하여 위와 같은 비정형 데이터에 대한 실시간 검색이 가능하다. 또한, 위와 같은 확장된SQL을 기반으로 비정형 데이터 및 정형 데이터에 대한 쿼리의 조합인 네스티드 쿼리(nested query)도 가능하여 비정형 데이터 및 정형 데이터를 모두 활용한 모델링도 가능하다.
도 5는 본 발명의 실시예에 따른 데이터 처리 시스템의 동작을 나타낸 개념도이다.
도 5에서는 하나의 플랫폼 상에서 정형 데이터와 비정형 데이터를 동시에 처리하기 위한 확장된 SQL 중 ML(machine learning) 기능이 개시된다.
도 5를 참조하면, 비정형 데이터에 대한 ML 기능은 아래와 같은 확장된 SQL을 기반으로 수행될 수 있다.
(1) 모델 학습(BUILD MODEL)(510)
사용자는 "BUILD MODEL" 구문을 사용하여 인공지능모델을 개발할 수 있다.
아래의 표 5는 "BUILD MODEL" 구문의 예시이다.
<표 5>
BUILD MODEL [사용자 지정 모델 이름]
USING [사용할 인공지능모델]
OPTIONS([인공지능모델을 만들 때 필요한 옵션값])
AS [사용할 데이터 세트]
예를 들어, 사용자는 "BUILD MODEL" 구문을 사용하여 인공지능모델을 사용하여 영화를 추천하는 영화추천모델을 만들 수 있다.
(2) 모델 평가(EVALUATE USING)(520)
사용자는 "EVALUATE USING" 구문을 사용하여 인공지능모델에 대한 성능 평가를 수행할 수 있다.
아래의 표 6은 "EVALUATE USING" 구문의 예시이다.
<표 6>
EVALUATE USING [기존 학습한 모델 이름]
OPTIONS ([모델별 평가시 필요한 옵션값])
AS
[사용할 데이터 세트]
예를 들어, "EVALUATE USING" 구문을 사용하여 사용자가 모델 학습하기에서 만들었던 분류 모델에 대한 평가가 수행될 수 있다.
(3) 모델 재학습(FIT MODEL)(530)
사용자는 "FIT MODEL" 구문을 사용하여 모델에 새롭게 추가된 데이터세트를 기반으로 한 학습을 수행할 수 있다.
아래의 표 7은 "FIT MODEL" 구문의 예시이다.
<표 7>
FIT MODEL [사용자 지정 모델 이름]
USING [기존 학습한 모델 이름 | 사전 학습된 인공지능모델 이름]
OPTIONS ([인공지능모델을 만들 때 필요한 옵션값])
AS
[사용할 데이터세트]
예를 들어, "FIT MODEL"을 사용하여 사용자가 이전에 만들었던 모델에 새롭게 추가된 데이터세트를 사용하여 학습한 새로운 모델이 생성될 수 있다.
(4) 데이터 전처리(TRANSFORM USING)(540)
사용자는 "TRANSFORM USING" 구문을 사용하여 테스트 데이터 세트에 인공지능 모델 생성시 사용한 동일한 전처리 방법을 적용할 수 있다.
아래의 표 8은 "TRANSFORM USING" 구문의 예시이다.
<표 8>
TRANSFORM USING [기존 학습한 모델 이름]
AS
[사용할 테스트 데이터 세트]
예를 들어, "TRANSFORM USING" 구문을 사용하여 모델 학습하기에서 기존에 생성된 분류 모델에서 사용한 데이터 전처리가 다른 모델의 학습을 위한 데이터 세트의 데이터 전처리에 적용될 수 있다.
(5) 모델 적용하기(PREDICT USING)(550)
사용자는 "PREDICT UDING" 구문을 사용하여 테스트 데이터 세트에 인공지능 모델을 적용하여 예측, 분류, 추천 등의 작업을 수행할 수 있다.
아래의 표 9는 "PREDICT UDING" 구문의 예시이다.
<표 9>
PREDICT USING [기존 학습한 모델 이름]
OPTIONS ([모델별 추론시 필요한 옵션값])
AS
[사용할 테스트 데이터 세트]
예를 들어, "PREDICT USING" 구문을 사용하여 기존에 모델 학습하기에서 만들어었던 기존 추천 모델을 사용하여 사용자 ID 31인 사용자가 좋아할만한 영화 목록에 대한 추천이 가능할 수 있다.
(6) 모델 삭제하기(DELETE MODEL)(560)
사용자는 "DELETE MODEL" 구문을 사용하여 데이터베이스에 만들어진 모델을 삭제할 수 있다.
아래의 표 10은 "DELETE MODEL" 구문의 예시이다.
<표 10>
DELETE MODEL [삭제할 모델 이름]
예를 들어, "DELETE MODEL" 구문을 기반으로 사용자가 모델 학습하기에서 만들었던 영화추천모델이 데이터베이스에서 삭제될 수 있다.
위와 같은 확장된SQL을 기반으로 비정형 데이터 및 정형 데이터를 기반으로 한 AI 모델링이 별도의 배치 프로세스 없이 하나의 플랫폼인 데이터 처리 시스템 상에서 수행될 수 있다.
데이터 처리 시스템 상에서는 미리 생성된 AI 모델 및 사용자에 의해 생성된 AI 모델이 위치할 수 있다. 이러한 AI 모델 생성을 통해 분류 모델, 회귀 모델, 추천 시스템, 음성 인식 모델 등 다양한 AI 모델에 대한 생성이 이루어질 수 있다.
도 6은 본 발명의 실시예에 따른 데이터 처리 시스템을 기반으로 한 데이터 처리 방법을 나타낸 개념도이다.
도 6에서는 전술한 데이터 처리 시스템을 기반으로 한 별도의 데이터베이스 상의 데이터 처리 방법이 개시된다.
도 6를 참조하면, 도 1에서 도 5에서 전술한 바와 같이 데이터 처리 시스템 자체 데이터베이스를 기반으로 한 정형 데이터 및 비정형 데이터의 처리가 수행될 수도 있다. 하지만, 사용자는 사용자의 데이터베이스를 사용하되, 데이터 처리 시스템에서 제공하는 확장 SQL 및 확장 SQL 엔진의 기능을 API를 기반으로 활용할 수 있다.
데이터 처리 시스템의 자체 데이터베이스를 기반으로 한 정형 데이터 및 비정형 데이터의 처리는 내부 데이터 처리라는 용어로 표현될 수 있다. 데이터 처리 시스템의 자체 데이터베이스가 아닌 외부 데이터베이스를 기반으로 한 정형 데이터 및 비정형 데이터의 처리는 외부 데이터 처리라는 용어로 표현될 수 있다.
내부 데이터 처리의 경우 전술한 도 1 내지 도 5에서 개시된 프로세스를 기반으로 처리될 수 있다.
외부 데이터 처리를 위해 외부에서 본 발명의 실시예에 따른 데이터 처리 시스템을 사용하기 위해서는 제공된 'API' 또는 '데이터 이전 방법'을 사용하여 외부 데이터를 본 발명의 데이터 처리 시스템에 저장 및 변환시켜줘야 한다. 저장 및 변환이 완료된 데이터들에 대해서는 API를 사용하여 본 발명의 데이터 처리 시스템을 활용할 수 있다. 즉, 자체 엔진과 PostgreSQL 엔진 모두 외부 데이터베이스가 아닌 본 발명의 실시예에 따른 데이터베이스를 액세스하여 데이터 처리를 수행할 수 있다.
외부 데이터 처리의 경우, 사용자는 사용자의 데이터베이스에 저장된 별도의 비정형 데이터를 기반으로 한 학습을 API를 통해 확장된 SQL 및 확장 SQL 엔진의 기능을 기반으로 수행할 수 있다.
예를 들어, 특정 사용자는 보안 업체로서 CCTV 영상을 저장하는 사용자 데이터베이스를 운영할 수 있다. 사용자는 본 발명의 데이터 처리 시스템의 확장된 SQL을 기반으로 CCTV 영상에 대한 인공지능학습을 사용자 데이터베이스에 저장된 데이터를 기반으로 수행할 수 있다. 외부 데이터베이스에서 본 발명의 데이터 처리 시스템의 데이터베이스로 정형 데이터 및 본 발명에서 정의된 비정형 데이터를 처리하기 위한 비정형 데이터에 대한 쿼리문을 기반으로 정형 데이터와 비정형 데이터가 삽입될 수 있다. 본 발명의 실시예에 따른 데이터 처리 시스템에 입력된 정형 데이터와 비정형 데이터에 대한 AI 모델링이 본 발명의 실시예에 따른 데이터 처리 시스템의 AI 엔진을 기반으로 수행될 수 있다.
즉, 복수의 서로 다른 데이터베이스 상의 정형 데이터와 비정형 데이터를 처리하는 방법은 데이터 처리 시스템이 외부 데이터베이스로부터 외부 데이터를 수신하는 단계, 상기 데이터 처리 시스템이 상기 외부 데이터를 변환하는 단계와 데이터 처리 시스템이 변환된 상기 외부 데이터를 처리하는 단계를 포함할 수 있다.
이때, 외부 데이터는 정형 데이터와 비정형 데이터를 포함하고, 데이터 처리 시스템은 네스티드 쿼리를 기반으로 정형 데이터 및 비정형 데이터를 처리하고, 네스티드 쿼리는 비정형 데이터에 대한 제1 쿼리 및 정형 데이터에 대한 제2 쿼리를 혼합한 쿼리일 수 있다.
데이터 처리 시스템은 비정형 데이터 처리 쿼리를 기반으로 비정형 데이터를 처리하고, 데이터 처리 시스템은 정형 데이터 처리 쿼리를 기반으로 정형 데이터를 처리할 수 있다.
네스티드 쿼리는 비정형 데이터에 대한 제1 쿼리 및 정형 데이터에 대한 제2 쿼리를 혼합한 쿼리이고, 비정형 데이터 처리 쿼리는 상기 비정형 데이터만을 처리하기 위한 쿼리이고, 정형 데이터 처리 쿼리는 정형 데이터만을 처리하기 위한 쿼리일 수 있다.
데이터 처리 시스템은 정형 데이터에 대한 데이터 테이블 및 비정형 데이터에 대한 데이터 테이블을 생성하여 하나의 데이터베이스 상에서 처리하고, 데이터 처리 시스템은 정형 데이터 및 비정형 데이터를 기반으로 한 인공 지능 엔진 모델링을 하나의 데이터베이스 상에서 지원할 수 있다.
도 7은 본 발명의 실시예에 따른 데이터 처리 시스템에서 쿼리를 분석하여 데이터를 처리하는 방법을 나타낸 개념도이다.
도 7에서는 입력된 쿼리를 분석하여 비정형 데이터 및 정형 데이터를 하나의 데이터 처리 시스템에서 처리를 수행하되 쿼리를 처리함에 있어 서로 다른 프로세싱 자원을 활용하는 방법이 개시된다.
도 7을 참조하면, 입력 쿼리로서 비정형 데이터 및/또는 정형 데이터에 대한 처리를 위한 쿼리가 입력될 수 있다. 입력된 쿼리는 비정형 데이터 또는 정형 데이터에 대한 일반 쿼리일 수도 있고, 비정형 데이터 및 정형 데이터에 대한 혼합적인 처리를 위한 네스티드 쿼리일 수도 있다.
입력 쿼리는 파서부(700)를 통해 파싱될 수 있다. 네스티트 쿼리는 일반 쿼리와 확장 쿼리로 구분되고, 파서부(700)는 일반 쿼리와 확장 쿼리를 분할할 수 있다.
입력 쿼리에 포함되는 복수의 쿼리는 클라우즈 아날라이즈부(clause analyze) (710) 및 쿼리 트리부(query tree)(720)를 통해 해석되어 처리될 수 있다.
본 발명에서는 설명의 편의상 입력 쿼리로서 네스티드 쿼리가 입력되고, 네스티드 쿼리는 제1 쿼리(715), 제2 쿼리(725) 및 제3 쿼리(735)를 포함할 수 있다. 클라우즈 아날라이즈부(710)는 제1 쿼리(715), 제2 쿼리(725) 및 제3 쿼리(735)에 대하여 어떠한 컴퓨팅 자원을 사용하여 프로세싱되어야 할지를 결정할 수 있다. 보다 구체적으로 클라우즈 아날라이즈부(710)는 네스티드 쿼리에 포함되는 복수의 쿼리에 대한 분석을 통해 쿼리가 CPU(770)에서 실행되어야 할지 GPU(780)에서 실행되어야 할지를 결정할 수 있다. 클라우즈 아날라이즈부(710)는 본 발명의 실시예에 따른 자원 분배 알고리즘을 기반으로 복수의 쿼리 각각의 실행 예상 능률 및 실행 예상 속도를 판단하고 실행 예상 능률 및 실행 예상 속도를 기반으로 복수의 쿼리 각각을 CPU(770) 또는 GPU(780)에 할당할 수 있다.
제1 쿼리(715) 및 제3 쿼리(735)는 확장 쿼리이고, 제2 쿼리(725)는 일반 쿼리인 경우가 가정될 수 있다. 제1 쿼리(715) 및 제3 쿼리(735)는 확장 SQL 엔진(760)을 기반으로 처리될 수 있고, 제2 쿼리(725)는 일반 쿼리로서 일반 쿼리 처리를 위한 SQL 엔진인 PostgreSQL 엔진(750)을 기반으로 처리될 수 있다.
이때, 자원 분배 알고리즘을 기반으로 제1 쿼리(715)는 GPU(780), 제3 쿼리(735)는 CPU(770), 제2 쿼리(725)는 GPU(780)를 기반으로 처리될 수 있다. 자원 분배 알고리즘을 기반으로 네스티드 쿼리의 처리 속도는 향상되고 컴퓨팅 자원은 보다 효율적으로 활용될 수 있다.
이러한 자원 분배 알고리즘은 일반 쿼리를 위한 SQL 엔진인 PostgreSQL 엔진(750)과 확장 쿼리를 위한 확장 SQL 엔진(760)에 모두 적용되어 활용될 수 있고, 모델링 역시 GPU를 사용하여 진행하기 때문에 빠른 모델링 결과가 도출될 수 있다.
도 8은 본 발명의 실시예에 따른 자원 분배 알고리즘을 나타낸 개념도이다.
도 8에서는 자원 분배 알고리즘을 기반으로 쿼리를 처리시 CPU 또는 GPU를 선택하기 위한 방법이 개시된다.
도 8을 참조하면, 확장 쿼리(800)와 일반 쿼리(820)를 처리시 CPU(860) 또는 GPU(850)를 사용할지 여부를 결정하는 방법이 개시된다.
(1) 확장 쿼리(800)
1) 확장 쿼리(800) 중 확장 엔진 상에서 GPU(850)를 필수적으로 사용해야 하는 모델을 기반으로 처리되어야 하는 제1 타입 확장 쿼리(803)는 GPU(850)를 기반으로 처리될 수 있다.
2) 확장 쿼리(800) 중 확장 엔진 상에서 GPU(850)를 필수적으로 사용하지 않아도 처리 가능한 제2 타입 확장 쿼리(806)는 컴퓨팅 리소스 중 CPU 실행 능력과 GPU 실행 능력을 고려하여 CPU(860) 또는 GPU(850)를 기반으로 처리될 수 있다.
CPU 실행 능력은 CPU를 기반으로 쿼리를 처리시 쿼리 처리 속도, 리소스 사용량, 쿼리 비용을 기반으로 결정될 수 있다. GPU 실행 능력은 GPU를 기반으로 쿼리를 처리시 쿼리 처리 속도, 리소스 사용량, 쿼리 비용을 기반으로 결정될 수 있다. CPU 실행 능력을 결정하기 위한 쿼리 비용은 데이터 처리량(row processed), CPU 연산 비용을 기반으로 결정되고, GPU 실행 능력을 결정하기 위한 쿼리 비용은 데이터 처리량(row processed), GPU 연산 비용을 기반으로 결정될 수 있다.
쿼리 처리 속도가 상대적으로 빠르고 리소스 사용량이 상대적으로 작고, 쿼리 비용이 상대적으로 작을 수록 실행 능력은 높게 판단될 수 있다.
(2) 일반 쿼리
일반 쿼리는 컴퓨팅 리소스 중 CPU 실행 능력과 GPU 실행 능력을 고려하여 CPU 또는 GPU를 기반으로 처리될 수 있다.
보다 구체적으로 확장 쿼리 및 일반 쿼리에 대한 CPU 실행 능력과 GPU 실행 능력은 전체 비용을 고려하여 결정될 수 있다. 전체 비용이 작을수록 더 유리한 자원일 수 있다.
전체 비용(total cost)은 스타트업 코스트(start-up cost)와 런 코스트(run cost)의 합일 수 있다. 전체 비용이 작을수록 사용시 더 유리한 자원일 수 있다.
스타트업 코스트는 첫번째 튜플(tuple)이 페치(fetch)되기 전에 발생되는 비용일 수 있다. 튜플은 데이터베이스 내의 주어진 목록과 관계있는 속성값의 모음이다. 예를 들어, 인덱스 노드 스캔(index node scan)의 스타트업 코스트는 타겟 테이블의 첫번째 튜플에 액세스하기 위해 인덱스 페이지를 읽기 위한 코스트이다.
런 코스트는 모든 튜플에 액세스하기 위한 비용일 수 있다.
보다 구체적으로 CPU 런 코스트와 GPU 런 코스트는 아래의 수학식과 같이 결정될 수 있다.
<수학식>
GPU run cost = (gpu_tuple_cost + gpu_operator_cost) x Ntuple + seq_page_cost x Npage
CPU run cost = (cpu_tuple_cost + cpu_operator_cost) x Ntuple + seq_page_cost x Npage
gpu_tuple_cost는 GPU가 연산시 테이블 행들을 프로세스하는 비용이다.
gpu_operator_cost는 GPU가 테이블 튜플을 오퍼레이터나 함수로 프로세스하는 비용이다.
cpu_tuple_cost는 CPU가 연산시 테이블 행들을 프로세스하는 비용이다
cpu_operator_cost는 CPU가 테이블 튜플을 오퍼레이터나 함수로 프로세스하는 비용이다.
Ntuple은 테이블 튜플의 개수이다.
seq_page_cost는 페이지를 가지고 오는 비용이다.
Npage는 인덱스 페이지의 개수이다.
도 9는 본 발명의 실시예에 따른 입력 멀티-쿼리(input multi-query)를 처리하는 데이터 처리 시스템을 나타낸 개념도이다.
도 9에서는 입력 멀티-쿼리를 수신시 멀티-쿼리 스케줄러를 기반으로 입력 멀티-쿼리에 포함된 복수의 쿼리에 대한 처리를 스케줄링하는 방법이 개시된다.
도 9를 참조하면, 입력 멀티-쿼리(900)는 복수의 쿼리를 포함하는 쿼리일 수 있다. 예를 들어, 입력 멀티-쿼리(900)는 제1 쿼리, 제2 쿼리, 제3 쿼리 및 제4 쿼리를 포함할 수 있다. 제1 쿼리는 SELECT, 제2 쿼리, 제3 쿼리는 BUILD, 제4 쿼리는 PRINT일 수 있다.
멀티-쿼리 스케줄러(920)는 멀티-쿼리 분석부(multi-query analyzer)(940) 및 쿼리 큐(query queue)(960)를 포함할 수 있다.
멀티-쿼리 분석부(920)는 입력 멀티-쿼리(900)에 포함된 복수의 쿼리를 분석하여 복수의 쿼리의 처리 순서를 결정할 수 있다.
쿼리 큐(960)는 멀티-쿼리 분석부(920)에 의해 결정된 복수의 쿼리의 처리 순서를 고려하여 큐 상에 복수의 쿼리를 스케줄링할 수 있다.
큐 상에 스케줄링된 쿼리는 파서부로 전달될 수 있다. 이후 전술한 절차와 같이 쿼리는 파서부에서 파싱되어 일반 쿼리와 확장 쿼리로 분할되고, 클라우즈 아날라이즈부 및 쿼리 트리부를 통해 해석되어 처리될 수 있다.
클라우즈 아날라이즈부는 쿼리를 처리할 엔진 및 쿼리를 처리할 컴퓨팅 자원(CPU 또는 GPU)를 결정하여 결정된 엔진(PostgreSQL 엔진 또는 확장 엔진)으로 전달하여 처리할 수 있다.
도 10은 본 발명의 실시예에 따른 멀티-쿼리 스케줄러의 동작을 나타낸 개념도이다.
도 10에서는 멀티-쿼리 스케줄러의 복수의 쿼리를 스케줄링하기 위한 방법이 개시된다.
도 10을 참조하면, 멀티-쿼리 스케줄러(1000)는 멀티-쿼리 형태로 들어오는 입력 쿼리에 대한 종속성 스코어(1020) 및 컴퓨팅 자원 할당 데이터(1040)를 분석하고, 종속성 스코어(1020) 및 컴퓨팅 자원 할당 데이터(1040)를 기반으로 입력 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 결정할 수 있다.
종속성 스코어(1020)는 입력 멀티-쿼리에 포함되는 복수의 쿼리 간에 상호 상관 관계를 통해 결정될 수 있다. 예를 들어, 제3 쿼리가 제1 쿼리 및 제2 쿼리를 기반으로 처리된 결과에 종속적인 경우, 제3 쿼리는 제1 쿼리와 제2 쿼리에 대한 종속성을 가지는 쿼리일 수 있다. 제4 쿼리가 독립적으로 처리되는 경우, 제4 쿼리는 다른 쿼리에 대한 종속성을 가지지 않는 쿼리일 수 있다.
종속성 스코어(1020)는 다른 쿼리의 처리 이후에 수행될 수 있는 쿼리에 대하여 판단될 수 있고, 다른 쿼리에 대한 종속성이 높을수록 상대적으로 높은 값을 가질 수 있다.
컴퓨팅 자원 할당 데이터(1040)는 쿼리가 CPU와 GPU 어떠한 프로세싱 유닛을 기반으로 처리될지 및 쿼리가 CPU 또는 GPU를 기반으로 처리될 경우, 할당되는 컴퓨팅 자원에 대한 데이터일 수 있다.
예를 들어, 멀티-쿼리 스케줄러(1000)는 전술한 자원 분배 알고리즘을 기반으로 쿼리가 CPU와 GPU 어떠한 프로세싱 유닛을 기반으로 처리될지를 결정할 수 있다. 또한, 멀티-쿼리 스케줄러(1000)는 전술한 CPU 실행 능력 및 GPU 실행 능력을 판단하는 방법을 기반으로 쿼리가 CPU 또는 GPU를 기반으로 처리될 경우, 할당되는 컴퓨팅 자원에 대한 데이터를 획득할 수 있다.
CPU 실행 능력은 CPU를 기반으로 쿼리를 처리시 쿼리 처리 속도, 리소스 사용량, 쿼리 비용을 기반으로 결정될 수 있다. GPU 실행 능력은 GPU를 기반으로 쿼리를 처리시 쿼리 처리 속도, 리소스 사용량, 쿼리 비용을 기반으로 결정될 수 있다. CPU 실행 능력을 결정하기 위한 쿼리 비용은 데이터 처리량(row processed), CPU 연산 비용을 기반으로 결정되고, GPU 실행 능력을 결정하기 위한 쿼리 비용은 데이터 처리량(row processed), GPU 연산 비용을 기반으로 결정될 수 있다.
또한, 종속성 스코어(1020)는 쿼리의 타입에 따라 서로 다른 우선 순위를 기반으로 처리되도록 결정될 수 있다.
쿼리 중 CREATE, COPY, BUILD 등과 같은 테이블이나 모델을 생성하는 특별한 구문(clause)을 인식하고 이러한 타입의 쿼리가 먼저 실행되도록 스코어가 할당될 수 있다. 테이블이나 모델을 생성하기 위한 쿼리는 우선 처리 쿼리로 정의될 수 있고, 우선 처리 쿼리 내에서도 별도의 우선 순위가 스코어를 기반으로 부여될 수 있다.
예를 들어, 입력 멀티-쿼리에 포함되는 복수의 쿼리가 CREATE, SELECT_1, COPY, SELECT_2, PREDICT, BUILD인 경우, COPY, CREATE, BUILD는 우선 처리 쿼리로서 우선적으로 처리될 수 있다.
예를 들어, 종속성 스코어(1020)를 기반으로 COPY > CREATE > BUILD > PREDICT > SELECT_1 > SELECT_2 순서로 처리 우선 순위가 결정되고, 쿼리 큐는 쿼리를 수행하기 위한 큐(queue)를 재구성할 수 있다.
보다 구체적으로 멀티-쿼리 분석부는 1차적으로 입력 멀티-쿼리에 포함되는 복수의 쿼리의 종속성을 체크한 후 복수의 쿼리 각각의 실행 순서를 결정할 수 있다.
이후, 2차적으로 전술한 전체 비용을 고려하여 복수의 쿼리 각각에 대한 GPU 실행 능력 및 CPU 실행 능력이 결정될 수 있다. GPU 실행 능력 및 CPU 실행 능력을 기반으로 쿼리 그룹에 포함된 복수의 쿼리 각각이 CPU에 할당될지 GPU에 할당될지가 결정되고, 전체 비용이 낮을수록 빠르게 실행되도록 실행 순서가 결정될 수 있다.
보다 구체적으로 멀티-쿼리 분석부의 클라우즈 아날라이저는 입력 멀티 쿼리에 포함되는 복수의 쿼리의 상관 관계를 분석하고, 복수의 쿼리의 상관 관계(종속성)를 기초로 복수의 쿼리 중 특정 쿼리를 우선적으로 실행하도록 결정할 수 있다.
이후, 복수의 쿼리 각각에 대한 전체 비용(스타트업 코스트(star-up cost)와 런 코스트(run cost)의 합)이 결정될 수 있다. 또한, 복수의 쿼리 각각의 전체 비용 정보를 기초로 메이저 자원이 CPU 또는 GPU로 결정될 수 있다. 전체 코스트가 낮을수록 높은 우선 순위로서 처리되도록 큐에 쌓이되, 실행 능력에 따라 메이저 자원으로서 CPU, GPU를 선택적으로 사용되도록 복수의 쿼리 그룹이 큐에 쌓일 수 있다.
마지막으로 복수의 쿼리에 포함되는 쿼리의 위치를 추가적으로 고려하여 입력 멀티 쿼리의 앞단에 위치한 쿼리일수록 높은 우선 순위로서 처리되도록 큐에 쌓일 수 있다.
예를 들어, 쿼리 1 내지 쿼리4가 존재하는 경우가 가정될 수 있다.
쿼리 1은 1순위로 작은 전체 비용을 가지고, GPU를 메이저 자원으로 사용하고, 입력 멀티-쿼리에 가장 앞부분에 작성된 쿼리를 포함할 수 있다.
쿼리 2는 3순위로 작은 전체 비용을 가지고 GPU를 메이저 자원으로 사용할 수 있다.
쿼리 3은 2순위의 작은 전체 비용을 가지고 CPU를 메이저 자원으로 사용할 수 있다.
쿼리 4은 4순위로 작은 전체 비용을 가지고 CPU를 메이저 자원으로 사용하고, 입력 멀티-쿼리에 가장 뒷부분에 작성된 쿼리를 포함할 수 있다. 이러한 경우, 쿼리 1, 쿼리 3, 쿼리 2, 쿼리 4의 순서로 처리되도록 큐에 쿼리 그룹이 쌓일 수 있다.
도 11은 본 발명의 실시예에 따른 입력 멀티-쿼리를 처리하는 방법을 나타낸 개념도이다.
도 11에서는 입력 멀티 쿼리에 포함되는 쿼리 그룹의 실행 순서를 결정하는 알고리즘이 개시된다.
도 11을 참조하면, 멀티-쿼리 분석부의 클라우즈 아날라이저에 의해 복수의 쿼리 그룹의 메이저 자원과 전체 비용이 결정된 이후, 종속성, 전체 비용, 쿼리의 위치를 고려하여 쿼리 그룹의 실행 순서가 결정될 수 있다.
예를 들어, 쿼리1(1110)은 전체 비용 3, 쿼리문으로 PREDICT USING(my_model)을 포함한다. 쿼리2(1120)은 전체 비용 2, 쿼리문으로 CREATE TABLE(my_model)을 포함한다. 쿼리3(1130)은 전체 비용 5, 쿼리문으로 BUILD MODEL(my_model)을 포함할 수 있다.
이러한 경우, 쿼리1(1110)과 쿼리2(1120)에서 사용되는 my_model은 쿼리3(1130)에서 먼저 생성되고 사용 가능하므로 쿼리1(1110)과 쿼리2(1120)은 쿼리3(1130)에 대하여 종속성을 가진다. 따라서, 쿼리3(1130)의 전체 코스트가 높고 위치가 가장 뒤임에도 불구하고 가장 먼저 실행될 수 있다.
쿼리3(1130)의 다음으로 전체 비용을 고려하여 전체 비용 1인 쿼리2(1120)가 실행되고, 마지막으로 전체 비용 3인 쿼리1(1110)이 실행될 수 있다.
만약 쿼리1(1110)과 쿼리2(1120)의 전체 비용이 동일하다면, 쿼리문의 위치를 고려하여, 쿼리 3(1130)의 실행 이후, 쿼리1(1110), 쿼리2(1120)의 순서로 쿼리가 실행될 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
Claims (6)
- 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법은,데이터 처리 시스템이 입력 멀티-쿼리를 수신하는 단계; 및상기 데이터 처리 시스템의 상기 멀티-쿼리 스케줄러가 상기 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 스케줄링 하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 복수의 쿼리의 처리 순서를 스케줄링 하는 단계는,상기 멀티-쿼리 스케줄러의 멀티-쿼리 분석부가 상기 복수의 쿼리를 분석하여 상기 복수의 쿼리의 처리 순서를 결정하는 단계; 및상기 멀티-쿼리 스케줄러의 쿼리 큐가 상기 멀티-쿼리 분석부에 의해 결정된 상기 복수의 쿼리의 처리 순서를 고려하여 큐 상에 복수의 쿼리를 스케줄링하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제2 항에 있어서,상기 멀티-쿼리 분석부는 종속성 스코어 및 컴퓨팅 자원 할당 데이터를 기반으로 상기 복수의 쿼리의 처리 순서를 결정하는 것을 특징으로 하는 방법.
- 멀티-쿼리를 처리하는 데이터 처리 시스템은,입력 멀티-쿼리를 수신하고, 상기 입력 멀티-쿼리에 포함되는 복수의 쿼리의 처리 순서를 스케줄링 하도록 구현되는 멀티-쿼리 스케줄러를 포함하는 것을 특징으로 하는 데이터 처리 시스템.
- 제4항에 있어서, 상기 멀티-쿼리 스케줄러는,상기 복수의 쿼리를 분석하여 상기 복수의 쿼리의 처리 순서를 결정하도록 구현되는 멀티-쿼리 분석부; 및상기 멀티-쿼리 분석부에 의해 결정된 상기 복수의 쿼리의 처리 순서를 고려하여 큐 상에 복수의 쿼리를 스케줄링하도록 구현되는 쿼리 큐를 포함하는 것을 특징으로 하는 데이터 처리 시스템.
- 제5항에 있어서,상기 멀티-쿼리 분석부는 종속성 스코어 및 컴퓨팅 자원 할당 데이터를 기반으로 상기 복수의 쿼리의 처리 순서를 결정하는 것을 특징으로 하는 데이터 처리 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0124302 | 2022-09-29 | ||
KR1020220124302A KR102599008B1 (ko) | 2022-09-29 | 2022-09-29 | 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024071505A1 true WO2024071505A1 (ko) | 2024-04-04 |
Family
ID=88747084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/015613 WO2024071505A1 (ko) | 2022-09-29 | 2022-10-14 | 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102599008B1 (ko) |
WO (1) | WO2024071505A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11203320A (ja) * | 1998-01-20 | 1999-07-30 | Hitachi Ltd | データベース前処理方式 |
KR100810257B1 (ko) * | 2006-02-07 | 2008-03-11 | 연세대학교 산학협력단 | 데이터스트림 관리 시스템에서 다수의 연속질의들에 표현된선택조건들의 효율적인 처리장치 및 처리방법 |
KR101549655B1 (ko) * | 2013-07-11 | 2015-09-03 | (주)선재소프트 | 병렬처리방식의 데이터베이스 이중화 방법 및 그 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
KR20180059269A (ko) * | 2016-11-25 | 2018-06-04 | 진데이타 주식회사 | 빅데이터 플랫폼 연동 장치 및 그 연동 방법 |
KR102002360B1 (ko) * | 2018-09-17 | 2019-07-23 | 국방과학연구소 | 영상 처리용 NoSQL 데이터베이스 구축 방법 및 장치 |
-
2022
- 2022-09-29 KR KR1020220124302A patent/KR102599008B1/ko active IP Right Grant
- 2022-10-14 WO PCT/KR2022/015613 patent/WO2024071505A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11203320A (ja) * | 1998-01-20 | 1999-07-30 | Hitachi Ltd | データベース前処理方式 |
KR100810257B1 (ko) * | 2006-02-07 | 2008-03-11 | 연세대학교 산학협력단 | 데이터스트림 관리 시스템에서 다수의 연속질의들에 표현된선택조건들의 효율적인 처리장치 및 처리방법 |
KR101549655B1 (ko) * | 2013-07-11 | 2015-09-03 | (주)선재소프트 | 병렬처리방식의 데이터베이스 이중화 방법 및 그 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
KR20180059269A (ko) * | 2016-11-25 | 2018-06-04 | 진데이타 주식회사 | 빅데이터 플랫폼 연동 장치 및 그 연동 방법 |
KR102002360B1 (ko) * | 2018-09-17 | 2019-07-23 | 국방과학연구소 | 영상 처리용 NoSQL 데이터베이스 구축 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102599008B9 (ko) | 2024-02-08 |
KR102599008B1 (ko) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018159997A1 (ko) | 테스트 케이스를 이용하여 테스트를 수행하는 방법 및 장치 | |
WO2018034426A1 (ko) | 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법 | |
WO2021141361A1 (en) | Method for keyword extraction and electronic device implementing the same | |
WO2019177182A1 (ko) | 속성 정보 분석을 통한 멀티미디어 컨텐츠 검색장치 및 검색방법 | |
WO2018174603A1 (ko) | 인공 지능 기술 기반의 머신 러닝을 사용하는 특허 도면 이미지에 도면 부호의 설명이 표시되도록 처리하는 방법 및 장치 | |
WO2011122724A1 (ko) | 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템 | |
WO2012134180A2 (ko) | 문장에 내재한 감정 분석을 위한 감정 분류 방법 및 컨텍스트 정보를 이용한 다중 문장으로부터의 감정 분류 방법 | |
EP2391955A1 (en) | Document analysis system | |
WO2012074338A2 (ko) | 자연어 및 수학식 처리 방법과 그를 위한 장치 | |
WO2022005188A1 (en) | Entity recognition method, apparatus, electronic device and computer readable storage medium | |
WO2022203167A1 (en) | Speech recognition method, apparatus, electronic device and computer readable storage medium | |
WO2012050252A1 (ko) | 분류기의 동적 결합에 의한 대용량 분류기 자동 생성 시스템 및 방법 | |
WO2023080276A1 (ko) | 쿼리 기반 데이터베이스 연동 딥러닝 분산 시스템 및 그 방법 | |
WO2011155736A9 (ko) | 모든 자연어 표현의 각각의 의미마다 별도의 용어를 동적으로 생성하는 방법 및 이를 기반으로 하는 사전 관리기,문서작성기, 용어 주석기, 검색 시스템 및 문서정보체계 구축장치 | |
WO2020197257A1 (ko) | 가시적 표현 요소를 이용한 번역 방법 및 그 장치 | |
EP3494498A1 (en) | Electronic device and method for controlling the same | |
WO2017146338A1 (ko) | 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 | |
WO2022255632A1 (ko) | Ux-bit를 이용한 자동 디자인 생성 인공신경망 장치 및 방법 | |
WO2024071505A1 (ko) | 멀티-쿼리 스케줄러를 기반으로 멀티-쿼리를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 | |
WO2015178716A1 (en) | Search method and device | |
WO2011068315A4 (ko) | 최대 개념강도 인지기법을 이용한 최적의 데이터베이스 선택장치 및 그 방법 | |
WO2021246642A1 (ko) | 폰트를 추천하는 방법 및 이를 구현하는 장치 | |
WO2024071504A1 (ko) | 서로 다른 프로세서 자원을 할당하여 정형 데이터와 비정형 데이터를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 | |
WO2022030670A1 (ko) | 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법 | |
WO2024122709A1 (ko) | 워크 스페이스 기반으로 비정형 데이터 및 정형 데이터에 대한 데이터 처리 서비스를 제공하는 방법 및 이러한 방법을 수행하는 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22961104 Country of ref document: EP Kind code of ref document: A1 |