KR100865481B1 - 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법 - Google Patents

삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법 Download PDF

Info

Publication number
KR100865481B1
KR100865481B1 KR1020070046711A KR20070046711A KR100865481B1 KR 100865481 B1 KR100865481 B1 KR 100865481B1 KR 1020070046711 A KR1020070046711 A KR 1020070046711A KR 20070046711 A KR20070046711 A KR 20070046711A KR 100865481 B1 KR100865481 B1 KR 100865481B1
Authority
KR
South Korea
Prior art keywords
attribute
data
column
key
dimensional
Prior art date
Application number
KR1020070046711A
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 KR1020070046711A priority Critical patent/KR100865481B1/ko
Application granted granted Critical
Publication of KR100865481B1 publication Critical patent/KR100865481B1/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
    • G06F17/40Data acquisition and logging

Landscapes

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

Abstract

본 발명은 대규모 분산 병렬 데이터베이스 시스템에 관한 것으로, 특히, 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법에 관한 것이다.
본 발명에 따른 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법은 (a) 키 칼럼(key column)과 2차원 행렬을 이루는 속성 칼럼(attribute column)을 조합하여 속성별 3차원 행렬 데이터를 생성하는 단계와, (b) 네트워크 클러스터 내의 각 노드에 상기 속성 칼럼에 해당하는 속성별 디렉토리(directory)를 생성하는 단계와, (c) 상기 속성별 3차원 행렬 데이터를 상기 키 칼럼의 각 로우 키(row key)를 기준으로 미리 설정된 크기로 파티셔닝하는 단계 및 (d) 상기 파티셔닝된 데이터를 파일 형태로 상기 각 노드의 상기 속성별 디렉토리에 저장하는 단계를 포함한다.
3차원 데이터 구조, 병렬 처리, 분산 처리, 시맨틱

Description

