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 PDF

Info

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
Application number
KR1020220130882A
Other languages
Korean (ko)
Inventor
정우석
김영민
Original Assignee
비코어(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비코어(주) filed Critical 비코어(주)
Priority to KR1020220130882A priority Critical patent/KR102499941B1/en
Application granted granted Critical
Publication of KR102499941B1 publication Critical patent/KR102499941B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User 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

The present invention discloses a storage-based DBMS system and a control method thereof. That is, the present invention creates an object based on storage, retrieves data, and loads data, so as to improve the operational efficiency of the entire system according to parallel distributed processing.

Description

스토리지 기반의 DBMS 시스템 및 그의 제어 방법{System for providing DBMS based on storage and control method thereof}[0001] System for providing DBMS based on storage and control method thereof}

본 발명은 스토리지 기반의 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.

한국등록특허 제10-2013149호 [제목: 데이터 수집 및 관리 방법 및 이를 수행하기 위한 시스템]Korea Patent Registration No. 10-2013149 [Title: Data collection and management method and system for performing it]

본 발명의 목적은 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재하는 스토리지 기반의 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 DBMS system 10 according to an embodiment of the present invention.

도 1에 도시한 바와 같이, 스토리지 기반의 DBMS 시스템(10)은 클라이언트(100) 및 복수의 스토리지(200)로 구성된다. 도 1에 도시된 스토리지 기반의 DBMS 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 스토리지 기반의 DBMS 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 스토리지 기반의 DBMS 시스템(10)이 구현될 수도 있다.As shown in FIG. 1, the storage-based DBMS system 10 is composed of a client 100 and a plurality of storages 200. Not all of the components of the storage-based DBMS system 10 shown in FIG. 1 are essential components, and the storage-based DBMS system 10 may be implemented by more components than those shown in FIG. In addition, the storage-based DBMS system 10 may be implemented with fewer components.

상기 클라이언트(100) 및 상기 스토리지(200)는 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.The client 100 and the storage 200 each include a communication unit (not shown) for performing a communication function with other terminals, a storage unit (not shown) for storing various information and programs (or applications), A display unit (not shown) for displaying various information and program execution results, an audio output unit (not shown) for outputting audio information corresponding to the various information and program execution results, and controlling various components and functions of each terminal It may include a control unit (not shown) and the like for doing so.

상기 클라이언트(또는 단말)(100)는 상기 복수의 스토리지(200) 등과 통신한다.The client (or terminal) 100 communicates with the plurality of storages 200 and the like.

또한, 상기 클라이언트(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 client 100 includes a smart phone, a portable terminal, a mobile terminal, a foldable terminal, a personal digital assistant (PDA), a PMP ( Portable Multimedia Player terminal, telematics terminal, navigation terminal, personal computer, notebook computer, slate PC, tablet PC, ultrabook, wearable device (including wearable devices, for example, watch-type terminals (Smartwatch), glass-type terminals (Smart Glass), HMD (Head Mounted Display), etc.), Wibro terminals, IPTV (Internet Protocol Television) terminals, smart TVs, It can be applied to various terminals such as digital broadcasting terminals, AVN (Audio Video Navigation) terminals, A/V (Audio/Video) systems, and flexible terminals.

또한, 상기 클라이언트(100)는 복수의 스토리지(200) 중에서 프로세스 또는 시스템의 여유가 높은 어느 하나의 스토리지(200)를 통해서 로그인 절차(또는 로그인 기능) 수행한다. 이때, 상기 클라이언트(100)는 미리 등록된 아이디와 비밀번호, 해당 아이디를 포함하는 바코드 또는 QR 코드, 미리 설정된 인증 토큰 등을 이용해서 상기 로그인 절차를 수행할 수 있다.In addition, the client 100 performs a login procedure (or login function) through one storage 200 having a high process or system margin among the plurality of storages 200 . At this time, the client 100 may perform the login procedure using a pre-registered ID and password, a barcode or QR code including the ID, a preset authentication token, and the like.

또한, 상기 클라이언트(100)는 사용자 입력(또는 사용자 선택/터치/제어)에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신한다. 여기서, 상기 SQL 명령어는 create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query 등을 포함한다. 또한, 상기 소스 파일과 관련한 정보는 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마(schema), 데이터베이스, 테이블, 적재 파일 포맷과 구분자, 파티션 등에 대한 정보를 포함한다.In addition, the client 100 receives information related to a SQL command or source file according to user input (or user selection/touch/control). Here, the SQL commands include create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query, and the like. In addition, the information related to the source file includes information on the source file hostname, port, source file format and separator, schema, database, table, load file format and separator, partition, and the like.

또한, 상기 클라이언트(100)는 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 상기 스토리지(200)에 전송한다. 이때, 상기 클라이언트(100)는 상기 스토리지(200)에서 제공하는 전용 앱을 통해, 상기 SQL 명령어 또는 소스 파일과 관련한 정보를 수신하고, 상기 수신된 SQL 명령어 또는 소스 파일과 관련한 정보를 상기 스토리지(200)에 전송할 수 있다.In addition, the client 100 transmits information related to the received SQL command or source file to the storage 200 . At this time, the client 100 receives information related to the SQL command or source file through a dedicated app provided by the storage 200, and transmits information related to the received SQL command or source file to the storage 200. ) can be transmitted.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 객체를 생성하기 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 객체를 생성하기 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the client 100 receives information indicating that there is no right to create an object provided from the storage 200 in response to a previously input SQL command (including, for example, create query, etc.), and receives the received information. Displays (or outputs) information indicating that there is no permission to create the specified object.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 객체 생성 결과를 수신하고, 상기 수신된 객체 생성 결과를 표시(또는 출력)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives an object creation result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, create query, etc.), The received object creation result is displayed (or output). Here, the object creation result includes information on whether or not the object to be created in the client 100 is created (eg, object creation failure information, object creation success information, etc.), date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 조회를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 조회를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the client 100 receives information indicating that there is no right to retrieve data provided from the storage 200 in response to a previously input SQL command (including, for example, a select query), and the received Displays (or outputs) information indicating that there is no authority for data inquiry.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 조회 결과를 수신하고, 상기 수신된 데이터 조회 결과를 표시(또는 출력)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a data search result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (eg, including a select query, etc.), The received data inquiry result is displayed (or output). Here, the data search result includes information on the object to be searched by the client 100 (eg, including information on object search failure when object search fails, information on the corresponding object when object search succeeds, etc.), date and time, and including visual information, etc.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query, update query 등 포함)에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 적재를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the client 100 receives information indicating that there is no right to load data provided from the storage 200 in response to a previously entered SQL command (eg, an insert query, an update query, etc.), Displays (or outputs) information indicating that there is no authority for loading the received data.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query/update query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a data load result provided from the storage 200 (or the parser and analyzer 220) in response to a previously entered SQL command (eg, insert query/update query, etc.). and displays (or outputs) the received data load result. Here, the data load result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data load failure information, data load success information, etc.), date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)로부터 제공되는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 수신하고, 상기 수신된 데이터 적재를 위한 권한이 없음을 나타내는 정보를 표시(또는 출력)한다.In addition, the client 100 receives information indicating that there is no authority for loading data provided from the storage 200 in response to the previously input information related to the source file, and the authority for loading the received data is Displays (or outputs) information indicating that there is none.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 delete query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a table data deletion result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, a delete query). and displays (or outputs) the data deletion result in the received table. Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, data deletion date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 truncate query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a data deletion result of a table provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, truncate query, etc.) and displays (or outputs) the data deletion result in the received table. Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, data deletion date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 drop query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 테이블의 데이터 삭제 결과를 수신하고, 상기 수신된 테이블에서의 데이터 삭제 결과를 표시(또는 출력)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 삭제된 데이터와 관련한 메타 정보, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a table data deletion result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, a drop query). and displays (or outputs) the data deletion result in the received table. Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, meta information related to the deleted data, data deletion date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 grant query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 권한 할당 결과를 수신하고, 상기 수신된 권한 할당 결과를 표시(또는 출력)한다. 여기서, 상기 권한 할당 결과는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스명, 권한을 할당하고자 하는 특정 클라이언트(100)에 대한 정보, 권한 할당 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a permission assignment result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (eg, including a grant query, etc.), Displays (or outputs) the received authority allocation result. Here, the permission allocation result includes the database name for providing (or assigning) the permission to the client 100, information on a specific client 100 to which the permission is to be assigned, date and time information of permission assignment, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 revoke query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 권한 해제 결과를 수신하고, 상기 수신된 권한 해제 결과를 표시(또는 출력)한다. 여기서, 상기 권한 해제 결과는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스명, 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 대한 정보, 권한 해제 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives a permission release result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, revoke query, etc.), Displays (or outputs) the received permission release result. Here, the permission release result includes a database name for releasing permission from the client 100, information on another specific client 100 to release permission, date and time information of permission release, and the like.

