KR20170137756A - 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트 - Google Patents

다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트 Download PDF

Info

Publication number
KR20170137756A
KR20170137756A KR1020177029486A KR20177029486A KR20170137756A KR 20170137756 A KR20170137756 A KR 20170137756A KR 1020177029486 A KR1020177029486 A KR 1020177029486A KR 20177029486 A KR20177029486 A KR 20177029486A KR 20170137756 A KR20170137756 A KR 20170137756A
Authority
KR
South Korea
Prior art keywords
data element
data
update
store
source
Prior art date
Application number
KR1020177029486A
Other languages
English (en)
Other versions
KR102011354B1 (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 디앤비 비지니스 인포메이션 솔루션스
Publication of KR20170137756A publication Critical patent/KR20170137756A/ko
Application granted granted Critical
Publication of KR102011354B1 publication Critical patent/KR102011354B1/ko

Links

Images

Classifications

    • G06F17/30368
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/219Managing data history or versioning
    • 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/23Updating
    • G06F17/30309

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

(1) 데이터 엘리먼트를 수신하는 단계, (2) 데이터 엘리먼트를, 시간에 걸쳐 데이터 엘리먼트에 발생한 변경들을 포함하는 펜드(pend) 업데이트 이력 저장소 내의 대응하는 데이터 엘리먼트와 비교하여, 비교를 도출하는 단계, (3) 비교에 기초하여, 데이터 엘리먼트가 변경되었다고 결정하는 단계, (4) 데이터 엘리먼트에 대한 더 많은 최신 데이터를 포함할 수 있는 어떠한 업데이트 프로세스도 실행중이 아닌 것을 체크하는 단계, (5) 데이터 엘리먼트를, 특정 시간 범위와 연관된 컷오프 번호와 관련시키는 단계, 및 (6) (a) 데이터 엘리먼트에 대한 현재 값 및 데이터 엘리먼트에 대한 이전 값을 저장하는 전체 범용 데이터 저장소, 및 (b) (i) 데이터 엘리먼트가 업데이트되고 있는 것, 및 (ii) 컷오프 번호를 표시하는 기록을 저장하는 델타 데이터 저장소의 대응하는 데이터 엘리먼트들을 업데이트하는 단계를 포함하는 기술이 제공된다.

Description

다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트
본 출원은 2015년 3월 20일에 출원된 미국 가특허 출원 제62/135,982호의 우선권을 주장하며, 그 내용은 본원에 참고로 통합된다.
본 개시는 데이터 저장 시스템에 관한 것으로, 보다 상세하게는 다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하기 위한 시스템에 관한 것이다.
본 섹션에서 설명된 접근법들은 추구될 수 있는 접근법들이지만, 반드시 이전에 착안되거나 추구된 접근법들인 것은 아니다. 따라서, 이 섹션에서 설명되는 접근법들은 본 출원의 청구항들에 대한 종래 기술이 아닐 수 있고, 이 섹션에 포함됨으로써 종래 기술로 인정되지는 것도 아닐 수 있다.
데이터베이스 관리 시스템들 및 데이터 웨어하우스들은 다수의 시스템들로부터의 데이터를 통합하기 위해 추출, 변환, 로딩(ETL; Extract, Transform, Load)의 다양한 구현들을 활용한다. 이용가능한 이러한 기술들의 일괄적 및 병렬적 구현들, 및 본 기술분야에 초점을 맞춘 광범위한 학술 및 산업 출판 논문들 및 시스템들이 존재한다. 그러나, 이러한 시스템들은, 다수의 다양한 소스들로부터 데이터를 가져올 필요가 있고, 이러한 소스들 내의 데이터가 중첩할 수 있는 어려운 동작 시나리오, 예를 들어, 모든 동작 프로세싱 윈도우 동안 모든 소스들이 이용가능하게 보장되지는 않고, 업데이트들의 시퀀스가 미리 결정될 수 없어서 이용가능한 소스들로부터 최상의 소스를 선택하기 위한 요건을 생성하는, 동일한 엘리먼트에 대한 동일한 필드의 예를 해결하지 못한다. 또한, 어그리게이트된(aggregated) 업데이트들에 대한 액세스는 업데이트 데이터의 양 또는 전체 범용 데이터의 양과 무관하게 신속하고 수평적으로 확장가능해야 한다. 필요에 따라 이러한 양의 데이터를 수반하는 서비스 레벨의 동의들을 달성하는 것은, 최소한의 수동적 개입으로 완전히 자동화된 스트레이트-쓰루(straight-through) 프로세싱 시스템을 요구한다.
예를 들어, 비즈니스 환경은 모든 업데이트된 데이터가 클라이언트에게 매일 이용가능하도록 요구한다. 이것은 동작 프로세싱 윈도우가 될 수 있으며, 예를 들면, 24 시간이다. (a) 이러한 업데이트들은 일부 데이터가 몇몇 소스들과 중첩할 가능성을 갖는, 예를 들어, 회사 a에 대한 sales_data가 source_1 및 source_3 및 때때로 source_4에 포함되는 다수의 다양한 소스 시스템들로부터 올 수 있고, (b) 동작 윈도우 동안 몇몇 소스들로부터의 (다수의) 업데이트들은 상이한 시간들에 프로세싱을 위해 도달할 수 있고 또한 모든 소스들은 각각의 동작 윈도우 동안 이용가능하지 않을 수 있기 때문에, 기술적 문제점이 제시된다. 솔루션은, 모든 소스들(1, 3 및 4)이 이용가능할 수 있는지 여부와 무관하게, 그리고 이러한 소스들이 이용가능하게 되는 순서와 무관하게, 예를 들어, 회사 a에 대한 sales_data와 같은 어느 데이터 버전이 사용되어야 하는지를 선택하는 방법을 제공한다. 또한, 이러한 업데이트들을 문의하는 시스템은 프로세싱되고 있는 데이터양과 무관하게 쿼리 악화를 경험하지 않아야 한다. 쿼리 악화는 데이터양이 증가함에 따라 쿼리 속도가 느려지는 것과 관련된다.
다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하여, 업데이트들의 시퀀스가 미리 결정될 수 없는 동작 프로세싱 윈도우 내에서 모든 이용가능한 소스들로부터 최상의 소스가 사용되는 것을 보장하고, 모든 어그리게이트된 업데이트들에 대한 신속한 액세스를 제공하기 위한 방법 및 시스템이 제공된다.
방법은, (1) 데이터 엘리먼트를 수신하는 단계, (2) 데이터 엘리먼트를, 시간에 걸쳐 데이터 엘리먼트에 발생한 변경들을 포함하는 펜드(pend) 업데이트 이력 저장소 내의 대응하는 데이터 엘리먼트와 비교하여, 비교를 도출하는 단계, (3) 비교에 기초하여, 데이터 엘리먼트가 변경되었다고 결정하는 단계, (4) 데이터 엘리먼트에 대한 더 많은 최신 데이터를 포함할 수 있는 어떠한 업데이트 프로세스도 실행중이 아닌 것을 체크하는 단계, (5) 데이터 엘리먼트를, 컷오프 로그의 특정 시간 범위와 연관된 컷오프 번호와 관련시키는 단계, 및 (6) (a) 데이터 엘리먼트에 대한 현재 값 및 데이터 엘리먼트에 대한 이전 값을 저장하는 전체 범용 데이터 저장소, 및 (b) (i) 데이터 엘리먼트가 업데이트되고 있는 것, 및 (ii) 컷오프 번호를 표시하는 기록을 저장하는 델타 데이터 저장소의 대응하는 데이터 엘리먼트들을 업데이트하는 단계를 포함한다.
도 1은 다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하기 위한 시스템의 블록도이다.
도 1a는 도 1의 시스템에 의해 활용되는 파일 내의 일부 데이터의 예를 제공한다.
도 1b는 도 1의 시스템에서 컷오프 로그에 정보를 저장하기 위한 예시적인 구조의 표의 예시이다.
도 1c는 도 1의 시스템의 저장소들에 대한 데이터 모델의 구조의 예시이다.
도 1d는 도 1의 시스템의 저장소들에 저장될 수 있는 일부 데이터의 예이다.
도 2는 도 1의 시스템의 프로세서에 의해 수행되는 방법의 기능 블록도이다.
도 2a는 도 2의 방법에 의해 활용되는 예시적인 변환 규칙들의 표의 예시이다.
도 3은 도 2의 방법에서 업데이트 검출 스테이지의 기능 블록도이다.
도 3a는 도 2의 방법에 의해 이용되는 상태 머신 로직의 일례를 나타내는 표이다.
도 3b는 도 2의 방법에 대한 업데이트된 데이터의 예를 제공하는 표의 예시이다.
도 4는 도 2의 방법에서의 델타 생성 프로세스의 기능 블록도이다.
하나보다 많은 도면들에 공통인 구성요소 또는 특징은 도면들 각각에서 동일한 참조 번호로 표시된다.
본 문헌은 다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하여, 업데이트들의 시퀀스가 미리 결정될 수 없는 동작 프로세싱 윈도우 내에서 모든 이용가능한 소스들로부터 최상의 소스가 사용되는 것을 보장하고, 모든 어그리게이트된 업데이트들에 대한 신속한 액세스를 제공하기 위한 방법 및 시스템을 개시한다.
도 1은 다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하기 위한 시스템(100)의 블록도이다. 시스템(100)은 네트워크(150)에 통신가능하게 커플링된 컴퓨터(115) 및 데이터 소스들, 즉, 소스들(145)을 포함한다.
소스들(145)이 임의의 수의 소스들을 포함할 수 있음을 표시하기 위해, 소스들(145)은 총괄적으로 복수의 소스들(145a - 145n)을 지칭한다.
네트워크(150)는 데이터 통신 네트워크이다. 네트워크(150)는 사설 네트워크 또는 공공 네트워크일 수 있고, (a) 예를 들어, 방을 커버하는, 개인 영역 네트워크, (b) 예를 들어, 건물을 커버하는, 로컬 영역 네트워크, (c) 예를 들어, 캠퍼스를 커버하는, 캠퍼스 영역 네트워크, (d) 예를 들어, 도시를 커버하는, 대도시 영역 네트워크, (e) 예를 들어, 대도시, 지역 또는 국가 경계들에 걸쳐 연결된 영역을 커버하는, 광역 네트워크 또는 (f) 인터넷 중 임의의 것 또는 이들 전부를 포함할 수 있다. 통신들은 전자 신호들 및 광 신호들을 사용하여 네트워크(150)를 통해 수행된다.
컴퓨터(115)는 프로세서(120) 및 프로세서(120)에 커플링된 메모리(125)를 포함한다. 컴퓨터(115)는 독립형 디바이스로서 본원에 표현되지만, 이에 제한되는 것이 아니라 그 대신 분산형 프로세싱 시스템의 다른 디바이스들(미도시)에 커플링될 수 있다.
프로세서(120)는 명령들에 응답하고 명령들을 실행하는 논리 회로로 구성된 전자 디바이스이다.
메모리(125)는 컴퓨터 프로그램으로 인코딩된 유형의 비일시적 컴퓨터 판독가능 저장 디바이스이다. 이와 관련하여, 메모리(125)는 프로세서(120)의 동작을 제어하기 위해 프로세서(120)에 의해 판독가능 및 실행가능한 데이터 및 명령들, 즉 프로그램 코드를 저장한다. 메모리(125)는 랜덤 액세스 메모리(RAM), 하드 드라이브, 판독 전용 메모리(ROM), 또는 이들의 조합으로 구현될 수 있다. 메모리(125)의 구성요소들 중 하나는 프로그램 모듈(130)이다.
프로그램 모듈(130)은 프로세서(120)가 본원에 설명된 방법들을 실행하도록 제어하기 위한 명령들을 포함한다. "모듈"이라는 용어는 독립형 구성요소로서 또는 복수의 하위 구성요소들의 통합된 구성으로서 구현될 수 있는 기능적 동작을 표시하기 위해 본원에서 사용된다. 따라서, 프로그램 모듈(130)은 단일 모듈로서 또는 서로 협력하여 동작하는 복수의 모듈들로서 구현될 수 있다. 본 문헌에서, 프로그램 모듈(130) 또는 이의 종속 모듈들에 의해 수행되는 동작들을 설명하는 경우, 동작들은 실제로는 프로세서(120)에 의해 수행되고 있다. 프로그램 모듈(130)은 본원에서 메모리(125)에 설치되고 따라서 소프트웨어로 구현되는 것으로 설명되지만, 하드웨어(예를 들어, 전자 회로), 펌웨어, 소프트웨어 또는 이들의 조합 중 임의의 것으로 구현될 수 있다.
프로그램 모듈(130)은 메모리(125)에 미리 로드된 것으로 표시되지만, 메모리(125)로의 후속 로딩을 위해 저장 디바이스(127) 상에 구성될 수 있다. 저장 디바이스(127)는 프로그램 모듈(130)을 저장하는 유형의 비일시적 컴퓨터 판독가능 저장 디바이스이다. 저장 디바이스(127)의 예들은 컴팩트 디스크, 자기 테이프, 판독 전용 메모리, 광 저장 매체, 하드 드라이브 또는 다수의 병렬적 하드 드라이브들로 이루어진 메모리 유닛, 및 범용 직렬 버스(USB) 플래시 드라이브를 포함한다. 대안적으로, 저장 디바이스(127)는 원격 저장 시스템 상에 위치되고 네트워크(150)를 통해 컴퓨터(115)에 커플링되는 랜덤 액세스 메모리 또는 다른 타입의 전자 저장 디바이스일 수 있다.
필드-엘리먼트 파일들(105), 엘리먼트들-투-업데이트(elements-to-update) 파일들(135) 및 변경된-엘리먼트들 파일들(140)은 시스템(100)에서 중간적 데이터 저장소들로서 사용되는 데이터 항목들이고 메모리(125)에 저장된다. 필드-엘리먼트 파일들(105)이 임의의 수의 필드-엘리먼트 파일들을 포함할 수 있음을 표시하기 위해, 필드-엘리먼트 파일들(105)은 총괄적으로 복수의 필드-엘리먼트 파일들(105a - 105n)을 지칭한다. 엘리먼트들-투-업데이트 파일들(135)이 임의의 수의 엘리먼트들-투-업데이트 파일들을 포함할 수 있음을 표시하기 위해, 엘리먼트들-투-업데이트 파일들(135)은 총괄적으로 복수의 엘리먼트들-투-업데이트 파일들(135a - 135n)을 지칭한다. 변경된-엘리먼트들 파일들(140)이 임의의 수의 변경된-엘리먼트들 파일들을 포함할 수 있음을 표시하기 위해, 변경된-엘리먼트들 파일들(140)은 총괄적으로 복수의 변경된-엘리먼트들 파일들(140a - 140n)을 지칭한다. 필드-엘리먼트 파일들(105), 엘리먼트들-투-업데이트 파일들(135) 및 변경된-엘리먼트들 파일들(140)은 서로 동일한 구조를 갖는다.
도 1a는 필드-엘리먼트 파일들(105)의 파일에서 일부 데이터의 예를 제공한다. 이 예는 비즈니스에 대한 DUNS(Data Universal Numbering System) 번호 및 이와 연관된 일부 비즈니스 콘택트 정보를 나타낸다. 저장될 수 있는 데이터 타입에는 어떠한 제한도 없다.
시스템(100)은 몇몇 데이터베이스들, 즉 컷오프 로그(152), 전체 범용 데이터 저장소(155), 델타 데이터 저장소(160) 및 펜드 업데이트 이력 저장소(165)를 포함한다.
컷오프 로그(152)는 컷오프 번호들 및 관련 정보를 위한 스토리지이다. 프로세싱 파이프라인이 실행되고, 기본 데이터에 대해 변경들이 등록될 때마다, 그 프로세싱 파이프라인으로부터의 새로운 데이터세트 모두는 새로운 순차적 번호, 소위 컷오프 번호로 스탬핑된다. 이러한 번호는 특정 시간에 행해진 모든 변경들과 관련된다. 컷오프 번호들은 컷오프 로그(152)에 순차적으로 저장된다.
도 1b는 컷오프 로그(152)에 정보를 저장하기 위한 예시적인 구조의 데이터 표, 즉 표(190)의 예시이다. 이러한 예는 컷오프 번호들 3, 4, 5 및 6에 의해 식별되는 4개의 업데이트 기간들을 나타낸다. 업데이트 범위 시작 및 업데이트 범위 끝은 포맷 yyyy-mm-dd_hh:mm:ss의 날짜들(즉, 년-월-일_시:분:초)이다.
전체 범용 데이터 저장소(155)는 모든 엘리먼트들의 완전한 마스터 리스트, 및 이들의 현재 값 및 이전 값을 유지하기 위해 사용된다. 델타 데이터 저장소(160)는 각각의 업데이트에 대해, 특정 시간에 업데이트된 엘리먼트들만을 포함하는 델타 표를 포함한다. 펜드 업데이트 이력 저장소(165)는 각각의 엘리먼트에 대해 시간에 걸쳐 발생한 모든 변경들을 포함한다.
도 1c는 전체 범용 데이터 저장소(155), 델타 데이터 저장소(160) 및 펜드 업데이트 이력 저장소(165)에 대한 데이터 모델의 구조의 예시이다. 도 1c에 도시된 특징들은 다음과 같다.
(a) 엘리먼트 베이스는 헤더 및 페이로드를 포함한다.
(b) 헤더는 다음과 같은 다수의 필드들을 포함한다:
엔티티 ID : 고유의 엔티티(entity)를 지칭하는 id, 예를 들어, DUNS 번호;
엘리먼트 이름: 해당 엘리먼트에 대한 고유의 이름;
타임스탬프: 마지막 업데이트의 날짜 및 시간; 및
해시: 데이터베이스 룩업을 가속화하기 위해 이러한 특정 기록을 지칭하는 고유의 값;
(c) 페이로드는 아토믹(atomic) 또는 어그리게이트(aggregate) 타입의 엘리먼트를 포함한다.
(d) 아토믹(atomic) 엘리먼트들은 정확하고 단일의 의미를 갖고;
id: 이러한 특정 엘리먼트를 지칭하는 고유의 id;
값: 엘리먼트의 실제 값;
해시: 데이터베이스 룩업을 가속화하기 위해 이러한 특정 기록을 지칭하는 고유의 값; 및
attrs: 이러한 엘리먼트와 연관된 다수의 속성들, 예를 들어, 데이터의 소스, 컷오프 번호를 포함하고;
(e) 어그리게이트 엘리먼트들은 다수의 아토믹(atomic) 엘리먼트들 또는 계산된/유도된 값들을 결합한 것으로부터의 결과를 포함하고, 다음을 갖도록 구성된다:
id: 이러한 특정 엘리먼트를 지칭하는 고유의 id;
해시: 데이터베이스 룩업을 가속화하기 위해 이러한 특정 기록을 지칭하는 고유의 값; 및
엘리먼트들: 이러한 어그리게이트 엘리먼트를 형성하는 엘리먼트들의 리스트.
도 1d는 전체 범용 데이터 저장소(155), 델타 데이터 저장소(160) 및 펜드 업데이트 이력 저장소(165)에 데이터가 어떻게 표현될지의 예에 대한 예시이다. 이러한 예는 엔티티들에 대한 2개의 부분적인 기록들(123456789 및 987654321)을 나타낸다. 각각의 엔티티에 대해, 조직, 도시, 표준 산업 분류(SIC) 및 직원 수를 포함하는 4개의 엘리먼트들이 도 1d의 좌측 및 우측에 예시된다. 중앙의 표는 이러한 엘리먼트들이 엔티티에 대한 완전한 기록들로 어떻게 결합될지를 나타낸다.
도 2는 프로그램 모듈(130) 내의 명령들에 따라 프로세서(120)에 의해 수행되는 방법(200)의 기능적 블록도이다. 방법(200)에서, 프로세서(120)는 소스들(145)로부터의 대량의 시간적 데이터를 전체 범용 데이터 저장소(155) 및 델타 데이터 저장소(160) 내의 데이터 세트들로 어그리게이트한다. 소스들(145)은 소스(145a), 소스(145b) 및 소스(145c) 내지 소스(145n)을 포함한다. 방법(200)은 준비 및 엘리먼트화 스테이지(205), 업데이트 검출 스테이지(220) 및 폴드오버(foldover) 스테이지(235)를 포함한다.
준비 및 엘리먼트화 스테이지(205)에서, 엘리먼트화 프로세스(215)는 소스들(145)로부터 파일들을 수신한다. 엘리먼트화 프로세스(215)는 (소스들(145)로부터의) 파일들/필드들을 데이터 엘리먼트들로 변환한다(도 1a 참조). 파일들은 소스들(145)로부터, 미리 결정될 수 없는 시퀀스로 도달하고, 각각의 파일은 중첩하는 필드들을 포함하는 필드들, 즉, 전체 범용 데이터 저장소(155) 및 델타 데이터 저장소(160)의 데이터 세트들에 대해 요구되는 다수의 파일들에서 동일한 필드를 포함할 수 있다.
엘리먼트화 프로세스(215)는 소스들(145)로부터 변환 규격(spec)(210)을 사용하여 파일들/필드들을 수신하고, 필드-엘리먼트 파일들(105)에 저장되는 필드-엘리먼트들을 생성한다. 엘리먼트화 프로세스(215)는 소스들(145) 각각에 대한 필드-엘리먼트 파일들(105) 중 대응하는 것을 생성한다. 예를 들어, 엘리먼트화 프로세스(215)는 소스(145a)에 대한 필드-엘리먼트 파일(105a), 소스(145b)에 대한 필드-엘리먼트 파일(105b) 등을 생성한다. 엘리먼트화 프로세스(215)는 소스들(145a, 145b 및 145c 내지 145n)로부터의 파일들을 순차적으로 또는 병렬적으로 프로세싱할 수 있다.
소스들(145)의 필드들과 필드-엘리먼트 파일들(105)의 엘리먼트들 사이에는 일대일 관계, 일대다 관계 또는 다대일 관계가 존재할 수 있다.
일대일 관계에서, 소스들(145)에 포함된 데이터 필드들은 필드-엘리먼트 파일들(105)의 필드-엘리먼트들에 직접 맵핑한다. 예를 들어, 소스(145a)로부터의 필드 A는 필드-엘리먼트 파일(105a)의 필드 A에 직접 맵핑할 것이다.
일대다 관계에서, 소스들(145)에 포함된 단일 데이터 필드는 필드-엘리먼트 파일들(105)의 다수의 필드-엘리먼트들에 병합될 수 있다. 예를 들어, 소스(145a)로부터의 필드 B는 필드-엘리먼트 파일(105a)의 필드 C, 필드 D 및 필드 E로 병합되거나 그에 의해 사용된다.
다대일 관계에서, 소스들(145)의 다수의 필드들은 필드-엘리먼트 파일들(105)의 하나의 필드에 병합될 수 있다. 예를 들어, 소스(145a)로부터의 필드 F, 필드 G, 필드 H는 필드-엘리먼트 파일(105a)의 필드 J로 병합된다.
이러한 관계들은, 발생할 변환을 설명하는 규칙들 및 프로세스들과 함께 변환 spec(210)에서 정의된다.
도 2a는 예시적인 변환 규칙들의 표, 즉, 표(290)의 예시이다. 이러한 예에서, "IndustryCode[D&BIndustryCode] [1]"은, "맵핑" 열에서 설명되는 바와 같은 값들 및 속성들을 사용하여, 필드들 GBWR_US_1987_SICS1,
GBWR_US_1987_SICS1_DNB_IND_TYPE_CODE_NORMALIZED,
GBWR_US_1987_SICS1_ DNB_IND_TYPE_TEXT_NORMALIZED,
GBWR_US_1987_SICS1_DNB_IND_CODE_DESC_NORMALIZED, 및
EDGED&BSTANDARD에 맵핑하는 일대다 관계이다.
도 2를 다시 참조하면, 업데이트 검출 스테이지(220)는 변경 검출 프로세스(225) 및 비즈니스 규칙 적용 프로세스(230)를 포함한다. 업데이트 검출 스테이지(220)는 규칙적인 동작 사이클의 일부로서 통상적으로 매일 실행하지만, 더 빈번할 수 있다. 변경 검출 프로세스(225)는 다운스트림 매핑 및 비교에 대한 필드-엘리먼트 파일들(105)을 사용한다. 변경 검출 프로세스(225)는 모든 필드-엘리먼트 파일들(105)에 걸친 모든 변경된 엘리먼트들을 검출한다. 이러한 변경들은 어그리게이트되고, 변경 검출 프로세스(225)는 필드-엘리먼트 파일들(105)의 필드-엘리먼트들을 펜드 업데이트 이력 저장소(165)의 그러한 엘리먼트들의 현재 값과 비교한다.
비즈니스 규칙 적용 프로세스(230)는 전체 범용 데이터 저장소(155) 및 델타 데이터 저장소(160)에서 실제로 어느 필드-엘리먼트 값들을 업데이트할지를 판정하는 비즈니스 규칙 로직을 적용한다. 앞서 언급된 바와 같이, 엘리먼트화 프로세스(215)는 소스들(145a, 145b 및 145c 내지 145n)로부터의 파일들을 순차적으로 또는 병렬적으로 프로세싱할 수 있다. 따라서, 엘리먼트화 프로세스(215)에 의한 소스들(145a, 145b, 145c 내지 145n)로부터의 파일들의 프로세싱은 모두 동시에 시작할 수 있다. 비즈니스 규칙 적용 프로세스(230)는 시간적 무결성을 관리하며, 엘리먼트화 프로세스(215)가 소스들(145)을 병렬로 프로세싱한 경우에도, 업데이트들을 오직 순차적으로 릴리스할 것이다. 또한, 각각의 파일의 컨텐츠 및 크기에 따라, 일부는 다른 것들보다 더 빨리 프로세싱될 수 있고, 따라서 비즈니스 규칙 적용 프로세스(230)는 업데이트들이 정확한 순서로 적용되는 것을 보장하기 위해 시간적 무결성 체크를 수행한다.
폴드오버 스테이지(235)는 델타 생성 프로세스(240)를 포함한다.
델타 생성 프로세스(240)는 대량의 어그리게이트된 데이터의 신속한 룩업을 가능하게 한다. 델타 표(245)과 같은 델타 표는 특정 시간에 업데이트된 엔티티들만을 포함하는 델타 데이터 저장소(160)의 각각의 업데이트에 대해 생성된다. 시스템(100)에서, 개별적인 비즈니스 엔티티는 DUNS 번호와 같은 고유의 식별자에 의해 고유하게 식별가능하다. 델타 표(245)는, 예를 들어, DUNS 번호에 의해 식별될 수 있고, 전체 범용 데이터 저장소(155)의 전체 스캔을 강제하기보다는 특정 업데이트 시간에 엘리먼트 변경들의 신속한 룩업을 가능하게 하는 엔티티의 모든 엘리먼트들을 포함한다.
도 3은 업데이트 검출 스테이지(220)의 기능적 블록도이다. 도 3에서, 몇몇 라인들은 버블들(bubbles)(3-1, 3-2, 3-3, 3-4 및 3-5)를 연결하는 방식으로 표현된다. 예를 들어, 버블들(3-1)을 연결하는 것은 변경 프로세스(320)를 검출하기 위해 필드-엘리먼트 파일들(105)로부터의 라인 또는 데이터의 흐름을 표현한다. 앞서 언급된 바와 같이, 업데이트 검출 스테이지(220)는 변경 검출 프로세스(225) 및 비즈니스 규칙 적용 프로세스(230)를 포함한다. 또한 앞서 언급된 바와 같이, 변경 검출 프로세스(225)는 모든 필드-엘리먼트 파일(105)에 걸쳐 모든 변경된 엘리먼트들을 검출하고, 변경들을 어그리게이트하고, 필드-엘리먼트 파일들(105)의 필드 엘리먼트들을 펜드 업데이트 이력 저장소(165)의 그러한 엘리먼트들의 현재 값과 비교한다. 이러한 동작들을 수행하기 위해, 변경 검출 프로세스(225)는 변경 검출 프로세스(320)를 포함한다.
변경 검출 프로세스(320)는 필드-엘리먼트 파일들(105)을 수신하고, 데이터 카탈로그(305)에 액세스한다.
데이터 카탈로그(305)는 엘리먼트 id, 엘리먼트 설명 및 엘리먼트 고유 이름을 포함한다. 예를 들어, "Unique Entity Identifier" 라는 엘리먼트 설명이 포함된 "007"이라는 값을 가지는 엘리먼트 ID 및 "EntityId" 라는 엘리먼트 고유 이름을 갖는 것을 포함한다.
앞서 언급된 바와 같이, 펜드 업데이트 이력 저장소(165)는 각각의 엘리먼트에 대해 시간에 걸쳐 발생한 모든 변경들을 포함한다. 따라서, 변경 검출 프로세스(320)는, 필드-엘리먼트 파일들(105a-105n)의 엘리먼트들이 펜드 업데이트 이력 저장소(165)의 그러한 엘리먼트들에 대한 현재 값과 상이한지 여부를 결정한다. 실제로 변경된 모든 엘리먼트들은 변경된-엘리먼트들 파일들(140a - 140n)에 저장된다. 오직 변경된 필드-엘리먼트들만이 비즈니스 규칙 프로세스(230)를 적용하도록 푸시된다.
앞서 언급된 바와 같이, 비즈니스 규칙 적용 프로세스(230)는 전체 범용 데이터 저장소(155) 및 델타 데이터 저장소(160)에서 실제로 어느 필드-엘리먼트 값들을 업데이트할지를 판정하는 비즈니스 규칙 로직을 적용한다. 펜드 업데이트 이력 저장소(165)가 업데이트될 필요가 있는지 여부를 결정하기 위해, 비즈니스 규칙 적용 프로세스(230)는, 시퀀스가 미리 결정될 수 없는 다수의 소스들로부터 업데이트들이 올 수 있다고 고려하는 로직을 적용한다. 이러한 동작들을 수행하기 위해, 비즈니스 규칙 적용 프로세스(230)는 규칙 적용 프로세스(330) 및 업데이트 릴리스 프로세스(335)를 포함한다.
규칙 적용 프로세스(330)는 업데이트들이 수신된 순서와 무관하게, 업데이트들이 어떻게 적용되는지를 결정하기 위해 상태 머신 로직을 이용한다. 이와 관련하여, 규칙 적용 프로세스(330)는, 업데이트들을 평가하고 상태 전환들을 결정하고 따라서 업데이트들이 어떻게 적용되는지를 결정하기 위해 최상의 품질 규칙들(325)을 활용한다.
도 3a는 3개의 상이한 소스들로부터 오는 데이터에 상태 머신 로직이 어떻게 적용되는지의 예를 도시하는 표, 즉 표(390)의 예시이다. 그룹 A는 소스: S1(145a)로부터 오는 엘리먼트들에 대한 규칙들을 나타내고, 그룹 B는 소스: S2(145b)에 대한 규칙들을 나타내고, 그룹 C는 소스: S3(145c)에 대한 규칙들을 나타낸다. 이들의 단지 예시적인 예들이다.
최상의 품질은 소스들(145a-145n) 중 어느 것이 엘리먼트에 대해 최상의 데이터를 포함하는지, 그리고 그 다음으로 좋은지 등에 대한 정의이다. 엘리먼트들은 연관된 타임스탬프들을 갖는다. 각각의 최상의 품질 규칙은 엘리먼트의 소스, 타임스탬프가 더 새로운지 여부, 및 엘리먼트의 현재 값에 대한 소스가 더 양호한 품질의 소스로부터의 것인지 여부에 따라 기초하여, 존재한다면, 엘리먼트에 대해 어떤 변경을 행할지를 설명한다.
최상의 품질 규칙들(325)은 업데이트 판정이 행해지기 전에 둘 이상의 소스들(145)로부터의 값들이 존재할 것을 요구하지 않는다. 사용할 값은 들어온 업데이트뿐만 아니라 펜드 업데이트 이력 저장소(165)의 현재 값들 및 업데이트의 소스(145a-145n)에 의존한다. 예를 들어, 펜드 업데이트 이력 저장소(165)의 가장 최근의 엘리먼트 값은 소스(145a)(즉, 이전 소스)로부터 왔을 수 있고, 동일한 엘리먼트에 대한 소스(145b)(즉, 현재 소스)로부터의 다른 업데이트가 후속적으로 검출된다. 규칙 적용 프로세스(330)는 펜드 업데이트 이력 저장소(165)가 업데이트되어야 하는지 여부를 결정하기 위해 최상의 품질 규칙들(325)을 활용한다.
시간적 무결성이 유지되도록 보장하기 위해, 업데이트들은 엘리먼트화 프로세스(215) 및/또는 변경 검출 프로세스(320)에 의해 순차적으로 또는 병렬로 프로세싱될 수 있지만, 업데이트 릴리스 프로세스(335)에 의해 순차적으로 릴리스된다.
업데이트 릴리스 프로세스(335)는 더 오래된 업데이트 프로세스 전에 더 새로운 업데이트 프로세스가 완료되는지 여부를 모니터링하고, 만일 그렇다면 더 오래된 프로세스가 완료될 때까지 업데이트된 데이터는 릴리스되지 않는데, 이는 프로세스들 둘 모두가 동일한 엘리먼트들에 대한 변경들을 적용할 수 있기 때문이다. 업데이트 릴리스 프로세스(335)는 각각의 업데이트에 적용되는 업데이트된 컷오프 번호로 펜드 업데이트 이력 저장소(165)에 업데이트들을 저장한다. 위에서 언급된 바와 같이 컷오프 번호는 각각의 업데이트에 적용되고 그 특정 시간에 행해진 모든 변경들과 관련된다. 따라서, 업데이트 릴리스 프로세스(335)는 컷오프 로그(152)에 컷오프 번호들을 순차적으로 저장한다.
도 3b는 업데이트된 데이터의 예를 제공하는 표, 즉 표(395)의 예시이다. 표(395)는 엘리먼트 StreetAddressLine1에 대한 2개의 업데이트들의 예를 나타낸다. 이러한 업데이트의 값은 타임스탬프 "2015-01-06T134454Z"에서 발생한 "560 BROADWAY RM 510"로서의 "값" 속성으로 나타난다. 또한 모든 변경 포인트들이 추적되도록 허용하기 위해 각각의 업데이트에 컷오프 번호가 주어진다. 이러한 경우, 이 업데이트에 대해 컷오프는 "7"로 설정된다. 업데이트의 소스는 "소스"속성에 나타나고, 이 예에서 소스는 "worldbase4370"이다. 이러한 엘리먼트에 대한 제 2 업데이트는 타임스탬프 "2015-01-13T115914Z"에서 발생한 것으로 나타나고, 엘리먼트 값을 "560 BROADWAY RM 530"으로 변경한다. 컷오프 값은 "9"로 설정된다. 컷오프 로그(152)는 각각의 컷오프 번호와 연관되는 연관된 날짜 및 시간 범위들을 저장하고, 이는 모든 업데이트 포인트들이 쉽게 추적되도록 허용한다.
도 4는 앞서 언급된 바와 같이 대량의 어그리게이트된 데이터의 신속한 룩업을 가능하게 하는 델타 생성 프로세스(240)의 기능적 블록도이다. 델타 생성 프로세스(240)는 전체 엔티티 어셈블 프로세스(405) 및 델타 표 생성 프로세스(410)를 포함한다. 전체 엔티티 어셈블 프로세스(405) 및 델타 표 생성 프로세스(410)는 주기적 동작 업데이트 사이클 동안 예시된다.
앞서 언급된 바와 같이, 전체 범용 데이터 저장소(155)는 모든 엘리먼트들의 완전한 마스터 리스트, 및 이들의 현재 값 및 이전 값을 유지하기 위해 사용된다. 따라서, 전체 엔티티 어셈블 프로세스(405)는 엘리먼트들-투-업데이트 파일들(135a - 135n)을 판독하고, 최신 업데이트들을 전체 범용 데이터 저장소(155)에 기록하고, 가장 오래된 업데이트들을 전체 범용 데이터 저장소(155)로부터 제거한다. 따라서, 전체 엔티티 어셈블 프로세스(405)는 전체 범용 데이터 저장소(155)에서 오직 가장 최근의 업데이트 및 이전 업데이트만을 유지한다.
델타 표 생성 프로세스(410)는 엘리먼트들-투-업데이트 파일들(135a - 135n)을 판독하고, 이들을 델타 데이터 저장소(160)에 기록한다. 각각의 변경에 대해, 델타 표 생성 프로세스(410)는, 델타 데이터 저장소(160)에서, 그 업데이트 시간에 업데이트된 엘리먼트들만을 포함하는 델타 표를 생성한다. 델타 표는 엔티티(DUNS)의 모든 엘리먼트들을 포함한다. 변경된 값들은 델타 표와 동일한 이름을 갖는 컷오프 번호를 가질 것이다. 이는 특정 업데이트 시간에 엔티티 및 이의 변경들에 대한 신속한 룩업을 가능하게 하고, 따라서 변경들을 결정하기 위해 전체 범용 데이터 저장소(155)의 전체 표 스캔이 불필요하도록 보장한다.
델타 표들이 없다면, 시스템(100)의 출력을 사용하는 시스템은 임의의 변경들이 행해졌는지를 결정하기 위해 전체 범용 데이터 저장소(155)를 스캔할 필요가 있을 것이다. 대량의 데이터를 갖는 시스템들의 경우, 이러한 스캔은 매우 시간 소모적이고, 더 많은 데이터가 추가됨에 따라 더 많은 시간을 소요할 것이다. 델타 데이터 저장소(160)의 델타 표들은 특정 업데이트 시간에 행해진 업데이트들을 저장한다. 각각의 델타 표는 대응하는 컷오프 번호로 마킹된다. 컷오프 로그(152)는 고유의 컷오프 번호로 마킹된 모든 업데이트 기간들의 리스트를 유지한다. 특정 시간 범위 내에서 행해진 업데이트들을 결정하기 위해, 컷오프 로그(152)는 관련 컷오프 번호들의 리스트를 획득하도록 스캔될 수 있다. 이러한 컷오프 번호들을 사용하면, 델타 데이터 저장소(160)의 대응하는 델타 표들은 요구된 시간 기간의 모든 업데이트들에 대해 스캔될 수 있다.
전체 범용 데이터 저장소(155) 및 델타 데이터 저장소(160)는 델타 생성 프로세스(240)에 의해 업데이트된 후 공개가 준비된다.
예:
1) 소스(145a)는 필드 A를 포함하고, 소스(145b)가 또한 필드 A를 포함한다고 가정한다.
2) 필드 A를 엘리먼트로 어떻게 변환할지를 결정하기 위해, 엘리먼트화 프로세스(215)는 변환 spec(210)을 사용한다. 이러한 경우, 이것은 엘리먼트 A로의 일대일 변환이다. 엘리먼트화 프로세스(215)는 필드-엘리먼트 파일들(105a 및 105b)을 생성하고, 각각은 엘리먼트 A를 포함한다.
3) 변경 검출 프로세스(320)는 필드-엘리먼트 파일들(105a 및 105b)을 판독하고, 펜드 업데이트 이력 저장소(165)에서 엘리먼트 A에 대한 현재 값을 판독하고, 엘리먼트 A가 변경되었는지 여부를 결정하기 위해 데이터 카탈로그(305)를 사용한다. 이러한 경우, 엘리먼트 A가 변경되었고, 엘리먼트 A를 포함하는 변경된-엘리먼트들 파일들(140a 및 140b)이 생성된다.
4) (변경된-엘리먼트들 파일(140a)로부터 또는 변경된-엘리먼트들 파일(140b)로부터) 어느 엘리먼트 A를 사용할지를 결정하기 위해 규칙 적용 프로세스(330)는 최상의 품질 규칙들(325)을 사용한다. 이러한 경우, 변경된-엘리먼트들 파일(140b)로부터의 엘리먼트 A가 사용된다. 변경된 엘리먼트들 파일(140b)로부터의 엘리먼트 A의 값을 갖는 엘리먼트들-투-업데이트 파일(135b)이 기록된다.
5) 업데이트 릴리스 프로세스(335)는, 더 최신의 데이터를 포함할 수 있는 어떠한 관련 업데이트 프로세스도 여전히 실행중이 아님을 확인하기 위해 시간적 무결성을 체크한다. 이 예에서, 어떠한 실행중인 프로세스들도 없고, 따라서 엘리먼트들-투-업데이트 파일(135b)로부터의 엘리먼트 A에 대한 업데이트가 릴리스되고 펜드 업데이트 이력 저장소(165)에 기록된다. 순차적으로 할당된 컷오프 번호를 갖는 현재 업데이트 기간에 대한 새로운 컷오프 기록이 컷오프 로그(152)에 추가된다.
6) 전체 엔티티 어셈블 프로세스(405)는 엘리먼트들-투-업데이트 파일(135b)로부터의 엘리먼트 A에 대한 업데이트를 전체 범용 데이터 저장소(155)에 적용하고, 또한 엘리먼트 A에 대한 이전 값을 유지한다. 델타 표 생성 프로세스(410)는 엘리먼트 A에 대한 업데이트를 델타 데이터 저장소(160)의 (새로운 컷오프 번호로 명명된) 새로운 델타 표에 적용하여, 엘리먼트 A에 대한 업데이트된 세부사항들에 새로운 컷오프 번호를 적용한다(도 3b 참조).
시스템(100)은 다수의 중첩하는 소스들로부터 대량의 시간적 데이터를 어그리게이트하여, 업데이트들의 시퀀스가 미리 결정될 수 없는 동작 프로세싱 윈도우 내에서 모든 이용가능한 소스들로부터 최상의 소스가 사용되는 것을 보장하고, 모든 어그리게이트된 업데이트들에 대한 신속한 액세스를 제공한다. 시스템(100)은 동작 프로세싱 윈도우, 예를 들어 24 시간 내의 업데이트들을 적용함으로써 이를 달성한다. 동작 프로세싱 윈도우는, 시스템(100)이 일부 소스들(145)로부터의 업데이트들을 대기하고 있는지 여부와 무관하게 업데이트가 발생하도록 강제한다. 이러한 업데이트들은, 일부 데이터가 몇몇 소스들(145)과 중첩할, 예를 들어, 회사 a에 대한 sales_data가 소스(145a) 및 소스(145b) 및 때때로 소스(145c)에 포함될 가능성을 갖는 다수의 다양한 소스들(145)로부터 올 수 있다. 동작 윈도우 동안, 몇몇 소스들(145)로부터의 (다수의) 업데이트들은 상이한 시간들에 프로세싱을 위해 도달할 수 있고, 또한 모든 소스들(145)은 각각의 동작 윈도우 동안 이용가능하지 않을 수 있다. 시스템(100)은, 모든 소스들(145a, 145b 및 145c)이 이용가능할 수 있는지 여부와 무관하게 그리고 소스들(145a, 145b 및 145c)이 이용가능하게 되는 순서와 무관하게, 예를 들어, 회사 a에 대한 sales_data의 어느 버전이 사용되어야 하는지를 선택하기 위해 업데이트 검출 스테이지(220)를 활용한다. 또한, 시스템(100)의 출력을 문의하는 시스템은 프로세싱되고 있는 데이터양과 무관하게 문의 악화를 경험하지 않을 것이다. 시스템(100)은 각각의 업데이트 포인트에서의 업데이트들만을 포함하는 델타 데이터 저장소(160)의 델타 표들을 활용하여, 업데이트들의 리스트를 찾을 때 전체 범용 데이터 저장소(155)가 스캔될 필요가 없도록 보장한다.
본원에 설명된 기술들은 예시적인 것이며, 본 개시에 대한 어떠한 특정적 제한을 암시하는 것으로 해석되어서는 안된다. 다양한 대안들, 조합들 및 변형들이 이 분야의 당업자에 의해 고안될 수 있음을 이해해야 한다. 예를 들어, 본원에서 설명된 프로세스들과 연관된 단계들은 달리 특정되거나 단계 자체들에 의해 지정되지 않는 한 임의의 순서로 수행될 수 있다. 본 개시는 첨부된 청구항들의 범위 내에 속하는 이러한 모든 대안들, 변형들 및 변경들을 포함하는 것으로 의도된다.
"포함한다" 또는 "포함하는"이라는 용어들은 언급된 특징들, 정수들, 단계들 또는 컴포넌트들의 존재를 특정하지만 하나 이상의 다른 특징들, 정수들, 단계들 또는 컴포넌트들 또는 이들의 그룹들의 존재를 배제하지 않는 것으로 해석되어야 한다. 용어 "a" 및 "an"은 부정관사이며, 따라서 복수의 물품들을 갖는 실시예들을 배제하지는 않는다.