삼차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법{METHOD FOR DISTRIBUTING AND MANAGING DATA USING 3D STRUTURED DATA MODEL}
도 1은 본 발명의 일 실시예에 따른 키 칼럼(key column)과 속성 칼럼들(attribute columns)을 포함하는 데이터 구조의 일례를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따라 사용자(User)를 로우 키(Row Key)로 사용한 사용자 테이블의 일례를 도시한 도면이다.
도 3은 각 속성별 3차원 행렬 공간을 (X, Y, Z) 3차원 좌표계를 사용하여 도시한 도면이다.
도 4는 각 속성별 3차원 행렬 공간을 복수개의 2차원 행렬로서 도시한 도면이다.
도 5는 도 2의 사용자 테이블에서 지식인 서치 로그 칼럼과 블로그 서치 로그 칼럼을 확대한 도면이다.
도 6은 각 속성별 3차원 행렬 공간을 입체 큐브 형태로 도시한 도면이다.
도 7은 도 6의 3차원 행렬 공간을 로우 키인 사용자를 기준으로 행 방향으로 파티셔닝한 2차원 행렬을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 3차원 구조의 데이터가 파티셔닝되어 분산 저장된 예를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법을 설명하기 위한 순서도이다.
도 10는 본 발명의 일 실시예에 따른 대규모 분산 병렬 데이터베이스 시스템의 블록도이다.
도 11은 본 발명의 일 실시예를 구현한 소프트웨어를 실행하기 위해 사용될 수 있는 컴퓨터 시스템 아키텍쳐의 일례를 도시한 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
100: 3차원 행렬 생성부
200: 디렉토리 생성부
300: 파티셔닝부
400: 분산 저장부
본 발명은 대규모 분산 병렬 데이터베이스 시스템에 관한 것으로, 특히, 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법에 관한 것이다.
오늘날 폭발적으로 생산되는 웹 콘텐츠 데이터 세트(Content Data Set), 거 대한 로그 데이터 세트(Log Data Set) 등의 값들은 다양한 문화적 변화의 속성들(Attributes)에 의해 복잡한 집합 구조를 구성한다.
이러한 집합 구조는 문화적 변화에 따라 시시각각 변경될 수 있는데, 문화의 변화에 따라 서비스는 문화에 맞추어 가거나 앞서가도록 변화를 해야만 한다. 또한, 폭발적으로 생산되는 웹 콘텐츠 세트의 과잉으로 인해 권력이 생산자에서 소비자로 이동되었다.
이러한 이슈는 곧바로 데이터 세트 핸들링(Data Set Handling), 데이터 처리 프로그램(Data Processing Program)의 수요로 연결되며, 폭발적으로 발생한 데이터 세트에 대한 통제 방법론과 데이터의 양, 데이터 재사용에 대한 유연성과 프로그래밍의 용이성을 고려한 자료 구조의 선택에 중대한 문제로 다가오게 된다.
종래에는 일반적으로 MYSQL, MSSQL, ORACLE 등 데이터베이스 관리 툴을 설치한 구성을 가지고 데이터 관리 시스템을 구현하였다. 이것은 데이터베이스 관리 툴을 개발하는 것이 쉽지 않기 때문이다.
종래의 기술은 설치된 데이터베이스 툴을 이용하여 특정 스키마(schema)에 정규화된 데이터를 관리하는데 대부분 시간 차원(Time Dimension) 지향적인 스트림형 미디어 서비스를 위한 구성을 가지고 있으며 사용자의 액션 이벤트(Action Event)에 따라 데이터를 삽입하고, 날짜 순서 읽기 탐색과 같은 서비스에 대해 순차적 데이터 로딩을 하는 간단한 방식으로 동작하였다.
위의 구성을 가진 종래의 기술은 초기 스키마에 의해 정규화 되기 때문에 시시 각각 변화하는 정보의 속성들에 의한 관계를 표현하고 그 관계를 추적하거나 분 석하는데 그 복잡성 때문에 엄청난 구축비용이 들거나 프로젝트 수행에 수년이 걸리기도 하고 투자 수익율(ROI: Return Of Investment)을 얻기 어렵기도 한 문제점을 내포하고 있었다.
본 발명의 일부 실시예들은 전술한 종래 기술의 문제점을 해결하기 위해 도출된 것으로서, 거대한 정보를 다루는데 있어 인위적 파티셔닝(Partitioning), 인위적 필터링(Filtering), 인위적 정보의 편집으로 낭비되는 인력 비용(Man Cost) 및 I/O 비용에 대한 문제들과 함께 객관화하기 어려운 정보의 질적 문제점을 해결하는 것을 과제로 한다.
또한, 본 발명의 일부 실시예들의 다른 목적은 시시 각각 변화하는 문화와 사용자 요구에 따라 빠르고 간결하고 유연하게 대처할 수 있는 대규모 분산/병렬 데이터베이스 시스템을 제공하는 것을 과제로 한다.
상술한 목적을 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면은 을 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법에 있어서, (a) 키 칼럼(key column)과 2차원 행렬을 이루는 속성 칼럼(attribute column)을 조합하여 속성별 3차원 행렬 데이터를 생성하는 단계와, (b) 네트워크 클러스터 내의 각 노드에 상기 속성 칼럼에 해당하는 속성별 디렉토리(directory)를 생성하 는 단계와, (c) 상기 속성별 3차원 행렬 데이터를 상기 키 칼럼의 각 로우 키(row key)를 기준으로 미리 설정된 크기로 파티셔닝하는 단계 및 (d) 상기 파티셔닝된 데이터를 파일 형태로 상기 각 노드의 상기 속성별 디렉토리에 저장하는 단계를 포함하는 데이터의 분산 관리 방법을 제공한다.
속성 칼럼이 복수개인 경우에는, 속성 칼럼의 개수만큼 상기 (a) 내지 (d) 단계를 반복할 수 있다.
또한, 상기 속성별 3차원 행렬 데이터는 {로우 키, 속성 값, 타임 스탬프}의 3차원 희소 행렬일 수 있으며, 상기 파티셔닝된 데이터는 2차원 희소 행렬일 수 있다.
또한, 저장되는 파일의 이름은 로우 키에 해당하는 일련의 값을 사용하여 명명될 수 있고, 속성별 디렉토리의 이름도 속성 칼럼에 해당하는 일련의 값을 사용하여 명명될 수 있다.
한편, 본 발명의 제 2 측면은 대규모 분산 병렬 데이터베이스 시스템에 있어서, 키 칼럼과 2차원 행렬을 이루는 속성 칼럼을 조합하여 속성별 3차원 행렬 데이터를 생성하는 3차원 행렬 생성부와, 네트워크 클러스터 내의 각 노드에 상기 속성 칼럼에 해당하는 속성별 디렉토리를 생성하는 디렉토리 생성부와, 상기 속성별 3차원 행렬 데이터를 상기 키 칼럼의 각 로우 키를 기준으로 미리 설정된 크기로 파티셔닝하는 파티셔닝부 및 상기 파티셔닝된 데이터를 파일 형태로 상기 각 노드의 상기 속성별 디렉토리에 저장하는 분산 저장부를 포함하는 대규모 분산 병렬 데이터베이스 시스템을 제공한다.
이하에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 일 실시예는 종래 기술의 정규화된 데이터 관리 형태를 통해 정보 분석이 쉽지 않은 부분, 그리고 인위적 파티셔닝(Partitioning) 등 대용량 데이터를 관리하기 힘든 부분들을 개선하여 고장 감내 네트워크 파일 시스템(Fault Tolerance Network File System) 기반 하에 칼럼 기준형(Column Oriented)으로 데이터를 관리하며, 예를 들어, 행(Row), 열(Column) 및 타임 스탬프(Time Stamp)로 이루어진 3차원의 데이터 모델로 관리되는 구성을 가진다.
본 발명의 일 실시예는 거대한 양의 정보를 안정적으로 저장하고 데이터의 재사용의 유연성, 데이터 처리 프로그래밍의 용이성을 고려한 분산 데이터 관리 모델을 제시하며, 해당 플랫폼의 데이터 정리/보관, 병렬 처리 모델, 통계 모델과 언 어의 이해를 한 세트로 모아 최적화된 시맨틱 웹(Semantic Web)/웹 2.0, 그리고 개인의 성향 기반 서비스의 모델들을 제시한다.
본 발명의 일 실시예는 고장 감내 네트워크 파일 시스템 기반 하에 2차원적인 데이터를 복수개의 맵 파일들을 조작하여, 복수 차원 맵 스토리지(Multi Dimensional Map Storage)에 분산하여 관리한다. 하나의 차원에 대한 맵의 정보는, 예를 들어, {행, 열, 타임 스탬프}로 구성되는 3 차원 행렬 공간에 점차로 표현된다.
3차원 행렬로 구성된 데이터는 정보 차원(Informative dimension)과 시간 차원(Time dimension)을 가지며, 이러한 3차원 모델을 통해 잠재 의미 분석(LSA: Latent Semantic Analysis) 등의 통계적 분석 업무를 용이하게 처리할 수 있다.
본 발명은 현실 세계에서 관측되는 현상과 사실, 다양한 데이터들을 글로벌 파일 시스템(GFS: Global File System)에 저장하고, 한번의 처리로 다양한 집합 구조를 표현할 수 있게 한다. 또한, 병렬적인 정보 분석(Parallel Information Analysis)에 적합하도록 데이터 스토리지에 자료를 정리하여 보관함으로써, 최종적으로 실제적인 서비스에 반영할 수 있게 한다.
따라서, 정보 분석에 소요되는 시간이 빨라지게 되며, 이로 인해 당장 거대한 수익을 안겨줄 마켓을 찾아낼 수 있게 될 뿐만 아니라 어느 정도 현실 세계의 예측도 가능해진다.
이하에서는, 어떠한 데이터 모델(Data Model)을 이용하여, 어떠한 관리 정책과 병렬 처리 모델로 이러한 시스템이 구현되고 실행되는지 알아보기로 한다.
데이터 모델
웹 서비스는 일반적으로 “평균 17인치 모니터”를 통해 제공되는 미디어 서비스라는 제약을 안고 시작하며, 이것은 고객에게 일방적으로 방송되는 서비스가 아닌 쌍방향 서비스이다.
따라서, 많은 자료들 중 무엇을 고객에게 노출시킬 것인지에 대한 고민이 가장 일반적인 것이다. 이것은 검색 질의에 대한 결과 세트 순위(Top 10)와 무엇을 추천할 것인지에 대한 추천 아이템 세트 순위 등 고객 평가와 고객의 요구 사항에 관련된 데이터 세트의 랭킹(Ranking) 문제가 거의 대부분이다.
본 발명의 일 실시예에 따른 데이터 스토리지 레이어(Data Storage Layer)에는 3차원 데이터가 삽입된다. 예를 들면, {행, 열, 시각}의 3차원 데이터가 되는 것인데, 3차원에서 시간 차원의 열을 축소하여 2차원 행렬로 차원 축소(Dimension reduction)하기 좋은 구조를 갖고 있다.
따라서, 일반 RDBMS와는 자료의 구조 자체가 틀리며, 행 방향 파티셔닝(Row-wise Partitioning)하여 통계 연산을 하기 좋게 최적화된 자료 구조이다. 병렬적 분석 엔진 레이어(Parallel Analysis Engine Layer)는 이렇게 저장된 데이터에서의 통계, 집계 및 검색을 병렬로 처리하도록 지원하는 엔진 레이어이고, 사용자 인터페이스를 제공한다.
본 발명의 일 실시예에서 데이터는, 예를 들어, {행, 열, 타임 스탬프}의 3 차원 희소 행렬(3D Sparse Matrix) 공간으로 모델링된다. 이것은 정보가 가지는 정 보 차원(Informative dimension)과 시간 차원(Time dimension)의 속성을 어떻게 다룰 것인지에 대한 고민에서 비롯된다. 다시 말해, 시간 축이 중요한 정보의 경우에는 랭킹의 기준이 시간 축이어야 하고, 정보성이 강한 정보의 경우에는 랭킹의 기준이 정보량을 다룰 수 있어야 함에서 비롯되었다.
도 1은 본 발명의 일 실시예에 따른 키 칼럼(key column)과 속성 칼럼들(attribute columns)을 포함하는 데이터 구조의 일례를 도시한 도면이다.
도 1에 도시된 바와 같이, 키 칼럼은 로우 키 1(row key 1), 로우 키 2(row key 2) 등과 같이 하나 이상의 로우 키를 포함할 수 있다. 로우 키는 추후 데이터의 지역성(locality)를 보장하기 위한 키 값으로서 작용한다. 예를 들어, 사용자를 기준으로 한 각종 통계나 집계 데이터가 필요한 경우에는 로우 키가 "사용자"가 될 것이다.
속성 칼럼은 로우 키에 해당하는 속성을 나타내며, 속성 칼럼 1, 속성 칼럼 2, ..., 속성 칼럼 n 등과 같이 하나 이상 존재할 수 있다. 각각의 속성 칼럼은, 예를 들어, {속성 값, 타임 스탬프}로 이루어진 2차원 행렬 데이터이다.
이하에서는 설명의 편의상 속성 칼럼이 {속성 값, 타임 스탬프}로 이루어진 것으로 설명하겠지만 본 발명이 반드시 이에 한정되는 것은 아니며, "타임 스탬프"대신에 다른 임의의 속성 값이 사용될 수도 있다..
도 1에 도시된 테이블에서, 키 칼럼과 속성 칼럼 1만을 조합하여 보면, {로우 키 1, 로우 키 2, ...} 행과 {속성 값 1, 속성 값 2, ...} 열로 이루어진 이차원 행렬이 {t1, t2, ...}에 대해 존재한다. 따라서, 키 칼럼과 속성 칼럼 1의 조합 은 {로우 키, 속성 값, 시각}으로 이루어진 하나의 속성별 3차원 행렬 데이터로 표현하는 것이 가능하다.
이 때, 로우 키 1, 즉, 1 행에 대한 데이터를 추출하기 위해서는 아래와 같은 질의를 사용할 수 있다.
"Select * from T where Row = 1"
위 질의는 1 행에 속한 데이터를 모두 추출하기 때문에, {속성 값, 시각}의 2차원 행렬 데이터가 추출될 것이다.
또는, t2 시각에 대한 데이터를 추출하기 위해서 아래와 같은 질의를 사용할 수 있다.
"Select * from T where Time = t2
위 질의는 t2 시각에 일어난 데이터를 모두 추출하기 때문에, 시간 차원이 축소된 {로우 키, 속성 값}의 2차원 행렬 데이터가 추출될 것이다.
도 2는 본 발명의 일 실시예에 따라 사용자(User)를 로우 키(Row Key)로 사용한 사용자 테이블의 일례를 도시한 도면이다.
도 2에 도시된 바와 같이, 로우 키인 사용자에 대한 하나의 테이블은 액션 로그(Action Log)들의 속성 별 칼럼(Column)들이 존재한다. 속성별 칼럼들은, 예를 들어, “지식인 서치 로그”, “블로그 서치 로그” 및 “아이템 구매 이력” 등을 포함할 수 있다.
UserTable: Key<User> | Attribute Column<KinSearch> | Attribute Column<BlogSearch> | Attribute Column<Item Buying>
도 3은 각 속성별 3차원 행렬 공간을 (X, Y, Z) 3차원 좌표계를 사용하여 도시한 도면이다. 도 3의 3차원 좌표계는 키 칼럼과 2차원 행렬을 이루는 하나의 속성 칼럼을 조합하여 생성한다.
속성별 칼럼의 {속성 값, 시각}을 각각 X축, Y축으로 하고, {로우 키}를 Z축으로 설정하면, 도 3에 도시된 바와 같은 {로우 키, 속성 값, 시각}의 속성별 3차원 행렬 공간으로 표현된다.
도 4는 각 속성별 3차원 행렬 공간을 복수개의 2차원 행렬로서 도시한 도면이다. 도 4는 로우 키인 "사용자"와 속성 칼럼인 "지식인 서치 로그", "블로그 서치 로그", "아이템 구매 이력"을 각각 조합한 결과를 보여주고 있다.
예를 들어, "지식인 서치 로그" 속성의 경우에는 서치 시각 t1을 기준으로 "사용자"를 행으로 배열하고, 지식인 서치 로그의 "속성 값"을 열로 배열하면 {사용자, 속성 값}의 2차원 행렬이 된다. 마찬가지 방식으로, 서치 시각 t2, t3에서 {사용자, 속성 값}의 2차원 행렬을 각각 생성하면, 결과적으로 도시된 바와 같은 3차원 행렬 공간으로 표현된다.
위와 같이 생성된 3차원 행렬 데이터는 {사용자, 속성 값, 타임 스탬프}로 이루어진 3차원 희소 행렬 형태일 수 있으며, 2차원 행렬 데이터도 {사용자, 속성 값}으로 이루어진 2차원 희소 행렬 형태일 수 있다.
"블로그 서치 로그" 속성과 "아이템 구매 이력" 속성도 "지식인 서치 로그" 속성과 같은 속성별 3차원 행렬 공간으로 표현하는 것이 가능하다.
도 5는 도 2의 사용자 테이블에서 지식인 서치 로그 칼럼과 블로그 서치 로그 칼럼을 확대한 도면이다.
도 5에 도시된 바와 같이, 사용자 n에 대한 지식인 서치 로그 칼럼은, 예를 들어, {URL, 서치 시각}의 2차원 행렬을 이룬다. 이는 이미 설명한 바와 같이, 아래와 같은 질의를 사용하여 추출될 수 있다.
"Select * from T where Row = n"
또한, 사용자 n에 대한 블로그 서치 로크 칼럼도, 예를 들어, {키워드, 서치 시각}의 2차원 행렬을 이룬다.
도 6은 각 속성별 3차원 행렬 공간을 입체 큐브 형태로 도시한 도면이다.
도 6에 도시된 바와 같이, 각 속성별 3차원 행렬 공간은 {사용자, 서치 로그, 서치 시각}의 3차원 희소 행렬 형태로 표현될 수 있다.
위와 같은 모델은 단순하지만 모든 통계적 분석 업무를 수행할 수 있게 한다. 이하에서는, 상호 정보 분석(Mutual Information Analysis)의 경우를 예를 들어 살펴보기로 한다.
상호 정보는 두 개의 대상이 서로 의존적으로 나타난 정보를 의미한다. 회사에서 A와 B가 같이 다니는 것이 발견 된다면, 우선 A를 본 횟수와 B를 본 횟수, 그리고 A와 B가 같이 나타난 횟수를 비교해서, 거의 항상 A나 B를 봤을 때는 A와 B가 같이 나타난 경우라고 생각한다면 A와 B는 상호 정보가 높은 것이다. 그러므로 A와 B 사이에는 관련성이 있다고 짐작할 수 있다.
검색 엔진에서는 사용자들에 의해 함께 검색된 용어의 세트
Figure 112007035501555-pat00001
를 가지고, 다른 사용자들이
Figure 112007035501555-pat00002
를 검색한 횟수,
Figure 112007035501555-pat00003
를 검색한 횟수,
Figure 112007035501555-pat00004
가 함께 검색 된 횟수를 비교하여 일종의 연관 검색어 시서러스를 만들 수 있다.
이런 형태의 정보 분석을 통해 유사도 분석(Similarity Analysis), 협업 필터링(Collaboration Filtering), 대규모 사회망 분석(Social Network Analysis), 마켓 분석(Market Analysis) 등의 거대한 계산을 손쉽게 병렬 프로그램으로 개발할 수 있게 된다.
이러한 프로세싱은 당장 거대한 수익을 안겨줄 마켓을 찾는다든지 사용자들의 관심을 기반으로 각 개인의 현실과 서비스가 평행하게 다가설 수 있게 한다.
보다 실질적인 문제로 접근하면 검색 엔진의 벡터 공간 모델(Vector Space Model)의 한계를 시맨틱 공간(Semantic Space)에 점차로 표현하여 더 나은 검색 결과 순위를 계산해 낼 수 있다.
데이터의 분산 관리 및 병렬 처리
상기한 바와 같은 3차원 데이터 구조로 이루어진 데이터의 각 속성 칼럼은 2차원 희소 행렬 데이터이다.
예를 들어, {사용자, 서치 로그, 서치 시각}으로 이루어진 3차원 데이터 구조의 “지식인 서치 로그” 칼럼 또는 “블로그 서치 로그”칼럼은 {서치 로그, 서 치 시각}의 2차원 희소 행렬 데이터가 될 것이다.
본 발명의 일 실시예에서는 로우 키인 “사용자”를 기준으로 행 방향 파티셔닝(Row-Wise Partition)을 하여 데이터를 분산 관리하는 방법을 설명하기로 한다. 이는 로우 키인 사용자에 대한 속성 데이터의 지역성(locality)을 보장하기 위한 것이다.
따라서, 로우 키를 기준으로 파티셔닝하는 것은 설명의 편의를 위한 예시일 뿐이며, “서치 로그” 또는 “서치 시각”을 기준으로 파티셔닝하는 방법도 가능하다는 것을 당업자라면 쉽게 이해할 수 있을 것이다..
3차원 희소 행렬 데이터는 디렉토리(Directory)와 파일 형태로 관리하는 것이 바람직하며, 디렉토리는 테이블의 스키마(schema) 구조체가 된다.
디렉토리 및 파일 구조를 사용하는 이유는 파일 시스템은 B-트리 구조를 사용하기 때문에 50,000개의 파일이 존재할 때, 하나의 파일을 찾아서 열고 닫는데까지 걸리는 시간이 0.0008초이고, 운영 체제(OS: Operating System) 파일 시스템과의 중복을 피하고, 인덱스 크기(Indices Size)를 최소화 할 수 있기 때문이다.
파일명은 로우 키에 기반한 일련의 값이 사용될 수 있다. 또한, 파일 크기는, 예를 들어, 100 MB 등과 같이 미리 정해진 일정한 크기로 분할하는 것이 바람직하나, 데이터베이스 설계자가 임의로 설계하는 것도 가능하다. 각 파일은 {키, 값} 의 맵을 이루는 정렬된 구조체 형태이다.
파티셔닝된 조각 데이터들은 마스터(Master) 및 슬레이브(Slaves) 주종 관계의 네트워크 클러스터에 분산되어 관리되며, 로우 키를 위한 메타 데이 터(Metadata)로서 관리된다.
도 7은 도 6의 3차원 행렬 공간을 로우 키인 사용자를 기준으로 행 방향으로 파티셔닝한 2차원 행렬을 도시한 도면이다.
도 7에 도시된 바와 같이, 도 6의 입체 큐브를 사용자 n을 기준으로 행 방향으로 파티셔닝하면 사용자 n에 대한 {서치 로그, 서치 시각}의 2차원 행렬이 된다.
도 8은 본 발명의 일 실시예에 따른 3차원 구조의 데이터가 파티셔닝되어 분산 저장된 예를 도시한 도면이다. 본 발명의 일 실시예에 따른 데이터 분산 관리 시스템은 일반 PC 기반의 클러스터링 기술을 사용할 수 있다.
도 8에 도시된 바와 같이, “노드 1”에는 로우 키의 각 속성 칼럼인 “지식인 서치 로그”, “블로그 서치 로그”, “아이템 구매 이력” 등이 각각의 디렉토리로서 생성된다.
노드란 하나의 네트워크 내의 둘 이상의 라인에 공통적인 네트워크 연결점이나 접점의 엔드 포인트를 의미하며, 개인용 컴퓨터(PC), 임의의 프로세서, 컨트롤러, 워크 스테이션 등일 수 있다.
각 속성 칼럼에 해당하는 디렉토리 내에는 로우 키를 기준으로 일정 크기로 파티셔닝된 파일이 분산 저장된다.
예를 들어, “지식인 서치 로그” 디렉토리 내에는 로우 키인 사용자별로 파티셔닝된 데이터가 파일 형태로서 저장될 수 있다. 각 파일의 이름은 로우 키에 해당하는 일련의 값을 사용하여 명명될 수 있으며, 도 6에는, 예를 들어, “사용자 1 파일”, “사용자 2 파일” 등과 같이 명명되어 있다.
“사용자 1 파일”은 사용자 1의 {서치 로그, 서치 시각}으로 이루어진 2차원 희소 행렬 데이터이며 예를 들어, {키, 값} 의 맵을 이루는 정렬된 구조체이다.
마찬가지로, “사용자 2 파일”은 사용자 2의 {서치 로그, 서치 시각}으로 이루어진 2차원 희소 행렬 데이터이며 {키, 값} 의 맵을 이루는 정렬된 구조체이다.
“노드 1”에서와 같이, “노드 n”에도 로우 키의 각 속성 칼럼인 “지식인 서치 로그”, “블로그 서치 로그” 및 “아이템 구매 이력” 등이 각각의 디렉토리로서 생성된다.
또한, “노드 n”의 각 디렉토리 내에도 사용자별로 파티셔닝된 데이터가 파일 형태로서 저장된다.
상기와 같은 3차원 행렬 데이터의 분산 관리 방법에 의해 대용량의 데이터가 지역성을 유지하면서 효율적으로 관리될 수 있다.
지금까지는, 설명의 편의를 위해 “사용자 1 파일”과 “사용자 2 파일”등과 같이 사용자 별로 별도의 파일이 생성되는 것으로 설명하였지만, 본 발명이 반드시 이에 한정되는 것은 아니다.
로우 키인 사용자를 기준으로 데이터를 일정한 크기로 파티셔닝할 수 있다면, 한 파일 내에 복수의 사용자에 대한 데이터가 포함될 수도 있고, 한 사용자에 대한 데이터가 복수의 파일에 나누어 저장될 수도 있다.
도 9는 본 발명의 일 실시예에 따른 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법을 설명하기 위한 순서도이다.
우선, 키 칼럼과 2차원 행렬을 이루는 속성 칼럼을 조합하여 속성별 3차원 행렬 데이터를 생성한다 (S100). 키 칼럼은 그 원소로서 로우 키들을 포함하며, 속성 칼럼은, 예를 들어, {속성 값, 시각}의 정렬된 구조체 형태이다. 따라서, 속성별 3차원 행렬 데이터는, 예를 들어, {로우 키, 속성 값, 시각}으로 이루어진 3차원 희소 행렬 데이터일 수 있다.
다음으로, 네트워크 클러스터의 각 노드에 속성 칼럼에 해당하는 속성별 디렉토리를 생성한다 (S110). 속성 칼럼이, 예를 들어, “지식인 서치 로그”, “블로그 서치 로그”, “아이템 구매 이력”인 경우에는 이에 해당하는 디렉토리를 각 노드마다 생성한다. 속성별 디렉토리의 이름은, 예를 들어, 속성 칼럼에 해당하는 일련의 값을 사용하여 명명될 수 있다.
그 후, 속성별 3차원 행렬 데이터를 키 칼럼의 각 로우 키를 기준으로 미리 설정된 크기로 파티셔닝한다 (S120). 이 때 파티셔닝의 기준이 되는 로우 키는 데이터의 지역성을 보장하는 기준이 된다. 또한, 파티셔닝된 데이터는, 예를 들어, 2차원 희소 행렬 데이터일 수 있다.
마지막으로, 파티셔닝된 데이터를 파일 형태로 각 노드의 속성별 디렉토리에 저장한다 (S130). 각 파일의 이름은, 예를 들어, 각 로우 키에 해당하는 일련의 값을 사용하여 명명될 수 있다.
따라서, 한 노드에서 특정 로우 키에 해당하는 데이터를 모두 관리할 수 있게 되며, 이를 통해 데이터의 지역성을 보장하고, 대용량 데이터의 빠른 연산을 가능하게 한다.
본 발명의 일 실시예는 단계(S110) 내지 단계(S130)이 반드시 순서대로 실행되는 것에 한정되지 않는다. 당업자라면, 예를 들어, 단계(S110)이 단계(S100)보다 먼저 실행될 수도 있고, 혹은 단계(S120)보다 나중에 실행될 수도 있음을 쉽게 이해할 수 있을 것이다.
도 10는 본 발명의 일 실시예에 따른 대규모 분산 병렬 데이터베이스 시스템의 블록도이다. 본 발명의 일 실시예에 따른 분산 병렬 데이터베이스 시스템은 3차원 행렬 생성부(100), 디렉토리 생성부(200), 파티셔닝부(300) 및 분산 저장부(400)를 포함한다.
3차원 행렬 생성부(100)는 키 칼럼과 2차원 행렬을 이루는 속성 칼럼을 조합하여 속성별 3차원 행렬 데이터를 생성한다.
디렉토리 생성부(200)는 네트워크 클러스터의 각 노드(노드 1, 노드 2, ..., 노드 n)에 각 속성 칼럼에 해당하는 속성별 디렉토리를 생성한다.
파티셔닝부(300)는 속성별 3차원 행렬 데이터를 키 칼럼의 각 로우 키를 기준으로 미리 설정된 크기로 파티셔닝한다.
분산 저장부(400)는 파티셔닝된 데이터를 파일 형태로 각 노드의 각 속성별 디렉토리에 저장한다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
도 10은 상술한 하나 이상의 구성 요소 또는 동작을 실시하기 위하여 사용될 수 있는 컴퓨터 시스템 아키텍쳐의 일례를 도시한 도면이다. 일 실시예에서, 하드웨어 시스템(800)은 프로세서(810), 캐쉬(815), 메모리(815) 및 상술한 기능에 관련된 하나 이상의 소프트웨어 어플리케이션 및 드라이버를 포함한다.
추가적으로, 하드웨어 시스템(800)은 고성능 입/출력(I/O) 버스(840) 및 표준 I/O 버스(870)를 포함한다. 호스트 브릿지(820)는 프로세서(810)를 고성능 I/O 버스(840)에 결합시키고, I/O 버스 브릿지(850)는 두 개의 버스(840 및 870)를 상호 결합시킨다. 시스템 메모리(860) 및 네트워크/통신 인터페이스(830)는 고성능 I/O 버스(840)에 결합된다. 하드웨어 시스템(800)은 비디오 메모리(도시 생략) 및 그 비디오 메모리에 결합된 디스플레이 장치를 더 포함할 수 있다. 대용량 기억장 치(880) 및 I/O 포트(890)는 표준 I/O 버스(870)에 결합된다. 하드웨어 시스템(800)은 키보드 및 포인팅 디바이스(pointing device), 그리고 표준 I/O 버스(870)에 결합된 디스플레이 장치(도시 생략)를 선택적으로 포함할 수 있다. 총괄적으로, 이러한 요소들은 넓은 범위의 컴퓨터 하드웨어 시스템을 표현하도록 의도되며, 적절한 프로세서에 기반하는 범용 컴퓨터 시스템을 포함하나 이에 제한되지는 않는다.
하드웨어 시스템(800)의 구성 요소들은 아래에서 더 상세하게 설명된다. 보다 구체적으로, 네트워크 인터페이스(830)는 하드웨어 시스템과 이더넷(예를 들어, IEEE 802.3) 네트워크 등과 같은 임의의 넓은 범위의 네트워크 사이의 통신을 제공한다. 네트워크 인터페이스(830)는 하드웨어 시스템(800)과 네트워크 사이를 접속하여 하드웨어 시스템(800)이 그것들의 데이터베이스들을 관리하도록 한다. 대용량 기억장치(880)는 데이터와 프로그래밍 명령을 위한 영구 기억장치를 제공하여 본 발명에서 구현되는 상술한 기능을 수행하고, 시스템 메모리(860)(예를 들어, DRAM)는 프로세서(810)에 의하여 수행될 때 데이터 및 프로그래밍 명령을 위한 임시 기억장치를 제공한다. I/O 포트(890)는 하드웨어 시스템(800)에 결합될 수 있는 추가적인 주변 장치 간의 통신을 제공하는 하나 이상의 직렬 및/또는 병렬 통신 포트이다.
하드웨어 시스템(800)은 다양한 종류의 시스템 아키텍쳐를 포함할 수 있고, 하드웨어 시스템(800)의 다양한 구성요소가 재배치될 수 있다. 예를 들어, 캐쉬(815)는 프로세서(810)에 내장될 수 있다. 선택적으로, 캐쉬(815) 및 프로세 서(810)는 프로세서 모듈로서 함께 묶여질 수 있고, 이 때 프로세서(810)는 프로세서 코어로서 지칭될 수 있다. 또한, 본 발명의 특정한 실시예는 상술한 구성 요소의 전부를 요구하거나 포함하지 않을 수 있다. 예를 들어, 표준 I/O 버스(870)에 결합되는 것으로 도시된 주변 장치들은 고성능 I/O 버스(840)에 결합할 수 있다. 추가적으로, 임의의 실시예에서 단지 하나의 버스만 존재할 수 있고, 하드웨어 시스템(800)의 구성 요소들은 그 하나의 버스에 결합될 수 있다. 더욱이, 하드웨어 시스템(800)은 추가적인 프로세서, 기억 장치 또는 메모리와 같은 추가적인 구성요소를 포함할 수 있다. 이하에서 논의되는 것처럼, 일 실시예에서, 본 발명의 동작은 하드웨어 시스템(800)에 의해 구동되는 일련의 소프트웨어 루틴으로서 실시될 수 있다. 이러한 소프트웨어 루틴들은 프로세서(810)와 같은 하드웨어 시스템에서 프로세서에 의하여 실행될 수 있는 복수의 또는 일련의 명령들을 포함한다. 우선, 일련의 명령들은 대용량 기억 장치(880)와 같은 기억 장치에 저장된다. 그러나 일련의 명령들은 디스켓, CD-ROM, ROM, EEPROM 등과 같은 임의의 적절한 기억 매체에 저장될 수 있다. 더욱이, 일련의 명령들은 국소적으로 저장될 필요가 없고, 네트워크/통신 인터페이스(830)를 통하여 네트워크 상의 서버 등과 같은 원격 기억 장치로부터 수신될 수 있다. 그 명령들은 대용량 기억 장치(880)와 같은 기억 장치로부터 시스템 메모리(860)로 복사되고, 프로세서(810)에 의하여 액세스되고 실행된다.
운영 시스템은, 소프트웨어 어플리케이션(도시 생략)과의 데이터 입/출력을 포함하는 하드웨어 시스템(800)의 동작을 관리하고 제어한다. 운영 시스템은 시스템 상에서 실행되는 소프트웨어 어플리케이션과 시스템의 하드웨어 구성 요소 사이 의 인터페이스를 제공한다. 본 발명의 일 실시예에 따른 운영 시스템은 마이크로소프트사의 Windows 95/98/NT/XP/VISTA 운영 시스템일 수 있다. 그러나, 본 발명은 애플 컴퓨터사의 애플 맥킨토시 운영 시스템, 유닉스(UNIX) 운영 시스템, 리눅스(LINUX) 운영 시스템 등과 같은 다른 적절한 운영 시스템에서도 사용될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
전술한 본 발명의 일부 실시예들에 따른 데이터의 분산 관리 방법은 데이터의 지역성을 보장할 수 있기 때문에, 대용량 데이터를 빠른 시간 내에 분석하는 것을 가능하게 한다.
또한, 본 발명의 일부 실시예들은 일반 PC 기반의 클러스터링 기술을 사용하기 때문에, I/O 비용, 인력 비용 및 시간 비용의 절감 효과를 얻을 수 있다.
또한, 본 발명의 일부 실시예들은 엄청난 양의 비즈니스 정보를 빠른 시간 내에 분석할 수 있게 하고, 사용자가 필요한 방법으로 유연하게 질의(query)하는 것을 가능하게 하며, 최소한의 투자로 사용자의 질의에 답할 수 있는 틀을 제공할 수 있다.
또한, 본 발명의 일부 실시예들은 최소한의 투자로 정보의 가치를 더 빠르게, 더 적은 비용으로 얻을 수 있게 하며, 폭발적으로 발생하는 전자 정보를 효율적으로 관리함으로써 시시각각 변화하는 문화와 사용자의 요구에 따라 빠르고 간결하고 유연하게 대처할 수 있는 정보 분석을 위한 대규모 분산/병렬 데이터베이스 시스템을 제공한다.
본 발명의 일부 실시예들은 종래 기술의 정규화된 데이터 관리 형태를 통해 정보 분석이 쉽지 않은 부분, 그리고 인위적 파티셔닝 등 대용량 데이터를 관리하기 힘든 부분들을 개선하여 애드 훅 질의(ad-hoc query) 처리에 대한 성능 문제를 개선하였다.
이에 따라 작업 가설(working hypothesis)에 대한 연구가 쉽게 진행될 수 있게 되며 세상의 복잡하고 상황적인 역동성을 포착하여 보다 나은 서비스를 준비할 수 있게 된다.
본 발명의 일부 실시예들은 개인에게 적합한 사회성(Sociality)를 부여해 준다든지, 객관화하기 힘든 품질을 각각의 개인의 성향에 주목하여 다양한 성향의 사 람들에게 일관된 품질로 제공할 수 있으며, 결과적으로 매출을 증가 시킬 수 있는 기회를 마련할 수 있다.

Claims (9)

  1. 3차원으로 구조화된 데이터 모델을 이용하여 데이터를 분산 관리하는 방법에 있어서,
    (a) 키 칼럼(key column)과 2차원 행렬을 이루는 속성 칼럼(attribute column)을 조합하여 속성별 3차원 행렬 데이터를 생성하는 단계와,
    (b) 네트워크 클러스터 내의 각 노드에 상기 속성 칼럼에 해당하는 속성별 디렉토리(directory)를 생성하는 단계와,
    (c) 상기 속성별 3차원 행렬 데이터를 상기 키 칼럼의 각 로우 키(row key)를 기준으로 미리 설정된 크기로 파티셔닝하는 단계 및
    (d) 상기 파티셔닝된 데이터를 파일 형태로 상기 각 노드의 상기 속성별 디렉토리에 저장하는 단계
    를 포함하는 데이터의 분산 관리 방법.
  2. 제 1 항에 있어서,
    상기 속성 칼럼은 복수개이고,
    상기 속성 칼럼의 개수만큼 상기 (a) 내지 (d) 단계를 반복하는 데이터의 분산 관리 방법.
  3. 제 1 항에 있어서,
    상기 속성별 3차원 행렬 데이터는 {로우 키, 속성 값, 타임 스탬프}의 형태로 배열되는 데이터의 분산 관리 방법.
  4. 제 1 항에 있어서,
    상기 속성별 3차원 행렬 데이터는 3차원 희소 행렬인 데이터의 분산 관리 방법.
  5. 제 1 항에 있어서,
    상기 파일의 이름은 상기 로우 키에 해당하는 일련의 값을 사용하여 명명되는 데이터의 분산 관리 방법.
  6. 제 1 항에 있어서,
    상기 속성별 디렉토리의 이름은 상기 속성 칼럼에 해당하는 일련의 값을 사용하여 명명되는 데이터의 분산 관리 방법.
  7. 제 1 항에 있어서,
    상기 파티셔닝된 데이터는 2차원 희소 행렬인 데이터의 분산 관리 방법.
  8. 대규모 분산 병렬 데이터베이스 시스템에 있어서,
    키 칼럼과 2차원 행렬을 이루는 속성 칼럼을 조합하여 속성별 3차원 행렬 데 이터를 생성하는 3차원 행렬 생성부와,
    네트워크 클러스터 내의 각 노드에 상기 속성 칼럼에 해당하는 속성별 디렉토리를 생성하는 디렉토리 생성부와,
    상기 속성별 3차원 행렬 데이터를 상기 키 칼럼의 각 로우 키를 기준으로 미리 설정된 크기로 파티셔닝하는 파티셔닝부 및
    상기 파티셔닝된 데이터를 파일 형태로 상기 각 노드의 상기 속성별 디렉토리에 저장하는 분산 저장부
    를 포함하는 대규모 분산 병렬 데이터베이스 시스템.
  9. 청구항 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 방법의 각 단계를 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020070046711A 2007-05-14 2007-05-14 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법 KR100865481B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070046711A KR100865481B1 (ko) 2007-05-14 2007-05-14 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070046711A KR100865481B1 (ko) 2007-05-14 2007-05-14 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법

Publications (1)

Publication Number Publication Date
KR100865481B1 true KR100865481B1 (ko) 2008-10-27

Family

ID=40177628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070046711A KR100865481B1 (ko) 2007-05-14 2007-05-14 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법

Country Status (1)

Country Link
KR (1) KR100865481B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011149720A1 (en) * 2010-05-24 2011-12-01 Microsoft Corporation Image browsing and navigating user interface
KR101331350B1 (ko) * 2012-05-15 2013-11-20 고려대학교 산학협력단 데이터 큐브를 이용한 대용량 시계열 데이터 관리 방법
KR101656077B1 (ko) 2015-10-28 2016-09-08 주식회사 인피니플럭스 암시적 타임 칼럼값을 이용한 시간 기반 파티셔닝 시스템 및 방법
CN116719822A (zh) * 2023-08-10 2023-09-08 深圳市连用科技有限公司 一种海量结构化数据的存储方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000033410A (ko) * 1998-11-23 2000-06-15 이원석 유동속성트리와 부분결과 행렬에 의한 영상 데이터 검색 방법
KR20010073761A (ko) * 2000-01-20 2001-08-03 윤종용 통계적 기법을 이용하여 데이터를 압축 및 재현하는 방법
KR20060043741A (ko) * 2004-03-18 2006-05-15 마이크로소프트 코포레이션 자연 언어 커맨드에 따른 표 렌더링

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000033410A (ko) * 1998-11-23 2000-06-15 이원석 유동속성트리와 부분결과 행렬에 의한 영상 데이터 검색 방법
KR20010073761A (ko) * 2000-01-20 2001-08-03 윤종용 통계적 기법을 이용하여 데이터를 압축 및 재현하는 방법
KR20060043741A (ko) * 2004-03-18 2006-05-15 마이크로소프트 코포레이션 자연 언어 커맨드에 따른 표 렌더링

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
한양대 산업대학원 학위논문

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011149720A1 (en) * 2010-05-24 2011-12-01 Microsoft Corporation Image browsing and navigating user interface
KR101331350B1 (ko) * 2012-05-15 2013-11-20 고려대학교 산학협력단 데이터 큐브를 이용한 대용량 시계열 데이터 관리 방법
KR101656077B1 (ko) 2015-10-28 2016-09-08 주식회사 인피니플럭스 암시적 타임 칼럼값을 이용한 시간 기반 파티셔닝 시스템 및 방법
CN116719822A (zh) * 2023-08-10 2023-09-08 深圳市连用科技有限公司 一种海量结构化数据的存储方法及系统
CN116719822B (zh) * 2023-08-10 2023-12-22 深圳市连用科技有限公司 一种海量结构化数据的存储方法及系统

Similar Documents

Publication Publication Date Title
JP7273045B2 (ja) Sqlクエリプランを最適化するための次元コンテキスト伝搬技術
Kleppmann Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems
Duggal et al. Big Data analysis: Challenges and solutions
Sumbaly et al. The big data ecosystem at linkedin
US9508048B2 (en) System and method for integrated real time reporting and analytics across networked applications
US9715536B2 (en) Virtualization method for large-scale distributed heterogeneous data
CN107533569B (zh) 用于多维数据库环境中的沙箱支持的系统和方法
CN106547809A (zh) 将复合关系表示在图数据库中
Chavan et al. Survey paper on big data
Hasani et al. Lambda architecture for real time big data analytic
Ciaburro et al. Hands-on machine learning on google cloud platform: Implementing smart and efficient analytics using cloud ml engine
CN105824872B (zh) 基于搜索的数据的检测、链接和获取的方法和系统
US9807169B2 (en) Distributed tagging of data in a hybrid cloud environment
CN111611304A (zh) 知识驱动的联合大数据查询和分析平台
US9177037B2 (en) In-memory runtime for multidimensional analytical views
Silva et al. Integrating big data into the computing curricula
CN111611448A (zh) 知识驱动的联合大数据查询和分析平台
Dhavapriya et al. Big data analytics: challenges and solutions using Hadoop, map reduce and big table
KR100865481B1 (ko) 삼차원으로 구조화된 데이터 모델을 이용하여 데이터를분산 관리하는 방법
Honest et al. A survey of big data analytics
Zhang et al. DataLab: a version data management and analytics system
Abdelhafez Big data technologies and analytics: A review of emerging solutions
Peng et al. An analysis platform of road traffic management system log data based on distributed storage and parallel computing techniques
US10191973B1 (en) Patent analytics using mapreduce clustering
Kumar et al. Architectural paradigms of big data

Legal Events

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

Payment date: 20111010

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151008

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181008

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 12