또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 다른 데이터 적재 결과를 수신하고, 상기 수신된 다른 데이터 적재 결과를 표시(또는 출력)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the client 100 receives another data load result provided from the storage 200 (or the loader 210) in response to the information related to the previously provided source file, and the received other data load result display (or output). Here, the other data loading result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data loading failure information, data loading success information, etc.), date and time information, etc. .

상기 스토리지(200)는 상기 클라이언트(100) 등과 통신한다.The storage 200 communicates with the client 100 and the like.

또한, 상기 스토리지(200)는 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있다. 또한, 상기 스토리지(200)에는 네트워크 부하 분산 메커니즘, 내지 해당 스토리지(200)가 인터넷 또는 다른 네트워크상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로 구현될 수 있다. 또한, 네트워크는 http/https 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있다. 나아가, 상기 클라이언트(100) 및 상기 스토리지(200) 간의 연결은 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다. 또한, 상기 스토리지(200)는 복수의 데이터베이스 서버를 포함할 수 있으며, 이러한 데이터베이스 서버가 분산 데이터베이스 서버 아키텍처를 비롯한 임의의 유형의 네트워크 연결을 통해 상기 스토리지(200)와 별도로 연결되는 방식으로 구현될 수 있다.Also, the storage 200 may be implemented in the form of a web server, database server, proxy server, or the like. In addition, one or more of a network load balancing mechanism and various software enabling the corresponding storage 200 to operate on the Internet or other networks may be installed in the storage 200, and through this, it may be implemented as a computerized system. can Also, the network can be an http/https network, a private line, an intranet or any other network. Furthermore, the connection between the client 100 and the storage 200 may be connected through a secure network to prevent data from being attacked by any hacker or other third party. In addition, the storage 200 may include a plurality of database servers, and these database servers may be implemented in a manner that is separately connected to the storage 200 through any type of network connection including a distributed database server architecture. there is.

또한, 상기 스토리지(200)는 CPU(미도시), 디스크(DISK)(미도시), 메모리(Memory)(미도시), DBMS(Database Management System: 데이터베이스 관리 시스템)(미도시) 등을 포함(또는 구성)한다. 여기서, 상기 DBMS는 다양한 서버 및/또는 장치들로부터 수집된 복수의 데이터(또는 테이블)를 저장(또는 관리)한다.In addition, the storage 200 includes a CPU (not shown), a disk (DISK) (not shown), a memory (not shown), a database management system (DBMS) (not shown), and the like ( or configuration). Here, the DBMS stores (or manages) a plurality of data (or tables) collected from various servers and/or devices.

또한, 도 1에 도시한 바와 같이, 상기 스토리지(200)는 로더(210), 파서 앤 애널라이저(220), 플래너(230), 워커(240), 리더/라이터(250) 및 복수의 블록(260)으로 구성된다. 도 1에 도시된 스토리지(200)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 스토리지(200)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 스토리지(200)가 구현될 수도 있다. 여기서, 상기 복수의 스토리지(200)는 분산 스토리지 또는 분산 시스템으로 구성할 수 있다.1, the storage 200 includes a loader 210, a parser and analyzer 220, a planner 230, a worker 240, a reader/writer 250, and a plurality of blocks 260. ) is composed of Not all of the components of the storage 200 shown in FIG. 1 are essential components, and the storage 200 may be implemented with more components than those shown in FIG. 1 or fewer components. Storage 200 may also be implemented. Here, the plurality of storages 200 may be configured as a distributed storage or a distributed system.

본 발명에서 사용되는 용어에 대한 개념을 정리하면 다음과 같다.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 storage 200 may perform meta management on the corresponding storage.

여기서, 상기 메타 관리는 스토리지 상에서 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 storages 200 having a high process or system margin among the plurality of storages 200 may perform a login procedure (or login function). At this time, the storage 200 may perform the login procedure using an ID and password pre-registered with the client 100, a barcode or QR code including the corresponding ID, a preset authentication token, and the like.

또한, 상기 스토리지(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 storage 200 receives information related to a SQL command or source file according to a user input (or user selection/touch/control) of the client 100 . Here, the SQL commands include create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query, and the like. In addition, the information related to the source file includes information on the source file hostname, port, source file format and separator, schema, database, table, load file format and separator, partition, and the like.

이때, 상기 스토리지(200)는 상기 수신된 SQL 명령어에 대해서 형식 검사(또는 오류 검사)를 수행하고, 해당 SQL 명령어의 형식에 오류가 있는 경우 해당 오류 정보를 상기 클라이언트(100)에 제공한다.At this time, the storage 200 performs a format check (or error check) on the received SQL command, and provides corresponding error information to the client 100 when there is an error in the format of the corresponding SQL command.

또한, 상기 스토리지(200)는 상기 수신된 소스 파일과 관련한 정보에 대해서 형식 검사(또는 오류 검사)를 수행하고, 해당 소스 파일과 관련한 정보의 형식에 오류가 있는 경우 해당 오류 정보를 상기 클라이언트(100)에 제공한다.In addition, the storage 200 performs a format check (or error check) on the information related to the received source file, and if there is an error in the format of the information related to the source file, the corresponding error information is sent to the client 100. ) is provided.

상기 로더(loader)(210)는 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The loader 210 communicates with the parser and analyzer 220 , the planner 230 , the worker 240 , the reader/writer 250 , and the plurality of blocks 260 .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 클라이언트(100)에서 적재하고자 하는 파일을 적재하는 기능을 수행한다.In addition, the loader 210 performs a function of loading a file to be loaded in the client 100 by interworking with the reader/writer 250 .

또한, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 로더(210)는 상기 수신된 소스 파일과 관련한 정보에 대응하여 상기 클라이언트(100)에서 적재 요청한 데이터(또는 소스 파일)를 상기 스토리지(200)(또는 데이터베이스)에 적재하고, 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.In addition, when information related to the source file is received, the loader 210 transfers the data (or source file) requested by the client 100 to the storage 200 in response to the received information related to the source file. (or database), and provides (or transmits) the data loading result to the client 100.

즉, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 로더(210)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when information related to the source file is received, the loader 210 checks database authority (eg, schema, database, table, etc. authority) based on login information related to the corresponding client 100 do.

상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 없는/미설정된 상태 경우), 상기 로더(210)는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the above check, if the authorization check fails (or if the login information related to the client 100 does not have data loading / database authorization / is not set), the loader 210 does not have authorization to load data Provides (or transmits) information indicating the to the client 100.

또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 is in a state where the data load/authority for the database is present/set), the loader 210 reads the reader/writer ( 250), an audit log for information related to a corresponding source file is stored in one block 260 among the plurality of blocks 260.

또한, 상기 로더(210)는 파일(또는 상기 소스 파일)을 로드한다.Also, the loader 210 loads a file (or the source file).

상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.When the location of the loaded file is the same server or external storage, the loader 210 checks the meta data and inquires (or checks) the location of the object to be loaded.

또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the loader 210 checks the state of the loader 210 (including, for example, process utilization rate/throughput rate, etc.) and the state of the reader/writer 250 (including, for example, process utilization rate/throughput rate, etc.) .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, the loader 210 interworks with the reader/writer 250 to obtain information related to the source file, the location of the checked object, the state of the checked loader 210, and the checked writer 250. The data (or the source file) to be loaded in the corresponding client 100 is loaded (or written) into the reader/writer 250 based on the state of .

또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the loader 210 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the loader 210 interworks with the reader/writer 250 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 로더(210)는 상기 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)의 적재 성공 여부에 대한 정보(예를 들어 데이터/소스 파일 적재 실패 정보, 데이터/소스 파일 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the loader 210 provides (or transmits) the data loading result to the client 100 . Here, the data loading result is information on whether the data (or the source file) to be loaded by the client 100 has been successfully loaded (for example, data/source file loading failure information, data/source file loading success information, etc.) including), date and time information, etc.

또한, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.In addition, when the loading of the file is copying in the storage, the loader 210 checks meta data and inquires (or checks) the location of the object to be loaded.

또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the loader 210 checks the state of the loader 210 (including, for example, process utilization rate/throughput rate, etc.) and the state of the reader/writer 250 (including, for example, process utilization rate/throughput rate, etc.) .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 리더/라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에서 데이터(또는 디렉터리/파일)를 삭제한다.In addition, the loader 210 interworks with the reader/writer 250 to obtain information related to the source file, the location of the checked object, the checked state of the loader 210, and the reader/writer 250. Data (or directories/files) are deleted from the reader/writer 250 based on the status of .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the loader 210 interworks with the reader/writer 250 to load (or record).

또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the loader 210 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the loader 210 interworks with the reader/writer 250 to store another audit log related to data loading in another one or more blocks 260 among the plurality of blocks 260 .

또한, 상기 로더(210)는 다른 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the loader 210 provides (or transmits) other data loading results to the client. Here, the other data loading result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data loading failure information, data loading success information, etc.), date and time information, etc. .

상기 파서 앤 애널라이저(parser & analyzer)(220)는 상기 로더(210), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The parser & analyzer 220 communicates with the loader 210, the planner 230, the worker 240, the reader/writer 250, and the plurality of blocks 260.

또한, 상기 파서 앤 애널라이저(220)는 사용자 인증 및 권한 체크 등을 수행하고, 상기 클라이언트(100)(또는 해당 클라이언트(100)의 사용자)에서 요청한 SQL 문장을 파싱/분석하여 어떤 파일/디렉터리 등을 읽어올지를 정하는 기능을 수행한다.In addition, the parser and analyzer 220 performs user authentication and authority checks, and parses/analyzes SQL statements requested by the client 100 (or the user of the client 100) to find a certain file/directory, etc. Performs a function to decide whether to read.

또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.In addition, when the received SQL command is a preset create query, the parser and analyzer 220 has database authority (for example, schema, database, table, etc.) based on login information related to the corresponding client 100. permission).

상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(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 client 100 has no authorization for the database / is not set), the storage 200 (or the storage included in the storage 200) The parser and analyzer 220 provides (or transmits) information indicating that there is no right to create an object to the client 100 .

또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 has authority for the database/is set), the parser and analyzer 220 executes an SQL command (or create query). ) to perform parsing and analysis functions.

또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 works with the reader/writer 250 included in the storage 200 to store audit logs for corresponding SQL commands (or create queries) in one or more of the plurality of blocks 260. Save to block 260.

또한, 상기 파서 앤 애널라이저(220)는 상기 플래너(230)에 객체 생성을 요청한다.In addition, the parser and analyzer 220 requests the planner 230 to create an object.

또한, 상기 객체 생성 요청에 따라 해당 객체가 생성된 후, 상기 파서 앤 애널라이저(220)는 상기 워커(240)로부터 제공되는 객체 생성과 관련한 결과 정보를 수신한다.In addition, after a corresponding object is created according to the object creation request, the parser and analyzer 220 receives result information related to object creation provided from the worker 240 .

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.Also, the parser and analyzer 220 works with the reader/writer 250 to store other audit logs related to previously created objects in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 객체 생성 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and analyzer 220 provides (or transmits) the object creation result to the client. Here, the object creation result includes information on whether or not the object to be created in the client 100 is created (eg, object creation failure information, object creation success information, etc.), date and time information, and the like.

상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.When the received SQL command is a preset select query, the parser and analyzer 220 grants database authority (eg, schema, database, table, etc. authority) based on login information related to the corresponding client 100. Check the

상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터조회/데이터베이스에 대한 권한이 없는/미설정된 상태인 경우), 상기 파서 앤 애널라이저(220)는 데이터 조회를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the check, if the authorization check fails (or if the login information related to the client 100 does not have data retrieval/authority for the database/is not set), the parser and analyzer 220 is used for data retrieval. Information indicating that there is no authority is provided (or transmitted) to the client 100 .

또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 is in a state where the authorization for data inquiry/database is present/set), the parser and analyzer 220 executes an SQL command ( or select query) to perform parsing and analysis functions.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store an audit log for a corresponding SQL command (or select query) in one or more blocks 260 among the plurality of blocks 260. do.

또한, 상기 파서 앤 애널라이저(220)는 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치(또는 조회하고자 하는 데이터와 관련해서 인덱스 및 데이터 위치)를 조회한다. 이때, 메타 데이터 조회 시, 해당 정보가 암호화되어 저장된 상태인 경우, 상기 파서 앤 애널라이저(220)는 암호화 키를 받아온 후, 해당 암호화 키를 이용해서 조회하고자 하는 데이터와 관련한 인덱스 및 데이터 위치를 조회할 수도 있다.In addition, the parser and analyzer 220 checks meta data based on a data search request, and searches for an index and data location (or an index and data location in relation to data to be searched). At this time, when the metadata is retrieved, if the corresponding information is encrypted and stored, the parser and analyzer 220 retrieves the encryption key and then searches the index and data location related to the data to be retrieved using the encryption key. may be

또한, 상기 파서 앤 애널라이저(220)는 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 플래너(230)에 데이터 플랜을 요청한다.Also, the parser and analyzer 220 requests a data plan from the planner 230 based on the searched index and data location.

또한, 상기 파서 앤 애널라이저(220)는 상기 워커(240)로부터 제공되는(또는 전송되는) 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 최종 데이터 등을 수신한다.In addition, the parser and analyzer 220 provides (or transmits) information related to the final data recorded in the reader/writer 250 provided (or transmitted) by the worker 240 (for example, block information in which the final data is recorded, block location information, etc.), the final data, etc. are received.

또한, 상기 최종 데이터와 관련한 정보를 수신한 경우, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보 등을 근거로 상기 리더/라이터(250)로부터 해당 최종 데이터를 읽는다(또는 리딩한다).In addition, when information related to the final data is received, the parser & analyzer 220 receives the final data from the reader/writer 250 based on the information related to the final data recorded in the reader/writer 250. Read (or read) data.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store another audit log related to the last data read in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 조회 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the parser and analyzer 220 provides (or transmits) the data search result to the client. Here, the data retrieval result includes information on the object to be queried by the client 100 (eg, information on object retrieval failure when object retrieval fails, information on the corresponding object when object retrieval succeeds, etc.), date and including visual information, etc.

상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.If the received SQL command is a preset insert query (or update query), the parser and analyzer 220 performs database authority (eg, schema, database, privileges on tables, etc.)

상기 확인 결과, 권한 확인에 실패한 경우(또는 해당 클라이언트(100)와 관련한 로그인 정보가 데이터적재/데이터베이스에 대한 권한이 없는/미설정된 상태인 경우), 상기 스토리지(200)(또는 상기 스토리지(200)에 포함된 파서 앤 애널라이저(220))는 데이터 적재를 위한 권한이 없음을 나타내는 정보를 상기 클라이언트(100)에 제공(또는 전송)한다.As a result of the above check, if permission check fails (or if the login information related to the client 100 does not have data load/database permission/unset), the storage 200 (or the storage 200) The parser and analyzer 220 included in ) provides (or transmits) information indicating that there is no authority for data loading to the client 100 .

또한, 상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 is in a state where the authorization for data loading/database is present/set), the parser and analyzer 220 executes an SQL command ( Or perform parsing and analysis functions for insert query/update query).

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 insert query/update query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to record an audit log for a corresponding SQL command (or insert query/update query) at one or more blocks 260 among the plurality of blocks 260. ) is stored in

또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 데이터 적재를 요청한다.In addition, the parser and analyzer 220 requests the planner 230 included in the storage 200 to load data.

또한, 상기 파서 앤 애널라이저(220)는 데이터 적재에 따라 상기 워커(240)로부터 제공되는 데이터 적재와 관련한 결과 정보를 수신한다.In addition, the parser and analyzer 220 receives result information related to data loading provided from the worker 240 according to data loading.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and analyzer 220 provides (or transmits) the data loading result to the client. Here, the data loading result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data loading failure information, data loading success information, etc.), date and time information, and the like.

상기 플래너(planner)(230)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 워커(240), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The planner 230 communicates with the loader 210 , the parser and analyzer 220 , the worker 240 , the reader/writer 250 , and the plurality of blocks 260 .

또한, 상기 플래너(230)는 분석 요청된 SQL에 따라, 인덱스(index) 또는 데이터 통계 수치를 참조하여, 데이터를 읽어오는 순서와 머지(merge)/리듀스(reduce)하는 순서들을 정하는 기능을 수행한다.In addition, the planner 230 performs a function of determining the data read order and merge/reduce order by referring to indexes or data statistical values according to the SQL requested for analysis. do.

또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치(또는 생성하고자 하는 객체가 메타 데이터에 존재하는지 여부/생성하고자 하는 객체와 관련한 디렉터리 또는 파일이 존재하는지 여부)를 확인한다.In addition, if the received SQL command is a preset create query, the planner 230 checks meta data based on the object creation request from the parser and analyzer 220, and determines the location of the object (or the object to be created). Check whether the object exists in the metadata/whether a directory or file related to the object to be created exists).

또한, 상기 플래너(230)는 상기 스토리지(200)에 포함된 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 각각 체크한다.In addition, the planner 230 determines the status of the loader 210 included in the storage 200 (eg, process utilization/throughput) and the status of the reader/writer 250 (eg, process utilization/throughput). including processing rate, etc.) are checked respectively.

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태와 상기 리더/라이터(250)의 상태 등을 근거로 상기 스토리지(200)에 포함된 워커(240)에 객체 생성을 요청한다.In addition, the planner 230 determines information contained in the storage 200 based on the SQL command, the location of the checked object, the checked state of the loader 210 and the reader/writer 250, and the like. The worker 240 is requested to create an object.

또한, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 데이터 플랜 요청에 따라, 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, when the received SQL command is a preset select query, the planner 230 determines the status of the loader 210 (for example, process usage rate / processing rate, etc.) is checked.

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 체크된 로더(210)의 상태 등을 근거로 상기 워커(240)에 데이터 로드를 요청한다. 이때, 상기 플래너(230)는 컴포넌트 상태(예를 들어 상기 로더(210)의 상태 등 포함)를 체크하여, 사용량이 적은 시스템의 컴포넌트에 데이터 로드를 요청하여, 전체 시스템의 운영 효율을 향상시킬 수 있다.In addition, the planner 230 requests the worker 240 to load data based on the SQL command and the checked state of the loader 210 . At this time, the planner 230 checks the component state (including, for example, the state of the loader 210, etc.) and requests a data load to a component of the system with low usage, thereby improving the operational efficiency of the entire system. there is.

또한, 상기 수신된 SQL 명령어가 미리 설정된 insert query(또는 update query)인 경우, 상기 플래너(230)는 상기 파서 앤 애널라이저(220)에서의 데이터 적재 요청에 따라, 메타 데이터를 확인하여, 데이터의 위치(또는 적재하고자 하는 객체가 메타 데이터에 존재하지 않는지 여부)를 조회(또는 확인)한다.In addition, when the received SQL command is a preset insert query (or update query), the planner 230 checks meta data according to a data load request from the parser and analyzer 220, and locates the data. (or whether the object to be loaded does not exist in meta data) is queried (or checked).

또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the planner 230 checks the status of the loader 210 (including, for example, process utilization/throughput) and the status of the reader/writer 250 (including, for example, process utilization/throughput). .

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 리더/라이터(250)의 상태 등을 근거로 상기 워커(240)에 데이터 적재를 요청한다.In addition, the planner 230 determines the worker 240 based on the SQL command, the location of the checked object, the checked state of the loader 210, the checked state of the reader/writer 250, and the like. Request data loading.

상기 워커(worker)(240)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 리더/라이터(250), 상기 복수의 블록(260) 등과 통신한다.The worker 240 communicates with the loader 210 , the parser and analyzer 220 , the planner 230 , the reader/writer 250 , and the plurality of blocks 260 .

또한, 상기 워커(240)는 상기 리더/라이터(250)에 데이터 저장/데이터 읽기를 요청하고, 읽은 데이터 중에서 필요한 데이터 부분만을 읽어오거나, 읽어온 데이터를 머지/리듀스하여, 요청된 SQL 문법에 맞는 최종 데이터를 만드는 기능을 수행한다.In addition, the worker 240 requests the reader/writer 250 to store/read data, reads only a necessary part of the read data, or merges/reduces the read data to match the requested SQL syntax. It performs the function of creating the final data that fits.

또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 워커(240)는 상기 플래너(230)의 객체 생성 요청을 근거로 상기 리더/라이터(250)에 객체 생성을 요청한다.Also, when the received SQL command is a preset create query, the worker 240 requests the reader/writer 250 to create an object based on the object creation request of the planner 230 .

또한, 상기 객체 생성 요청에 따라 상기 리더/라이터(250)에서 관련된 객체가 생성된 경우, 상기 워커(240)는 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록한다.In addition, when a related object is created in the reader/writer 250 according to the object creation request, the worker 240 registers object mapping related to the created object in the metadata.

또한, 상기 워커(240)는 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the worker 240 provides result information related to object creation to the parser and analyzer 220 .

상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 워커(240)는 상기 플래너(230)의 데이터 로드 요청에 따라 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.When the received SQL command is a preset select query, the worker 240 determines the status of the reader/writer 250 (eg, process utilization/throughput, etc.) according to the planner 230's data load request. check the

또한, 상기 워커(240)는 상기 체크된 리더/라이터(250)의 상태를 근거로 상기 리더/라이터(250)로부터 데이터(또는 상기 select query에 대응하는 데이터)를 로드한다.In addition, the worker 240 loads data (or data corresponding to the select query) from the reader/writer 250 based on the checked state of the reader/writer 250 .

또한, 상기 워커(240)는 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 해당 클라이언트(100)에서 조회하고자 한 해당 select query에 맞는 최종 데이터를 생성한다(또는 만든다).In addition, the worker 240 reduces only a necessary data part according to the select query among the loaded data to generate (or create) final data suitable for the corresponding select query that the corresponding client 100 intends to retrieve. ).

또한, 상기 워커(240)는 상기 생성된(또는 만든) 최종 데이터를 상기 리더/라이터(250)에 기록(또는 라이트/write)한다.In addition, the worker 240 records (or writes/writes) the generated (or created) final data to the reader/writer 250 .

또한, 상기 워커(240)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 생성된 최종 데이터 등을 상기 파서 앤 애널라이저(220)에 제공(또는 전송)한다. 이때, 데이터양이 적은 경우(또는 상기 생성된 최종 데이터의 용량이 미리 설정된 기준값 이하인 경우), 상기 워커(240)는 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저(220)에 통신으로 직접 전달한다. 또한, 데이터양이 많은 경우(또는 상기 생성된 최종 데이터의 용량이 상기 기준값을 초과한 경우), 상기 워커(240)는 상기 생성된 최종 데이터의 전송 대신 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함)를 상기 파서 앤 애널라이저(220)에 전달한다.In addition, the worker 240 transmits information related to the final data recorded in the reader/writer 250 (eg, including block information in which the final data is recorded, block location information, etc.), the generated final data, and the like. Provided (or transmitted) to the parser and analyzer 220. At this time, when the amount of data is small (or when the capacity of the generated final data is less than a preset reference value), the worker 240 directly transmits the generated final data to the parser and analyzer 220 through communication. In addition, when the amount of data is large (or when the capacity of the generated final data exceeds the reference value), the worker 240 instead of transmitting the generated final data, the final data recorded in the reader/writer 250 Data-related information (eg, block information in which the final data is recorded, block location information, etc.) is delivered to the parser and analyzer 220 .

또한, 상기 수신된 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 worker 240 interworks with the reader/writer 250 according to the data load request of the planner 230, / Loads (or writes) the data to be loaded in the corresponding client 100 into the writer 250. At this time, the table must be created in advance, and the number of columns in the table and the separator in the file must be the same. Also, if a partition exists, the partition must be specified.

또한, 상기 워커(240)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the worker 240 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 워커(240)는 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the worker 240 provides result information related to data loading to the parser and analyzer 220 .

상기 리더/라이터(reader/writer)(250)는 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 복수의 블록(260) 등과 통신한다.The reader/writer 250 communicates with the loader 210, the parser and analyzer 220, the planner 230, the worker 240, and the plurality of blocks 260.

또한, 상기 리더/라이터(250)는 분산 스토리지(200)에 데이터를 파일에 직접 저장 또는 읽어오는 기능을 수행한다.In addition, the reader/writer 250 performs a function of directly storing or reading data into a file in the distributed storage 200 .

또한, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, when the received SQL command is a preset create query, the reader/writer 250 interworks with the parser and analyzer 220 to create an audit log for the corresponding SQL command (or create query) in the plurality of Store in one or more blocks 260 of the blocks 260.

또한, 상기 리더/라이터(250)는 상기 워커(240)의 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체(또는 매핑된 디렉터리/파일)를 생성한다.In addition, the reader/writer 250 creates an object (or mapped directory/file) related to the SQL command based on the object creation request of the worker 240.

또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/writer 250 works with the parser and analyzer 220 to store other audit logs related to previously created objects in one or more other blocks 260 among the plurality of blocks 260 .

이와 같이, 상기 수신된 SQL 명령어가 미리 설정된 create query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 create query)에 대응하는 객체(또는 데이터베이스 객체)(예를 들어 데이터베이스, 테이블, 파티션 등 포함)를 생성하고, 객체 생성 결과(또는 데이터베이스 객체 생성 결과)를 상기 클라이언트(100)에 제공(또는 전송)한다.As such, when the received SQL command is a preset create query, the storage 200 stores an object (or database object) (eg, database, table, partition) corresponding to the received SQL command (or create query). etc.) is created, and the object creation result (or database object creation result) is provided (or transmitted) to the client 100.

상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.When the received SQL command is a preset select query, the reader/writer 250 interworks with the parser and analyzer 220 to write an audit log for the corresponding SQL command (or select query) to the plurality of blocks ( 260) in one or more blocks 260.

또한, 상기 리더/라이터(250)는 상기 워커(240)와 연동하여, 해당 워커(240)에서 생성된 최종 데이터를 기록(또는 적재)한다.In addition, the reader/writer 250 interworks with the worker 240 to record (or load) final data generated by the corresponding worker 240 .

또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 상기 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/writer 250 interworks with the parser and analyzer 220 to store another audit log related to the final data in one or more other blocks 260 among the plurality of blocks 260 .

이와 같이, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 스토리지(200)는 상기 수신된 SQL 명령어(또는 select query)에 대응하는 데이터를 조회하고, 데이터 조회 결과를 상기 클라이언트(100)에 제공(또는 전송)한다.As such, when the received SQL command is a preset select query, the storage 200 searches for data corresponding to the received SQL command (or select query), and sends the data search result to the client 100. Provide (or send).

또한, 상기 수신된 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/writer 250 interworks with the parser and analyzer 220 to generate the corresponding SQL command (or insert query/update query) An audit log for is stored in one or more blocks 260 of the plurality of blocks 260 .

또한, 상기 리더/라이터(250)는 상기 워커(240)와 연동하여, 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터를 적재(또는 기록)한다.In addition, the reader/writer 250 interworks with the worker 240 to load (or write) data to be loaded in the corresponding client 100 into the reader/writer 250 .

또한, 상기 리더/라이터(250)는 상기 파서 앤 애널라이저(220)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/writer 250 interworks with the parser and analyzer 220 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

이와 같이, 상기 수신된 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 storage 200 responds to the received SQL command (or insert/update query) by requesting a load from the client 100. Data is loaded into the storage 200 (or database), and data loading results are provided (or transmitted) to the client 100 .

또한, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 리더/라이터(250)는 데이터 적재 여부에 대한 권한 확인 후, 상기 로더(210)와 연동하여, 해당 소스 파일과 관련한 정보에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, when information related to the source file is received, the reader/writer 250 checks the authority for data loading, and then creates an audit log for the information related to the source file in conjunction with the loader 210. It is stored in one or more blocks 260 of the plurality of blocks 260.

또한, 상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, when the location of the loaded file is the same server or external storage, the reader/writer 250 interworks with the loader 210 to obtain information related to the source file, the location of the identified object, and the check Load (or write) the data (or the source file) to be loaded by the corresponding client 100 into the reader/writer 250 based on the checked loader 210 state, the checked writer 250 state, etc. )do.

또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/writer 250 interworks with the loader 210 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

이와 같이, 상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 동일 서버는 파일을 직접 읽고, 외부 시스템(또는 외부 스토리지)은 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/writer 250 interworks with the loader 210 to obtain information related to the source file, the location of the checked object, and the checked loader ( Based on the state of 210), the state of the reader/writer 250, etc., data (or directory/file) is deleted from the reader/writer 250.

또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the reader/writer 250 interworks with the loader 210 to load data (or directory/file/source file) to be loaded in the corresponding client 100 into the reader/writer 250 (or record).

또한, 상기 리더/라이터(250)는 상기 로더(210)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the reader/writer 250 interworks with the loader 210 to store another audit log related to data loading in another one or more blocks 260 among the plurality of blocks 260 .

이와 같이, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 동일 디렉터리 또는 파일이 존재하는 경우에는 해당 디렉터리 또는 파일을 삭제한 후 적재할 수 있다.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 storage 200 transmits the data (or source file) requested by the client 100 to be loaded in response to the received information related to the source file. 200 (or database), and provides (or transmits) the data loading result to the client 100.

또한, 상기 리더/라이터(250)는 암호화 키를 이용해서 정보(또는 데이터)에 대한 암호화 기능을 수행할 수 있다.In addition, the reader/writer 250 may perform an encryption function for information (or data) using an encryption key.

또한, 상기 리더/라이터(250)는 상기 암호화 키에 대응하는 복호화 키를 이용해서 상기 암호화된 정보에 대한 복호화 기능을 수행할 수 있다.Also, the reader/writer 250 may perform a decryption function for the encrypted information using a decryption key corresponding to the encryption key.

상기 복수의 블록(260)은 상기 로더(210), 상기 파서 앤 애널라이저(220), 상기 플래너(230), 상기 워커(240), 상기 리더/라이터(250) 등과 통신(또는 연결)한다.The plurality of blocks 260 communicate with (or connect to) the loader 210, the parser and analyzer 220, the planner 230, the worker 240, the reader/writer 250, and the like.

또한, 상기 복수의 블록(260) 중 일부 블록(260)은 상기 로더(210) 또는 상기 파서 앤 애널라이저(220)의 제어에 의해, 감사 로그를 기록한다.Also, some blocks 260 among the plurality of blocks 260 record audit logs under the control of the loader 210 or the parser and analyzer 220 .

또한, 상기 복수의 블록(260) 중 다른 일부 블록(260)은 상기 로더(210) 또는 상기 파서 앤 애널라이저(220)의 제어에 의해, 데이터를 기록(또는 적재)한다.Also, some of the blocks 260 among the plurality of blocks 260 record (or load) data under the control of the loader 210 or the parser and analyzer 220 .

또한, 상기 수신된 SQL 명령어가 미리 설정된 delete query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터만을 삭제하며, 해당 데이터와 관련한 메타 정보를 삭제하지 않는다.Also, when the received SQL command is a preset delete query, the storage 200 performs a delete function for table data to be deleted by the client 100 . At this time, the storage 200 deletes only data of the table, and does not delete meta information related to the data.

또한, 상기 스토리지(200)는 해당 테이블의 데이터 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the storage 200 generates a table data deletion result according to data deletion of the corresponding table, and provides (or transmits) the created table data deletion result to the client 100 . Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, data deletion date and time information, and the like.

또한, 상기 수신된 SQL 명령어가 미리 설정된 truncate query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터만을 삭제하며, 해당 데이터와 관련한 메타 정보를 삭제하지 않는다. 여기서, 상기 delete query와 상기 truncate query의 차이점은 해당 delete querydp 의해 삭제된 데이터는 나중에 복원을 위하여 휴지통(또는 임시 삭제 파일 보관 영역)에 이동 후, 미리 설정된 기간이 지나면 삭제된다.Also, when the received SQL command is a preset truncate query, the storage 200 performs a delete function for table data to be deleted by the client 100 . At this time, the storage 200 deletes only data of the table, and does not delete meta information related to the data. Here, the difference between the delete query and the truncate query is that data deleted by the corresponding delete query dp is moved to the recycle bin (or temporarily deleted file storage area) for later restoration and then deleted after a preset period of time.

또한, 상기 스토리지(200)는 해당 테이블의 데이터 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the storage 200 generates a table data deletion result according to data deletion of the corresponding table, and provides (or transmits) the created table data deletion result to the client 100 . Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, data deletion date and time information, and the like.

또한, 상기 수신된 SQL 명령어가 미리 설정된 drop query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 삭제하고자 한 테이블의 데이터에 대한 삭제 기능을 수행한다. 이때, 상기 스토리지(200)는 상기 테이블의 데이터와 함께 해당 테이블의 데이터와 관련한 메타 정보도 삭제한다.Also, when the received SQL command is a preset drop query, the storage 200 performs a delete function for table data to be deleted by the client 100 . At this time, the storage 200 deletes meta information related to the data of the corresponding table along with the data of the table.

또한, 상기 스토리지(200)는 해당 테이블의 데이터 및 관련 메타 정보 삭제에 따른 테이블의 데이터 삭제 결과를 생성하고, 상기 생성된 테이블의 데이터 삭제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 테이블의 데이터 삭제 결과는 상기 클라이언트(100)에서 삭제하고자 한 테이블명, 삭제하고자 하는 데이터, 삭제된 데이터와 관련한 메타 정보, 데이터 삭제 날짜 및 시각 정보 등을 포함한다.In addition, the storage 200 generates a table data deletion result according to deletion of data and related meta information in the corresponding table, and provides (or transmits) the created table data deletion result to the client 100. Here, the data deletion result of the table includes a table name to be deleted from the client 100, data to be deleted, meta information related to the deleted data, data deletion date and time information, and the like.

또한, 상기 수신된 SQL 명령어가 미리 설정된 grant query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스에 대해서 권한을 할당하고자 하는 특정 클라이언트(100)에 해당 데이터베이스에 대한 권한 할당 기능을 수행한다.In addition, when the received SQL command is a preset grant query, the storage 200 is directed to a specific client 100 to which permission is to be assigned to a database for providing (or assigning) permission in the client 100. Executes the privilege assignment function for the database.

또한, 상기 스토리지(200)는 해당 데이터베이스에 대한 권한 할당에 따른 권한 할당 결과를 생성하고, 상기 생성된 권한 할당 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 권한 할당 결과는 상기 클라이언트(100)에서 권한을 제공(또는 할당)하기 위한 데이터베이스명, 권한을 할당하고자 하는 특정 클라이언트(100)에 대한 정보, 권한 할당 날짜 및 시각 정보 등을 포함한다.In addition, the storage 200 generates a permission allocation result according to the permission allocation for the corresponding database, and provides (or transmits) the generated permission allocation result to the client 100 . Here, the permission allocation result includes the database name for providing (or assigning) the permission to the client 100, information on a specific client 100 to which the permission is to be assigned, date and time information of permission assignment, and the like.

또한, 상기 수신된 SQL 명령어가 미리 설정된 revoke query인 경우, 상기 스토리지(200)는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스에 대해서 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 해당 데이터베스에 대한 권한 해제 기능을 수행한다.In addition, when the received SQL command is a preset revoke query, the storage 200 is a database corresponding to another specific client 100 that wants to release privileges for the database for releasing privileges from the client 100. Performs permission release function for .

또한, 상기 스토리지(200)는 해당 데이터베이스에 대한 권한 해제에 따른 권한 해제 결과를 생성하고, 상기 생성된 권한 해제 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 권한 해제 결과는 상기 클라이언트(100)에서 권한을 해제하기 위한 데이터베이스명, 권한을 해제하고자 하는 다른 특정 클라이언트(100)에 대한 정보, 권한 해제 날짜 및 시각 정보 등을 포함한다.In addition, the storage 200 generates a permission release result according to permission release for the corresponding database, and provides (or transmits) the generated permission release result to the client 100 . Here, the permission release result includes a database name for releasing permission from the client 100, information on another specific client 100 to release permission, date and time information of permission release, and the like.

이와 같이, 스토리지 기반으로 오브젝트를 생성하고, 데이터를 조회하고, 데이터를 적재할 수 있다.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 client 100 performs a login procedure (or login function) through one storage 200 having a high process or system margin among the plurality of storages 200 . At this time, the client 100 may perform the login procedure using a pre-registered ID and password, a barcode or QR code including the ID, a preset authentication token, and the like.

일 예로, 제 1 클라이언트(100)는 복수의 스토리지(200) 중에서 제 1 스토리지(200)와 제 1 아이디 및 제 1 비밀번호를 이용해서 로그인 절차를 수행한다(S1110).For example, the first client 100 performs a login procedure using the first storage 200 among the plurality of storages 200, a first ID, and a first password (S1110).

이후, 상기 스토리지(200)는 상기 클라이언트(100)의 사용자 입력(또는 사용자 선택/터치/제어)에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신한다. 여기서, 상기 SQL 명령어는 create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query 등을 포함한다. 또한, 상기 소스 파일과 관련한 정보는 소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마(schema), 데이터베이스, 테이블, 적재 파일 포맷과 구분자, 파티션 등에 대한 정보를 포함한다.Thereafter, the storage 200 receives information related to a SQL command or source file according to a user input (or user selection/touch/control) of the client 100 . Here, the SQL commands include create query, select query, insert/update query, delete query, truncate query, drop query, grant query, revoke query, and the like. In addition, the information related to the source file includes information on the source file hostname, port, source file format and separator, schema, database, table, load file format and separator, partition, and the like.

일 예로, 상기 제 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 storage 200 stores an object (or database object) (eg, database, table, partition, etc.) corresponding to the received SQL command (or create query). including), and provides (or transmits) an object creation result (or a database object creation result) to the client 100.

즉, 상기 수신된 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 analyzer 220 included in the storage 200) is based on login information related to the client 100. Check the privileges on the database (for example, privileges on schemas, databases, tables, etc.).

상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 has permission for the database/is set), the parser and analyzer 220 responds to the SQL command (or create query). It performs parsing and analysis functions for

또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 create query)에 대한 감사 로그를 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 works with the reader/writer 250 included in the storage 200 to store audit logs for corresponding SQL commands (or create queries) in one or more of the plurality of blocks 260. Save to block 260.

또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 객체 생성을 요청한다.In addition, the parser and analyzer 220 requests the planner 230 included in the storage 200 to create an object.

또한, 상기 플래너(230)는 객체 생성 요청을 근거로 메타 데이터를 확인하여, 객체의 위치(또는 생성하고자 하는 객체가 메타 데이터에 존재하는지 여부/생성하고자 하는 객체와 관련한 디렉터리 또는 파일이 존재하는지 여부)를 확인한다.In addition, the planner 230 checks metadata based on the object creation request, and checks the location of the object (or whether the object to be created exists in the metadata/whether a directory or file related to the object to be created exists). ) to check.

또한, 상기 플래너(230)는 상기 스토리지(200)에 포함된 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 각각 체크한다.In addition, the planner 230 determines the status of the loader 210 included in the storage 200 (eg, process utilization/throughput) and the status of the reader/writer 250 (eg, process utilization/throughput). including processing rate, etc.) are checked respectively.

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태와 상기 리더/라이터(250)의 상태 등을 근거로 상기 스토리지(200)에 포함된 워커(240)에 객체 생성을 요청한다.In addition, the planner 230 determines information contained in the storage 200 based on the SQL command, the location of the checked object, the checked state of the loader 210 and the reader/writer 250, and the like. The worker 240 is requested to create an object.

또한, 상기 워커(240)는 객체 생성 요청을 근거로 상기 리더/라이터(250)에 객체 생성을 요청한다.In addition, the worker 240 requests the reader/writer 250 to create an object based on the object creation request.

또한, 상기 리더/라이터(250)는 객체 생성 요청을 근거로 상기 SQL 명령어와 관련한 객체(또는 매핑된 디렉터리/파일)를 생성한다.In addition, the reader/writer 250 creates an object (or mapped directory/file) related to the SQL command based on the object creation request.

또한, 상기 워커(240)는 상기 생성된 객체와 관련한 객체 매핑을 상기 메타 데이터에 등록한다.Also, the worker 240 registers object mapping related to the created object in the meta data.

또한, 상기 워커(240)는 객체 생성과 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the worker 240 provides result information related to object creation to the parser and analyzer 220 .

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 앞서 생성된 객체와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.Also, the parser and analyzer 220 works with the reader/writer 250 to store other audit logs related to previously created objects in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 객체 생성 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 객체 생성 결과는 상기 클라이언트(100)에서 생성하고자 한 객체의 생성 여부에 대한 정보(예를 들어 객체 생성 실패 정보, 객체 생성 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and analyzer 220 provides (or transmits) the object creation result to the client. Here, the object creation result includes information on whether or not the object to be created in the client 100 is created (eg, object creation failure information, object creation success information, etc.), date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 create query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 객체 생성 결과를 수신하고, 상기 수신된 객체 생성 결과를 표시(또는 출력)한다.In addition, the client 100 receives an object creation result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (including, for example, create query, etc.), The received object creation result is displayed (or output).

일 예로, 상기 수신된 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 analyzer 220 included in the first storage stores login information related to the first client. Based on this, check the privileges on the database.

상기 확인 결과, 상기 제 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 blocks 260. Store in block 1 (260).

또한, 상기 제 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 first loader 210 included in the first storage and the state of the first reader/writer 250 included in the first storage, respectively.

또한, 상기 제 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 first worker 260 is requested to create an object.

또한, 상기 제 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 second blocks 260 among the plurality of blocks. .

또한, 상기 제 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 storage 200 searches data corresponding to the received SQL command (or select query) and provides a data search result to the client 100. (or transmit)

즉, 상기 수신된 SQL 명령어가 미리 설정된 select query인 경우, 상기 파서 앤 애널라이저(220)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when the received SQL command is a preset select query, the parser and analyzer 220 has database authority (eg, schema, database, table, etc.) based on login information related to the corresponding client 100. permission).

상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 has data inquiry/database authorization/set state), the parser and analyzer 220 executes an SQL command (or select query) to perform parsing and analysis functions.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 select query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store an audit log for a corresponding SQL command (or select query) in one or more blocks 260 among the plurality of blocks 260. do.

또한, 상기 파서 앤 애널라이저(220)는 데이터 조회 요청을 근거로 메타 데이터를 확인하여, 인덱스 및 데이터 위치(또는 조회하고자 하는 데이터와 관련해서 인덱스 및 데이터 위치)를 조회한다.In addition, the parser and analyzer 220 checks meta data based on a data search request, and searches for an index and data location (or an index and data location in relation to data to be searched).

또한, 상기 파서 앤 애널라이저(220)는 상기 조회된 인덱스 및 데이터 위치를 근거로 상기 플래너(230)에 데이터 플랜을 요청한다.Also, the parser and analyzer 220 requests a data plan from the planner 230 based on the searched index and data location.

또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the planner 230 checks the state of the loader 210 (eg, including process utilization/processing rate).

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 체크된 로더(210)의 상태 등을 근거로 상기 워커(240)에 데이터 로드를 요청한다.In addition, the planner 230 requests the worker 240 to load data based on the SQL command and the checked state of the loader 210 .

또한, 상기 워커(240)는 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the worker 240 checks the state of the reader/writer 250 (eg, including process utilization/processing rate).

또한, 상기 워커(240)는 상기 체크된 리더/라이터(250)의 상태를 근거로 상기 리더/라이터(250)로부터 데이터(또는 상기 select query에 대응하는 데이터)를 로드한다.In addition, the worker 240 loads data (or data corresponding to the select query) from the reader/writer 250 based on the checked state of the reader/writer 250 .

또한, 상기 워커(240)는 상기 로드한 데이터 중에서 상기 select query에 따른 필요한 데이터 부분만을 리듀스(reduce)하여 해당 클라이언트(100)에서 조회하고자 한 해당 select query에 맞는 최종 데이터를 생성한다(또는 만든다).In addition, the worker 240 reduces only a necessary data part according to the select query among the loaded data to generate (or create) final data suitable for the corresponding select query that the corresponding client 100 intends to retrieve. ).

또한, 상기 워커(240)는 상기 생성된(또는 만든) 최종 데이터를 상기 리더/라이터(250)에 기록(또는 라이트/write)한다.In addition, the worker 240 records (or writes/writes) the generated (or created) final data to the reader/writer 250 .

또한, 상기 워커(240)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함), 상기 생성된 최종 데이터 등을 상기 파서 앤 애널라이저(220)에 제공(또는 전송)한다. 이때, 데이터양이 적은 경우(또는 상기 생성된 최종 데이터의 용량이 미리 설정된 기준값 이하인 경우), 상기 워커(240)는 상기 생성된 최종 데이터를 상기 파서 앤 애널라이저(220)에 통신으로 직접 전달한다. 또한, 데이터양이 많은 경우(또는 상기 생성된 최종 데이터의 용량이 상기 기준값을 초과한 경우), 상기 워커(240)는 상기 생성된 최종 데이터의 전송 대신 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보(예를 들어 최종 데이터가 기록된 블록 정보, 블록의 위치 정보 등 포함)를 상기 파서 앤 애널라이저(220)에 전달한다.In addition, the worker 240 transmits information related to the final data recorded in the reader/writer 250 (eg, including block information in which the final data is recorded, block location information, etc.) and the generated final data. Provided (or transmitted) to the parser and analyzer 220. At this time, when the amount of data is small (or when the capacity of the generated final data is less than a preset reference value), the worker 240 directly transmits the generated final data to the parser and analyzer 220 through communication. In addition, when the amount of data is large (or when the capacity of the generated final data exceeds the reference value), the worker 240 replaces the transmission of the generated final data with the final data recorded in the reader/writer 250. Data-related information (eg, block information in which the final data is recorded, block location information, etc.) is delivered to the parser and analyzer 220 .

또한, 상기 최종 데이터와 관련한 정보를 수신한 경우, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)에 기록된 최종 데이터와 관련한 정보 등을 근거로 상기 리더/라이터(250)로부터 해당 최종 데이터를 읽는다(또는 리딩한다).In addition, when information related to the final data is received, the parser & analyzer 220 receives the final data from the reader/writer 250 based on the information related to the final data recorded in the reader/writer 250. Read (or read) data.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store another audit log related to the last data read in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 조회 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 조회 결과는 상기 클라이언트(100)에서 조회하고자 한 객체에 대한 정보(예를 들어 객체 조회 실패시 객체 조회 실패에 대한 정보, 객체 조회 성공시 해당 객체에 대한 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the parser and analyzer 220 provides (or transmits) the data search result to the client. Here, the data search result includes information on the object to be searched by the client 100 (eg, including information on object search failure when object search fails, information on the corresponding object when object search succeeds, etc.), date and time, and including visual information, etc.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 select query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 조회 결과를 수신하고, 상기 수신된 데이터 조회 결과를 표시(또는 출력)한다.In addition, the client 100 receives a data search result provided from the storage 200 (or the parser and analyzer 220) in response to a previously input SQL command (eg, including a select query, etc.), The received data inquiry result is displayed (or output).

일 예로, 상기 수신된 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 analyzer 220 included in the first storage stores login information related to the first client. Based on this, check the authority for data inquiry.

상기 확인 결과, 상기 제 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/writer 250 included in the first storage to generate the 2-1 audit log for the second select query among the plurality of blocks 260. It is stored in the 2-1st block 260.

또한, 상기 제 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 first planner 230 included in the first storage based on the second index and the location of the second data.

또한, 상기 제 1 플래너는 상기 제 1 스토리지에 포함된 제 1 로더(210)의 상태를 체크한다.Also, the first planner checks the state of the first loader 210 included in the first storage.

또한, 상기 제 1 플래너는 상기 제 2 select query, 상기 체크된 제 1 로더의 상태 등을 근거로 상기 제 1 스토리지에 포함된 제 1 워커(240)에 데이터 로드를 요청한다.In addition, the first planner requests data load from the first worker 240 included in the first storage based on the second select query and the checked state of the first loader.

또한, 상기 제 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 block 260 among the plurality of blocks. do.

또한, 상기 제 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 storage 200 stores the data load-requested by the client 100 in response to the received SQL command (or insert/update query). is loaded into the storage 200 (or database), and a data loading result is provided (or transmitted) to the client 100.

즉, 상기 수신된 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 analyzer 220 has database authority (e.g. schema, Privileges on databases, tables, etc.)

상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 has data load/database authorization/set), the parser and analyzer 220 executes an SQL command (or insert query/update query) to perform parsing and analysis functions.

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 해당 SQL 명령어(또는 insert query/update query)에 대한 감사 로그를 상기 복수의 블록(260) 중 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to record an audit log for a corresponding SQL command (or insert query/update query) at one or more blocks 260 among the plurality of blocks 260. ) is stored in

또한, 상기 파서 앤 애널라이저(220)는 상기 스토리지(200)에 포함된 플래너(230)에 데이터 적재를 요청한다.In addition, the parser and analyzer 220 requests the planner 230 included in the storage 200 to load data.

또한, 상기 플래너(230)는 데이터 적재 요청을 근거로 메타 데이터를 확인하여, 데이터의 위치(또는 적재하고자 하는 객체가 메타 데이터에 존재하지 않는지 여부)를 조회(또는 확인)한다.In addition, the planner 230 checks meta data based on the data loading request, and inquires (or checks) the location of the data (or whether an object to be loaded does not exist in the meta data).

또한, 상기 플래너(230)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the planner 230 checks the status of the loader 210 (including, for example, process utilization/throughput) and the status of the reader/writer 250 (including, for example, process utilization/throughput). .

또한, 상기 플래너(230)는 상기 SQL 명령어, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 리더/라이터(250)의 상태 등을 근거로 상기 워커(240)에 데이터 적재를 요청한다.In addition, the planner 230 determines the worker 240 based on the SQL command, the location of the checked object, the checked state of the loader 210, the checked state of the reader/writer 250, and the like. Request data loading.

또한, 상기 워커(240)는 상기 리더/라이터(250)와 연동하여, 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터를 적재(또는 기록)한다.In addition, the worker 240 interworks with the reader/writer 250 to load (or record) data to be loaded in the corresponding client 100 into the reader/writer 250 .

또한, 상기 워커(240)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the worker 240 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 워커(240)는 데이터 적재와 관련한 결과 정보를 상기 파서 앤 애널라이저(220)에 제공한다.In addition, the worker 240 provides result information related to data loading to the parser and analyzer 220 .

또한, 상기 파서 앤 애널라이저(220)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the parser and analyzer 220 interworks with the reader/writer 250 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 파서 앤 애널라이저(220)는 상기 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.Also, the parser and analyzer 220 provides (or transmits) the data loading result to the client. Here, the data load result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data load failure information, data load success information, etc.), date and time information, and the like.

또한, 상기 클라이언트(100)는 앞서 입력한 SQL 명령어(예를 들어 insert query/update query 등 포함)에 대응하여 상기 스토리지(200)(또는 상기 파서 앤 애널라이저(220))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다.In addition, the client 100 receives a data load result provided from the storage 200 (or the parser and analyzer 220) in response to a previously entered SQL command (eg, insert query/update query, etc.). and displays (or outputs) the received data load result.

일 예로, 상기 수신된 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 analyzer 220 included in the first storage stores login information related to the first client. Based on this, the authority for data loading is checked.

상기 확인 결과, 상기 제 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/writer 250 included in the first storage to store the 3-1 audit log for the third insert query among the plurality of blocks 260. It is stored in the 3-1 block (260).

또한, 상기 제 1 파서 앤 애널라이저는 상기 제 1 스토리지에 포함된 제 1 플래너(230)에 데이터 적재를 요청한다.In addition, the first parser and analyzer requests the first planner 230 included in the first storage to load data.

또한, 상기 제 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 first loader 210 included in the first storage and the state of the first reader/writer.

또한, 상기 제 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 first worker 240 .

또한, 상기 제 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 block 260 among the plurality of blocks.

또한, 상기 제 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 storage 200 transmits the data (or source file) requested by the client 100 to be loaded in response to the received information related to the source file to the storage 200. (or database), and provides (or transmits) the data loading result to the client 100.

즉, 상기 소스 파일과 관련한 정보를 수신한 경우, 상기 스토리지(200)에 포함된 로더(210)는 해당 클라이언트(100)와 관련한 로그인 정보를 근거로 데이터베이스에 대한 권한(예를 들어 스키마, 데이터베이스, 테이블 등에 대한 권한)을 확인한다.That is, when information related to the source file is received, the loader 210 included in the storage 200 obtains database authority (eg schema, database, privileges on tables, etc.)

상기 확인 결과, 권한 확인에 성공한 경우(또는 해당 클라이언트(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 client 100 has data loading/database authorization/set state), the loader 210 reads the reader/writer 250 In conjunction with, an audit log for information related to a corresponding source file is stored in one or more blocks 260 of the plurality of blocks 260.

또한, 상기 로더(210)는 파일(또는 상기 소스 파일)을 로드한다.Also, the loader 210 loads a file (or the source file).

상기 로드한 파일의 위치가 동일 서버 또는 외부 스토리지인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.When the location of the loaded file is the same server or external storage, the loader 210 checks the meta data and inquires (or checks) the location of the object to be loaded.

또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the loader 210 checks the state of the loader 210 (including, for example, process utilization rate/throughput rate, etc.) and the state of the reader/writer 250 (including, for example, process utilization rate/throughput rate, etc.) .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 체크된 라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에 해당 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)를 적재(또는 기록)한다.In addition, the loader 210 interworks with the reader/writer 250 to obtain information related to the source file, the location of the checked object, the state of the checked loader 210, and the checked writer 250. The data (or the source file) to be loaded in the corresponding client 100 is loaded (or written) into the reader/writer 250 based on the state of .

또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the loader 210 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 다른 감사 로그를 상기 복수의 블록(260) 중 다른 하나 이상의 블록(260)에 저장한다.In addition, the loader 210 interworks with the reader/writer 250 to store other audit logs related to data loading in one or more other blocks 260 among the plurality of blocks 260 .

또한, 상기 로더(210)는 상기 데이터 적재 결과를 상기 클라이언트(100)에 제공(또는 전송)한다. 여기서, 상기 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터(또는 상기 소스 파일)의 적재 성공 여부에 대한 정보(예를 들어 데이터/소스 파일 적재 실패 정보, 데이터/소스 파일 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the loader 210 provides (or transmits) the data loading result to the client 100 . Here, the data loading result is information on whether the data (or the source file) to be loaded by the client 100 has been successfully loaded (for example, data/source file loading failure information, data/source file loading success information, etc.) including), date and time information, etc.

또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 데이터 적재 결과를 수신하고, 상기 수신된 데이터 적재 결과를 표시(또는 출력)한다.In addition, the client 100 receives a data load result provided from the storage 200 (or the loader 210) in response to the previously provided source file related information, and displays the received data load result (or output).

또한, 상기 파일에 대한 적재가 스토리지 내 복사인 경우, 상기 로더(210)는 메타 데이터를 확인하여, 적재하고자 하는 객체의 위치를 조회(또는 확인)한다.In addition, when the loading of the file is copying in the storage, the loader 210 checks meta data and inquires (or checks) the location of the object to be loaded.

또한, 상기 로더(210)는 상기 로더(210)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)와 상기 리더/라이터(250)의 상태(예를 들어 프로세스 사용률/처리율 등 포함)를 체크한다.In addition, the loader 210 checks the state of the loader 210 (including, for example, process utilization rate/throughput rate, etc.) and the state of the reader/writer 250 (including, for example, process utilization rate/throughput rate, etc.) .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 상기 소스 파일과 관련한 정보, 상기 확인된 객체의 위치, 상기 체크된 로더(210)의 상태, 상기 리더/라이터(250)의 상태 등을 근거로 상기 리더/라이터(250)에서 데이터(또는 디렉터리/파일)를 삭제한다.In addition, the loader 210 interworks with the reader/writer 250 to obtain information related to the source file, the location of the checked object, the checked state of the loader 210, and the reader/writer 250. Data (or directories/files) are deleted from the reader/writer 250 based on the status of .

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 해당 클라이언트(100)에서 적재하고자 하는 데이터(또는 디렉터리/파일/소스 파일)를 상기 리더/라이터(250)에 적재(또는 기록)한다.In addition, the loader 210 interworks with the reader/writer 250 to load (or record).

또한, 상기 로더(210)는 데이터 적재에 따른 해당 메타 데이터의 정보(예를 들어 인덱스 등 포함)를 변경(또는 업데이트)한다.In addition, the loader 210 changes (or updates) information (eg, including an index) of corresponding meta data according to data loading.

또한, 상기 로더(210)는 상기 리더/라이터(250)와 연동하여, 데이터 적재와 관련한 또 다른 감사 로그를 상기 복수의 블록(260) 중 또 다른 하나 이상의 블록(260)에 저장한다.In addition, the loader 210 interworks with the reader/writer 250 to store another audit log related to data loading in another one or more blocks 260 among the plurality of blocks 260 .

또한, 상기 로더(210)는 다른 데이터 적재 결과를 상기 클라이언트에 제공(또는 전송)한다. 여기서, 상기 다른 데이터 적재 결과는 상기 클라이언트(100)에서 적재하고자 한 데이터의 적재 성공 여부에 대한 정보(예를 들어 데이터 적재 실패 정보, 데이터 적재 성공 정보 등 포함), 날짜 및 시각 정보 등을 포함한다.In addition, the loader 210 provides (or transmits) other data loading results to the client. Here, the other data loading result includes information on whether the data to be loaded by the client 100 has been successfully loaded (eg, data loading failure information, data loading success information, etc.), date and time information, etc. .

또한, 상기 클라이언트(100)는 앞서 제공한 소스 파일과 관련한 정보에 대응하여 상기 스토리지(200)(또는 상기 로더(210))로부터 제공되는 다른 데이터 적재 결과를 수신하고, 상기 수신된 다른 데이터 적재 결과를 표시(또는 출력)한다.In addition, the client 100 receives another data load result provided from the storage 200 (or the loader 210) in response to the information related to the previously provided source file, and the received other data load result display (or output).

일 예로, 상기 제 4 소스 파일과 관련한 정보를 수신할 때, 상기 제 1 스토리지에 포함된 제 1 로더(210)는 상기 제 1 클라이언트와 관련한 로그인 정보를 근거로 데이터 적재에 대한 권한을 확인한다.For example, upon receiving the information related to the fourth source file, the first loader 210 included in the first storage checks the authority for data loading based on the login information related to the first client.

상기 확인 결과, 상기 제 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/writer 250 included in the first storage to obtain data related to the fourth source file. A 4-1 audit log for information is stored in the 4-1 block 260 among the plurality of blocks 260 .

또한, 상기 제 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/writer 250 included in the first storage.

또한, 상기 제 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-2nd block 260 among the plurality of blocks.

또한, 상기 제 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 first loader 210 included in the first storage checks the authority for data loading based on the login information related to the first client. .

상기 확인 결과, 상기 제 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/writer 250 included in the first storage to obtain data related to the fourth source file. The 5-1 audit log for information is stored in the 5-1 block 260 among the plurality of blocks 260 .

또한, 상기 제 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-2nd block 260 among the plurality of blocks.

또한, 상기 제 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 명령어와 관련한 객체를 생성하는 리더/라이터;
수신된 상기 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.
제 1 항에 있어서,
상기 소스 파일과 관련한 정보는,
소스 파일 호스트네임, 포트, 소스 파일 포맷과 구분자, 스키마, 데이터베이스, 테이블, 적재 파일 포맷과 구분자 및, 파티션 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 기반의 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.
삭제delete 스토리지에 의해, 클라이언트의 사용자 입력에 따른 SQL 명령어 또는 소스 파일과 관련한 정보를 수신하는 단계;
상기 스토리지에 의해, 상기 수신된 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.
삭제delete 제 4 항에 있어서,
상기 수신된 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.
제 6 항에 있어서,
상기 파서 앤 애널라이저에 의해, 상기 워커로부터 제공되는 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보 또는, 상기 생성된 최종 데이터를 수신하는 과정;
상기 최종 데이터와 관련한 정보를 수신한 상태일 때, 상기 파서 앤 애널라이저에 의해, 상기 리더/라이터에 기록된 최종 데이터와 관련한 정보를 근거로 상기 리더/라이터로부터 상기 최종 데이터를 읽는 과정; 및
상기 파서 앤 애널라이저에 의해, 상기 리더/라이터와 연동하여, 상기 읽은 최종 데이터와 관련한 다른 감사 로그를 상기 복수의 블록 중 다른 하나 이상의 블록에 저장하는 과정을 더 포함하는 것을 특징으로 하는 스토리지 기반의 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.
제 4 항에 있어서,
상기 수신된 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.
제 4 항에 있어서,
상기 수신된 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.
제 4 항에 있어서,
상기 수신된 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. .
KR1020220130882A 2022-10-12 2022-10-12 System for providing DBMS based on storage and control method thereof KR102499941B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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