Claims (12)

  1. 데이터 엘리먼트를 수신하는 단계;
    상기 데이터 엘리먼트를, 시간 경과에 따라 상기 데이터 엘리먼트에 발생한 변경들을 포함하는 펜드(pend) 업데이트 이력 저장소 내의 대응하는 데이터 엘리먼트와 비교하여, 비교를 도출하는 단계;
    상기 비교에 기초하여, 상기 데이터 엘리먼트가 변경되었다고 결정하는 단계;
    상기 데이터 엘리먼트에 대한 더 많은 최신 데이터를 포함할 수 있는 어떠한 업데이트 프로세스도 실행중이 아닌 것을 체크하는 단계;
    상기 데이터 엘리먼트를, 컷오프 로그의 특정 시간 범위와 연관된 컷오프 번호와 관련시키는 단계; 및
    (a) 상기 데이터 엘리먼트에 대한 현재 값 및 상기 데이터 엘리먼트에 대한 이전 값을 저장하는 전체 범용 데이터 저장소, 및 (b) (i) 업데이트가 된 상기 데이터 엘리먼트 및 (ii) 상기 컷오프 번호를 표시하는 기록을 저장하는 델타 데이터 저장소의 대응하는 데이터 엘리먼트들을 업데이트하는 단계를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 데이터 엘리먼트는 소스에 포함되어 있고;
    상기 방법은 또한,
    상기 소스를 고려하는 규칙들에 따라, 상기 데이터 엘리먼트를 업데이트할지 여부를 결정하는 단계를 포함하는,
    방법.
  3. 제 2 항에 있어서,
    상기 펜드 업데이트 이력 저장소는 이전 소스로부터 상기 데이터 엘리먼트에 대한 현재 값을 유지하고,
    상기 규칙들은 또한 상기 이전 소스를 고려하는,
    방법.
  4. 제 3 항에 있어서,
    상기 데이터 엘리먼트에 대한 값들은 복수의 소스들로부터 이용가능하고, 상기 규칙들은 상기 복수의 소스들을 고려하는,
    방법.
  5. 시간에 걸쳐 데이터 엘리먼트에 발생한 변경들을 포함하는 펜드 업데이트 이력 저장소;
    특정 시간 범위를 갖는 컷오프 번호를 연관시키는 컷오프 로그;
    상기 데이터 엘리먼트에 대한 현재 값 및 상기 데이터 엘리먼트에 대한 이전 값을 저장하는 전체 범용 데이터 저장소;
    (i) 업데이트된 상기 데이터 엘리먼트 및 (ii) 상기 컷오프 번호를 표시하는 기록을 저장하는 델타 데이터 저장소;
    프로세서; 및
    메모리를 포함하고,
    상기 메모리는, 상기 프로세서로 하여금,
    데이터 엘리먼트를 수신하게 하고;
    상기 데이터 엘리먼트를 상기 펜드 업데이트 이력 저장소의 대응하는 데이터 엘리먼트와 비교하여, 비교를 도출하게 하고;
    상기 비교에 기초하여, 상기 데이터 엘리먼트가 변경되었다고 결정하게 하고;
    상기 데이터 엘리먼트에 대한 더 이상의 최신 데이터를 포함할 수 있는 어떠한 업데이트 프로세스도 실행중이 아닌 것을 체크하게 하고;
    상기 데이터 엘리먼트를 상기 컷오프 로그의 상기 컷오프 번호와 관련되게 하고;
    (a) 상기 전체 범용 데이터 저장소 및 (b) 상기 델타 데이터 저장소의 대응하는 데이터 엘리먼트들을 업데이트;하게 하기 위해 상기 프로세서에 의해 판독가능한 명령들을 포함하는,
    시스템.
  6. 제 5 항에 있어서,
    상기 데이터 엘리먼트는 소스에 포함되어 있고;
    상기 명령들은 또한 상기 프로세서로 하여금,
    상기 소스를 고려하는 규칙들에 따라, 상기 데이터 엘리먼트를 업데이트할지 여부를 결정하게 하는,
    시스템.
  7. 제 6 항에 있어서,
    상기 펜드 업데이트 이력 저장소는 이전 소스로부터 상기 데이터 엘리먼트에 대한 현재 값을 유지하고,
    상기 규칙들은 또한 상기 이전 소스를 고려하는,
    시스템.
  8. 제 7 항에 있어서,
    상기 데이터 엘리먼트에 대한 값들은 복수의 소스들로부터 이용가능하고, 상기 규칙들은 상기 복수의 소스들을 고려하는,
    시스템.
  9. 명령들을 포함하는 비일시적 저장 디바이스로서,
    상기 명령들은, 프로세서로 하여금,
    데이터 엘리먼트를 수신하게 하고;
    상기 데이터 엘리먼트를, 시간 경과에 따라 상기 데이터 엘리먼트에 발생한 변경들을 포함하는 펜드 업데이트 이력 저장소 내의 대응하는 데이터 엘리먼트와 비교하여, 비교를 도출하게 하고;
    상기 비교에 기초하여, 상기 데이터 엘리먼트가 변경되었다고 결정하게 하고;
    상기 데이터 엘리먼트에 대한 더 이상의 최신 데이터를 포함할 수 있는 어떠한 업데이트 프로세스도 실행중이 아닌 것을 체크하게 하고;
    상기 데이터 엘리먼트를, 컷오프 로그의 특정 시간 범위와 연관된 컷오프 번호와 관련되게 하고;
    (a) 상기 데이터 엘리먼트에 대한 현재 값 및 상기 데이터 엘리먼트에 대한 이전 값을 저장하는 전체 범용 데이터 저장소, 및 (b) (i) 업데이트 된 상기 데이터 엘리먼트 및 (ii) 상기 컷오프 번호를 표시하는 기록을 저장하는 델타 데이터 저장소의 대응하는 데이터 엘리먼트들을 업데이트하게 하기 위해 상기 프로세서에 의해 판독가능한,
    저장 디바이스.
  10. 제 9 항에 있어서,
    상기 데이터 엘리먼트는 소스에 포함되어 있고;
    상기 명령들은 또한 상기 프로세서로 하여금,
    상기 소스를 고려하는 규칙들에 따라, 상기 데이터 엘리먼트를 업데이트할지 여부를 결정하게 하는,
    저장 디바이스.
  11. 제 10 항에 있어서,
    상기 펜드 업데이트 이력 저장소는 이전 소스로부터 상기 데이터 엘리먼트에 대한 현재 값을 유지하고,
    상기 규칙들은 또한 상기 이전 소스를 고려하는,
    저장 디바이스.
  12. 제 11 항에 있어서,
    상기 데이터 엘리먼트에 대한 값들은 복수의 소스들로부터 이용가능하고, 상기 규칙들은 상기 복수의 소스들을 고려하는,
    저장 디바이스.
KR1020177029486A 2015-03-20 2016-03-17 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트 KR102011354B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562135982P 2015-03-20 2015-03-20
US62/135,982 2015-03-20
PCT/IB2016/000413 WO2016151397A1 (en) 2015-03-20 2016-03-17 Aggregating high volumes of temporal data from multiple overlapping sources

Publications (2)

Publication Number Publication Date
KR20170137756A true KR20170137756A (ko) 2017-12-13
KR102011354B1 KR102011354B1 (ko) 2019-08-16

Family

ID=55910999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177029486A KR102011354B1 (ko) 2015-03-20 2016-03-17 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트

Country Status (12)

Country Link
US (1) US10942911B2 (ko)
EP (1) EP3271834B1 (ko)
JP (1) JP6450865B2 (ko)
KR (1) KR102011354B1 (ko)
CN (1) CN107624185B (ko)
AU (1) AU2016238517B2 (ko)
CA (1) CA2980271C (ko)
DK (1) DK3271834T3 (ko)
HK (1) HK1250181A1 (ko)
MX (1) MX2017012158A (ko)
NZ (1) NZ735617A (ko)
WO (1) WO2016151397A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064714A1 (en) * 2014-10-20 2016-04-28 Ab Initio Technology Llc Specifying and applying rules to data
US10209983B2 (en) * 2017-04-19 2019-02-19 Servicenow, Inc. Distributed incremental updating of trays using a source control system
CN112307017A (zh) * 2020-09-16 2021-02-02 北京沃东天骏信息技术有限公司 数据存储方法、查询方法及相关设备、存储介质
CN113007966B (zh) * 2021-03-19 2022-05-06 合肥美菱物联科技有限公司 一种冰箱功能升级的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802322A (en) * 1994-12-16 1998-09-01 International Business Machines Corp. Method and apparatus for the serialization of updates in a data conferencing network
US20100235335A1 (en) * 2009-03-11 2010-09-16 Heman Sandor Abc Column-store database architecture utilizing positional delta tree update system and methods
JP2011215984A (ja) * 2010-04-01 2011-10-27 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
JP2012079259A (ja) * 2010-10-06 2012-04-19 Fujitsu Ltd 更新管理装置、更新管理方法および更新管理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826253A (en) * 1995-07-26 1998-10-20 Borland International, Inc. Database system with methodology for notifying clients of any additions, deletions, or modifications occurring at the database server which affect validity of a range of data records cached in local memory buffers of clients
US6389429B1 (en) * 1999-07-30 2002-05-14 Aprimo, Inc. System and method for generating a target database from one or more source databases
US20040230571A1 (en) * 2003-04-22 2004-11-18 Gavin Robertson Index and query processor for data and information retrieval, integration and sharing from multiple disparate data sources
US7496910B2 (en) * 2004-05-21 2009-02-24 Desktopstandard Corporation System for policy-based management of software updates
KR100786261B1 (ko) 2006-04-03 2007-12-17 (주)위세아이텍 메타데이터 저장소에의 메타데이터 자동적재 방법
US7418453B2 (en) 2006-06-15 2008-08-26 International Business Machines Corporation Updating a data warehouse schema based on changes in an observation model
CN101127034B (zh) 2006-08-18 2012-05-23 国际商业机器公司 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统
CN103136308A (zh) * 2011-11-23 2013-06-05 英业达股份有限公司 应用系统数据库更新的方法和系统
US8751525B2 (en) * 2011-12-23 2014-06-10 Sap Ag Time slider operator for temporal data aggregation
US10860557B2 (en) 2013-03-13 2020-12-08 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing change value indication and historical value comparison

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802322A (en) * 1994-12-16 1998-09-01 International Business Machines Corp. Method and apparatus for the serialization of updates in a data conferencing network
US20100235335A1 (en) * 2009-03-11 2010-09-16 Heman Sandor Abc Column-store database architecture utilizing positional delta tree update system and methods
JP2011215984A (ja) * 2010-04-01 2011-10-27 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
JP2012079259A (ja) * 2010-10-06 2012-04-19 Fujitsu Ltd 更新管理装置、更新管理方法および更新管理プログラム

Also Published As

Publication number Publication date
US10942911B2 (en) 2021-03-09
CN107624185A (zh) 2018-01-23
DK3271834T3 (da) 2020-01-27
AU2016238517A1 (en) 2017-10-12
EP3271834B1 (en) 2019-10-23
CN107624185B (zh) 2021-01-15
NZ735617A (en) 2019-05-31
US20160275130A1 (en) 2016-09-22
MX2017012158A (es) 2018-07-06
EP3271834A1 (en) 2018-01-24
JP2018514886A (ja) 2018-06-07
AU2016238517B2 (en) 2020-05-14
KR102011354B1 (ko) 2019-08-16
CA2980271A1 (en) 2016-09-29
CA2980271C (en) 2021-02-02
WO2016151397A1 (en) 2016-09-29
HK1250181A1 (zh) 2018-11-30
JP6450865B2 (ja) 2019-01-09

Similar Documents

Publication Publication Date Title
CN109871373B (zh) 一种数据存储方法和装置、计算机可读存储介质
US9201738B2 (en) Method, computer readable storage medium and computer system for obtaining snapshots of data
AU2011210597B2 (en) System and method for aggregation and association of professional affiliation data with commercial data content
CN106407360B (zh) 一种数据的处理方法及装置
CN108647357B (zh) 数据查询的方法及装置
KR102011354B1 (ko) 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트
US10776345B2 (en) Efficiently updating a secondary index associated with a log-structured merge-tree database
US11449509B2 (en) Workflow driven database partitioning
US20140095549A1 (en) Method and Apparatus for Generating Schema of Non-Relational Database
WO2019085463A1 (zh) 部门需求的推荐方法、应用服务器及计算机可读存储介质
CN111258819A (zh) MySQL数据库备份文件的数据获取方法、装置和系统
US10769105B2 (en) Modifying Lucene index file
US11176127B2 (en) Accelerating queries based on zone expression maps
CN107291938A (zh) 订单查询系统及方法
CN116701355A (zh) 数据视图处理方法、装置、计算机设备及可读存储介质
US10671592B2 (en) Self-maintaining effective value range synopsis in presence of deletes in analytical databases
US20070239794A1 (en) Method and system for updating logical information in databases
CN111414382A (zh) 一种基于MongoDB的慢SQL聚合展示方法和系统
US20160364813A1 (en) System for creating a linkage family tree including non-requested entities and detecting changes to the tree via an intelligent change detection system
CN114925145B (zh) 数据存储方法、装置以及存储介质和电子设备
US10749764B2 (en) Device for generating and searching sensor tag data in real time
CN112818004A (zh) 数据存储方法、查询方法及电子设备
CN117312283A (zh) 分库分表的数据校验方法、装置、计算机设备和存储介质
CN115617570A (zh) 增量数据的备份方法、装置、电子设备及存储介质
CN115408412A (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