KR102499941B1 - System for providing DBMS based on storage and control method thereof - Google Patents
System for providing DBMS based on storage and control method thereof Download PDFInfo
- Publication number
- KR102499941B1 KR102499941B1 KR1020220130882A KR20220130882A KR102499941B1 KR 102499941 B1 KR102499941 B1 KR 102499941B1 KR 1020220130882 A KR1020220130882 A KR 1020220130882A KR 20220130882 A KR20220130882 A KR 20220130882A KR 102499941 B1 KR102499941 B1 KR 102499941B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- writer
- reader
- storage
- loader
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 225
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012550 audit Methods 0.000 claims description 62
- 238000005192 partition Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 58
- 238000012217 deletion Methods 0.000 description 27
- 230000037430 deletion Effects 0.000 description 27
- 230000004044 response Effects 0.000 description 27
- 238000013475 authorization Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 12
- 230000014759 maintenance of location Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 238000012546 transfer Methods 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/25—Integrating or interfacing systems involving database management systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/2452—Query translation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 스토리지 기반의 DBMS 시스템 및 그의 제어 방법에 관한 것으로서, 특히 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재하는 스토리지 기반의 DBMS 시스템 및 그의 제어 방법에 관한 것이다.The present invention relates to a storage-based DBMS system and a control method thereof, and more particularly, to a storage-based DBMS system for generating objects, retrieving data, and loading data based on storage, and a control method thereof.
DBMS(database management system)는 데이터베이스를 관리하기 위해 필요한 수행과정인 데이터의 추가, 변경, 삭제, 검색 등의 기능을 집대성한 소프트웨어 패키지이다. DBMS (database management system) is a software package that integrates functions such as adding, changing, deleting, and searching data, which are necessary processes to manage databases.
이러한 DBMS는 계층형과 네트워크형, 그리고 관계형으로 나눠지며 최근에는 관계형이 DBMS의 주류를 이루고 있다.These DBMS are divided into hierarchical type, network type, and relational type, and recently, relational type is the mainstream of DBMS.
본 발명의 목적은 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재하는 스토리지 기반의 DBMS 시스템 및 그의 제어 방법을 제공하는 데 있다.An object of the present invention is to provide a storage-based DBMS system that creates objects, retrieves data, and loads data based on storage, and a method for controlling the same.
본 발명의 다른 목적은 스토리지 기반으로 관리되는 데이터에 대해서, 메타 관리 기능을 제공하는 스토리지 기반의 DBMS 시스템 및 그의 제어 방법을 제공하는 데 있다.Another object of the present invention is to provide a storage-based DBMS system that provides a meta management function for data managed based on storage and a control method thereof.
본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템은 사용자 입력에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 제공하는 클라이언트; 및 상기 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하고, 기능 수행 결과를 상기 클라이언트에 제공하는 스토리지를 포함할 수 있다.A storage-based DBMS system according to an embodiment of the present invention includes a client providing information related to a SQL command or source file according to user input; and a storage for performing one of a function of creating an object, a data inquiry function, and a data loading function based on the information related to the SQL command or the source file, and providing a function execution result to the client.
본 발명과 관련된 일 예로서 상기 소스 파일과 관련한 정보는, 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마, 데이터베이스, 테이블, 적재 파일 포맷과 구분자 및, 파티션 중 적어도 하나를 포함할 수 있다.As an example related to the present invention, the information related to the source file may include at least one of a source file hostname, a port, a source file format and separator, a schema, a database, a table, a load file format and separator, and a partition. .
본 발명과 관련된 일 예로서 상기 스토리지는, 미리 설정된 크기의 복수의 블록; 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체를 생성하는 리더/라이터; 상기 수신된 SQL 명령어가 미리 설정된 create query일 때 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하고, 권한 확인에 성공할 때 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하고, 상기 리더/라이터와 연동하여 상기 SQL 명령어에 대한 감사 로그를 상기 복수의 블록 중 하나 이상의 블록에 저장하고, 플래너에 객체 생성을 요청하는 파서 앤 애널라이저; 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치를 확인하고, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 각각 체크하고, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 객체 생성을 요청하는 상기 플래너; 및 객체 생성 요청을 근거로 상기 리더/라이터에 객체 생성을 요청하고, 상기 리더/라이터에 의해 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록하고, 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 상기 워커를 포함하며, 상기 파서 앤 애널라이저는, 상기 리더/라이터와 연동하여, 상기 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장할 수 있다.As an example related to the present invention, the storage may include a plurality of blocks having a preset size; a reader/writer that creates an object related to the SQL command based on an object creation request; When the received SQL command is a preset create query, the database authority is checked based on the login information related to the client, and when the authority check is successful, parsing and analyzing the SQL command are performed, and the reader/ a parser and analyzer that interworks with a writer to store an audit log for the SQL command in one or more blocks among the plurality of blocks and requests a planner to create an object; Meta data is checked based on the object creation request, the location of the object is checked, the state of the loader and the reader/writer included in the storage are checked, respectively, the SQL command, the location of the checked object and , the planner requesting creation of an object from a worker included in the storage based on the checked state of the loader and the state of the reader/writer; and based on the object creation request, requests the reader/writer to create an object, registers object mapping related to the object created by the reader/writer in the meta data, and transmits result information related to object creation to the parser and analyzer. The parser and analyzer may store another audit log related to the created object in one or more other blocks among the plurality of blocks in cooperation with the reader/writer.
본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템의 제어 방법은 스토리지에 의해, 클라이언트의 사용자 입력에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신하는 단계; 상기 스토리지에 의해, 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계; 및 상기 스토리지에 의해, 기능 수행 결과를 상기 클라이언트에 제공하는 단계를 포함할 수 있다.A control method of a storage-based DBMS system according to an embodiment of the present invention includes receiving, by a storage, information related to an SQL command or a source file according to a user input of a client; performing, by the storage, one of an object creation function, a data inquiry function, and a data loading function based on the information related to the received SQL command or source file; and providing a function execution result to the client by the storage.
본 발명과 관련된 일 예로서 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 수신된 SQL 명령어가 미리 설정된 create query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정; 권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 플래너에 객체 생성을 요청하는 과정; 상기 플래너에 의해, 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치를 확인하는 과정; 상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 각각 체크하는 과정; 상기 플래너에 의해, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 객체 생성을 요청하는 과정; 상기 워커에 의해, 객체 생성 요청을 근거로 상기 리더/라이터에 객체 생성을 요청하는 과정; 상기 리더/라이터에 의해, 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체를 생성하는 과정; 상기 워커에 의해, 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록하는 과정; 상기 워커에 의해, 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 과정; 및 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 상기 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함할 수 있다.As an example related to the present invention, the step of performing any one of an object creation function, a data search function, and a data loading function based on the information related to the received SQL command or source file, the received SQL command in advance When a create query is set, a process of checking authority for a database based on login information related to the client by a parser and analyzer included in the storage; performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful; storing, by the parser and analyzer, an audit log for the SQL command in at least one block among a plurality of blocks, in conjunction with a reader/writer included in the storage; requesting, by the parser and analyzer, object creation to a planner included in the storage; confirming, by the planner, meta data based on the object creation request, and confirming the location of the object; checking, by the planner, the state of the loader and the state of the reader/writer included in the storage, respectively; requesting, by the planner, a worker included in the storage to create an object based on the SQL command, the location of the checked object, and the checked state of the loader and the reader/writer; requesting, by the worker, object creation to the reader/writer based on the object creation request; creating, by the reader/writer, an object related to the SQL command based on an object creation request; registering, by the worker, object mapping related to the created object in the meta data; providing, by the worker, result information related to object creation to the parser and analyzer; and storing another audit log related to the created object in one or more other blocks among the plurality of blocks by the parser and analyzer in association with the reader/writer.
본 발명과 관련된 일 예로서 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 수신된 SQL 명령어가 미리 설정된 select query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정; 권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정; 상기 파서 앤 애널라이저에 의해, 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치를 조회하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 스토리지에 포함된 플래너에 데이터 플랜을 요청하는 과정; 상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태를 체크하는 과정; 상기 플래너에 의해, 상기 SQL 명령어 및, 상기 체크된 로더의 상태를 근거로 상기 스토리지에 포함된 워커에 데이터 로드를 요청하는 과정; 상기 워커에 의해, 상기 리더/라이터의 상태를 체크하는 과정; 상기 워커에 의해, 상기 체크된 리더/라이터의 상태를 근거로 상기 리더/라이터로부터 데이터를 로드하는 과정; 상기 워커에 의해, 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 상기 클라이언트에서 조회하고자 한 상기 select query에 맞는 최종 데이터를 생성하는 과정; 상기 워커에 의해, 상기 생성된 최종 데이터를 상기 리더/라이터에 기록하는 과정; 및 상기 워커에 의해, 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보 또는, 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저에 제공하는 과정을 포함할 수 있다.As an example related to the present invention, the step of performing any one of an object creation function, a data search function, and a data loading function based on the information related to the received SQL command or source file, the received SQL command in advance When a set select query is selected, a process of checking authority for a database based on login information related to the client by a parser and analyzer included in the storage; performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful; storing, by the parser and analyzer, an audit log for the SQL command in one or more blocks among a plurality of blocks, in conjunction with a reader/writer included in the storage; checking meta data based on a data search request by the parser and analyzer, and searching for an index and data location; requesting a data plan from a planner included in the storage based on the searched index and data location by the parser and analyzer; checking a state of a loader included in the storage by the planner; requesting, by the planner, to load data from a worker included in the storage based on the SQL command and the checked state of the loader; checking a state of the reader/writer by the worker; loading data from the reader/writer based on the checked reader/writer state by the worker; generating, by the worker, final data suitable for the select query desired by the client by reducing only a necessary data portion according to the select query among the loaded data; writing the generated final data to the reader/writer by the worker; and providing, by the worker, information related to final data recorded in the reader/writer or the generated final data to the parser and analyzer.
본 발명과 관련된 일 예로서 상기 파서 앤 애널라이저에 의해, 상기 워커로부터 제공되는 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보 또는, 상기 생성된 최종 데이터를 수신하는 과정; 상기 최종 데이터와 관련한 정보를 수신한 상태일 때, 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보를 근거로 상기 리더/라이터로부터 상기 최종 데이터를 읽는 과정; 및 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 더 포함할 수 있다.As an example related to the present invention, the process of receiving information related to the final data recorded in the reader/writer or the generated final data provided from the worker by the parser and analyzer; reading the final data from the reader/writer based on the information related to the final data recorded in the reader/writer by the parser and analyzer when the information related to the final data is received; and storing, by the parser and analyzer, another audit log related to the final data read in one or more other blocks among the plurality of blocks in association with the reader/writer.
본 발명과 관련된 일 예로서 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 수신된 SQL 명령어가 미리 설정된 insert query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정; 권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정; 상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 플래너에 데이터 적재를 요청하는 과정; 상기 플래너에 의해, 데이터 적재 요청을 근거로 메타 데이터를 확인하여, 데이터의 위치를 조회하는 과정; 상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정; 상기 플래너에 의해, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 데이터 적재를 요청하는 과정; 상기 워커에 의해, 상기 리더/라이터와 연동하여, 상기 리더/라이터에 상기 클라이언트에서 적재하고자 한 데이터를 적재하는 과정; 상기 워커에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정; 상기 워커에 의해, 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 과정; 및 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함할 수 있다.As an example related to the present invention, the step of performing any one of an object creation function, a data search function, and a data loading function based on the information related to the received SQL command or source file, the received SQL command in advance When an insert query is set, checking authority for a database based on login information related to the client by a parser and analyzer included in the storage; performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful; storing, by the parser and analyzer, an audit log for the SQL command in at least one block among a plurality of blocks, in conjunction with a reader/writer included in the storage; requesting, by the parser and analyzer, to load data from a planner included in the storage; checking the meta data based on the data load request by the planner, and inquiring the location of the data; checking, by the planner, the state of the loader and the state of the reader/writer included in the storage; requesting, by the planner, to load data from a worker included in the storage based on the SQL command, the location of the checked object, and the checked state of the loader and the reader/writer; loading data desired to be loaded by the client into the reader/writer by the worker in conjunction with the reader/writer; changing metadata information according to data loading by the worker; providing, by the worker, result information related to data loading to the parser and analyzer; and storing another audit log related to data loading in one or more other blocks among the plurality of blocks in association with the reader/writer by the parser and analyzer.
본 발명과 관련된 일 예로서 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 소스 파일과 관련한 정보를 수신할 때, 상기 스토리지에 포함된 로더에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정; 권한 확인에 성공할 때, 상기 로더에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보에 대한 감사 로그를 상기 복수의 블록 중 하나 이상의 블록에 저장하는 과정; 상기 로더에 의해, 파일을 로드하는 과정; 상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지일 때, 상기 로더에 의해, 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회하는 과정; 상기 로더에 의해, 상기 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정; 상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더의 상태 및 상기 체크된 라이터의 상태를 근거로 상기 리더/라이터에 상기 클라이언트에서 적재하고자 한 데이터를 적재하는 과정; 상기 로더에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정; 및 상기 로더에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함할 수 있다.As an example related to the present invention, the step of performing any one of an object creation function, a data search function, and a data loading function based on the received SQL command or information related to the source file includes information related to the source file. upon reception, checking, by a loader included in the storage, authority to a database based on log-in information related to the client; storing, by the loader, an audit log for information related to the source file in at least one block among the plurality of blocks, in conjunction with a reader/writer included in the storage, when authority verification is successful; loading a file by the loader; when the location of the loaded file is the same server or external storage, checking meta data by the loader to inquire the location of an object to be loaded; checking a state of the loader and a state of the reader/writer by the loader; By the loader, in conjunction with the reader/writer, the client to the reader/writer based on the information related to the source file, the location of the checked object, the checked loader status, and the checked writer status A process of loading data to be loaded in; a process of changing meta data information according to data loading by the loader; and storing, by the loader, another audit log related to data loading in one or more other blocks among the plurality of blocks in association with the reader/writer.
본 발명과 관련된 일 예로서 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 소스 파일과 관련한 정보를 수신할 때, 상기 스토리지에 포함된 로더에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정; 권한 확인에 성공할 때, 상기 로더에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보에 대한 감사 로그를 상기 복수의 블록 중 하나 이상의 블록에 저장하는 과정; 상기 로더에 의해, 파일을 로드하는 과정; 상기 파일에 대한 적재가 스토리지 내 복사일 때, 상기 로더에 의해, 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회하는 과정; 상기 로더에 의해, 상기 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정; 상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더의 상태 및 상기 체크된 라이터의 상태를 근거로 상기 리더/라이터에서 데이터를 삭제하는 과정; 상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 클라이언트에서 적재하고자 하는 데이터를 상기 리더/라이터에 적재하는 과정; 상기 로더에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정; 및 상기 로더에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함할 수 있다.As an example related to the present invention, the step of performing any one of an object creation function, a data search function, and a data loading function based on the received SQL command or information related to the source file includes information related to the source file. upon reception, checking, by a loader included in the storage, authority to a database based on log-in information related to the client; storing, by the loader, an audit log for information related to the source file in at least one block among the plurality of blocks, in conjunction with a reader/writer included in the storage, when authority verification is successful; loading a file by the loader; when the loading of the file is copying in storage, checking the meta data by the loader and inquiring the location of the object to be loaded; checking a state of the loader and a state of the reader/writer by the loader; By the loader, in conjunction with the reader/writer, data is read from the reader/writer based on the information related to the source file, the location of the checked object, the checked loader status, and the checked writer status process of deleting; loading data to be loaded by the client into the reader/writer by the loader in conjunction with the reader/writer; a process of changing meta data information according to data loading by the loader; and storing another audit log related to data loading in one or more other blocks among the plurality of blocks by the loader in association with the reader/writer.
본 발명은 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재함으로써, 병렬 분산 처리에 따른 전체 시스템의 운영 효율을 향상시킬 수 있는 효과가 있다.The present invention has an effect of improving the operational efficiency of the entire system according to parallel distributed processing by creating objects, retrieving data, and loading data based on storage.
또한, 본 발명은 스토리지 기반으로 관리되는 데이터에 대해서, 메타 관리 기능을 제공함으로써, 메타 데이터의 관리 효율을 높일 수 있는 효과가 있다.In addition, the present invention has an effect of increasing management efficiency of meta data by providing a meta management function for data managed based on storage.
도 1은 본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 논리적인 하향식 구조의 DBMS의 예를 나타낸 도이다.
도 3은 본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템의 제어 방법을 나타낸 흐름도이다.1 is a block diagram showing the configuration of a storage-based DBMS system according to an embodiment of the present invention.
2 is a diagram showing an example of a DBMS with a logical top-down structure according to an embodiment of the present invention.
3 is a flowchart illustrating a control method of a storage-based DBMS system according to an embodiment of the present invention.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that technical terms used in the present invention are only used to describe specific embodiments and are not intended to limit the present invention. In addition, technical terms used in the present invention should be interpreted in terms commonly understood by those of ordinary skill in the art to which the present invention belongs, unless specifically defined otherwise in the present invention, and are excessively inclusive. It should not be interpreted in a positive sense or in an excessively reduced sense. In addition, when the technical terms used in the present invention are erroneous technical terms that do not accurately express the spirit of the present invention, they should be replaced with technical terms that those skilled in the art can correctly understand. In addition, general terms used in the present invention should be interpreted as defined in advance or according to context, and should not be interpreted in an excessively reduced sense.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Also, singular expressions used in the present invention include plural expressions unless the context clearly dictates otherwise. Terms such as "consisting of" or "comprising" in the present invention should not be construed as necessarily including all of the various elements or steps described in the invention, and some of the elements or steps may not be included. It should be construed that it may, or may further include additional components or steps.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe components, but components should not be limited by the terms. Terms are used only to distinguish one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings, but the same or similar components are given the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the present invention, if it is determined that a detailed description of a related known technology may obscure the gist of the present invention, the detailed description will be omitted. In addition, it should be noted that the accompanying drawings are only for easily understanding the spirit of the present invention, and should not be construed as limiting the spirit of the present invention by the accompanying drawings.
도 1은 본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템(10)의 구성을 나타낸 블록도이다.1 is a block diagram showing the configuration of a storage-based
도 1에 도시한 바와 같이, 스토리지 기반의 DBMS 시스템(10)은 클라이언트(100) 및 복수의 스토리지(200)로 구성된다. 도 1에 도시된 스토리지 기반의 DBMS 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 스토리지 기반의 DBMS 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 스토리지 기반의 DBMS 시스템(10)이 구현될 수도 있다.As shown in FIG. 1, the storage-based
상기 클라이언트(100) 및 상기 스토리지(200)는 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.The
상기 클라이언트(또는 단말)(100)는 상기 복수의 스토리지(200) 등과 통신한다.The client (or terminal) 100 communicates with the plurality of
또한, 상기 클라이언트(100)는 스마트폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal) 등과 같은 다양한 단말기에 적용될 수 있다.In addition, the
또한, 상기 클라이언트(100)는 복수의 스토리지(200) 중에서 프로세스 또는 시스템의 여유가 높은 어느 하나의 스토리지(200)를 통해서 로그인 절차(또는 로그인 기능) 수행한다. 이때, 상기 클라이언트(100)는 미리 등록된 아이디와 비밀번호, 해당 아이디를 포함하는 바코드 또는 QR 코드, 미리 설정된 인증 토큰 등을 이용해서 상기 로그인 절차를 수행할 수 있다.In addition, the
또한, 상기 클라이언트(100)는 사용자 입력(또는 사용자 선택/터치/제어)에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신한다. 여기서, 상기 SQL 명령어는 create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query 등을 포함한다. 또한, 상기 소스 파일과 관련한 정보는 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마(schema), 데이터베이스, 테이블, 적재 파일 포맷과 구분자, 파티션 등에 대한 정보를 포함한다.In addition, the
또한, 상기 클라이언트(100)는 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 상기 스토리지(200)에 전송한다. 이때, 상기 클라이언트(100)는 상기 스토리지(200)에서 제공하는 전용 앱을 통해, 상기 SQL 명령어 또는 소스 파일과 관련한 정보를 수신하고, 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 상기 스토리지(200)에 전송할 수 있다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 객체를 생성하기 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 객체를 생성하기 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 객체 생성 결과를 수신하고, 상기 수신된 객체 생성 결과를 표시(또는 출력)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 조회를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 조회를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 조회 결과를 수신하고, 상기 수신된 데이터 조회 결과를 표시(또는 출력)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query, update query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 적재를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query/update query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 적재를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 delete query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 truncate query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 drop query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 삭제된 데이터와 관련한 메타 정보, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 grant query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 권한 할당 결과를 수신하고, 상기 수신된 권한 할당 결과를 표시(또는 출력)한다. 여기서, 상기 권한 할당 결과는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스명, 권한을 할당하고자 하는 특정 클라이언트(100)에 대한 정보, 권한 할당 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 revoke query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 권한 해제 결과를 수신하고, 상기 수신된 권한 해제 결과를 표시(또는 출력)한다. 여기서, 상기 권한 해제 결과는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스명, 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 대한 정보, 권한 해제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 다른 데이터 적재 결과를 수신하고, 상기 수신된 다른 데이터 적재 결과를 표시(또는 출력)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
상기 스토리지(200)는 상기 클라이언트(100) 등과 통신한다.The
또한, 상기 스토리지(200)는 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있다. 또한, 상기 스토리지(200)에는 네트워크 부하 분산 메커니즘, 내지 해당 스토리지(200)가 인터넷 또는 다른 네트워크상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로 구현될 수 있다. 또한, 네트워크는 http/https 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있다. 나아가, 상기 클라이언트(100) 및 상기 스토리지(200) 간의 연결은 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다. 또한, 상기 스토리지(200)는 복수의 데이터베이스 서버를 포함할 수 있으며, 이러한 데이터베이스 서버가 분산 데이터베이스 서버 아키텍처를 비롯한 임의의 유형의 네트워크 연결을 통해 상기 스토리지(200)와 별도로 연결되는 방식으로 구현될 수 있다.Also, the
또한, 상기 스토리지(200)는 CPU(미도시), 디스크(DISK)(미도시), 메모리(Memory)(미도시), DBMS(Database Management System: 데이터베이스 관리 시스템)(미도시) 등을 포함(또는 구성)한다. 여기서, 상기 DBMS는 다양한 서버 및/또는 장치들로부터 수집된 복수의 데이터(또는 테이블)를 저장(또는 관리)한다.In addition, the
또한, 도 1에 도시한 바와 같이, 상기 스토리지(200)는 로더(210), 파서 앤 애널라이저(220), 플래너(230), 워커(240), 리더/라이터(250) 및 복수의 블록(260)으로 구성된다. 도 1에 도시된 스토리지(200)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 스토리지(200)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 스토리지(200)가 구현될 수도 있다. 여기서, 상기 복수의 스토리지(200)는 분산 스토리지 또는 분산 시스템으로 구성할 수 있다.1, the
본 발명에서 사용되는 용어에 대한 개념을 정리하면 다음과 같다.The concept of terms used in the present invention is summarized as follows.
먼저, 파일(file)은 블록(block)으로 구성된다. 여기서, 상기 블록은 사전 정의된 크기(size)의 데이터로 저장되며, 해당 데이터는 설정에 따라 암호화되어 저장될 수 있다.First, a file is composed of blocks. Here, the block is stored as data of a predefined size, and the corresponding data may be encrypted and stored according to settings.
또한, 디렉터리(directory)는 파일 또는 디렉터리로 구성된다.Also, a directory is composed of files or directories.
DBMS(Database Management System: 데이터베이스 관리 시스템)는 스키마(schema), 데이터베이스(database), 테이블(table), 파티션(partition)으로 구성되며, 도 2에 도시된 바와 같이, 해당 구성 항목은 논리적인 하향식 구조를 가지고, 해당 구성들은 스토리지 메타의 디렉터리에 매핑된다.DBMS (Database Management System) is composed of schema, database, table, and partition, and as shown in FIG. 2, the corresponding configuration items have a logical top-down structure. , those configurations are mapped to directories in the storage meta.
테이블 안에는 파티션이 존재할 수 있으며, 해당 파티션은 서브 파티션을 가질 수 있다.A partition can exist in a table, and that partition can have sub-partitions.
최하가 파티션 또는 테이블인 경우에는 파일 정보를 매핑한다.If the bottom is a partition or table, file information is mapped.
또한, 테이블 내의 칼럼(column)/인덱스(index)는 별도의 메모리/디스크(미도시)에 저장 관리된다.In addition, a column/index in a table is stored and managed in a separate memory/disk (not shown).
상기 테이블은 행과 열로 구성된 데이터 모음으로, 동일한 속성/관계가 있는 테이블들을 모아둔 데이터 저장 공간을 나타내고, 상기 파티션은 테이블의 데이터를 관리하기 쉬운 작은 단위로 물리적으로 분할하는 것을 나타내고, 상기 데이터베이스는 테이블들을 모은 집합으로 대부분은 업무 단위로 분리하고, 상기 스키마는 데이터베이스들을 모은 집합으로 시스템 간의 보안/업무 정책에 따라 구분 관리하기 위하여 분리한다.The table is a collection of data composed of rows and columns, and represents a data storage space in which tables with the same attributes/relationships are gathered, and the partition represents physical division of table data into small units that are easy to manage. A collection of tables, most of which are divided into business units, and the schema is a collection of databases, which are separated for management according to security/business policies between systems.
이와 같이, 상기 스토리지(200)는 해당 스토리지 상에서 메타 관리를 수행할 수 있다.In this way, the
여기서, 상기 메타 관리는 스토리지 상에서 DBMS 객체(object)들의 디렉터리/파일 구조에 대한 설명을 나타내고, 해당 기능들 중 일부는 개별 수행될 수 있다.Here, the meta management represents a description of the directory/file structure of DBMS objects on storage, and some of the corresponding functions can be individually performed.
또한, 상기 복수의 스토리지(200) 중에서 프로세스 또는 시스템의 여유가 높은 어느 하나의 스토리지(200)는 상기 클라이언트(100)의 로그인 시도에 따라, 해당 클라이언트(100)의 연동을 통해, 로그인 절차(또는 로그인 기능) 수행한다. 이때, 상기 스토리지(200)는 상기 클라이언트(100)와 관련해서 미리 등록된 아이디와 비밀번호, 해당 아이디를 포함하는 바코드 또는 QR 코드, 미리 설정된 인증 토큰 등을 이용해서 상기 로그인 절차를 수행할 수 있다.In addition, one of the
또한, 상기 스토리지(200)는 상기 클라이언트(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신한다. 여기서, 상기 SQL 명령어는 create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query 등을 포함한다. 또한, 상기 소스 파일과 관련한 정보는 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마(schema), 데이터베이스, 테이블, 적재 파일 포맷과 구분자, 파티션 등에 대한 정보를 포함한다.In addition, the
이때, 상기 스토리지(200)는 상기 수신된 SQL 명령어에 대해서 형식 검사(또는 오류 검사)를 수행하고, 해당 SQL 명령어의 형식에 오류가 있는 경우 해당 오류 정보를 상기 클라이언트(100)에 제공한다.At this time, the
또한, 상기 스토리지(200)는 상기 수신된 소스 파일과 관련한 정보에 대해서 형식 검사(또는 오류 검사)를 수행하고, 해당 소스 파일과 관련한 정보의 형식에 오류가 있는 경우 해당 오류 정보를 상기 클라이언트(100)에 제공한다.In addition, the
상기 로더(loader)(210)는 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 클라이언트(100)에서 적재하고자 하는 파일을 적재하는 기능을 수행한다.In addition, the
또한, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 로더(210)는 상기 수신된 소스 파일과 관련한 정보에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터(또는 소스 파일)를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, when information related to the source file is received, the
즉, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 로더(210)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when information related to the source file is received, the
상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 없는/미설정된 상태 경우), 상기 로더(210)는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the above check, if the authorization check fails (or if the login information related to the
또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 소스 파일과 관련한 정보에 대한 감사 로그(audit log)를 상기 복수의 블록(260) 중 어느 하나의 블록(260)에 저장한다.In addition, as a result of the above check, if the authority check is successful (or if the log-in information related to the
또한, 상기 로더(210)는 파일(또는 상기 소스 파일)을 로드한다.Also, the
상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.When the location of the loaded file is the same server or external storage, the
또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, the
또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the
또한, 상기 로더(210)는 상기 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)의 적재 성공 여부에 대한 정보(예를 들어 데이터/소스 파일 적재 실패 정보, 데이터/소스 파일 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.In addition, when the loading of the file is copying in the storage, the
또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 리더/라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에서 데이터(또는 디렉터리/파일)를 삭제한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the
또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the
또한, 상기 로더(210)는 다른 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
상기 파서 앤 애널라이저(parser & analyzer)(220)는 상기 로더(210), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The parser &
또한, 상기 파서 앤 애널라이저(220)는 사용자 인증 및 권한 체크 등을 수행하고, 상기 클라이언트(100)(또는 해당 클라이언트(100)의 사용자)에서 요청한 SQL 문장을 파싱/분석하여 어떤 파일/디렉터리 등을 읽어올지를 정하는 기능을 수행한다.In addition, the parser and
또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.In addition, when the received SQL command is a preset create query, the parser and
상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터베이스에 대한 권한이 없는/미설정된 상태인 경우), 상기 스토리지(200)(또는 상기 스토리지(200)에 포함된 파서 앤 애널라이저(220))는 객체를 생성하기 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the above check, if the authorization check fails (or if the login information related to the
또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 create query)에 대한 파싱 및 분석 기능을 수행한다.In addition, as a result of the above check, if the authority check is successful (or if the login information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 플래너(230)에 객체 생성을 요청한다.In addition, the parser and
또한, 상기 객체 생성 요청에 따라 해당 객체가 생성된 후, 상기 파서 앤 애널라이저(220)는 상기 워커(240)로부터 제공되는 객체 생성과 관련한 결과 정보를 수신한다.In addition, after a corresponding object is created according to the object creation request, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.Also, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 객체 생성 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and
상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.When the received SQL command is a preset select query, the parser and
상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터조회/데이터베이스에 대한 권한이 없는/미설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 데이터 조회를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the check, if the authorization check fails (or if the login information related to the
또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터조회/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 select query)에 대한 파싱 및 분석 기능을 수행한다.In addition, as a result of the above check, if the authorization check is successful (or if the login information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치(또는 조회하고자 하는 데이터와 관련해서 인덱스 및 데이터 위치)를 조회한다. 이때, 메타 데이터 조회 시, 해당 정보가 암호화되어 저장된 상태인 경우, 상기 파서 앤 애널라이저(220)는 암호화 키를 받아온 후, 해당 암호화 키를 이용해서 조회하고자 하는 데이터와 관련한 인덱스 및 데이터 위치를 조회할 수도 있다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 플래너(230)에 데이터 플랜을 요청한다.Also, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 워커(240)로부터 제공되는(또는 전송되는) 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 최종 데이터 등을 수신한다.In addition, the parser and
또한, 상기 최종 데이터와 관련한 정보를 수신한 경우, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보 등을 근거로 상기 리더/라이터(250)로부터 해당 최종 데이터를 읽는다(또는 리딩한다).In addition, when information related to the final data is received, the parser &
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 조회 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the parser and
상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.If the received SQL command is a preset insert query (or update query), the parser and
상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 없는/미설정된 상태인 경우), 상기 스토리지(200)(또는 상기 스토리지(200)에 포함된 파서 앤 애널라이저(220))는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the above check, if permission check fails (or if the login information related to the
또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 insert query/update query)에 대한 파싱 및 분석 기능을 수행한다.In addition, as a result of the above check, if the authorization check is successful (or if the log-in information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 insert query/update query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 데이터 적재를 요청한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 데이터 적재에 따라 상기 워커(240)로부터 제공되는 데이터 적재와 관련한 결과 정보를 수신한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and
상기 플래너(planner)(230)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The
또한, 상기 플래너(230)는 분석 요청된 SQL에 따라, 인덱스(index) 또는 데이터 통계 수치를 참조하여, 데이터를 읽어오는 순서와 머지(merge)/리듀스(reduce)하는 순서들을 정하는 기능을 수행한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치(또는 생성하고자 하는 객체가 메타 데이터에 존재하는지 여부/생성하고자 하는 객체와 관련한 디렉터리 또는 파일이 존재하는지 여부)를 확인한다.In addition, if the received SQL command is a preset create query, the
또한, 상기 플래너(230)는 상기 스토리지(200)에 포함된 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 각각 체크한다.In addition, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태와 상기 리더/라이터(250)의 상태 등을 근거로 상기 스토리지(200)에 포함된 워커(240)에 객체 생성을 요청한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 데이터 플랜 요청에 따라, 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, when the received SQL command is a preset select query, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 체크된 로더(210)의 상태 등을 근거로 상기 워커(240)에 데이터 로드를 요청한다. 이때, 상기 플래너(230)는 컴포넌트 상태(예를 들어 상기 로더(210)의 상태 등 포함)를 체크하여, 사용량이 적은 시스템의 컴포넌트에 데이터 로드를 요청하여, 전체 시스템의 운영 효율을 향상시킬 수 있다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 데이터 적재 요청에 따라, 메타 데이터를 확인하여, 데이터의 위치(또는 적재하고자 하는 객체가 메타 데이터에 존재하지 않는지 여부)를 조회(또는 확인)한다.In addition, when the received SQL command is a preset insert query (or update query), the
또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 리더/라이터(250)의 상태 등을 근거로 상기 워커(240)에 데이터 적재를 요청한다.In addition, the
상기 워커(worker)(240)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The
또한, 상기 워커(240)는 상기 리더/라이터(250)에 데이터 저장/데이터 읽기를 요청하고, 읽은 데이터 중에서 필요한 데이터 부분만을 읽어오거나, 읽어온 데이터를 머지/리듀스하여, 요청된 SQL 문법에 맞는 최종 데이터를 만드는 기능을 수행한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 워커(240)는 상기 플래너(230)의 객체 생성 요청을 근거로 상기 리더/라이터(250)에 객체 생성을 요청한다.Also, when the received SQL command is a preset create query, the
또한, 상기 객체 생성 요청에 따라 상기 리더/라이터(250)에서 관련된 객체가 생성된 경우, 상기 워커(240)는 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록한다.In addition, when a related object is created in the reader/
또한, 상기 워커(240)는 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the
상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 워커(240)는 상기 플래너(230)의 데이터 로드 요청에 따라 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.When the received SQL command is a preset select query, the
또한, 상기 워커(240)는 상기 체크된 리더/라이터(250)의 상태를 근거로 상기 리더/라이터(250)로부터 데이터(또는 상기 select query에 대응하는 데이터)를 로드한다.In addition, the
또한, 상기 워커(240)는 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 해당 클라이언트(100)에서 조회하고자 한 해당 select query에 맞는 최종 데이터를 생성한다(또는 만든다).In addition, the
또한, 상기 워커(240)는 상기 생성된(또는 만든) 최종 데이터를 상기 리더/라이터(250)에 기록(또는 라이트/write)한다.In addition, the
또한, 상기 워커(240)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 생성된 최종 데이터 등을 상기 파서 앤 애널라이저(220)에 제공(또는 전송)한다. 이때, 데이터양이 적은 경우(또는 상기 생성된 최종 데이터의 용량이 미리 설정된 기준값 이하인 경우), 상기 워커(240)는 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저(220)에 통신으로 직접 전달한다. 또한, 데이터양이 많은 경우(또는 상기 생성된 최종 데이터의 용량이 상기 기준값을 초과한 경우), 상기 워커(240)는 상기 생성된 최종 데이터의 전송 대신 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함)를 상기 파서 앤 애널라이저(220)에 전달한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 워커(240)는 상기 플래너(230)의 데이터 적재 요청에 따라 상기 리더/라이터(250)와 연동하여, 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터를 적재(또는 기록)한다. 이때, 사전에 테이블이 생성돼야 하며, 테이블의 칼럼 수와 파일 내 구분자는 동일해야 한다. 또한, 파티션이 존재시에는 파티션을 지정해야 한다.In addition, when the received SQL command is a preset insert query (or update query), the
또한, 상기 워커(240)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 워커(240)는 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the
상기 리더/라이터(reader/writer)(250)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 복수의 블록(260) 등과 통신한다.The reader/
또한, 상기 리더/라이터(250)는 분산 스토리지(200)에 데이터를 파일에 직접 저장 또는 읽어오는 기능을 수행한다.In addition, the reader/
또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, when the received SQL command is a preset create query, the reader/
또한, 상기 리더/라이터(250)는 상기 워커(240)의 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체(또는 매핑된 디렉터리/파일)를 생성한다.In addition, the reader/
또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/
이와 같이, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 create query)에 대응하는 객체(또는 데이터베이스 객체)(예를 들어 데이터베이스, 테이블, 파티션 등 포함)를 생성하고, 객체 생성 결과(또는 데이터베이스 객체 생성 결과)를 상기 클라이언트(100)에 제공(또는 전송)한다.As such, when the received SQL command is a preset create query, the
상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.When the received SQL command is a preset select query, the reader/
또한, 상기 리더/라이터(250)는 상기 워커(240)와 연동하여, 해당 워커(240)에서 생성된 최종 데이터를 기록(또는 적재)한다.In addition, the reader/
또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 상기 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/
이와 같이, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 select query)에 대응하는 데이터를 조회하고, 데이터 조회 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.As such, when the received SQL command is a preset select query, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 해당 SQL 명령어(또는 insert query/update query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, when the received SQL command is a preset insert query (or update query), the reader/
또한, 상기 리더/라이터(250)는 상기 워커(240)와 연동하여, 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터를 적재(또는 기록)한다.In addition, the reader/
또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/
이와 같이, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 insert/update query)에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In this way, when the received SQL command is a preset insert query (or update query), the
또한, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 리더/라이터(250)는 데이터 적재 여부에 대한 권한 확인 후, 상기 로더(210)와 연동하여, 해당 소스 파일과 관련한 정보에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, when information related to the source file is received, the reader/
또한, 상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, when the location of the loaded file is the same server or external storage, the reader/
또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/
이와 같이, 상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 동일 서버는 파일을 직접 읽고, 외부 시스템(또는 외부 스토리지)은 S3 또는 통신 프로토콜(예를 들어 http, https, RPC(Remote Procedure Call), IPC(Inter Process Communication) 등 포함)을 이용해서 파일을 읽어서 적재할 수 있다.As such, if the location of the loaded file is the same server or external storage, the same server directly reads the file, and the external system (or external storage) uses S3 or a communication protocol (eg http, https, RPC (Remote Procedure) Call), IPC (Inter Process Communication), etc.) can be used to read and load files.
또한, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 리더/라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에서 데이터(또는 디렉터리/파일)를 삭제한다.In addition, when the loading of the file is a copy in storage, the reader/
또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the reader/
또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/
이와 같이, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 동일 디렉터리 또는 파일이 존재하는 경우에는 해당 디렉터리 또는 파일을 삭제한 후 적재할 수 있다.In this way, when the loading of the file is copying in the storage, if the same directory or file exists, the directory or file can be deleted and then loaded.
또한, 이와 같이, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 스토리지(200)는 상기 수신된 소스 파일과 관련한 정보에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터(또는 소스 파일)를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, in this way, when information related to the source file is received, the
또한, 상기 리더/라이터(250)는 암호화 키를 이용해서 정보(또는 데이터)에 대한 암호화 기능을 수행할 수 있다.In addition, the reader/
또한, 상기 리더/라이터(250)는 상기 암호화 키에 대응하는 복호화 키를 이용해서 상기 암호화된 정보에 대한 복호화 기능을 수행할 수 있다.Also, the reader/
상기 복수의 블록(260)은 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250) 등과 통신(또는 연결)한다.The plurality of
또한, 상기 복수의 블록(260) 중 일부 블록(260)은 상기 로더(210) 또는 상기 파서 앤 애널라이저(220)의 제어에 의해, 감사 로그를 기록한다.Also, some
또한, 상기 복수의 블록(260) 중 다른 일부 블록(260)은 상기 로더(210) 또는 상기 파서 앤 애널라이저(220)의 제어에 의해, 데이터를 기록(또는 적재)한다.Also, some of the
또한, 상기 수신된 SQL 명령어가 미리 설정된 delete query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터만을 삭제하며, 해당 데이터와 관련한 메타 정보를 삭제하지 않는다.Also, when the received SQL command is a preset delete query, the
또한, 상기 스토리지(200)는 해당 테이블의 데이터 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 truncate query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터만을 삭제하며, 해당 데이터와 관련한 메타 정보를 삭제하지 않는다. 여기서, 상기 delete query와 상기 truncate query의 차이점은 해당 delete querydp 의해 삭제된 데이터는 나중에 복원을 위하여 휴지통(또는 임시 삭제 파일 보관 영역)에 이동 후, 미리 설정된 기간이 지나면 삭제된다.Also, when the received SQL command is a preset truncate query, the
또한, 상기 스토리지(200)는 해당 테이블의 데이터 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 drop query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터와 함께 해당 테이블의 데이터와 관련한 메타 정보도 삭제한다.Also, when the received SQL command is a preset drop query, the
또한, 상기 스토리지(200)는 해당 테이블의 데이터 및 관련 메타 정보 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 삭제된 데이터와 관련한 메타 정보, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 grant query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스에 대해서 권한을 할당하고자 하는 특정 클라이언트(100)에 해당 데이터베이스에 대한 권한 할당 기능을 수행한다.In addition, when the received SQL command is a preset grant query, the
또한, 상기 스토리지(200)는 해당 데이터베이스에 대한 권한 할당에 따른 권한 할당 결과를 생성하고, 상기 생성된 권한 할당 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 권한 할당 결과는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스명, 권한을 할당하고자 하는 특정 클라이언트(100)에 대한 정보, 권한 할당 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 수신된 SQL 명령어가 미리 설정된 revoke query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스에 대해서 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 해당 데이터베스에 대한 권한 해제 기능을 수행한다.In addition, when the received SQL command is a preset revoke query, the
또한, 상기 스토리지(200)는 해당 데이터베이스에 대한 권한 해제에 따른 권한 해제 결과를 생성하고, 상기 생성된 권한 해제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 권한 해제 결과는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스명, 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 대한 정보, 권한 해제 날짜 및 시각 정보 등을 포함한다.In addition, the
이와 같이, 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재할 수 있다.In this way, objects can be created based on storage, data can be retrieved, and data can be loaded.
또한, 이와 같이, 스토리지 기반으로 관리되는 데이터에 대해서, 메타 관리 기능을 제공할 수 있다.In addition, a meta management function may be provided for data managed based on storage in this way.
이하에서는, 본 발명에 따른 스토리지 기반의 DBMS 시스템의 제어 방법을 도 1 내지 도 3을 참조하여 상세히 설명한다.Hereinafter, a method for controlling a storage-based DBMS system according to the present invention will be described in detail with reference to FIGS. 1 to 3 .
도 3은 본 발명의 실시예에 따른 스토리지 기반의 DBMS 시스템의 제어 방법을 나타낸 흐름도이다.3 is a flowchart illustrating a control method of a storage-based DBMS system according to an embodiment of the present invention.
먼저, 클라이언트(100)는 복수의 스토리지(200) 중에서 프로세스 또는 시스템의 여유가 높은 어느 하나의 스토리지(200)를 통해서 로그인 절차(또는 로그인 기능) 수행한다. 이때, 상기 클라이언트(100)는 미리 등록된 아이디와 비밀번호, 해당 아이디를 포함하는 바코드 또는 QR 코드, 미리 설정된 인증 토큰 등을 이용해서 상기 로그인 절차를 수행할 수 있다.First, the
일 예로, 제 1 클라이언트(100)는 복수의 스토리지(200) 중에서 제 1 스토리지(200)와 제 1 아이디 및 제 1 비밀번호를 이용해서 로그인 절차를 수행한다(S1110).For example, the
이후, 상기 스토리지(200)는 상기 클라이언트(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신한다. 여기서, 상기 SQL 명령어는 create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query 등을 포함한다. 또한, 상기 소스 파일과 관련한 정보는 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마(schema), 데이터베이스, 테이블, 적재 파일 포맷과 구분자, 파티션 등에 대한 정보를 포함한다.Thereafter, the
일 예로, 상기 제 1 스토리지는 상기 제 1 클라이언트의 사용자 입력에 따라 새로운 객체(예를 들어 제 1 테이블)를 생성하기 위해서 제 1 create query를 포함하는 제 1 SQL 명령어를 수신한다.For example, the first storage receives a first SQL command including a first create query to create a new object (eg, a first table) according to a user input of the first client.
다른 일 예로, 상기 제 1 스토리지는 상기 제 1 클라이언트의 사용자 입력에 따라 제 2 테이블 내의 제 1 칼럼 내지 제 2 칼럼에 포함된 데이터를 조회하기 위해서 제 2 select query를 포함하는 제 2 SQL 명령어를 수신한다.As another example, the first storage receives a second SQL command including a second select query to retrieve data included in the first column or the second column in the second table according to the user input of the first client. do.
또 다른 일 예로, 상기 제 1 스토리지는 상기 제 1 클라이언트의 사용자 입력에 따라 데 3 테이블 내에 제 3 데이터를 적재하기 위해서 제 3 insert query를 포함하는 제 3 SQL 명령어를 수신한다.As another example, the first storage receives a third SQL command including a third insert query to load third data into a third table according to a user input of the first client.
또 다른 일 예로, 상기 제 1 스토리지는 상기 제 1 클라이언트의 사용자 입력에 따라 제 4 파일을 적재하기 위해서 제 4 소스 파일과 관련한 정보를 수신한다(S1120).As another example, the first storage receives information related to a fourth source file in order to load a fourth file according to a user input of the first client (S1120).
이후, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 create query)에 대응하는 객체(또는 데이터베이스 객체)(예를 들어 데이터베이스, 테이블, 파티션 등 포함)를 생성하고, 객체 생성 결과(또는 데이터베이스 객체 생성 결과)를 상기 클라이언트(100)에 제공(또는 전송)한다.Then, when the received SQL command is a preset create query, the
즉, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 스토리지(200)(또는 상기 스토리지(200)에 포함된 파서 앤 애널라이저(220))는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when the received SQL command is a preset create query, the storage 200 (or the parser and
상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 create query)에 대한 파싱 및 분석 기능을 수행한다.As a result of the above check, if the permission check is successful (or if the login information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 객체 생성을 요청한다.In addition, the parser and
또한, 상기 플래너(230)는 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치(또는 생성하고자 하는 객체가 메타 데이터에 존재하는지 여부/생성하고자 하는 객체와 관련한 디렉터리 또는 파일이 존재하는지 여부)를 확인한다.In addition, the
또한, 상기 플래너(230)는 상기 스토리지(200)에 포함된 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 각각 체크한다.In addition, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태와 상기 리더/라이터(250)의 상태 등을 근거로 상기 스토리지(200)에 포함된 워커(240)에 객체 생성을 요청한다.In addition, the
또한, 상기 워커(240)는 객체 생성 요청을 근거로 상기 리더/라이터(250)에 객체 생성을 요청한다.In addition, the
또한, 상기 리더/라이터(250)는 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체(또는 매핑된 디렉터리/파일)를 생성한다.In addition, the reader/
또한, 상기 워커(240)는 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록한다.Also, the
또한, 상기 워커(240)는 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.Also, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 객체 생성 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 객체 생성 결과를 수신하고, 상기 수신된 객체 생성 결과를 표시(또는 출력)한다.In addition, the
일 예로, 상기 수신된 SQL 명령어가 미리 설정된 create query(예를 들어 상기 제 1 create query)일 때, 상기 제 1 스토리지에 포함된 제 1 파서 앤 애널라이저(220)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인한다.For example, when the received SQL command is a preset create query (eg, the first create query), the first parser and
상기 확인 결과, 상기 제 1 클라이언트에 대해서 데이터베이스에 대한 권한이 있을 때, 상기 제 1 파서 앤 애널라이저는 상기 제 1 create query에 대한 파싱 및 분석 기능을 수행한다.As a result of the check, when the first client has authority for the database, the first parser and analyzer performs parsing and analyzing functions for the first create query.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 리더/라이터와 연동하여, 상기 제 1 create query에 대한 제 1-1 감사 로그를 상기 복수의 블록(260) 중 제 1-1 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/writer included in the first storage to store the 1-1 audit log for the 1st create query in the 1-1 of the plurality of
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 플래너에 객체 생성을 요청한다.In addition, the first parser and analyzer requests the first planner included in the first storage to create an object.
또한, 상기 제 1 플래너는 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치를 확인한다.In addition, the first planner checks meta data based on the object creation request to check the location of the object.
또한, 상기 제 1 플래너는 상기 제 1 스토리지에 포함된 제 1 로더(210)의 상태와 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)의 상태를 각각 체크한다.In addition, the first planner checks the state of the
또한, 상기 제 1 플래너는 상기 제 1 create query, 상기 확인된 객체의 위치, 상기 체크된 제 1 로더의 상태, 상기 체크된 제 1 리더/라이터의 상태 등을 근거로 상기 제 1 스토리지에 포함된 제 1 워커(260)에 객체 생성을 요청한다.In addition, the first planner is included in the first storage based on the first create query, the location of the checked object, the checked state of the first loader, the checked state of the first reader/writer, and the like. The
또한, 상기 제 1 워커는 객체 생성 요청을 근거로 상기 제 1 리더/라이터에 객체 생성을 요청한다.In addition, the first worker requests the first reader/writer to create an object based on the object creation request.
또한, 상기 제 1 리더/라이터는 객체 생성 요청을 근거로 상기 제 1 create query에 대응하는 제 1 객체(예를 들어 제 1 테이블)를 생성한다.In addition, the first reader/writer creates a first object (eg, a first table) corresponding to the first create query based on the object creation request.
또한, 상기 제 1 워커는 상기 생성된 제 1 객체와 관련한 제 1 객체 매핑을 상기 메타 데이터에 등록한다.Also, the first worker registers a first object mapping related to the created first object in the meta data.
또한, 상기 제 1 워커는 객체 생성과 관련한 제 1 결과 정보를 상기 제 1 파서 앤 애널라이저에 제공한다.In addition, the first worker provides first result information related to object creation to the first parser and analyzer.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 리더/라이터와 연동하여, 상기 생성된 제 1 객체와 관련한 제 1-2 감사 로그를 상기 복수의 블록 중 제 1-2 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/writer and stores the first to second audit logs related to the generated first object in the first to
또한, 상기 제 1 파서 앤 애널라이저는 제 1 객체 생성 결과(예를 들어 1 table created)를 상기 제 1 클라이언트에 제공한다.Also, the first parser and analyzer provides a first object creation result (eg, one table created) to the first client.
또한, 상기 제 1 클라이언트는 상기 제 1 create query에 응답하여 상기 제 1 파서 앤 애널라이저로부터 제공되는 제 1 객체 생성 결과를 수신하고, 상기 수신된 제 1 객체 생성 결과를 표시한다(S1130).In addition, the first client receives a first object creation result provided from the first parser and analyzer in response to the first create query, and displays the received first object creation result (S1130).
또한, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 select query)에 대응하는 데이터를 조회하고, 데이터 조회 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, when the received SQL command is a preset select query, the
즉, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when the received SQL command is a preset select query, the parser and
상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터조회/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 select query)에 대한 파싱 및 분석 기능을 수행한다.As a result of the check, if the authorization check is successful (or if the login information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치(또는 조회하고자 하는 데이터와 관련해서 인덱스 및 데이터 위치)를 조회한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 플래너(230)에 데이터 플랜을 요청한다.Also, the parser and
또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 체크된 로더(210)의 상태 등을 근거로 상기 워커(240)에 데이터 로드를 요청한다.In addition, the
또한, 상기 워커(240)는 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 워커(240)는 상기 체크된 리더/라이터(250)의 상태를 근거로 상기 리더/라이터(250)로부터 데이터(또는 상기 select query에 대응하는 데이터)를 로드한다.In addition, the
또한, 상기 워커(240)는 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 해당 클라이언트(100)에서 조회하고자 한 해당 select query에 맞는 최종 데이터를 생성한다(또는 만든다).In addition, the
또한, 상기 워커(240)는 상기 생성된(또는 만든) 최종 데이터를 상기 리더/라이터(250)에 기록(또는 라이트/write)한다.In addition, the
또한, 상기 워커(240)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 생성된 최종 데이터 등을 상기 파서 앤 애널라이저(220)에 제공(또는 전송)한다. 이때, 데이터양이 적은 경우(또는 상기 생성된 최종 데이터의 용량이 미리 설정된 기준값 이하인 경우), 상기 워커(240)는 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저(220)에 통신으로 직접 전달한다. 또한, 데이터양이 많은 경우(또는 상기 생성된 최종 데이터의 용량이 상기 기준값을 초과한 경우), 상기 워커(240)는 상기 생성된 최종 데이터의 전송 대신 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함)를 상기 파서 앤 애널라이저(220)에 전달한다.In addition, the
또한, 상기 최종 데이터와 관련한 정보를 수신한 경우, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보 등을 근거로 상기 리더/라이터(250)로부터 해당 최종 데이터를 읽는다(또는 리딩한다).In addition, when information related to the final data is received, the parser &
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 조회 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the parser and
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 조회 결과를 수신하고, 상기 수신된 데이터 조회 결과를 표시(또는 출력)한다.In addition, the
일 예로, 상기 수신된 SQL 명령어가 미리 설정된 select query(예를 들어 상기 제 2 select query)일 때, 상기 제 1 스토리지에 포함된 제 1 파서 앤 애널라이저(220)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터 조회에 대한 권한을 확인한다.For example, when the received SQL command is a preset select query (eg, the second select query), the first parser and
상기 확인 결과, 상기 제 1 클라이언트에 대해서 데이터 조회에 대한 권한이 있을 때, 상기 제 1 파서 앤 애널라이저는 상기 제 2 select query에 대한 파싱 및 분석 기능을 수행한다.As a result of the confirmation, when the first client has the right to retrieve data, the first parser and analyzer performs parsing and analyzing functions for the second select query.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)와 연동하여, 상기 제 2 select query에 대한 제 2-1 감사 로그를 상기 복수의 블록(260) 중 제 2-1 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/
또한, 상기 제 1 파서 앤 애널라이저는 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 조회하고자 하는 제 2 테이블과 관련한 제 2 인덱스 및 제 2 데이터 위치를 조회한다.Also, the first parser and analyzer checks meta data based on the data search request, and searches for a second index and a location of second data related to a second table to be searched.
또한, 상기 제 1 파서 앤 애널라이저는 상기 조회된 제 2 인덱스 및 제 2 데이터 위치를 근거로 상기 제 1 스토리지에 포함된 제 1 플래너(230)에 데이터 플랜을 요청한다.In addition, the first parser and analyzer requests a data plan from the
또한, 상기 제 1 플래너는 상기 제 1 스토리지에 포함된 제 1 로더(210)의 상태를 체크한다.Also, the first planner checks the state of the
또한, 상기 제 1 플래너는 상기 제 2 select query, 상기 체크된 제 1 로더의 상태 등을 근거로 상기 제 1 스토리지에 포함된 제 1 워커(240)에 데이터 로드를 요청한다.In addition, the first planner requests data load from the
또한, 상기 제 1 워커는 상기 제 1 리더/라이터의 상태를 체크한다.Also, the first worker checks the state of the first reader/writer.
또한, 상기 제 1 워커는 상기 체크된 제 1 리더/라이터의 상태를 근거로 상기 제 1 리더/라이터로부터 상기 제 2 select query에 대응하는 제 2 데이터(또는 제 2 테이블)를 로드한다.Also, the first worker loads second data (or a second table) corresponding to the second select query from the first reader/writer based on the checked state of the first reader/writer.
또한, 상기 제 1 워커는 상기 로드한 제 2 데이터 중에서 상기 제 2 select query에 따른 필요한 데이터 부분만(예를 들어 제 2 테이블 내의 제 1 칼럼 내지 제 2 칼럼)을 리듀스하여 해당 제 2 select query에 맞는 최종 데이터인 제 2-1 데이터(또는 제 2-1 테이블)를 생성한다.In addition, the first worker reduces only the necessary data part (for example, the first column to the second column in the second table) according to the second select query among the loaded second data to obtain the corresponding second select query 2-1 data (or 2-1 table), which is the final data that fits, is created.
또한, 상기 제 1 워커는 상기 생성된 최종 데이터인 제 2-1 데이터를 상기 제 1 리더/라이터에 기록한다.In addition, the first worker writes 2-1 data, which is the generated final data, to the first reader/writer.
또한, 상기 제 1 워커는 상기 생성된 최종 데이터의 양이 미리 설정된 기준값을 초과함에 따라 상기 제 1 리더/라이터에 기록된 제 2-1 데이터와 관련한 정보 등을 상기 제 1 파서 앤 애널라이저에 제공한다.In addition, the first worker provides information related to the 2-1 data recorded in the first reader/writer to the first parser and analyzer when the amount of the generated final data exceeds a preset reference value. .
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 리더/라이터에 기록된 제 2-1 데이터와 관련한 정보 등을 근거로 상기 제 1 리더/라이터로부터 해당 최종 데이터인 제 2-1 데이터를 읽는다.In addition, the first parser and analyzer reads the 2-1 data, which is the final data, from the first reader/writer based on the information related to the 2-1 data recorded in the first reader/writer.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 리더/라이터와 연동하여, 상기 읽은 제 2-1 데이터와 관련한 제 2-2 감사 로그를 상기 복수의 블록 중 제 2-2 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/writer to store the 2-2 audit log related to the read 2-1 data in the 2-2
또한, 상기 제 1 파서 앤 애널라이저는 제 2 데이터 조회 결과(예를 들어 상기 제 2-1 테이블에 포함된 인덱스와, Name에 해당하는 제 1 칼럼과 Age에 해당하는 제 2 칼럼에 대해서, 3개의 행으로 구성된 10 Kim 30, 20 Park 32, 30 Jeong 31 등 포함)를 상기 제 1 클라이언트에 제공한다.In addition, the first parser and analyzer determines the second data search result (for example, the index included in the 2-1 table and the first column corresponding to Name and the second column corresponding to Age). 10 Kim 30, 20 Park 32, 30 Jeong 31, etc.) composed of rows are provided to the first client.
또한, 상기 제 1 클라이언트는 상기 제 2 select query에 응답하여 상기 제 1 파서 앤 애널라이저로부터 제공되는 제 2 데이터 조회 결과를 수신하고, 상기 수신된 제 2 데이터 조회 결과를 표시한다(S1140).In addition, the first client receives a second data search result provided from the first parser and analyzer in response to the second select query, and displays the received second data search result (S1140).
또한, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 insert/update query)에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, when the received SQL command is a preset insert query (or update query), the
즉, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when the received SQL command is a preset insert query (or update query), the parser and
상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 SQL 명령어(또는 insert query/update query)에 대한 파싱 및 분석 기능을 수행한다.As a result of the check, if the authorization check is successful (or if the login information related to the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 insert query/update query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 데이터 적재를 요청한다.In addition, the parser and
또한, 상기 플래너(230)는 데이터 적재 요청을 근거로 메타 데이터를 확인하여, 데이터의 위치(또는 적재하고자 하는 객체가 메타 데이터에 존재하지 않는지 여부)를 조회(또는 확인)한다.In addition, the
또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 리더/라이터(250)의 상태 등을 근거로 상기 워커(240)에 데이터 적재를 요청한다.In addition, the
또한, 상기 워커(240)는 상기 리더/라이터(250)와 연동하여, 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터를 적재(또는 기록)한다.In addition, the
또한, 상기 워커(240)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 워커(240)는 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the
또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and
또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and
또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query/update query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다.In addition, the
일 예로, 상기 수신된 SQL 명령어가 미리 설정된 insert query(예를 들어 상기 제 3 insert query)일 때, 상기 제 1 스토리지에 포함된 제 1 파서 앤 애널라이저(220)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터 적재에 대한 권한을 확인한다.For example, when the received SQL command is a preset insert query (for example, the third insert query), the first parser and
상기 확인 결과, 상기 제 1 클라이언트에 대해서 데이터 적재에 대한 권한이 있을 때, 상기 제 1 파서 앤 애널라이저는 상기 제 3 insert query에 대한 파싱 및 분석 기능을 수행한다.As a result of the confirmation, when the first client has the right to load data, the first parser and analyzer performs a function of parsing and analyzing the third insert query.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)와 연동하여, 상기 제 3 insert query에 대한 제 3-1 감사 로그를 상기 복수의 블록(260) 중 제 3-1 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 플래너(230)에 데이터 적재를 요청한다.In addition, the first parser and analyzer requests the
또한, 상기 제 1 플래너는 데이터 적재 요청을 근거로 메타 데이터를 확인하여, 적재하고자 하는 제 3 테이블과 관련한 데이터의 위치를 조회한다.In addition, the first planner checks meta data based on the data loading request, and searches for a location of data related to a third table to be loaded.
또한, 상기 제 1 플래너는 상기 제 1 스토리지에 포함된 제 1 로더(210)의 상태와 상기 제 1 리더/라이터의 상태를 체크한다.Also, the first planner checks the state of the
또한, 상기 제 1 플래너는 상기 제 3 insert query, 상기 확인된 객체의 위치, 상기 체크된 제 1 로더의 상태, 상기 체크된 제 1 리더/라이터의 상태 등을 근거로 상기 제 1 스토리지에 포함된 제 1 워커(240)에 데이터 적재를 요청한다.In addition, the first planner is included in the first storage based on the third insert query, the location of the checked object, the checked state of the first loader, the checked state of the first reader/writer, and the like. A data loading request is made to the
또한, 상기 제 1 워커는 상기 제 1 리더/라이터와 연동하여, 상기 제 1 리더/라이터의 제 3 테이블 내에 제 3 데이터를 적재한다.In addition, the first worker loads third data into a third table of the first reader/writer in association with the first reader/writer.
또한, 상기 제 1 워커는 상기 제 3 데이터의 적재에 따른 해당 메타 데이터의 정보를 변경한다.In addition, the first worker changes information of corresponding meta data according to loading of the third data.
또한, 상기 제 1 워커는 상기 제 3 데이터 적재와 관련한 제 3 결과 정보를 상기 제 1 파서 앤 애널라이저에 제공한다.Also, the first worker provides third result information related to the loading of the third data to the first parser and analyzer.
또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 리더/라이터와 연동하여, 상기 데이터 적재와 관련한 제 3-2 감사 로그를 상기 복수의 블록 중 제 3-2 블록(260)에 저장한다.In addition, the first parser and analyzer interworks with the first reader/writer and stores the 3-2 audit log related to the data loading in the 3-2
또한, 상기 제 1 파서 앤 애널라이저는 제 3 데이터 적재 결과(예를 들어 1 row inserted)를 상기 제 1 클라이언트에 제공한다.Also, the first parser and analyzer provides a third data loading result (eg, 1 row inserted) to the first client.
또한, 상기 제 1 클라이언트는 상기 제 3 insert query에 응답하여 상기 제 1 파서 앤 애널라이저로부터 제공되는 제 3 데이터 적재 결과를 수신하고, 상기 수신된 제 3 데이터 적재 결과를 표시한다(S1150).In addition, the first client receives a third data load result provided from the first parser and analyzer in response to the third insert query, and displays the received third data load result (S1150).
또한, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 스토리지(200)는 상기 수신된 소스 파일과 관련한 정보에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터(또는 소스 파일)를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, when information related to the source file is received, the
즉, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 스토리지(200)에 포함된 로더(210)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when information related to the source file is received, the
상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 있는/설정된 상태인 경우), 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 소스 파일과 관련한 정보에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.As a result of the check, if the authorization check is successful (or if the log-in information related to the
또한, 상기 로더(210)는 파일(또는 상기 소스 파일)을 로드한다.Also, the
상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.When the location of the loaded file is the same server or external storage, the
또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, the
또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the
또한, 상기 로더(210)는 상기 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)의 적재 성공 여부에 대한 정보(예를 들어 데이터/소스 파일 적재 실패 정보, 데이터/소스 파일 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다.In addition, the
또한, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.In addition, when the loading of the file is copying in the storage, the
또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 리더/라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에서 데이터(또는 디렉터리/파일)를 삭제한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the
또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the
또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the
또한, 상기 로더(210)는 다른 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the
또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 다른 데이터 적재 결과를 수신하고, 상기 수신된 다른 데이터 적재 결과를 표시(또는 출력)한다.In addition, the
일 예로, 상기 제 4 소스 파일과 관련한 정보를 수신할 때, 상기 제 1 스토리지에 포함된 제 1 로더(210)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터 적재에 대한 권한을 확인한다.For example, upon receiving the information related to the fourth source file, the
상기 확인 결과, 상기 제 1 클라이언트에 대해서 데이터 적재에 대한 권한이 있을 때, 상기 제 1 로더는 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)와 연동하여, 상기 제 4 소스 파일과 관련한 정보에 대한 제 4-1 감사 로그를 상기 복수의 블록(260) 중 제 4-1 블록(260)에 저장한다.As a result of the check, when the first client has the right to load data, the first loader interworks with the first reader/
또한, 상기 제 1 로더는 상기 적재하고자 하는 제 4 소스 파일과 관련한 정보에 포함된 제 4 파일을 로드한다.Also, the first loader loads a fourth file included in information related to the fourth source file to be loaded.
상기 로드한 제 4 파일의 위치가 동일한 제 1 스토리지일 때, 상기 제 1 로더는 메타 데이터를 확인하여, 적재하고자 하는 제 4 파일과 관련한 객체의 위치를 조회한다.When the location of the loaded fourth file is the same as the first storage, the first loader checks meta data and inquires the location of an object related to the fourth file to be loaded.
또한, 상기 제 1 로더는 상기 제 1 로더의 상태와 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)의 상태를 체크한다.In addition, the first loader checks the state of the first loader and the state of the first reader/
또한, 상기 제 1 로더는 상기 제 1 리더/라이터와 연동하여, 상기 제 4 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 제 1 로더의 상태, 상기 체크된 제 1 리더/라이터의 상태 등을 근거로 상기 제 1 리더/라이터에 상기 제 4 소스 파일과 관련한 정보에 포함된 제 4 파일을 적재한다.In addition, the first loader interworks with the first reader/writer to obtain information related to the fourth source file, the location of the checked object, the checked state of the first loader, and the checked first reader/writer. The fourth file included in the information related to the fourth source file is loaded into the first reader/writer based on the state of .
또한, 상기 제 1 로더는 상기 제 4 파일의 데이터 적재에 따른 해당 메타 데이터의 정보를 변경한다.In addition, the first loader changes corresponding meta data information according to data loading of the fourth file.
또한, 상기 제 1 로더는 상기 제 1 리더/라이터와 연동하여, 상기 제 4 파일의 적재와 관련한 제 4-2 감사 로그를 상기 복수의 블록 중 제 4-2 블록(260)에 저장한다.In addition, the 1st loader interworks with the 1st reader/writer and stores the 4-2nd audit log related to the loading of the 4th file in the 4-
또한, 상기 제 1 로더는 제 4 데이터 적재 결과(예를 들어 1 file inserted)를 상기 제 1 클라이언트에 제공한다.Also, the first loader provides a fourth data loading result (eg, 1 file inserted) to the first client.
또한, 상기 제 1 클라이언트는 상기 제 4 소스 파일과 관련한 정보에 응답하여 상기 제 1 로더로부터 제공되는 제 4 데이터 적재 결과를 수신하고, 상기 수신된 제 4 데이터 적재 결과를 표시한다.In addition, the first client receives a fourth data loading result provided from the first loader in response to the information related to the fourth source file, and displays the received fourth data loading result.
다른 일 예로, 상기 제 4 소스 파일과 관련한 정보를 수신할 때, 상기 제 1 스토리지에 포함된 제 1 로더(210)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터 적재에 대한 권한을 확인한다.As another example, upon receiving the information related to the fourth source file, the
상기 확인 결과, 상기 제 1 클라이언트에 대해서 데이터 적재에 대한 권한이 있을 때, 상기 제 1 로더는 상기 제 1 스토리지에 포함된 제 1 리더/라이터(250)와 연동하여, 상기 제 4 소스 파일과 관련한 정보에 대한 제 5-1 감사 로그를 상기 복수의 블록(260) 중 제 5-1 블록(260)에 저장한다.As a result of the check, when the first client has the right to load data, the first loader interworks with the first reader/
또한, 상기 제 1 로더는 상기 적재하고자 하는 제 4 소스 파일과 관련한 정보에 포함된 제 4 파일을 로드한다.Also, the first loader loads a fourth file included in information related to the fourth source file to be loaded.
상기 로드한 제 4 파일에 대한 적재가 스토리지 내 복사일 때, 상기 제 1 로더는 메타 데이터를 확인하여, 적재하고자 하는 제 4 파일과 관련한 객체의 위치를 조회한다.When the loading of the loaded fourth file is a copy in storage, the first loader checks meta data and inquires the location of an object related to the fourth file to be loaded.
또한, 상기 제 1 로더는 상기 제 1 로더의 상태와 상기 제 1 스토리지에 포함된 제 1 리더/라이터의 상태를 체크한다.Also, the first loader checks a state of the first loader and a state of a first reader/writer included in the first storage.
또한, 상기 제 1 로더는 상기 제 1 리더/라이터와 연동하여, 상기 제 4 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 제 1 로더의 상태, 상기 체크된 제 1 리더/라이터의 상태 등을 근거로 상기 제 1 리더/라이터에서 기존 데이터를 삭제한다.In addition, the first loader interworks with the first reader/writer to obtain information related to the fourth source file, the location of the checked object, the checked state of the first loader, and the checked first reader/writer. Existing data is deleted from the first reader/writer based on the state of .
또한, 상기 제 1 로더는 상기 제 1 리더/라이터와 연동하여, 상기 제 1 리더/라이터에 적재하고자 하는 상기 제 4 소스 파일과 관련한 정보에 포함된 제 4 파일을 적재한다. Also, the first loader loads a fourth file included in information related to the fourth source file to be loaded into the first reader/writer in association with the first reader/writer.
또한, 상기 제 1 로더는 상기 제 4 파일의 적재에 따른 해당 메타 데이터의 정보를 변경한다.In addition, the first loader changes corresponding metadata information according to the loading of the fourth file.
또한, 상기 제 1 로더는 상기 제 1 리더/라이터와 연동하여, 상기 제 4 파일의 적재와 관련한 제 5-2 감사 로그를 상기 복수의 블록 중 제 5-2 블록(260)에 저장한다.In addition, the 1st loader interworks with the 1st reader/writer and stores the 5-2nd audit log related to the loading of the 4th file in the 5-
또한, 상기 제 1 로더는 제 5 데이터 적재 결과(예를 들어 1 file inserted)를 상기 제 1 클라이언트에 제공한다.Also, the first loader provides a fifth data loading result (eg, 1 file inserted) to the first client.
또한, 상기 제 1 클라이언트는 상기 제 4 소스 파일과 관련한 정보에 응답하여 상기 제 1 로더로부터 제공되는 제 5 데이터 적재 결과를 수신하고, 상기 수신된 제 5 데이터 적재 결과를 표시한다(S1160).In addition, the first client receives a fifth data load result provided from the first loader in response to the information related to the fourth source file, and displays the received fifth data load result (S1160).
본 발명의 실시예는 앞서 설명된 바와 같이, 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재하여, 병렬 분산 처리에 따른 전체 시스템의 운영 효율을 향상시킬 수 있다.As described above, the embodiment of the present invention can improve the operational efficiency of the entire system according to parallel distributed processing by creating objects based on storage, retrieving data, and loading data.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 스토리지 기반으로 관리되는 데이터에 대해서, 메타 관리 기능을 제공하여, 메타 데이터의 관리 효율을 높일 수 있다.In addition, as described above, the embodiment of the present invention provides a meta management function for data managed based on storage, thereby increasing meta data management efficiency.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing may be modified and modified by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed according to the following claims, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.
10: 스토리지 기반의 DBMS 시스템 100: 클라이언트
200: 복수의 스토리지 210: 로더
220: 파서 앤 애널라이저 230: 플래너
240: 워커 250: 리더/라이터
260: 복수의 블록10: storage-based DBMS system 100: client
200: multiple storage 210: loader
220: Parser and Analyzer 230: Planner
240: Walker 250: Reader/Writer
260: multiple blocks
Claims (10)
상기 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하고, 기능 수행 결과를 상기 클라이언트에 제공하는 스토리지를 포함하며,
상기 스토리지는,
미리 설정된 크기의 복수의 블록;
객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체를 생성하는 리더/라이터;
수신된 상기 SQL 명령어가 미리 설정된 create query일 때 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하고, 권한 확인에 성공할 때 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하고, 상기 리더/라이터와 연동하여 상기 SQL 명령어에 대한 감사 로그를 상기 복수의 블록 중 하나 이상의 블록에 저장하고, 플래너에 객체 생성을 요청하는 파서 앤 애널라이저;
객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치를 확인하고, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 각각 체크하고, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 객체 생성을 요청하는 상기 플래너; 및
객체 생성 요청을 근거로 상기 리더/라이터에 객체 생성을 요청하고, 상기 리더/라이터에 의해 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록하고, 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 상기 워커를 포함하며,
상기 파서 앤 애널라이저는,
상기 리더/라이터와 연동하여, 상기 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템.A client that provides information related to a SQL command or source file according to user input; and
A storage for performing one of an object creation function, a data search function, and a data loading function based on the SQL command or information related to the source file, and providing a function execution result to the client,
The storage is
a plurality of blocks of a preset size;
a reader/writer that creates an object related to the SQL command based on an object creation request;
When the received SQL command is a preset create query, the authority to the database is checked based on the login information related to the client, and when the authority check is successful, parsing and analysis of the SQL command are performed, and the reader/ a parser and analyzer that interworks with a writer to store an audit log for the SQL command in one or more blocks among the plurality of blocks and requests a planner to create an object;
Meta data is checked based on the object creation request, the location of the object is checked, the state of the loader and the reader/writer included in the storage are checked, respectively, the SQL command, the location of the checked object and , the planner requesting creation of an object from a worker included in the storage based on the checked state of the loader and the state of the reader/writer; and
Based on the object creation request, the reader/writer is requested to create an object, object mapping related to the object created by the reader/writer is registered in the meta data, and result information related to object creation is sent to the parser and analyzer. Including the worker provided,
The parser and analyzer,
Storage-based DBMS system characterized by storing another audit log related to the created object in one or more other blocks among the plurality of blocks in association with the reader/writer.
상기 소스 파일과 관련한 정보는,
소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마, 데이터베이스, 테이블, 적재 파일 포맷과 구분자 및, 파티션 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템.According to claim 1,
Information related to the source file,
A storage-based DBMS system comprising at least one of a source file hostname, port, source file format and identifier, schema, database, table, load file format and identifier, and partition.
상기 스토리지에 의해, 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계; 및
상기 스토리지에 의해, 기능 수행 결과를 상기 클라이언트에 제공하는 단계를 포함하며,
상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는,
상기 수신된 SQL 명령어가 미리 설정된 create query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정;
권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 플래너에 객체 생성을 요청하는 과정;
상기 플래너에 의해, 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치를 확인하는 과정;
상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 각각 체크하는 과정;
상기 플래너에 의해, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 객체 생성을 요청하는 과정;
상기 워커에 의해, 객체 생성 요청을 근거로 상기 리더/라이터에 객체 생성을 요청하는 과정;
상기 리더/라이터에 의해, 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체를 생성하는 과정;
상기 워커에 의해, 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록하는 과정;
상기 워커에 의해, 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 과정; 및
상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 상기 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.Receiving, by the storage, information related to an SQL command or a source file according to a user input of a client;
performing, by the storage, one of an object creation function, a data inquiry function, and a data loading function based on the information related to the received SQL command or source file; and
Providing, by the storage, a function execution result to the client;
The step of performing any one of the object creation function, data search function, and data load function based on the received SQL command or information related to the source file,
When the received SQL command is a preset create query, checking authority for a database based on login information related to the client by a parser and analyzer included in the storage;
performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful;
storing, by the parser and analyzer, an audit log for the SQL command in one or more blocks among a plurality of blocks, in conjunction with a reader/writer included in the storage;
requesting, by the parser and analyzer, object creation to a planner included in the storage;
confirming, by the planner, meta data based on the object creation request, and confirming the location of the object;
checking, by the planner, the state of the loader and the state of the reader/writer included in the storage, respectively;
requesting, by the planner, a worker included in the storage to create an object based on the SQL command, the location of the checked object, and the checked state of the loader and the reader/writer;
requesting, by the worker, object creation to the reader/writer based on the object creation request;
creating, by the reader/writer, an object related to the SQL command based on an object creation request;
registering, by the worker, object mapping related to the created object in the meta data;
providing, by the worker, result information related to object creation to the parser and analyzer; and
and storing another audit log related to the created object in one or more other blocks among the plurality of blocks by the parser and analyzer in conjunction with the reader/writer. control method.
상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는,
상기 수신된 SQL 명령어가 미리 설정된 select query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정;
권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정;
상기 파서 앤 애널라이저에 의해, 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치를 조회하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 스토리지에 포함된 플래너에 데이터 플랜을 요청하는 과정;
상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태를 체크하는 과정;
상기 플래너에 의해, 상기 SQL 명령어 및, 상기 체크된 로더의 상태를 근거로 상기 스토리지에 포함된 워커에 데이터 로드를 요청하는 과정;
상기 워커에 의해, 상기 리더/라이터의 상태를 체크하는 과정;
상기 워커에 의해, 상기 체크된 리더/라이터의 상태를 근거로 상기 리더/라이터로부터 데이터를 로드하는 과정;
상기 워커에 의해, 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 상기 클라이언트에서 조회하고자 한 상기 select query에 맞는 최종 데이터를 생성하는 과정;
상기 워커에 의해, 상기 생성된 최종 데이터를 상기 리더/라이터에 기록하는 과정; 및
상기 워커에 의해, 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보 또는, 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저에 제공하는 과정을 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.According to claim 4,
The step of performing any one of the object creation function, data search function, and data load function based on the received SQL command or information related to the source file,
When the received SQL command is a preset select query, checking authority for a database based on login information related to the client by a parser and analyzer included in the storage;
performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful;
storing, by the parser and analyzer, an audit log for the SQL command in one or more blocks among a plurality of blocks, in conjunction with a reader/writer included in the storage;
checking meta data based on a data search request by the parser and analyzer, and searching for an index and data location;
requesting a data plan from a planner included in the storage based on the searched index and data location by the parser and analyzer;
checking a state of a loader included in the storage by the planner;
requesting, by the planner, to load data from a worker included in the storage based on the SQL command and the checked state of the loader;
checking a state of the reader/writer by the worker;
loading data from the reader/writer based on the checked reader/writer state by the worker;
generating, by the worker, final data suitable for the select query desired by the client by reducing only a necessary data portion according to the select query among the loaded data;
writing the generated final data to the reader/writer by the worker; and
and providing, by the worker, information related to final data recorded in the reader/writer or the generated final data to the parser and analyzer.
상기 파서 앤 애널라이저에 의해, 상기 워커로부터 제공되는 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보 또는, 상기 생성된 최종 데이터를 수신하는 과정;
상기 최종 데이터와 관련한 정보를 수신한 상태일 때, 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보를 근거로 상기 리더/라이터로부터 상기 최종 데이터를 읽는 과정; 및
상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 더 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.According to claim 6,
receiving, by the parser and analyzer, information related to final data recorded in the reader/writer provided from the worker or the generated final data;
reading the final data from the reader/writer based on the information related to the final data recorded in the reader/writer by the parser and analyzer when the information related to the final data is received; and
and storing, by the parser and analyzer, another audit log related to the final data read in one or more other blocks among the plurality of blocks, in conjunction with the reader/writer. How to control the system.
상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는,
상기 수신된 SQL 명령어가 미리 설정된 insert query일 때, 상기 스토리지에 포함된 파서 앤 애널라이저에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정;
권한 확인에 성공할 때, 상기 파서 앤 애널라이저에 의해, 상기 SQL 명령어에 대한 파싱 및 분석 기능을 수행하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 SQL 명령어에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정;
상기 파서 앤 애널라이저에 의해, 상기 스토리지에 포함된 플래너에 데이터 적재를 요청하는 과정;
상기 플래너에 의해, 데이터 적재 요청을 근거로 메타 데이터를 확인하여, 데이터의 위치를 조회하는 과정;
상기 플래너에 의해, 상기 스토리지에 포함된 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정;
상기 플래너에 의해, 상기 SQL 명령어, 상기 확인된 객체의 위치 및, 상기 체크된 로더의 상태와 상기 리더/라이터의 상태를 근거로 상기 스토리지에 포함된 워커에 데이터 적재를 요청하는 과정;
상기 워커에 의해, 상기 리더/라이터와 연동하여, 상기 리더/라이터에 상기 클라이언트에서 적재하고자 한 데이터를 적재하는 과정;
상기 워커에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정;
상기 워커에 의해, 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저에 제공하는 과정; 및
상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.According to claim 4,
The step of performing any one of the object creation function, data search function, and data load function based on the received SQL command or information related to the source file,
When the received SQL command is a preset insert query, checking authority for a database based on login information related to the client by a parser and analyzer included in the storage;
performing a parsing and analyzing function for the SQL command by the parser and analyzer when authority check is successful;
storing, by the parser and analyzer, an audit log for the SQL command in one or more blocks among a plurality of blocks, in conjunction with a reader/writer included in the storage;
requesting, by the parser and analyzer, to load data from a planner included in the storage;
checking the meta data based on the data load request by the planner, and inquiring the location of the data;
checking, by the planner, the state of the loader and the state of the reader/writer included in the storage;
requesting, by the planner, to load data from a worker included in the storage based on the SQL command, the location of the checked object, and the checked state of the loader and the reader/writer;
loading data desired to be loaded by the client into the reader/writer by the worker in conjunction with the reader/writer;
changing metadata information according to data loading by the worker;
providing, by the worker, result information related to data loading to the parser and analyzer; and
and storing another audit log related to data loading in one or more other blocks among the plurality of blocks by the parser and analyzer in conjunction with the reader/writer. method.
상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는,
상기 소스 파일과 관련한 정보를 수신할 때, 상기 스토리지에 포함된 로더에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정;
권한 확인에 성공할 때, 상기 로더에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정;
상기 로더에 의해, 파일을 로드하는 과정;
상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지일 때, 상기 로더에 의해, 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회하는 과정;
상기 로더에 의해, 상기 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정;
상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더의 상태 및 상기 체크된 라이터의 상태를 근거로 상기 리더/라이터에 상기 클라이언트에서 적재하고자 한 데이터를 적재하는 과정;
상기 로더에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정; 및
상기 로더에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.According to claim 4,
The step of performing any one of the object creation function, data search function, and data load function based on the received SQL command or information related to the source file,
verifying, by a loader included in the storage, authority to a database based on login information related to the client when receiving information related to the source file;
storing, by the loader, an audit log for information related to the source file in at least one block among a plurality of blocks, in conjunction with a reader/writer included in the storage, when the authority check is successful;
loading a file by the loader;
when the location of the loaded file is the same server or external storage, checking meta data by the loader to inquire the location of an object to be loaded;
checking a state of the loader and a state of the reader/writer by the loader;
By the loader, in conjunction with the reader/writer, the client to the reader/writer based on the information related to the source file, the location of the checked object, the checked loader status, and the checked writer status A process of loading data to be loaded in;
a process of changing meta data information according to data loading by the loader; and
and storing, by the loader, another audit log related to data loading in one or more other blocks among the plurality of blocks, in conjunction with the reader/writer.
상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 근거로 객체 생성 기능, 데이터 조회 기능 및 데이터 적재 기능 중 어느 하나의 기능을 수행하는 단계는,
상기 소스 파일과 관련한 정보를 수신할 때, 상기 스토리지에 포함된 로더에 의해, 상기 클라이언트와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한을 확인하는 과정;
권한 확인에 성공할 때, 상기 로더에 의해, 상기 스토리지에 포함된 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보에 대한 감사 로그를 복수의 블록 중 하나 이상의 블록에 저장하는 과정;
상기 로더에 의해, 파일을 로드하는 과정;
상기 파일에 대한 적재가 스토리지 내 복사일 때, 상기 로더에 의해, 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회하는 과정;
상기 로더에 의해, 상기 로더의 상태와 상기 리더/라이터의 상태를 체크하는 과정;
상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더의 상태 및 상기 체크된 라이터의 상태를 근거로 상기 리더/라이터에서 데이터를 삭제하는 과정;
상기 로더에 의해, 상기 리더/라이터와 연동하여, 상기 클라이언트에서 적재하고자 하는 데이터를 상기 리더/라이터에 적재하는 과정;
상기 로더에 의해, 데이터 적재에 따른 메타 데이터의 정보를 변경하는 과정; 및
상기 로더에 의해, 상기 리더/라이터와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 포함하는 것을 특징으로 하는 스토리지 기반의 DBMS 시스템의 제어 방법.According to claim 4,
The step of performing any one of the object creation function, data search function, and data load function based on the received SQL command or information related to the source file,
verifying, by a loader included in the storage, authority to a database based on login information related to the client when receiving information related to the source file;
storing, by the loader, an audit log for information related to the source file in at least one block among a plurality of blocks, in conjunction with a reader/writer included in the storage, when the authority check is successful;
loading a file by the loader;
when the loading of the file is copying in storage, checking the meta data by the loader and inquiring the location of the object to be loaded;
checking a state of the loader and a state of the reader/writer by the loader;
By the loader, in conjunction with the reader/writer, data is read from the reader/writer based on the information related to the source file, the location of the checked object, the checked loader status, and the checked writer status process of deleting;
loading data to be loaded by the client into the reader/writer by the loader in conjunction with the reader/writer;
a process of changing meta data information according to data loading by the loader; and
A method of controlling a storage-based DBMS system, comprising the step of storing, by the loader, another audit log related to data loading in one or more other blocks among the plurality of blocks, in conjunction with the reader/writer. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130882A KR102499941B1 (en) | 2022-10-12 | 2022-10-12 | System for providing DBMS based on storage and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220130882A KR102499941B1 (en) | 2022-10-12 | 2022-10-12 | System for providing DBMS based on storage and control method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102499941B1 true KR102499941B1 (en) | 2023-02-16 |
Family
ID=85325995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220130882A KR102499941B1 (en) | 2022-10-12 | 2022-10-12 | System for providing DBMS based on storage and control method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102499941B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789027A (en) * | 2010-03-15 | 2010-07-28 | 江苏大学 | Metadata management method based on DBMS and metadata server |
KR20140042013A (en) * | 2012-09-26 | 2014-04-07 | 재단법인 한국데이터베이스진흥원 | Method for managing database security |
KR102013149B1 (en) | 2018-12-27 | 2019-08-27 | 대한민국 | Method for collecting and managing of data and system for executint the method |
-
2022
- 2022-10-12 KR KR1020220130882A patent/KR102499941B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789027A (en) * | 2010-03-15 | 2010-07-28 | 江苏大学 | Metadata management method based on DBMS and metadata server |
KR20140042013A (en) * | 2012-09-26 | 2014-04-07 | 재단법인 한국데이터베이스진흥원 | Method for managing database security |
KR102013149B1 (en) | 2018-12-27 | 2019-08-27 | 대한민국 | Method for collecting and managing of data and system for executint the method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9881170B2 (en) | DBFS permissions using user, role, and permissions flags | |
US9465551B1 (en) | Write horizon data management | |
US7082435B1 (en) | Method and mechanism for implementing and accessing virtual database table structures | |
CN106202452B (en) | Unified data resource management system and method for big data platform | |
US7177883B2 (en) | Method and apparatus for hierarchical storage management based on data value and user interest | |
US20070061542A1 (en) | System for a distributed column chunk data store | |
US8924357B2 (en) | Storage performance optimization | |
US11893009B2 (en) | Blockchain database management system | |
US9720923B2 (en) | System for providing user privilege information associated with secured data | |
CN104603740A (en) | Archival data identification | |
JP5283478B2 (en) | Search system | |
US20140046928A1 (en) | Query plans with parameter markers in place of object identifiers | |
CN104603776A (en) | Archival data storage system | |
KR20090006167A (en) | Permission-based document server | |
US20210326325A1 (en) | Streams on shared database objects | |
CN103067463A (en) | Centralized management system and centralized management method for user root permission | |
CN101582767A (en) | Authorization control method and authorization server | |
KR20130049111A (en) | Forensic index method and apparatus by distributed processing | |
US20220188340A1 (en) | Tracking granularity levels for accessing a spatial index | |
US20070174360A1 (en) | Storage system embedding database | |
KR102499941B1 (en) | System for providing DBMS based on storage and control method thereof | |
US10691757B1 (en) | Method and system for cached document search | |
CN111104408A (en) | Data exchange method and device based on map data and storage medium | |
KR20130126012A (en) | Method and apparatusfor providing report of business intelligence | |
US20020129037A1 (en) | Method for accessing a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |