KR101416890B1 - 데이터 처리 방법 및 장치 - Google Patents

데이터 처리 방법 및 장치 Download PDF

Info

Publication number
KR101416890B1
KR101416890B1 KR1020130050223A KR20130050223A KR101416890B1 KR 101416890 B1 KR101416890 B1 KR 101416890B1 KR 1020130050223 A KR1020130050223 A KR 1020130050223A KR 20130050223 A KR20130050223 A KR 20130050223A KR 101416890 B1 KR101416890 B1 KR 101416890B1
Authority
KR
South Korea
Prior art keywords
partition
data
quot
temporary
index
Prior art date
Application number
KR1020130050223A
Other languages
English (en)
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 KR1020130050223A priority Critical patent/KR101416890B1/ko
Application granted granted Critical
Publication of KR101416890B1 publication Critical patent/KR101416890B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 처리에 관한 것이다. 구체적으로, 본 발명은 서버에서 데이터를 처리하는 방법 및 이를 위한 장치에 있어서, 데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하는 단계; 상기 제1 파티션을 임시 테이블로 전환하는 단계; 상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하는 단계; 및 상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하는 단계를 포함하는 방법 및 이를 위한 장치에 관한 것이다.

Description

데이터 처리 방법 및 장치{A method and apparatus for processing data}
본 발명은 데이터 처리에 관한 것으로, 보다 구체적으로는 서버에서 대용량 데이터를 효율적으로 처리하는 방법 및 이를 위한 장치에 관한 것이다.
일반적으로 데이터베이스에서 데이터를 수집 처리하여 테이블에 저장하고 사용자의 조회 요구가 있을 때 테이블을 검색하여 데이터를 제공한다. 데이터베이스는 이러한 데이터 저장 및 검색을 위해 적어도 하나의 테이블을 포함할 수 있다. 보통 테이블에서 행은 하나의 데이터 개체에 해당하고 열은 데이터 개체의 종류나 성질을 나타낸다. 하나의 데이터 개체는 테이블에서 하나의 행을 차지하고 복수의 열을 가질 수 있다. 새로운 데이터를 입력받는 경우 테이블의 새로운 행(row)에 데이터를 삽입(insert)한다. 테이블에 존재하는 데이터를 조회하는 경우 테이블의 열(column)을 따라 해당하는 값들을 읽어 제공할 수 있다.
보통 데이터를 수집 처리하고 사용자 조회 요구를 처리하는 동작은 동일한 테이블에 대해서 수행되므로 단일화되어 있다. 오늘날 컴퓨터 하드웨어 사양의 눈부신 발전 덕분에 어느 정도 데이터 용량이 증가하더라도 큰 문제가 없다. 하지만, 테이블이 수용해야 할 데이터 용량이 급격히 증가하는 경우에는 대용량 데이터의 수집 처리로 인한 부하가 증가할 수 있으며, 이는 데이터 수집 처리와 단일화되어 동작하는 사용자 조회 요구 처리의 성능 저하로 이어질 수 있다.
예를 들어, 오늘날 통신 회사들은 수백만 내지 수천만 더 나아가 수억 명에 이르는 가입자 정보를 데이터베이스화하여 관리한다. 통신 회사들은 각 가입자에 대해 통화 기록, 과금 정보, 인적 사항 등과 같은 많은 정보를 관리하여야 하므로 데이터 용량은 엄청나다.
따라서, 대용량 데이터를 효율적으로 처리하고 관리할 수 있는 방안이 요구된다. 데이터 수집 처리와 사용자 조회 요구 처리가 단일화됨으로써 발생하는 성능 저하를 방지할 수 있는 방안이 요구된다.
- "데이터베이스 기초", 2008년 1월 20일, 오창환, 서울사이버대학교 - "Access를 이용한 Database 기초 및 실습", 2011년 05월 30일, 정용진, 공학교육사
본 발명의 목적은 서버에서 효율적으로 데이터를 처리하는 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명의 다른 목적은 서버에서 대용량 데이터를 효율적으로 처리하는 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 서버에서 동일한 테이블을 통한 대용량 데이터의 처리로 인해 부하 증가와 성능 저하를 방지하기 위한 방법 및 이를 위한 장치를 제공하는 데 있다.
본 발명에서 이루고자 하는 기술적 과제들은 상기 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상으로, 서버에서 데이터를 처리하는 방법이 제공되며, 상기 방법은 데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하는 단계; 상기 제1 파티션을 임시 테이블로 전환하는 단계; 상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하는 단계; 및 상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하는 단계를 포함할 수 있다.
본 발명의 다른 양상으로, 데이터 처리를 위한 서버가 제공되며, 상기 서버는 프로세서; 및 데이터베이스를 포함하되, 상기 프로세서는 상기 데이터베이스에서 데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하고, 상기 데이터베이스에서 상기 제1 파티션을 임시 테이블로 전환하고, 상기 데이터베이스에서 상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하고, 상기 데이터베이스에서 상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하도록 구성될 수 있다.
본 발명의 또 다른 양상으로, 데이터 처리를 위한 서버로서 동작하는 컴퓨터에 의해 판독가능하고 실행가능한 프로그램 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체가 제공되며, 상기 프로그램 명령어들은 상기 컴퓨터에 의해 실행될 때 데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하고, 상기 제1 파티션을 임시 테이블로 전환하고, 상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하고, 상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하는 것을 포함하는 데이터 처리 동작을 상기 컴퓨터가 수행하게 할 수 있다.
바람직하게는, 상기 제1 테이블과 상기 제2 테이블은 물리적으로 분리될 수 있다.
바람직하게는, 상기 제1 파티션을 상기 임시 테이블로 전환하는 것은 exchange 함수를 이용하여 상기 제1 파티션을 상기 임시 테이블로 전환하는 것을 포함할 수 있다.
바람직하게는, 상기 인덱스를 생성 또는 리빌드(rebuild)하는 것은 상기 인덱스의 PCTFREE 값을 0으로 설정하여 상기 인덱스를 생성 또는 리빌드하는 것을 포함할 수 있다.
바람직하게는, 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것은 exchange 함수를 이용하여 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것을 포함할 수 있다.
더욱 바람직하게는, 상기 exchange 함수는 “INCLUDING INDEXES” 옵션과 “WITHOUT VALIDATION” 옵션을 포함할 수 있다.
본 발명에 의하면, 서버에서 효율적으로 데이터를 처리할 수 있다.
또한, 본 발명에 의하면, 서버에서 대용량 데이터를 효율적으로 처리할 수 있다.
또한, 본 발명에 의하면, 서버에서 동일한 테이블을 통한 대용량 데이터의 처리로 인해 부하 증가와 성능 저하를 방지할 수 있다.
또한, 본 발명에 의하면, 서버에서 대용량 데이터 처리를 위해 투입 자원을 최소화하면서도 처리 성능을 유지할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
첨부 도면은 본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되며, 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명의 실시예에 따라 서버에서 데이터를 처리하는 방법을 예시한 것이다.
도 2는 본 발명의 실시예에 따라 서버에서 데이터를 처리하는 방법의 순서도를 예시한 것이다.
도 3은 본 발명이 적용될 수 있는 서버를 예시한다.
본 발명은 데이터 처리에 관한 것이다. 보다 구체적으로는 서버에서 효율적으로 대용량 데이터를 처리하는 방법 및 이를 위한 장치에 관한 것이다.
이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다. 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략될 수 있다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
도 1은 본 발명의 실시예에 따라 서버에서 데이터를 처리하는 방법을 예시한 것이다.
도 1을 참조하면, 서버는 수집 테이블(110), 임시 테이블(120), 및 서비스 테이블(130)을 포함할 수 있다. 수집 테이블(110)은 데이터 수집을 처리하는 데 사용되는 테이블을 지칭할 수 있다. 서비스 테이블(130)은 사용자 서비스 요구를 처리하는 데 사용되는 테이블을 지칭할 수 있다. 본 발명의 실시예에 따르면, 수집된 데이터는 수집 테이블(110)에 입력되는 반면, 사용자 서비스 요구는 서비스 테이블(130)에 따라 처리될 수 있다. 따라서, 수집 테이블(110)은 사용자 서비스 요구를 처리하는 데 사용되지 않는다.
따라서, 수집 테이블(110)에 대해서는 인덱스가 필요하지 않을 수 있다. 인덱스는 테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터베이스 객체를 지칭하며 인덱스는 논리적/물리적으로 테이블과 독립적인 객체이다. 인덱스는 하나의 테이블에 여러 개를 지정할 수 있고, 테이블에서 하나의 열(column)은 여러 개의 인덱스에 포함될 수도 있다.
도 1에 예시된 바와 같이, 수집 테이블(110)은 파티션을 가질 수 있다. 도 1의 예에서, 수집 테이블(110)은 A, B, C, D, E의 5개의 파티션을 가진다. 하지만, 파티션의 개수는 5개로만 제한되는 것은 아니며, 수집 테이블(110)은 임의의 개수의 파티션을 가질 수 있다.
데이터베이스 관련 기술에 있어서, 큰 테이블 또는 인덱스를 보다 쉽게 관리하기 위해 큰 테이블이나 인덱스를 관리하기 쉬운 조각으로 물리적으로 분할하는 것을 파티셔닝(partitioning)이라 하고, 분할된 조각을 파티션이라 한다. 본 명세서에서 파티셔닝은 파티션과 혼용될 수 있다. 물리적으로 테이블이 분할되더라도 데이터베이스를 액세스하는 응용 프로그램의 입장에서는 차이가 없는 반면, 파티셔닝을 통해 데이터베이스 내에서 큰 객체들이 제거되므로 데이터베이스 관리가 쉽고 질의(query) 성능이 향상될 뿐 아니라 데이터 입력(insert) 태스크(task)들을 여러 파티션들로 분산시켜 경합을 줄일 수 있으므로 데이터 베이스 성능이 향상시킬 수 있다.
테이블 파티션 기법은 예를 들어 레인지 파티셔닝(range partitioning), 다중열 레인지 파티셔닝(multicolumn range partitioning), 해시 파티셔닝(hash partitioning), 리스트 파티셔닝(list partitioning), 컴포지트 파티셔닝(composite partitioning), 레퍼런스 파티셔닝(reference partitioning), 인터벌 파티셔닝(interval partitioning), 시스템 파티셔닝(system partitioning)을 포함할 수 있다.
레인지 파티셔닝은 레인지 파티셔닝은 어떤 특정 열(column)의 정렬 값을 기준으로 분할하는 기법으로서, 주로 순차적인(historical) 데이터를 관리하는 테이블에 많이 사용된다. 다중열 레인지 파티셔닝은 데이터베이스에서 복수 개의 열을 기준으로 레인지 파티션을 구성하는 기법이며, 제1 열(column)과 제2 열(column)을 파티션 키(partition key)로서 열거하여 제1 파티션 키 값이 데이터와 동일한 경우 제2 파티션 키 값과 비교하여 레인지 파티션을 구성할 수 있다. 해쉬 파티셔닝은 특정 열(column)의 값에 해시 함수를 적용해 분할하는 방식으로, 데이터의 관리 목적보다는 성능 향상에 초점을 맞춘 개념이다. 리스트 파티셔닝은 특정 열(column)의 특정 값을 기준으로 분할하는 기법으로서, 주로 이질적인(distinct) 값이 많지 않고 분포도가 비슷하며 해당 열(column)의 조건이 많이 들어오는 경우 유용하게 사용될 수 있다. 컴포지트 파티셔닝은 여러 파티셔닝 기법들을 혼합하여 사용하는 기법으로서, 레인지-해시 컴포지트 파티셔닝, 레인지-리스트 컴포지트 파티셔닝을 포함할 수 있다. 레퍼런스 파티셔닝은 부모 테이블의 레퍼런스 키를 이용하여 자식 테이블에 대해서 파티션하는 기법이다. 인터벌 파티셔닝은 레인지 파티션을 보완한 것으로 파티션 구간(partition interval)을 지정해 주면 데이터베이스 관리 시스템(DataBase Management System, DBMS)이 자동으로 파티션을 생성해 주는 기법이다. 시스템 파티셔닝은 파티션 키나 경계값 없이 사용자가 파티션 별로 데이터를 분배하는 기법이다. 상기 파티션 기법들은 예시일 뿐이며 상기 예시된 파티션 기법들 외에 다른 파티션 기법이 본 발명에 사용될 수 있다. 또한, 본 발명은 상기 파티션 기법들 중 어느 하나로만 제한되어 적용되는 것은 아니다.
수집 테이블(110)은 생성된 다음 상기 파티셔닝 기법 중 하나에 의해 파티셔닝될 수 있다. 예를 들어, 수집 테이블(110)은 레인지 파티셔닝 또는 인터벌 파티셔닝에 의해 월별로 파티셔닝될 수 있다. 이 경우, 수집 테이블(110)의 파티션 A, B, C, D, E는 각각 특정 월에 해당하는 파티션일 수 있다. 따라서, 데이터가 입력되는 경우 데이터 레코드의 열(column) 중에서 월에 해당하는 필드 값에 해당하는 파티션으로 데이터가 입력될 수 있다. 데이터는 해당 파티션에 실시간으로 입력될 수 있다. 혹은 전체 데이터가 수집된 후 각 파티션에 입력될 수 있다.
특정 파티션에 대한 데이터가 더 이상 없는 경우 특정 파티션은 그 다음 절차에서 임시 테이블(120)로 전환될 준비가 된 것이다. 예를 들어, 2월에 대한 파티션의 경우 3월 이후에는 더 이상 입력될 데이터가 없으므로 2월에 대한 파티션은 임시 테이블(120)로 전환될 수 있다.
도 1의 수집 테이블(110)에서 하나의 파티션에 대한 데이터 입력이 완료되면 완료된 파티션을 임시 테이블(120)로 전환할 수 있다. 파티션을 임시 테이블(120)로 전환할 때 exchange 함수가 사용될 수 있다. exchange 함수는 파티션된(partitioned) 테이블의 특정 파티션과 파티션되지 않은(un-partitioned) 일반 테이블 간에 전환을 위한 함수이다. exchange 함수에 의한 전환 시 실제 데이터가 이동하는 것이 아니라 데이터 저장 테이블에 대한 정보만이 갱신될 수 있다. 도 1의 예에서, exchange 함수를 이용하여 수집 테이블(110)의 특정 파티션을 임시 테이블(120)로 전환하면 수집 테이블(110)의 특정 파티션에서 임시 테이블(120)로 실제 데이터가 이동하는 것이 아니라 데이터 저장 테이블에 대한 정보만이 수집 테이블의 특정 파티션에서 임시 테이블(120)로 갱신될 수 있다. 예를 들어, 수집 테이블(110)의 파티션 A가 임시 테이블(120)의 A’로 전환된다. 따라서, exchange 함수를 사용하여 전환되는 임시 테이블(120)은 파티션되지 않은 테이블일 수 있다.
도 1에서 수집 테이블(110)의 특정 파티션을 임시 테이블(120)로 전환한 다음, 임시 테이블(120) 상태에서 인덱스를 생성하거나 리빌드할 수 있다. 일 예로, 만일 임시 테이블(120)이 최초로 전환된 것인 경우 인덱스가 아직 존재하지 않으므로 임시 테이블 상태(120)에서 인덱스를 생성할 수 있다. 다른 예로, 만일 임시 테이블(120)이 이미 전환된 적이 있는 경우 임시 테이블(120) 상태에서 이미 생성된 인덱스가 존재하므로 새로운 임시 테이블(120)을 이용하여 인덱스를 리빌드할 수 있다. 또 다른 예로, 이미 생성된 인덱스가 존재하더라도 인덱스를 삭제하고 재생성하는 것도 가능하다. 인덱스를 구성하는 방법은 예로만 한정되는 것은 아니며, 인덱스 생성 또는 리빌드가 상기 예시된 조건에 국한되어 수행되는 것도 아니다. 다른 다양한 방법들 또는 조건들이 가능하다.
앞서 언급된 바와 같이, 인덱스는 테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터베이스 객체를 지칭하며 테이블과 독립적인 객체이다. 따라서, 테이블에서 데이터가 삭제되거나 갱신되더라도 인덱스에서는 삭제 내지 갱신이 반영되지 않으므로 인덱스에 대해 별도의 작업을 하지 않을 경우 데이터베이스의 효율성이 떨어질 수 있다. 따라서, 리빌드는 이미 존재하는 인덱스를 재생성하지 않고 테이블의 변화를 반영시키는 과정을 지칭할 수 있다. 인덱스를 리빌드함으로써 인덱스 용량을 줄일 수 있고 속도를 향상시킬 수 있다.
임시 테이블(120) 상태에서 인덱스를 리빌드하는 경우, 서비스 테이블(130)과 임시 테이블(120)이 분리되어 있으므로 인덱스를 리빌드하더라도 서비스 테이블(130)에서는 서비스의 중단 없이 사용자 요구에 따라 데이터를 제공할 수 있다. 반면, 서비스 테이블(130) 상태에서 인덱스를 리빌드하는 경우 인덱스를 리빌드하기 위한 서비스 중단이 발생할 수 있다.
또한, 임시 테이블(120) 상태에서 인덱스를 리빌드할 때, PCTFREE 값을 0으로 설정할 경우 인덱스 효율성이 향상될 수 있다. PCTFREE 값은 데이터 블록의 사용가능한 공간 중에서 데이터 행(row)의 업데이트 등과 같은 데이터 변경을 위해 확보해 놓은 공간의 비율(예, %)을 나타낸다. 임시 테이블(120) 상태에서는 더 이상 데이터가 입력되지 않으므로 데이터 변경을 대비해 공간을 확보해 놓을 필요가 없다. 따라서, 임시 테이블(120) 상태에서 인덱스를 리빌드할 때 PCTFREE 값을 0으로 설정할 수 있다. PCTFREE 값이 0인 경우 불필요한 공간을 할당하지 않으므로 디스크 사용 효율성이 증가될 수 있다.
임시 테이블(120) 상태에서 인덱스를 생성하거나 리빌드한 다음, 임시 테이블(120)을 서비스 테이블(130)의 특정 파티션으로 전환할 수 있다. 임시 테이블(120)을 서비스 테이블(130)의 특정 파티션으로 전환 시 예를 들어 exchange 함수가 사용될 수 있다. 앞서 설명된 바와 같이, exchange 함수는 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간에 전환을 위한 함수이다. 예를 들어, exchange 함수를 이용하는 경우 실제 데이터 이동 없이 파티션되지 않은 테이블에서 파티션된 테이블의 특정 파티션으로 전환될 수 있다. 도 1의 예에서, 임시 테이블(120)의 A’가 서비스 테이블(130)의 파티션 A”로 전환된다. 따라서, exchange 함수를 사용하여 전환되는 서비스 테이블(130)은 파티션된 테이블일 수 있다.
임시 테이블(120)로부터 서비스 테이블(130)로 전환할 때, 오라클(Oracle) 시스템의 경우 오라클 옵션을 사용하여 서비스 중단을 최대한 방지할 수 있다.
예를 들어, 오라클 시스템의 경우 exchange 함수에서 “INCLUDING INDEXES” 옵션과 “EXCLUDING INDEXES” 옵션을 사용할 수 있다. “INCLUDING INDEXES” 옵션을 사용하는 경우 exchange 함수에 의한 테이블 전환 시 인덱스도 함께 전환할 수 있다. 반대로, “EXCLUDING INDEXES” 옵션을 사용하는 경우 exchange 함수에 의한 테이블 전환시 인덱스는 전환되지 않는다. 따라서, exchange 함수에 의해 임시 테이블(120)로부터 서비스 테이블(130)로 전환할 때 “INCLUDING INDEXES” 옵션을 사용하면 임시 테이블(120)에 대해 최적화된 인덱스를 실시간으로 서비스 테이블(130)에 대한 인덱스로 반영하여 그대로 사용할 수 있기 때문에 효율적이다.
다른 예로, 오라클 시스템의 경우 exchange 함수에서 “WITHOUT VALIDATION” 옵션과 “WITH VALIDATION” 옵션을 사용할 수 있다. “WITHOUT VALIDATION” 옵션을 사용하는 경우 exchange 함수에 의한 테이블 전환 시 데이터의 유효성에 대한 검증을 거치지 않고 전환을 수행할 수 있다. “WITH VALIDATION” 옵션을 사용하는 경우 exchange 함수에 의한 테이블 전환 시 데이터의 유효성에 대한 검증을 수행하므로 속도가 느려질 수 있다. 따라서, exchange 함수에 의해 임시 테이블(120)로부터 서비스 테이블(130)로의 전환 시 “WITHOUT VALIDATION” 옵션을 사용하면 전환 속도를 향상시킬 수 있다.
결과적으로, 본 발명의 실시예에 따른 방법을 수행한 결과 데이터를 수집하기 위한 수집 테이블(110)과 사용자 서비스 제공을 위한 서비스 테이블(130)은 물리적으로 서로 분리될 수 있다. 따라서, 데이터는 수집 테이블(110)로만 입력되고 사용자에 대한 서비스는 서비스 테이블(130)에 의해서만 제공될 수 있기 때문에, 대용량 데이터의 수집 처리로 인한 부하 증가를 방지할 수 있다. 따라서, 데이터 크기와 상관없이 동일한 성능을 보장할 수 있다.
이상에서, 일 예로서 수집 테이블(110)의 파티션 A가 임시 테이블(120) A’로 전환되고 임시 테이블(120) A’가 서비스 테이블(120)의 파티션 A”로 전환되는 과정을 설명하였다. 이 과정은 수집 테이블(110)의 파티션 B, C, D, E에 대해서도 동일하게 적용되어 순차적으로 수행될 수 있다. 수집 테이블(110)의 파티션 B, C, D, E는 각각 순차적으로 임시 테이블(120)로 전환된 다음, 임시 테이블(120)에서 서비스 테이블의 파티션 B”, C”, D”, E”로 전환될 수 있다. 하지만, 본 발명은 수집 테이블(110)의 각 파티션이 순차적으로 전환되는 경우에만 한정되어 적용되는 것은 아니며, 다른 특정 순서나 특정 조건에 따라 수행하는 것도 가능하다.
도 2는 본 발명의 실시예에 따라 서버에서 데이터를 처리하는 방법의 순서도를 예시한 것이다. 도 2의 순서도에서 수집 테이블은 특정 파티셔닝 기법에 따라 파티셔닝되어 있으며 수집 테이블은 적어도 하나의 파티션을 포함한다고 가정한다. 예를 들어, 수집 테이블은 레인지 파티셔닝 또는 인터벌 파티셔닝에 의해 파티셔닝될 수 있다.
S202 단계에서, 서버는 데이터를 수집하여 수집 테이블의 해당 파티션에 해당 데이터를 입력할 수 있다. 예를 들어, 수집 테이블은 월 단위로 파티셔닝될 수 있으며, 이 경우 해당 월의 데이터를 각 월의 파티션에 입력할 수 있다. 데이터 입력이 완료된 파티션에 대해 S204 단계를 수행할 수 있다.
S204 단계에서, 서버는 데이터 입력이 완료된 파티션을 임시 테이블로 전환할 수 있다. 예를 들어, 서버는 수집 테이블(도 1의 110)의 파티션 A에 대한 데이터 입력이 완료된 경우 파티션 A를 임시 테이블(도 1의 120) A’로 전환할 수 있다. 이 경우, 예를 들어 exchange 함수가 테이블 전환에 사용될 수 있다.
S206 단계에서, 서버는 S204 단계에서 전환된 임시 테이블에 대해서 인덱스를 생성하거나 리빌드할 수 있다. 생성할지 또는 리빌드할지 여부는 임시 테이블의 상황에 따라 결정될 수 있다. 예를 들어, 인덱스를 생성하거나 리빌드할 때 PCTFREE 값이 0으로 설정될 수 있다.
S208 단계에서, 서버는 임시 테이블을 서비스 테이블의 특정 파티션으로 전환할 수 있다. 예를 들어, 서버는 임시 테이블(도 1의 120) A’를 서비스 테이블(도 1의 130)의 파티션 A”로 전환할 수 있다. 이 경우, 예를 들어 exchange 함수가 테이블 전환에 사용될 수 있다. 또한, exchange 함수에서 예를 들어 “INCLUDING INDEXES” 옵션과 “WITHOUT VALIDATION” 옵션이 사용될 수 있다. “INCLUDING INDEXES” 옵션에 의해 임시 테이블에 대해 생성된 인덱스가 별도의 전환 과정 없이 서비스 테이블의 특정 파티션에 대한 인덱스로 그대로 사용될 수 있다. “WITHOUT VALIDATION” 옵션에 의해, 임시 테이블로부터 서비스 테이블의 특정 파티션으로 전환할 때 별도의 검증 동작이 수행되지 않으므로 전환 속도를 향상시킬 수 있다.
도 3은 본 발명이 적용될 수 있는 서버를 예시한다.
도 3에 도시된 바와 같이, 본 발명이 적용될 수 있는 서버(310)는 프로세서(312), 메모리(314), 송수신 모듈(316), 및 데이터베이스(318)를 포함할 수 있다. 본 발명의 서버는 데이터베이스 서버로 지칭될 수 있다.
메모리(314)는 프로세서(312)와 연결되고 상기 설명된 방법들을 수행하기 위한 소프트웨어 프로그램 또는 명령어들 뿐만 아니라 프로세서(312)의 동작과 관련한 다양한 정보를 저장할 수 있다.
프로세서(312)는 메모리(314), 송수신 모듈(316) 및 데이터베이스(318)와 연결되고 이들을 제어한다. 구체적으로 프로세서(312)는 각각 메모리(314)에 저장된 소프트웨어 프로그램 또는 명령어들을 실행함으로써 본 발명의 실시예에 따른 방법들을 실행할 수 있다. 그리고 프로세서(312)는 송수신 모듈(316)을 통해 다른 서버 또는 단말과 신호를 송신 및/또는 수신할 수 있다.
데이터베이스(318)는 본 발명의 실시예에 따른 테이블들을 포함할 수 있다. 도 3에서 데이터베이스(318)가 하나만 도시되어 있지만, 복수의 데이터베이스가 포함될 수 있다.
전술된 실시예들 및 변형예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명의 실시예들을 구현하는 명령어 및/또는 데이터를 포함하는 소프트웨어 모듈은 스크립트(script), 배치(batch), 또는 다른 실행가능한 파일들을 포함할 수 있다. 소프트웨어 모듈들은 디스크 드라이브와 같은 기계 판독가능한 또는 컴퓨터 판독가능한 저장 매체 상에 저장될 수 있다. 본 발명의 실시예에 따른 소프트웨어 모듈들을 저장하는 데 사용되는 저장 매체들은 플로피 디스크(floppy disk), 광학 디스크, DVD, CD-ROM, 마이크로드라이브, 광자기 디스크(magneto-optical disk)를 포함하는 임의의 유형의 디스크, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, 플래쉬 메모리 디바이스, 자기적 또는 광학적 카드, 나노시스템(nanosystem)(분자 메모리 IC를 포함), 또는 명령어 및/또는 데이터를 저장하는 데 적합한 임의의 유형의 매체 등일 수 있다. 본 발명의 실시예에 따른 펌웨어나 하드웨어 모듈들을 저장하는 데 사용되는 저장 디바이스는 또한 반도체 기반의 메모리를 포함할 수 있으며, 이는 영구적으로, 탈착가능하게, 또는 원격으로 마이크로프로세서/메모리 시스템에 연결될 수 있다. 따라서, 상기 모듈들은 모듈의 기능들을 수행하는 컴퓨터 시스템을 구성하기 위해 컴퓨터 시스템 메모리 내에 저장될 수 있다. 다른 새롭고 다양한 유형의 컴퓨터 판독가능한 저장매체가 본 명세서에서 논의된 모듈들을 저장하는 데 사용될 수 있다. 게다가, 당해 기술분야의 통상의 기술자들은 기능들을 모듈들로 분리하는 것이 예시를 위한 목적이라는 것을 인식할 것이다. 대체가능한 실시예들은 다중 모듈들의 기능들을 단일 모듈로 병합할 수 있고, 또는 모듈들의 기능들을 대체가능하게 성분 분리할 수 있다. 예를 들어, 서브-모듈들을 호출하기 위한 소프트웨어 모듈들은 각 서브-모듈이 그것의 기능을 수행하고 제어를 직접적으로 다른 서브-모듈로 넘겨주도록 성분 분리될 수 있다.
본 발명의 실시예들을 구현하는 소프트웨어 모듈이 컴퓨터 판독가능한 저장 매체에 저장되는 경우, 프로세서(예를 들어, 마이크로 프로세서)에 의해 실행될 때 서버 또는 컴퓨터가 본 발명에 따른 방법들을 수행할 수 있게 하는 코드들 또는 명령어들로 구현될 수 있다.
이상에서 설명된 실시예들은 본 발명의 구성들과 특징들이 소정 형태로 결합된 것들이다. 각 구성 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성 또는 특징은 다른 구성이나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (18)

  1. 서버에서 데이터를 처리하는 방법에 있어서,
    데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하는 단계;
    상기 제1 파티션을 임시 테이블로 전환하는 단계;
    상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하는 단계; 및
    상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하는 단계를 포함하되,
    상기 제1 테이블, 상기 임시 테이블, 및 상기 제2 테이블은 서로 분리되어 구성되는, 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 제1 테이블과 상기 제2 테이블은 물리적으로 분리되는, 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 제1 파티션을 상기 임시 테이블로 전환하는 단계는 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 제1 파티션을 상기 임시 테이블로 전환하는 것을 포함하는, 데이터 처리 방법.
  4. 제1항에 있어서,
    상기 인덱스를 생성 또는 리빌드(rebuild)하는 단계는 상기 인덱스의 PCTFREE 값을 0%로 설정하여 상기 인덱스를 생성 또는 리빌드하는 것을 포함하되,
    상기 PCTFREE 값은 데이터 블록의 사용가능한 공간 중에서 데이터 변경을 위해 확보해 놓은 공간의 퍼센트 비율을 나타내는, 데이터 처리 방법.
  5. 제1항에 있어서,
    상기 임시 테이블을 상기 제2 파티션으로 전환하는 단계는 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것을 포함하는, 데이터 처리 방법.
  6. 제5항에 있어서,
    상기 exchange 함수는 상기 exchange 함수에 의한 테이블 전환 시 인덱스를 함께 전환하는 “INCLUDING INDEXES” 옵션과 상기 exchange 함수에 의한 테이블 전환 시 데이터의 유효성에 대한 검증을 거치지 않고 전환하는 “WITHOUT VALIDATION” 옵션을 포함하는, 데이터 처리 방법.
  7. 데이터 처리를 위한 서버에 있어서, 상기 서버는
    프로세서; 및 데이터베이스를 포함하되, 상기 프로세서는
    상기 데이터베이스에서 데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하고,
    상기 데이터베이스에서 상기 제1 파티션을 임시 테이블로 전환하고,
    상기 데이터베이스에서 상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하고,
    상기 데이터베이스에서 상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하도록 구성되며,
    상기 제1 테이블, 상기 임시 테이블, 및 상기 제2 테이블은 서로 분리되어 구성되는, 서버.
  8. 제7항에 있어서,
    상기 제1 테이블과 상기 제2 테이블은 물리적으로 분리되는, 서버.
  9. 제7항에 있어서,
    상기 프로세서가 상기 제1 파티션을 상기 임시 테이블로 전환하는 것은 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 제1 파티션을 상기 임시 테이블로 전환하는 것을 포함하는, 서버.
  10. 제7항에 있어서,
    상기 프로세서가 상기 인덱스를 생성 또는 리빌드(rebuild)하는 것은 상기 인덱스의 PCTFREE 값을 0%로 설정하여 상기 인덱스를 생성 또는 리빌드하는 것을 포함하되,
    상기 PCTFREE 값은 데이터 블록의 사용가능한 공간 중에서 데이터 변경을 위해 확보해 놓은 공간의 퍼센트 비율을 나타내는, 서버.
  11. 제7항에 있어서,
    상기 프로세서가 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것은 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것을 포함하는, 서버.
  12. 제11항에 있어서,
    상기 exchange 함수는 상기 exchange 함수에 의한 테이블 전환 시 인덱스를 함께 전환하는 “INCLUDING INDEXES” 옵션과 상기 exchange 함수에 의한 테이블 전환 시 데이터의 유효성에 대한 검증을 거치지 않고 전환하는 “WITHOUT VALIDATION” 옵션을 포함하는, 서버.
  13. 데이터 처리를 위한 서버로서 동작하는 컴퓨터에 의해 판독가능하고 실행가능한 프로그램 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체로서, 상기 프로그램 명령어들은 상기 컴퓨터에 의해 실행될 때
    데이터 수집을 위한 제1 테이블의 제1 파티션에 데이터를 입력하고,
    상기 제1 파티션을 임시 테이블로 전환하고,
    상기 임시 테이블에 대해서 인덱스를 생성 또는 리빌드(rebuild)하고,
    상기 임시 테이블을 사용자 서비스 제공을 위한 제2 테이블의 제2 파티션으로 전환하는 것을 포함하는 데이터 처리 동작을 상기 컴퓨터가 수행하게 하되,
    상기 제1 테이블, 상기 임시 테이블, 및 상기 제2 테이블은 서로 분리되어 구성되는, 컴퓨터 판독가능한 저장 매체.
  14. 제13항에 있어서,
    상기 제1 테이블과 상기 제2 테이블은 물리적으로 분리되는, 컴퓨터 판독가능한 저장 매체.
  15. 제13항에 있어서,
    상기 제1 파티션을 상기 임시 테이블로 전환하는 것은 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 제1 파티션을 상기 임시 테이블로 전환하는 것을 포함하는, 컴퓨터 판독가능한 저장 매체.
  16. 제13항에 있어서,
    상기 인덱스를 생성 또는 리빌드(rebuild)하는 것은 상기 인덱스의 PCTFREE 값을 0%로 설정하여 상기 인덱스를 생성 또는 리빌드하는 것을 포함하되,
    상기 PCTFREE 값은 데이터 블록의 사용가능한 공간 중에서 데이터 변경을 위해 확보해 놓은 공간의 퍼센트 비율을 나타내는, 컴퓨터 판독가능한 저장 매체.
  17. 제13항에 있어서,
    상기 임시 테이블을 상기 제2 파티션으로 전환하는 것은 파티션된 테이블의 특정 파티션과 파티션되지 않은 일반 테이블 간의 데이터 전환을 수행하는 exchange 함수를 이용하여 상기 임시 테이블을 상기 제2 파티션으로 전환하는 것을 포함하는, 컴퓨터 판독가능한 저장 매체.
  18. 제17항에 있어서,
    상기 exchange 함수는 상기 exchange 함수에 의한 테이블 전환 시 인덱스를 함께 전환하는 “INCLUDING INDEXES” 옵션과 상기 exchange 함수에 의한 테이블 전환 시 데이터의 유효성에 대한 검증을 거치지 않고 전환하는 “WITHOUT VALIDATION” 옵션을 포함하는, 컴퓨터 판독가능한 저장 매체.
KR1020130050223A 2013-05-03 2013-05-03 데이터 처리 방법 및 장치 KR101416890B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130050223A KR101416890B1 (ko) 2013-05-03 2013-05-03 데이터 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130050223A KR101416890B1 (ko) 2013-05-03 2013-05-03 데이터 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101416890B1 true KR101416890B1 (ko) 2014-07-08

Family

ID=51741593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130050223A KR101416890B1 (ko) 2013-05-03 2013-05-03 데이터 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101416890B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413593A (zh) * 2019-06-19 2019-11-05 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070054138A (ko) * 2004-09-29 2007-05-28 소니 가부시끼 가이샤 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램
KR101119290B1 (ko) * 2008-11-28 2012-03-20 인터내셔널 비지네스 머신즈 코포레이션 정보 처리 장치, 데이터베이스 시스템, 정보 처리 방법 및 프로그램

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070054138A (ko) * 2004-09-29 2007-05-28 소니 가부시끼 가이샤 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램
KR101119290B1 (ko) * 2008-11-28 2012-03-20 인터내셔널 비지네스 머신즈 코포레이션 정보 처리 장치, 데이터베이스 시스템, 정보 처리 방법 및 프로그램

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413593A (zh) * 2019-06-19 2019-11-05 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质
CN110413593B (zh) * 2019-06-19 2024-05-17 平安银行股份有限公司 数据迁移方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US9405817B2 (en) Method for rebalancing data partitions
US9104728B2 (en) Query language to traverse a path in a graph
US10552378B2 (en) Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset
CN105930387A (zh) 一种基于数据路由、分库分表的数据操作系统及方法
US9229961B2 (en) Database management delete efficiency
US20210256023A1 (en) Subquery predicate generation to reduce processing in a multi-table join
US9355106B2 (en) Sensor data locating
CN104239377A (zh) 跨平台的数据检索方法及装置
CN105117433A (zh) 一种基于Hive解析HFile统计查询HBase的方法和系统
CN103678519A (zh) 一种支持Hive DML增强的混合存储系统及其方法
US20220075771A1 (en) Dynamically deploying execution nodes using system throughput
CN111221840A (zh) 数据处理方法及装置、数据缓存方法、存储介质、系统
CN103631924A (zh) 一种分布式数据库平台的应用方法和系统
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
KR101640733B1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
CN104573112A (zh) Oltp集群数据库中页面查询方法及数据处理节点
KR101416890B1 (ko) 데이터 처리 방법 및 장치
US11250002B2 (en) Result set output criteria
US11194805B2 (en) Optimization of database execution planning
CN116450607A (zh) 数据处理方法、设备及存储介质
US10762139B1 (en) Method and system for managing a document search index
CN113486023A (zh) 数据库分库分表的方法及装置
EP3091447A1 (en) Method for modifying root nodes and modifying apparatus
KR101648707B1 (ko) 큐브리드 기반 미들웨어, 및 큐브리드 기반 미들웨어를 이용한 분산 병렬 질의 처리 방법
CN111352933B (zh) 云端大数据数据库快捷建立索引系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170608

Year of fee payment: 6