KR101889120B1 - 데이터 패턴 정보 생성 - Google Patents

데이터 패턴 정보 생성 Download PDF

Info

Publication number
KR101889120B1
KR101889120B1 KR1020137022748A KR20137022748A KR101889120B1 KR 101889120 B1 KR101889120 B1 KR 101889120B1 KR 1020137022748 A KR1020137022748 A KR 1020137022748A KR 20137022748 A KR20137022748 A KR 20137022748A KR 101889120 B1 KR101889120 B1 KR 101889120B1
Authority
KR
South Korea
Prior art keywords
data
values
fields
records
field
Prior art date
Application number
KR1020137022748A
Other languages
English (en)
Other versions
KR20140014155A (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 KR20140014155A publication Critical patent/KR20140014155A/ko
Application granted granted Critical
Publication of KR101889120B1 publication Critical patent/KR101889120B1/ko

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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2365Ensuring data consistency and integrity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

데이터 저장 시스템(102)은 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장한다. 데이터 처리 시스템(104)은 데이터 저장 시스템에 결합되어 있으며, 복수의 레코드들의 데이터 패턴들을 나타내는 코드들(114)을 생성하기 위해 복수의 레코드들을 처리하며, 상기 처리는, 상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되는 것을 특징으로 한다.

Description

데이터 패턴 정보 생성{Generating data pattern information}
본 발명은 데이터 패턴 정보 생성에 관한 것이다.
데이터베이스 시스템에서 데이터는 개별적인 액세스 단위 또는 "레코드들(records)"로 다양한 포맷 중의 하나로 저장된다. 각 레코드는 신용카드 거래와 같은 논리 개체에 부합될 수 있으며, 일반적으로 고유하게 레코드를 식별하는데 사용될 관련 주요 기본 키를 가진다. 레코드는 레코드 포맷의 각 필드와 관련된 다양한 값을 포함한다. 레코드는 적어도 하나의 파일(예를 들어, 플랫 파일 또는 XML 파일들과 같은 구조화된 데이터 파일)에 저장될 수 있다. 압축된 데이터베이스 시스템의 개별적인 레코드 또는 레코드의 값들은 저장될 때 압축되고, 시스템의 저장 필요성을 줄이기 위해 액세스할 때 압축이 해제된다.
본 발명의 목적은 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하며, 상기 복수의 레코드들의 데이터 패턴들의 표현들을 생성하기 위해 상기 복수의 레코드들을 처리하되, 상기 복수의 레코드들의 필드들의 조합 또는 필드들의 적어도 하나의 속성 또는 상태를 분석하며, 상기 복수의 레코드들의 데이터 패턴들의 표현들로서 적어도 하나의 속성들을 나타내기 위한 코드들을 생성하는 것이다.
일측면에서, 일반적으로 방법은 데이터 저장 시스템에서, 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하는 단계와; 상기 데이터 저장 시스템에 결합된 데이터 처리 시스템에서, 상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하는 단계를 포함하되, 상기 처리는 상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되는 것을 특징으로 한다.
측면은 적어도 하나의 다음 특징을 포함할 수 있다.
상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 두 개의 요소 값들은, 각각, 값이 기재되거나 또는 기재되지 않은 필드의 상태를 나타내는 것을 특징을 한다.
상기 기재되지 않은 상태는 널 상태(null state), 부재 상태(absent state) 또는 빈 상태(empty state) 중 어느 하나를 포함하는 것을 특징으로 한다.
상기 널 상태(null state)는 미리 정해진 값을 갖는 필드의 상태를 포함하는 것을 특징으로 한다.
상기 미리 정해진 값은 적어도 하나의 간격 문자(space characters)를 포함하는 것을 특징으로 한다.
상기 부재 상태(absent state)는 레코드에서 미싱(missing)된 필드를 포함하는 것을 특징으로 한다.
상기 빈 상태(empty state)는 해당되는 데이터 값이 없는 필드를 포함하는 것을 특징으로 한다.
상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 두 개의 요소 값들은 상기 필드와 관련된 검증 규칙에 따라 유효하지 않거나 또는 유효한 필드 내에서 발생하는 데이터 값을 나타내는 것을 특징으로 한다.
상기 검증 규칙은 상기 데이터 값의 데이터 유형에 대한 적어도 한 부분에 기초하여 유효한 값들을 정의하는 것을 특징으로 한다.
상기 검증 규칙은 열거 값들의 리스트를 참조하여 적어도 일부 유효값들을 정의하는 것을 특징으로 한다.
상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 하나의 요소값들은 첫번째 필드에서 발생하는 데이터 값이 타겟 데이터 값에 일치하는 정도를 나타내는 것을 특징으로 한다.
상기 타겟 데이터 값은 두번째 필드에서 발생하는 데이터 값인 것을 특징으로 한다.
상기 세트에서 적어도 적어도 세번째 요소값들은, 각각, 불일치(mismatch), 정확한 일치(Exact match) 또는 퍼지 일치(Fuzzy match) 중 어느 하나로 상기 첫번째 필드에서 발생하는 데이터 값이 상기 타겟 데이터 값에 일치하는 정도를 나타내는 것을 특징으로 한다.
상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 하나의 요소 값은 첫번째 레코드의 필드들의 조합 또는 필드에서 발생하는 적어도 하나의 값들, 그리고 첫번째 레코드와 다른 적어도 두번째 레코드에 포함된 적어도 하나의 레코드들의 세트의 필드들의 조합 또는 필드에서 발생하는 적어도 하나의 값들로부터 연산된 데이터 값을 부호화하는 것을 특징으로 한다.
상기 첫번째 레코드는 첫번째 데이터 세트이며, 상기 두번째 레코드는 상기 첫번째 데이터 세트와 다른 두번째 데이터 세트인 것을 특징으로 한다.
적어도 두번째 코드의 적어도 하나의 요소에 대해, 상기 세트의 적어도 하나의 요소값은 필드에서 발생하는 미리 정해진 데이터 값을 나타내는 것을 특징으로 한다.
상기 두번째 코드의 요소에 대한 요소값들의 세트에서 요소값들의 수는 상기 데이터 세트의 상기 복수의 레코드들 전체에 대한 필드들의 조합 또는 해당하는 필드에서 발생하는 데이터 값들의 전체 수와 같은 것을 특징으로 한다.
또 다른 측면에서, 일반적으로, 컴퓨터 시스템에서 수행하도록 하기 위한 명령들을 포함하는 컴퓨터 프로그램을 저장하는 컴퓨터로 판독가능한 저장 매체는 데이터 저장 시스템에서 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하고, 상기 데이터 저장 시스템에 결합된 컴퓨터 시스템의 적어도 하나의 프로세서에서, 상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하되, 상기 처리는 상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되는 것을 특징으로 한다.
또 다른 측면에서, 일반적으로, 시스템은 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하도록 구성된 데이터 저장 시스템; 및 상기 데이터 저장 시스템에 결합되어 있으며, 상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하도록 구성된 데이터 처리 시스템을 포함하되, 상기 처리는 상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되는 것을 특징으로 한다.
또 다른 측면에서, 일반적으로, 시스템은 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하기 위한 수단; 및 상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하기 위한 수단을 포함하되, 상기 처리 상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되는 것을 특징으로 한다.
또 다른 측면에서, 일반적으로 다음 방법은 데이터 저장 시스템에서, 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하는 단계와: 상기 데이터 저장 시스템에 결합되어 있는 데이터 처리 시스템에서, 상기 복수의 레코드들의 데이터 패턴들의 표현들을 생성하기 위해 상기 복수의 레코드들을 처리하는 단계를 포함하되, 상기 처리는 상기 복수의 레코드들의 필드들의 조합 또는 필드들의 적어도 하나의 속성 또는 상태를 분석하는 단계와, 상기 복수의 레코드들의 데이터 패턴들의 표현들로서 적어도 하나의 속성들을 나타내기 위한 코드들을 생성하는 단계를 포함한다.
또 다른 측면에서, 일반적으로 다음 방법은 데이터 저장 시스템에서, 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하는 단계와; 상기 데이터 저장 시스템에 결합되어 있는 데이터 처리 시스템에서, 상기 복수의 레코드들의 데이터 패턴들의 표현들을 생성하기 위해 상기 복수의 레코드들을 처리하는 단계를 포함하되, 상기 처리는 상기 복수의 레코드들의 각 레코드들에 대해 상기 레코드의 필드들의 조합 또는 필드들에 대응하는 적어도 하나의 데이터 요소들을 부호화하는 코드를 특정하는 단계를 포함하며, 상기 적어도 하나의 데이터 요소들은 해당 필드에 값이 기재되었는지를 나타낸다.
본 발명의 측면들은 다음과 같은 적어도 하나의 효과를 포함한다.
데이터 세트의 데이터 품질에 대해 분석할 때, 필드 수는 종종 얼마나 많은 레코드에서 필드가 부재(absent)( 레코드에 존재하지 않음 )인지, 비어있는지(empty)(문자가 없음)있는지, 공백(blank)(적어도 하나의 간격 문자)인지, 널(null)(NULL과 관련된 특정 값 포함)인지, 값이 기재되어 있는지(populated)(존재하고 있으며 비어있지 않거나 공백이 아닌) 또는 검사 규칙들(예를 들어, 또는 데이터유형에 따라 또는 열거된 데이터값의 리스트를 참조)의 집합에 따라 유효한지 그렇지 않은지에 따라 필드의 상태가 연산된다. 필드들의 조합 또는 필드에 값이 기재되어 있는 상태는 필드들의 조합 또는 적어도 하나의 조건들로부터 형성되며, 보다 일반적으로 코드로 필드들의 조합 또는 필드 내의 값들의 일부 연결된다. 레코드의 필드들의 조합 또는 선택한 필드들의 세트에 대해 값이 기재되어 있는지의 상태를 수집하는 것은 필드들 조합 또는 선택한 필드들에 값이 기재되어 있는 상태를 요약한 데이터 패턴 코드로 부호화될 수 있다. 데이터 패턴 코드들은 값이 기재된 상태를 나타내는 대신에 추가적으로 다른 속성을나타내는데 사용될 수 있다. 각각의 데이터 패턴 코드를 갖는 레코드의 수는 연산될 수 있다. 파생된 데이터 패턴 코드들의 세트는 데이터 세트에 기재되는 값이 다양함을 반영하며, 각각의 패턴들과 관련된 수는 데이터 세트에서 해당 패턴의 출현함을 나타낸다.
데이터 패턴 코드는 데이터 세트의 데이터 품질을 측정하는데 사용할 수 있다. 일부 데이터 패턴 코드들은 유효(값이 기재된 패턴이 허용 가능함)한 것으로 간주될 수 있으나 반면 그렇지 않을 수도 있다. 예를 들어, 특정 필드들은 필수적, 즉, 모든 레코드에서 존재하고 값이 기재되어야 한다. 데이터 패턴 코드는 모든 필수적인 필드들에 값이 기재되어 있으면 "1"로, 그렇지 않으면 "0"으로 연산될 수 있다. 데이터 패턴 코드 "0"을 갖는 레코드의 비율은 일부 필수적인 필드의 값이 기재되지 않았으므로 데이터 품질 문제를 갖는 데이터 세트의 레코드들의 비율을 나타낸다. 보다 개선된 데이터 패턴 코드는 어떤 필수 필드들의 값이 기재되지 않았는지를 식별하고 정량화하는 것이 가능하다.
일부 데이터 세트에서 일부 필드들은 조건부적인 필수 필드, 즉 하나의 필드가 존재하거나 또는 특별한 값을 가지면, 다른 필드는 당연히 존재해야한다. 데이터 패턴 코드들은 조건을 알고 있을 때 이것을 확인할 수 있거나 또는 그 조건이 알려지지 않았을 때 데이터 패턴 코드들의 분배로부터 유추할 수 있다. 후자는 데이터 패턴 코드 내의 필드들 사이의 상관관계를 유추하여 히든 비즈니스 룰(hidden business rule)을 발견할 수 있으므로 중요하다. 예를 들어, 트랜잭션 데이터 세트는 세금이 수집된 위치들의 매장들에 대해서만 값이 기재되는 세금 필드를 포함할 수 있다. 데이터의 필드들에서 공동으로 값이 기재된 세금 필드 및 특정 매장 식별자(store_ids) 필드 사이의 상관관계는 이를 나타낼 것이다. 상관관계가 위반 될 때 , 데이터 품질 문제가 발생한다는 증거이다.
데이터 패턴 코드는 필드들에 값이 기재되었는지를 인지하는데 쓰일 뿐만 아니라 다른 종류의 비유효성(invalidity)(다시 말해, 필드에 기재되는 데이터의 부적절함, 즉 숫자 필드에서 숫자가 아닌 문자가 기재됨)을 식별하고 검출하는데 사용될 수 있다. 이는 데이터 품질을 정량화하는데 유용하며, 또한 응용프로그램을 테스트하는데 도움이 된다. 테스트 데이터 세트는 각각 존재하는 데이터 패턴 코드를 소스 데이터(예를 들어, 응용프로그램이 결국 처리할 실제 생산 데이터)로하여 레코드의 샘플을 추출하여 구성할 수 있다. 유효성에 기초한 데이터 패턴 코드들은 대부분의 코드들이 유효하지 않은 데이터를 포함하는 레코드를 식별할 수 있다. 관련 레코드들은 잘못된 데이터(bad data)(실제로 발생하는)에 대한 응용프로그램의 강인성(robustness)을 테스트하는데 사용될 수 있다. 이는 그렇지 않다면 응용 프로그램이 제품에 배포될 때까지 가능하지 않을 수 있는 테스트를 허용한다. 만일 소프트웨어 개발 주기 초기에 발견된다면 문제를 해결하기에 저렴하다.
데이터 패턴 코드들은 다른 평가(예를 들어, 값이 기재됨 또는 유효성과는 다른)를 반영할 수 있다. 예를 들면, 일부 방식에서 필드들의 조합 또는 필드의 상태는 중요할 수 있으며, 이때 상태는 다른 데이터 세트들의 레코드들내이거나 또는 같은 데이터 세트들의 다른 레코드들에서 필드들의 값(value)들과 더불어 주어진 레코드의 필드들의 조합 또는 필드들의 값(value)이 연관된 연산에 의해 결정된다. 예를 들어, 만일 레코드 그룹에 대한 평균에서 두 개 이상이 표준편차가 발생한 경우, 트랜잭션량의 필드의 값은 데이터 세트의 레코드 그룹의 맥락에서 주목할만한 것으로 간주될 수 있다. 유사하게, 데이터 세트의 외부 레코드들에서 연산되거나 또는 저장된 실제하는 의미와 관련되어 주목할만하다.
또 다른 예로, 퍼지 일치 응용프로그램에서 점수는 그룹 또는 클러스터의 다른 레코드들과 함께 주어진 레코드의 일치의 품질을 측정하여 연산될 수 있다. 데이터 패턴 코드의 하나의 요소는 레코드를 정확히 일치(Exact Match), 퍼지 일치(Fuzzy Match) 등으로 나타내어 설정된 범위 안에서 일치된 품질 점수와 연관될 수 있다. 이름 또는 주소와 같이 레코드의 요소들에 대한 일치(match) 품질을 측정하여 유사한 요소들과 함께 이 요소에서 구성된 데이터 패턴 코드는 적당한 처리 또는 분석(예를 들어, "퍼지 레코드 일치(fuzzy record match), 정확한 이름(exact name), 퍼지 주소(fuzzy address), 우편번호 없음(no postcode)")을 위한 세트로 레코드들을 분류하는데 사용될 수 있다.
데이터 패턴 코드들은 개발중인 응용프로그램의 결과물을 분석하는데 사용될 수 있다. 필드들 사이의 예측된 유효성 규칙(validity rule) 및 상관관계(correlation)는 데이터 패턴 코드들을 이용하여 프로그래밍에서 확인할 수 있다. 응용프로그램의 결과와 함께 연관된 각각의 데이터 패턴코드에 대한 레코드들의 표본 추출은 예상하지못한 버그들을 드러낼 수 있다. 응용프로그램의 다른 단계에서 데이터 패턴 코드들에 유효성 정보 또는 값이 기재되면, 좋고 나쁜 결과로부터 데이터 패턴 코드들을 비교함으로써 잘못된 결과(bad outcomes)는 분석될 수 있으며, 처음으로 돌려 추적할 수 있다.
샘플 추출은 또한 성공적인 실행을 위해 새로운 입력들을 구성하기 위한 기초로서 사용할 수 있는 테스트 케이스를 제공한다. 테스트 케이스의 사용은 반복적인 실행이 테스팅의 부분으로서 요구되어지는 응용프로그램에서 잠재적으로 중요하다. 반복적인 실행에서 사용되어지는 일례는 원하는 결과를 획득하기 위한 파라미터들을 조율할때 이다. 예를 들어, 이름과 주소의 유사성을 비교하는 퍼지 일치 응용프로그램에서 이름과 주소 쌍 사이의 일치 정도를 점수로 특성화했을 때 일치를 고려하지 않은 임계값 이하의 값들이 종종 있다. 응용프로그램은 일치가 잘 될 수 있도록 조절하기 위해 일치 결과를 제어하는 다양한 파라미터들로서 여러 번 실행될 수 있다. 필드에 기재되는 값(예를 들어, 중간 이름, 오직 성 이니셜, 집번호 없음 등)의 서로 다른 패턴들은 일치 결과 프로세서를 포함하는 비즈니스 룰에 영향을 미친다. 다른 점수 필드("정확한 이름", "퍼지 주소" 등)들에 대한 일치 품질을 반영한 코드들을 통해 값이 기재된 패턴들을 결합하여 구성된 데이터 패턴 코드들은 다른 케이스를 반영하는 테스트 케이스를 분리시키는데 이용할 수 있으며, 조절 프로세서를 예상하는데 유용할 수 있다.
일부 응용프로그램에서 인터페이스들은 다운스트림을 처리하기 위한 공통 데이터 포맷으로 서로 다른 소스들로부터 데이터를 표준화한다. 일반적으로 모든 필드들이 모든 소스들에 의해 값이 기재되지는 않을 것이다. 데이터 패턴 코드는 데이터 소스에서 발생하는 필드들의 조합을 식별할 수 있다. 일부 케이스에서 알려지지 않은 데이터의 원본을 유추하는데 사용할 수 있다. 데이터 패턴 코드들의 필드들 사이의 상관관계를 파악하여 히든 비즈니스 룰(hidden business rule)을 유추, 예를 들어 한 필드는 다른 필드에 조건부로 필수적임을 유추할 수 있다. 예를 들어, 여러 유럽 국가들의 데이터가 하나의 데이터 세트로 결합된다면, 독일에서 오는 데이터들만 오직 특정 필드에 채울 수 있을 것이다. 데이터 패턴 코드들을 고려하여 기본적인 데이터의 분석을 통해 유추한 후 나중에 비즈니스에서 확인할 수 있다. 다른 나라들로부터 레코드들에 이런 필드들의 데이터가 없는 경우 다음 설명과 데이터 품질 문제가 되지 않는다.
어떤 상황에서 오직 값이 기재된 필드들로 구성되어 조건부 형태로 반환하기 위해 공통 레코드 포맷을 취소하는 것은 도움이 될 수 있다. 이는 일관된 형식으로 데이터가 도착함에도 불구하고 소스 특정 처리가 필요한 경우 필요하다. 데이터 패턴 코드는 소스 데이터[즉, 항상 함께 값이 기재되는 필드들의 세트]에서 존재하는 레코드들의 분류를 식별할 수 있고, 조건부 레코드 포맷의 조건을 제공할 수 있으며, 축소된 레코드 포맷들로 소스 데이터 세트의 분해를 용이하게 할 수 있다.
균일화된 레코드 포맷들은 응용프로그램에 대한 데이터 소스를 설명할 때, 응용프로그램이 처리하는데 필요한 입력 케이스들의 다양함에 걸치는 테스트 케이스의 대표적인 세트를 획득하거나 구성하기 어려울 수 있다. 응용프로그램이 궁극적으로 다루게될 실제(생산) 소스 데이터로 접근 권한이 주어진 경우, 데이터 패턴 코드들은 각각의 소스 레코드들로 구성될 수 있으며, 각각의 패턴을 대표하는 레코드의 (작은) 세트는 추출될 수 있다. 이 레코드들은 테스트 환경에서 사용될수록 혼란스럽게 할 수 있으나, 필요한 경우 해당 시점(상기 케이스들은 항상 시간에 따라 변함)에서 생산 데이터의 테스트 케이스들의 포괄적인 세트(comprehensive set)를 구성할 수 있다. 레코드의 세트는 코드 범위 분석(code coverage analysis) 및 응용프로그램의 에지-케이스 스트레스 테스팅(즉, 거의 보이지 않는 데이터 조합에서의 행동에 대한 테스트)에도 사용될수 있다.
많은 기존 메인프레임 데이터세트는 COBOL에 의해 설명되어 있으며, COBOL REDEFINES을 포함한다. REDEFINES성명서는 동일 데이터세트 내의 서로 다른 레코드 포맷들(일반적으로 하위레코드(subrecord)을 위해)의 데이터를 보유하기 위해 바이트 위치의 세트를 동일하게 재사용함으로써 공간을 절약한다. 예를 들어, 하나의 레코드의 바이트는 개인 이름 및 고객 식별자와 같은 고객정보로 포함할 수 있는 반면, 다른 레코드의 바이트는 구매한 아이템(item)에 대한 수량과 가격 정보를 포함하는 송장 데이터(invoice data)를 포함할 수 있다. 때때로 레코드의 다른 필드는 REDEFINES의 어느 인스턴스가 주어진 레코드에 대하여 의도된 것인지를 식별할 수 있으나, 이것이 어느 필드인지에 대한 지식(knowledge)은 분실 또는 사용할 수 없다(예를 들어, 응용프로그램 코드에 포함됨). 때때로 레코드 포맷에 대한 외적인 어떤것(예를 들어, 파일 이름, 처리 응용프로그램에 대한 명령줄 질문(commandline argument) 또는 응용어플리케이션 코드가 액세스하는 또 다른 외적인 것)은 REDEFINE를 전체 데이터 세트에 대해 사용하는지를 식별한다. 때때로 바이트의 내용은 어떤 REDEFINE가 의도되었는지를 결정하기 위해 검사되어야 한다. 이러한 케이스는 예시적인 것이며 철저한 것은 아니다. 특히 예상된 내용(contents)에 기초한 필드들의 유효성을 함께 고려하여(예를 들어, 십진법은 알파벳 문자를 포함할 수 없으며, 스트링 데이터는 임의의 이진 문자를 포함하지 않을 것이며, 국가 코드는 특정 참조 테이블내에 있어야함 등) 하나로 합쳐진 REDEFINE 필드들의 모든 내용으로부터 구성된 데이터 패턴 코드는 어느 REDEFINE가 주어진 레코드(두 개 이상일 수 있음) 에 대해 올바른지 추론하는데 사용할 수 있다. 이 데이터 패턴 코드는 상기 레코드에 추가될 수 있으며, 또한 비_COBOL 응용프로그램들에 의해 처리하는 것을 더 잘 받아들이는 조건부 레코드 포맷으로 변경하는데 사용될 수 있다. 유사한 고려는 유니온 데이터 구조 및 다른 언어의 다른 "변형 레코드"에 적용된다.
XML 문서들은 종종 특정 문서(또는 표본)에 존재하는 필드들의 상위 집합(superset)을 포함하는 관련 XML 스키마에 의해 설명된다. 이는 다양한 기존 포맷들을 포함하도록 설계된 금융 트랜잭션을 위한 ISO20022와 같은 산업 표준에 특히 적용된다. 이러한 산업 표준 스키마들은 크고 복잡하며 상기 가능한 요소들(elements)(필드들)의 작은 부분들만 주어진 문서에 기재된다. 이러한 스키마의 문서들을 수집하여 작업할 때, 어떤 요소들이 사용되며, 요소들의 무슨 분포가 문서들의 수집에 어떻게 작용하는지를 알고 있는 것은 유용하다. 이러한 것은 문서에 대한 데이터 패턴 코드(또는 데이터 패턴 코드들의 세트)를 구성함으로써 답변이 될 수 있다. 비즈니스 룰들은 소스 데이터에도 나타나지 않는 이런 요소들에 대해 표준에서 기재되지 않기 때문에 이러한 것은 특히 새로운 응용프로그램을 설계할때 유용하며, 많은 시간과 자원을 절약할 수 있다.
일부 기구들(organizations)은 공통 데이터 구조(common data structure)로 사용자 맞춤형(customized) 또는 확장된(extended) 서로 다른 기존 포맷들로부터 데이터를 입력하므로 ISO20022와 같은 산업 표준 포맷들로 기존 데이터(legacy data)를 저장할 것을 제안한다. 공통 포맷의 데이터로 작업할 때의 도전은 모든 소스들이 스키마 내에서 동일한 필드들의 집합에 값을 기재하지 않는다는 것이다. 표본 문서들(exemplar documents)의 집합으로부터 데이터 패턴 코드를 구성하는 것은 다운스트림 처리를 위해 어느 필드들이 문서들을 분류하는데 사용할 수 있는지 그리고 어느 필드들이 사용되고 있는지를 보여줄 것이다. 어떤 경우에는, 상기 업스트림 기존 소스들의 본성(nature)은 값이 기재된 공통적이지 않은 필드들(uncommon populated fields)로부터 유추할 수 있으며, 이것은 이러한 필드들을 처리하기 위한 비즈니스 룰을 개발하는데 도움이 될 수 있다.
XML 문서들의 또 다른 특징은 다른 요소들을 포함할 수 있는 요소들로 데이터를 조직하는 것이다. 이러한 요소들의 일부는 필수적(mandatory)-다른 문서에 반드시 존재해야 함- 인 것이될 수 있고 반면에 다른 요소들은 선택적(optional)일 수 있다. 여전히 다른 요소들은 조건부적으로 필수적이다: 하나의 요소가 존재하면 다른 요소들 또한 존재해야 한다. 스키마는 종종 이러한 정보를 포함하지만, 그러나 다른 응용프로그램에 의한 사용이 항상 잘 받아들여지지 않는 포맷이다. 테이블은 아마도 요소들의 어떠한 결합은 존재하고 어떠한 결합은 존재하지 않은 것을 식별함으로써 유효한 데이터 패턴 코드들을 식별하는 스키마로부터 구성될 수 있다. XML 문서는 유효한 데이터 패턴 코드들의 테이블과 모범 문서들로 구성된 데이터 패턴 코드들을 비교함으로써 XML 스키마에 적합성에 대해 검증(validated for conformance)할 수 있다.
일부 XML 요소들은 다른 목적들을 가진 정보를 분리하는 것이다. 예를 들어, 이름 및 주소에 의해 채권자를 구별하기 위한 데이터에 대한 태그 및 금융트랜잭션의 세부사항에 대한 다른 태그가 있을 수 있다. 이러한 다른 요소들은 별개처리(separate processing)하는 것으로 예정될 수 있다. 모든 문서들은 존재하는 모든 요소들을 포함하는 것이 아니므로, 데이터 패턴 코드는 어떤 요소들이 주어진 문서에 존재하는지를 식별하는데 사용할 수 있다. 그리고, 이것은 차례대로 문서를 분해하여, 문서의 다른 요소들을 라우팅(route)하여 적절한 처리를 하는데 사용할 수 있다.
본 발명의 실시예에 따른 다른 특징들은 다음의 상세한 설명 및 청구범위에 서 명확히 나타날 것이다.
도 1은 데이터 패턴의 분석을 실행하기 위한 시스템 블록도를 나타내는 도면이다.
도 2는 데이터 패턴 분석 절차의 일례를 나타내는 흐름도이다.
도 3은 레코드들에 대응하는 코드들 및 필드들을 개략적으로 나타내는 도면이다.
도 4 및 도 5는 데이터 패턴 코드들을 표시하기 위한 사용자 인터페이스의 일례를 나타내는 도면이다.
도 1은 데이터 패턴 분석 기술을 사용하기 위한 데이터 처리 시스템(100)의 일례를 나타내는 도면이다. 시스템(100)은 데이터 소스(102)를 포함한다. 데이터 소스(102)는 저장 장치와 같은 데이터의 적어도 하나의 소스들을 포함하거나 또는 온라인 데이터 스트림으로의 연결을 포함하며, 상기 온라인 데이터 스트림은 다양한 저장 포멧(예를 들어, 데이터베이스 테이블들, 스프레드 시트 파일들(spreadsheet files), 일반 텍스트 파일(flat text files) 또는 메인프레임에서 사용하는 기본 포멧) 중의 어느 하나로 데이터를 저장한다. 실행 환경(104)은 전처리 모듈(106) 및 실행 모듈(112)을 포함한다. 일부 실시예에서, 전처리 모듈(106)은 데이터 소스(102)로부터 적어도 하나의 데이터 세트를 전달받으며, 데이터 세트의 데이터에 대해 데이터 무결성 검사를 수행한다. 예를 들어, 전처리 모듈(106)은 범위를 벗어난 값, 불가능한 값 등을 포함하는 레코드들에 대한 데이터 세트를 차단할 수도 있다. 실행모듈(112)은 진단과 다른 상위 레벨 데이터 처리를 위한 패턴정보를 이용하여 데이터 세트의 패턴들을 분석한다. 실행 환경(104)은 UNIX 운영체제와 같은 적합한 운영 시스템의 통제 하에 적어도 하나의 범용 컴퓨터에서 호스팅할 수 있다. 예를 들어, 실행 환경(104)은 복수의 중앙 처리 장치(CPUs)를 사용하는 컴퓨터 시스템의 구성을 포함한 다중 노드 병렬 컴퓨팅 환경을 포함하거나, 아니면 로컬(예를 들어, SMP컴퓨터와 같은 멀티 프로세서 시스템), 또는 로컬로 분산(예를 들어, 클러스터 또는 MPPs로 결합된 다중 프로세서)되었거나, 원격으로 또는 원격으로 배포(예를 들어, 로컬 네트워크(LAN) 및/또는 광대역 네트워크(WAN)를 통해 결합된 다중 프로세서), 또는 이들의 조합을 포함할 수 있다.
데이터 소스(102)를 제공하는 저장 장치는 실행 환경(104)의 로컬일 수 있다. 예를 들어, 데이터 소스(102)를 제공하는 저장 장치는 실행 환경(104)을 실행하는 컴퓨터에 결합된 저장 매체(예를 들어, 하드 드라이버(108))이거나, 또는 원격 결합을 통해 원격으로 실행 환경(104)을 실행하는 컴퓨터와의 통신에서 원격 시스템(예를 들어, 메인 프레임(110))에 호스팅될 수 있다.
실행 모듈(112)은 데이터 소스(102)로부터 전달된 데이터 세트를 처리하며, 데이터 세트들, 예를 들어, 실행 환경(104)에서 접근 가능한 데이터 저장 시스템(116)에 저장된 적어도 하나의 코드들(114)로 부호화된 데이터 세트 내의 패턴들을 표현하기 위해 전처리 모듈(106)로부터 전달된 결과를 선택적으로 사용한다. 코드들(114)은 데이터 소스(102) 내에서 또는 다른 위치의 데이터 세트 안의 데이터와 함께 저장될 수 있다. 데이터 저장 시스템(116)은 개발자(120)가 데이터 패턴 분석의 성과를 확인하고 관리할 수 있는 개발 환경(118)에 접근할 수 있다.
개발 환경(118)은 어떤 구현에서는 정점들(vertices) 사이의 직접 링크(작업 요소의 흐름 표시)되어 결합된 정점들(구성요소 또는 데이터 세트 표시 )을 포함하는 데이터플로우 그래프로서 응용 프로그램을 개발하기 위한 시스템이다. 예를 들어, 이러한 개발 환경은 "그래프 기반 응용 그램에 대한 매개 변수를 관리(Managing Parameters for Graph-Based Applications)"하는 미국 공개 특허 No. 2007/0011668에 참고적인 값이 포함되어 보다 자세하게 설명되어 있다. 이러한 그래프 기반 연산을 실행하기 위한 시스템은 "그래프로 표현 연산을 실행(EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS)"하는 미국 특허 5,566,072에 참고적인 값이 포함되어 있으며, 본 명세서에서 참조적으로 포함된다. 이러한 시스템에 따라 만들어진 데이터플로우 그래프는 그래픽 구성요소들에 의해 표현되어 지는 개별 프로세서의 최신 정보를 가져오기 위한 방법을 제공하고, 프로세서 간의 정보를 이동하고, 프로세서들에 대한 실행순서를 정의한다. 이러한 시스템은 프로세서 간의 통신 방법(예를 들어, 그래프의 링크에 따른 통신 경로는 TCP/IP or UNIX 도메인 소켓을 사용하거나 또는 프로세서 간의 데이터를 전달하기 위한 공유 메모리를 사용할 수 있다)을 선택하기 위한 알고리즘을 포함한다.
전처리 모듈(106)은 다른 형태의 데이터베이스 시스템들을 포함하는 다양한 타입의 시스템들로부터 "데이터 세트" 형태로 데이터를 수신한다. 데이터 세트는 널(NULL) 값의 포함이 가능하며 각각의 필드들에 대한 값(또한 "속성" 또는 "열"이라고 함)을 갖는 레코드로서 구성될 수 있다. 전처리 모듈(106)은 데이터 소스로부터 데이터를 처음 읽어올 때, 일반적으로 데이터 소스 내의 레코드들에 대한 일부 초기 포맷 정보부터 읽기 시작한다. 이러한 환경에서, 데이터 소스의 레코드에 대한 구조는 초기에 알려지지 않을 수 있으며, 대신 데이터 소스의 분석 후 결정될 수도 있다. 레코드에 대한 초기 정보는 고유값을 표현하는 비트 수, 레코드 내에서 필드들의 순서 및 비트들에 의해 표현되어지는 값들(예를 들어, 문자열(string), 서명/부호없는 정수(signed/unsigned integer))의 유형을 포함한다. 그리고, 전처리 모듈(106)은 예를 들어 필드들에 대응하는 값들이 예상 범위안에 있는지와 예상 데이터 타입인지를 보장하기 위해 레코드에 대한 데이터 무결성 분석을 수행한다.
사전 처리 단계가 완료되면, 실행 모듈(112)은 데이터 패턴 분석을 수행한다. 보다 구체적으로, 데이터 레코드는 적어도 하나의 필드 및/또는 레코드(예를 들어, 잠재적인으로 레코드에 존재하는 스키마 또는 레코드 포멧에 의해 정의된 필드들)에 대한 필드들의 결합과 관련된 다양한 속성을 가질 수 있다. 속성은 레코드에 대한 필드들의 조합 또는 각 필드에 대응되며, 데이터 값 유형(data value type), 데이터 값 길이(data value length), 및/또는 데이터 값(data value)을 포함한다. 일부 구현에서는 데이터 레코드의 필드들에 해당되는 값들을 전체적으로 레코드의 세트라 한다. 일반적으로 레코드에 대한 필드들은 반드시 모두 값이 기재될 필요는 없다. 예를 들어, 데이터 레코드들은 개별 레코드에 존재하는 모든 필드들에 해당하는 값을 가질 수도 있고 갖지 않을 수도 있다. 추가적으로, 레코드와 관련되었다고 공지되었거나 이미 알고 있는 일부 필드들은 존재하지 않을 수도 있으며, 부재 필드들(absent fields)로서 나타낼 수도 있다. 따라서, 필드가 "값이 기재되지 않음(not populated)"으로 표시되는 이유는 여러가지가 있을 수 있다. 일부 필드들은 특정 레코드에 부재(absent)중 일 수도 있으며, 일부 필드들은 존재하되 공백(empty)이거나 또는 "NULL"값(적어도 하나의 공백 문자열이며, 필드에 값이 기재되지 않음을 나타내기 위해 미리 정해진값이다.)으로 기재될 수 있다. 존재하면서 "NULL"이 아닌 값들(non-NULL values)을 포함하는 필드들은 값이 기재된다. 일부 구현에서는, 레코드의 필드들에 대응하는 값들 또는 필드들의 부재는 레코드가 어떤 식으로든 데이터 품질 문제가 있을 수 있어 불완전한 것으로 나타낼 수 있다. 일부 구현에서는, 필드들 또는 필드값들이 부족한 것은 단순히 주어진 레코드에 대한 특정 필드들의 부적절함을 알리는 것일 수 있다.
레코드의 집단의 패턴은 레코드의 필드들의 분석에 의해 확인할 수 있다. 레코드의 데이터 패턴의 표현은, 예를 들어, 레코드들의 필드들의 조합 또는 필드들에 대응하는 적어도 하나의 속성 또는 상태에 대응하는 요소들의 값들을 갖는 데이터 요소들을 포함하는 데이터 패턴 코드 형태로 포함될 수 있다. 요소값들은 요소값들에 대한 소정의 세트로부터 선택된다. 소정의 세트에서 요소값들의 수는 데이터 세트의 레코드에 대응하는 필드에서 발생하는 전체 데이터 값들의 수보다 작을 수 있다. 예를 들어, 데이터 패턴은 레코드의 필드들의 상태나 속성을 나타내는 비트들을 가진 비트맵이 될 수 있다. 예를 들어, 데이터 패턴 코드 공식화는 다음과 같이 필드의 상태나 속성을 나타내기 위해 설정된 적어도 하나의 비트들을 갖는 비트맵을 포함할 수 있다: 필드 상태에 해당하는 값이 "0"이면 "공백(empty)" 또는 "부재(absent)"이고, 필드 상태에 해당하는 값이 "1"이면 "공백이 아님(not empty)"과 "부재가 아님(not absent)"을 나타낸다. 다른 비트맵은 다음과 같다: 필드 상태에 해당하는 값이 "0"이면 "공백(empty)(예를 들어, 값이 없음)" 또는 "NULL(예를 들어, 필드는 적어도 하나의 공백 문자로 미리 정해진 "NULL" 값을 가짐)"이고, 필드 속성 또는 상태에 해당하는 값이 "1"이면 "부재(absent)(예를 들어, 레코드에 필드가 존재하지 않음)", 그리고 "2"는 "값이 기재됨(populated)(예를 들어, 필드는 "NULL"이 아닌 값을 가짐)"의 필드 상태에 대응할 수 있다.
복수의 레코드의 필드들의 조합 또는 적어도 하나의 필드들은 다양한 필드들의 속성 또는 상태 사이의 패턴들을 확인하기 위해 분석된다. 예를 들어, 필드들에 값이 기재되어 있는지 또는 그렇지 않은지에 대해 분석할지를 결정한다면, 특정 레코드에 대한 가능한 패턴 정보는 특정 레코드의 필드들에 값이 기재되어 있는지 또는 아닌지를 나타내는 정보 배열을 포함할 수 있다. 이러한 방식으로, 데이터 패턴 코드는 레코드에 대응하는 데이터 패턴을 나타내는 레코드와 연관된다.
일부 구현에서는 사용자가 필드에 특정값을 갖는 레코드의 일부를 알고 싶을 수도 있다. 일례로서 레코드는 단위 또는 아파트 수를 예상할 수 있는 주소 집단의 일부를 나타내는 "apt_num"필드를 포함할 수 있다. 레코드의 일부를 알고 있고 관심있는 사용자는 아파트가 포함됨을 식별하여 패턴 정보의 빠른 보기를 통해 이 정보를 찾을 수 있다. 패턴 정보는 또한 레코드의 필드 사이의 가능한 상관관계에 대한 통찰력을 제공할 수 있다. 예를 들어, 아파트 또는 단위 수를 가지지 않은 것을 나타내는 주소를 가진 레코드는 개인이 홈 오너라는 것을 나타내는 "예"가 설정된 홈 주인 필드들을 가질 수 있다.
어떤 구현에서 레코드는 만약 필수 필드의 값이 미싱(missing)이면 불완전한 것으로 간주될 수 있다. 예를 들어, 은행 고객의 레코드에서 고객의 성(surname)은 필수 필드일 수 있다. 만일, 고객 레코드의 성(surname) 필드의 성(surname)에 해당하는 값이 존재하지 않는다면, 레코드는 불완전한 것으로 간주될 수 있다. 반면, 고객 레코드의 중간 이름(middle name) 값이 존재하지 않는다면, 중간 이름이 옵션값으로 간주되어 고객 레코드는 불완전한 것이 아닐수도 있다. 이러한 상황에서 은행 고객의 레코드의 패턴은 결정되며, 데이터 패턴 코드는 레코드에 할당된다. 실행모듈(112)는 특정 레코드에 대한 데이터 패턴 코드를 결정하며, 데이터 소스(102)로부터 읽어온 데이터를 코드 관점에서 분석한다. 이러한 라인들을 따라, 적어도 하나의 규칙을 오류 수정에 대한 성(surname) 필드의 성(surname) 값의 미싱(missing)된 데이터 레코드의 플래그(flag)로 쓸 수 있다. 따라서, 패턴 코드 형태는 필수 필드들에 값이 기재되어 있는지 확인하며, 선택 필드들에 값이 기재됨을 정량화하기 위한 진단 장치로서 사용될 수 있다.
어떤 구현에서는, 데이터 처리 시스템(100)이 데이터 검색 모드일 때, 데이터 패턴 코드 형태는 선택 필드들로부터 필수 필드를 구분하는데 사용될 수 있다. 어떤 필드들에 대해 제공하는 값을 기재해야하는 규칙은 필수적이며, 어떤 선택이 손실되거나 사용 불가능하게 할 수 있다. 예를 들어, 성(surname) 필드를 필수 필드로 제공하는 것이 원래 규칙이라면 중간 이름 필드는 데이터 처리 시스템(100)에서 사용 불가능한 선택 필드일 수 있다. 실행 모듈(112)은 데이터 세트 내에서 값을 기재해야하는 패턴을 설정하기 위해 데이터 소스(102)의 데이터 세트를 분석할 수 있다. 이때, 실질적으로 주어진 데이터 세트의 모든 레코드들은 빈 상태가 아닌 값으로 성(surname) 필드에 값이 기재되며, 데이터 세트의 레코드들의 특정 부분만이 중간 이름 필드에 값이 기재될 수 있다. 그러면 시스템(100)은 성(surname) 필드는 필수 필드이고, 중간 이름 필드는 선택 필드라는 것을 짐작할 수 있다.
예를 들어, 도 3을 참고하면, 다국적 소매 기구(multinational retail organization)의 기업 데이터 저장장치(enterprise data warehouse)에 트랜잭션 데이터 세트(300)가 저장된다. 기업 데이터 저장장치는 여러 나라의 매장에서 만들어진 "트랜잭션(Transactions)"을 기록할 수 있다. 따라서, 국가의 "트랜잭션(Transactions)"에 해당하는 트랜잭션 레코드(304)는 "트랜잭션 식별 필드(transaction_id field)(예를 들어, 특정 트랜잭션을 식별하는 대체 키)", "고객 식별 필드(customer_id field)(예를 들어, 고객들의 마스터 리스트로 구성된 다른 데이터 세트에 연결된 대체 키)", 구입한 아이템들(items)을 식별하는 "제품 식별 필드(product_id field)(예를 들어, 제품들의 마스터 리스트로 구성된 다른 데이터 세트와 연결된 대체 키)", "매장 식별 필드(store_id field)(예를 들어, 매장 리스트와 위치로 구성된 데이터 세트에 연결된 대체 키)", "수량 필드(quantity field)" 및 "가격 필드(price field)"를 포함한다. 이 필드는 모두 필수 필드(308)(예를 들어, 필드들은 빈 상태로 존재하는 것이 허용되지 않는다.)로 간주된다. 따라서, 필수 필드(308) 중 어느 것이라도 값이 기재되지 않는다면, 데이터의 품질에 문제가 있는 것으로 간주될 수 있다. 데이터 세트(300)는 또한 다음과 같은 추가적인 필드(312)를 포함할 수 있다. 추가적인 필드(312)는 "국가 식별 필드(country_cd field)(예를 들어, 매장이 위치한 국가를 식별하기 위한 대체 키)", "통화 식별 필드(currency_cd field)(예를 들어, 트랜잭션의 통화를 식별하기 위한 대체 키)" 및 구매에 포함된 세금의 양을 나타내는 "세금 필드(a tax field)"를 포함한다. 일부 구현에서는 추가적인 필드들(312)에 값이 기재될 수도 있고 그렇지 않을 수도 있으며, 각 필드들에 데이터의 부재가 데이터 품질 문제에 영향을 주지 않을 수 있다.
상기 전술한 내용에서 트랜잭션 데이터 세트(300)의 데이터 품질은 각 레코드(304)에 데이터 패턴 코드(316)를 할당하여 분석된다. 예를 들어, 데이터 패턴 코드(316)는 트랜잭션 레코드(304)의 필드들(320) 중 어느 필드들에 값이 기재되어 있고 어느 필드들에 값이 기재되지 않았는지를 반영한다. 비트맵 코드 형태로 표시되는 것으로 가정하면, 비트맵 코드의 비트들은 다음과 같은 트랜잭션 레코드에 대응되는 필드들에 할당된다: "트랜잭션 식별자(transaction_id)(bit 0)", "고객 식별자(customer_id)(bit 1)", "제품 식별자(product_id)(bit 2)", "매장 식별자(store_id)(bit 3), "수량(quantity)(bit 4)", "가격(price)(bit 5)", "국가 식별자(country_cd)(bit 6)", "통화 식별자(currency_cd)(bit 7)" 및 "세금(tax)(bit 8)".
만일 트랜잭션 레코드(304)의 필드에 값이 기재되어져 있다면, 대응되는 비트를 "1"로 설정하며, 그렇지 않으면 대응되는 비트를 "0"으로 설정한다. 일반화하면, 십진법에서 비트 "k"가 "1"로 설정되면, 다음 2k의 값이 비트맵 코드에 추가된다. 예를 들어, "트랜잭션 식별자(transaction_id)", "고객 식별자(customer_id)", "제품 식별자(product_id)", "가격(price)" 및 "세금(tax)"에 값이 기재된 경우, 데이터 패턴 코드는 "151(비트 0, 비트 1, 비트 2, 비트 5, 비트 8 설정에 대응하여 1 + 2 + 4 + 32 + 256 = 295 )"이 된다.
일부 구현에서, 마스크 코드(324)는 필수 필드(308) 및 추가 필드(312)에 대응하여 구현할 수 있다. 마스크 코드(324)는 트랜잭션 레코드(304)의 필드들 또는 필드값들을 선택적으로 제외시키거나 또는 포함시키는 필터로 동작한다. 전술한 바와 같이, 예를 든 트랜잭션 레코드(304)의 처음 6개의 필드들은 필수 필드(308)이고, 다음 3개의 필드들은 추가적인 필드들(312) 이다. 이처럼 마스크 코드(324)는 다음과 같이 필수 필드들(308) 및 선택 필드들(312)을 나타내기 위해 정립될 수 있다: [0 0 0 1 1 1 1 1 1](십진수 표기법, 마스크 코드는 63이다.) 비트 연산 AND는 비트맵 코드(320)과 마스크 코드(324) 사이의 연산을 수행할 수 있다. 만일 비트 연산 AND의 결과가 "63"이외의 결과이면, 필수 필드(308) 중 하나의 값이 기재되지 않은 것이다. 예를 들어, "(63 & 295)=39"는 데이터 패턴 코드(316)의 비트 0, 비트 1, 비트 2 및 비트 5가 설정됨을 나타내며, "매장 식별자(store_id) 필드"와 "수량(quantity) 필드"에 값이 기재되지 않음을 나타낸다. 따라서, 이러한 상황은 데이터 품질 문제로서 표시할 수 있다.
일부 예시에서는, 서로 다른 데이터 세트(예를 들어, 레코드의 데이터 세트는 다른 데이터 레코드 포맷의 값을 수용할 수 있다)의 레코드 유형을 식별하기 위한 별도의 필드들을 포함하는 레코드를 개시한다. 이러한 레코드들에 대한 값을 기재하는 데이터 포맷들은 레코드 유형에 대한 조건으로 만들어 질 수 있다. 그러나, 조건부 필수 필드들(즉, 특정 데이터 조건이 충족되는 경우에만 필수 필드)을 가진 다른 특정 데이터 세트들은 레코드 유형에 대한 분명하지 못한 필드 홀딩 정보의 이질성을 암시할 수 있다. 이때, 데이터 패턴 코드 형태는 레코드 포맷의 기본 콜렉션을 결정하며, 조건부 필수 필드를 포함하는 데이터 세트의 무결성을 확인하는데 사용될 수 있다. 개발자 또는 분석가는 그러한 조건부 필수 레코드를 분류하기 위해 데이터 패턴 코드 형태를 사용할 수 있다. 이러한 상황에서 대체 레코드 유형으로 데이터 패턴 코드 형태의 사용은 자연 키(natural key) 대신 사용되는 대체 키(surrogate key)(즉, 어떤 비즈니스/실제 의미를 갖지 않는 키 생성 시스템)로 유추할 수 있다.
일례를 들면, 전술한 트랜잭션 데이터 세트(300)(도 3)의 맥락에서 데이터는 각 점포에서 개별적으로 수집되어지고, 각 국가에 대한 하나의 데이터 세트로 결합되어 기업 데이터 저장장치의 트랜잭션 데이터 세트(300)에 기재된다. 미국의 트랜잭션 데이터 세트는 국가 또는 통화 필드(즉, 비트 6, 비트 7)가 없는 예제 였음을 고려해야 한다. 미국의 트랜잭션 레코드 포맷은 기존 응용 프로그램과의 일관성을 유지하면서 미국 트랜잭션에 대해 값이 기재되지 않은 "국가 식별 필드(country_cd field)" 및 "통화 식별 필드(currency_cd field)"가 두 개의 새로운 필드로 포함되도록 확장할 수 있다. 이 필드들은 미국이 아닌 트랜잭션 레코드에 대해 필수적인 것으로 간주된다. 따라서, 이러한 데이터 값들이 필드에 존재하지 않는 모든 상황에서 데이터 품질 문제를 표시할 수 있다. 이러한 점에서, 필드들은 레코드가 미국이 아닌 국가의 트랜잭션 레코드라는 상태를 조건으로 필수적임이 유추된다. 유사하게, "세금(tax)(bit 8)"은 만일 세금이 트랜잭션 동안에 지역에서 수집된다면 필수적인 필드인 것으로 간주할 수 있다. 다시 말하지만, 세금은 수집되었지만 "세금(tax) 필드"에 값이 기재되지 않는 상황이면 데이터 품질 문제를 표시할 수 있다. 그리고, "세금(tax) 필드"는 레코드가 세금이 수집된 지역에 있는 상태를 조건으로 필수적인 필드인 것으로 간주할 수 있다.
조건부 데이터 패턴들은 필수 데이터 패턴과 유사한 방식으로 분석될 수 있다. 현재 실시예에서는 미국 트랜잭션 레코드는 값이 기재되지 않는 "국가 식별 필드(country_cd field)(bits 6)" 및 "통화 식별 필드(currency_cd field)(bits 7)"를 포함하는 것을 예측할 수 있는 반면, 이 필드들은 미국이 아닌 국가의 트랜잭션 레코드에서는 값이 기재되지 않음을 예측할 수 있다. 매장의 위치를 명확하게 확인하지 않으면, "국가 식별 필드(country_cd field)" 및 "통화 식별 필드(currency_cd field)"의 패턴들의 상관관계는 비트 6과 비트 7이 모두 "1"로 설정되거나 또는 모두 "0"으로 설정됨을 체크하여 확인할 수 있다.
일부 구현에서, 이러한 상관관계의 존재는 데이터 패턴 코드들의 분포를 통해 추론할 수 있다. 트랜잭션 데이터 세트(300)는 각 코드를 갖는 레코드의 수를 카운트하는 것이 가능한 데이터 패턴 코드까지 표시할 수 있다. 이런 방법은 비트 6과 비트 7둘다 설정되었거나 또는 그렇지 않은 레코드의 수를 결정할 수 있다. 일부 구현에서는 패턴들에 대한 설명을 찾기위해 데이터 패턴 코드를 포함하는 레코드의 샘플을 추출하는데 사용할 수 있다. 이 실시예에서는 레코드의 적절한 샘플을 검사한 후, "국가 식별 필드(country_cd field)"에서 미국 국가 코드의 부재는 "통화 식별 필드(currency_cd field)"에서 미국 달러 통화 코드의 부재에 대응하는 만큼 두드러진다. 따라서, "통화 식별 필드(currency_cd field)"에 값이 기재됨은 "국가 식별 필드(country_cd field)"에 값이 기재됨에 조건부 필수인 것으로 간주될 수 있다. 이러한 방식에서 데이터 패턴 코드 형태의 사용은 "히든(hidden)" 규칙을 찾는 과정을 단순할 수 있다.
일부 데이터 처리 응용 프로그램에서 특정 레코드 포멧들은 공통 프레임 워크를 통해 처리하기 전에 서로 분리된 소스들로부터 균일한 데이터를 만들거나 또는 표준화하는데 사용된다. 이러한 응용 프로그램에서 정보 손실을 방지하기 위해 "균일화"된 레코드 포맷들은 서로 다른 소스들로부터 필드들의 상위 집합(superset)이 포함된다. 균일화된 레코드 포멧은 서로 다른 소스들로부터 데이터 패턴들을 분석하여 생성될 수 있다. 예를 들면, 일부 구현에서는 필드들의 제1 세트는 많은 소스에 공통적인 데이터를 저장할 수 있는 반면, 필드들의 제2 세트에서 서로다른 집합은 특정한 소스 또는 소스들의 하위 집합(subset)에 고유하게 관련될 수 있다. 일례를 들면, 첫번째 소스의 레코드내의 데이터 필드는 "DD/MM/YYYY" 포맷 형식이며, 두번째 소스의 다른 레코드는 "DD, Month, Year" 포맷일 수 있다. 일부 소스에서는 오직 "일"과 "월"이 이용가능하며, 다른 소스들에서 "일", "월", "년"값을 분리해서 사용할 수 있다. 균일화된 레코드 포맷은 다양한 소스들로부터 레코드 유형의 조합에 의해 파생될 수 있다. 그리고, 균일화된 레코드는 서로 다른 소스들에 속한 레코드들의 데이터로 기재될 수 있다.
일부 구현에서 균일화된 레코드가 적절하게 값이 기재되었는지 확인하기 위해, 필수 및 조건부로 값을 기재하는 것으로 특정된 적어도 하나의 비즈니스 룰은 테스트 시나리오의 결과와 예상된 데이터 패턴들을 관련시키는데 사용한다. 이처럼 예상된 결과들은 검증을 위해 실제 결과들과 비교할 수 있다. 예를 들어, 실행 모듈(112)은 균일화된 레코드 포맷을 생성하며, 다양한 소스들을 균일화된 레코드로 채우는데 사용한다. 그리고, 필수 및 조건부로 값을 기재하는 것으로 특정된 비즈니스 룰들은 필드들에 값이 올바르게 기재되었는지를 확인하는데 사용한다.
서로 다른 레코드 구조들은 서로 다른 소스들의 데이터가 공통 포맷으로 결합될 때, 예를 들어 서로 다른 나라들의 서로 다른 기업들의 기존 데이터가 기업 합병 후 결합될 때 데이터 저장 응용 프로그램에 관여될 수 있다. 이러한 이유로, 트랜잭션 데이터 세트(300)(도 3)는 국가를 특정하는 추가적인 필드들이 있다. 예를 들어, 일부 국가에서는 아이템(item)이 멀티 팩(예를 들어, 음료 세트의 "6 팩"과 유사)의 일부로 구입한 것을 표시하는데 사용하기 위해 "패키지 식별 필드(package_id field)"가 있는 반면, 다른 국가들은 크기(size)(예를 들어, 16온스(ounces) 또는 400g )를 나타내기 위한 "용량 필드(volume field)", 단위의 수를 나타내기 위해 "단위 필드(unit field)"가 있을 수 있다. 데이터 패턴 코드(320)는 오직 특정 필드들에 값이 기재되는 상관관계를 나타낸다. 즉, "패키지 식별 필드(package_id field)"에 값이 기재되었거나 또는 "용량 필드(volume field)"와 "단위 필드(unit field)"에 모두 값이 기재되게 되며, 모두가 특정 분리 "국가 식별 필드(country_cd field)"의 값에 대하여 발생하게 된다.
일부 구현에서는, 조건부 레코드 포맷은 값이 기재된 필드만으로 구성된 각각의 레코드포맷들의 세트 측면에서 데이터 세트를 설명하는 구조일 수 있다. 예를 들어, 축소된 레코드 포맷은 추가 필드로서 "패키지 식별(package_id)", 또 다른 축소된 레코드 포맷은 "용량(volume)"와 "단위(unit)" 필드를 포함할 수 있으며, 반면 또 다른 축소된 레코드 포맷은 추가적인 필드들을 포함하지 않을수도 있다. 이러한 축소(reduction)는 많은 다른 소스들로부터 데이터를 결합한 복잡한 레코드 포맷으로 작업할 때 유용할 수 있다. 일부 구현에서는, 상기 서로 다른 축소된 형식들의 각 레코드의 샘플에 대한 조사는 소스를 지시하거나, 또는 비록 처음으로 밝혀지지 않았더라도 축소된 레코드 포맷 뒤에 히든비즈니스 룰(hidden business rule)을 제공할 수 있다.
일부 실시 예에서, 데이터 패턴 코드 형태는 COBOL REDEFINES와 함께 사용될 수 있다. 일반적으로 REDEFINES절은 공간을 줄이기 위해 서로 다른 데이터 아이템들(items)이 묘사될 수 있도록 같은 메모리 공간의 사용을 허용한다. 그에 따라 COBOL REDEFINES는 서로 다른 필드들 내의 바이트들(bytes)의 동일 세트가 두 개 이상의 분석을 특정할 수 있다. C 프로그래밍 언어(또는 유사한 프로그래밍 언어들)에서 이러한 구조는 유니온 데이터 구조(union data structure)로 불릴 수 있으며, 유사한 문제가 발생할 수 있다. 두 개 이상의 REDEFINES 중 주어진 레코드에 사용되는 어느 하나는 때때로 다른 필드에 의해 결정되나, 어느 필드의 값이 손실되었거나 또는 이용할 수 없게 될 수 있다(예를 들어, 응용 프로그램 코드에 포함). 그렇지 않으면, 어느 REDEFINE 을 사용했는지를 나타내는 레코드의 필드가 없을 수 도 있다. 때때로, 이 정보는 레코드 포맷을 위해 외부에서 유지되거나 또는 REDEFINE의 내용들에서 어떤 것이 더 올바른지를 결정하기 위해 조사가 필요할 수 있다. 이 예제는 예시적인 것이며 철저한 것은 아니다. 전술한 모든 상황들은 원문의 외부 데이터 세트를 읽기 위해 잠재적인 어려움이 있음을 제기한다.
REDEFINE의 모든 필드들을 사용하여 연산된 데이터 패턴 코드는 적절한 구문을 구문 분석을 통해 유추할 수 있다. 실시예에서, REDEFINE 데이터 구조는 서로 다른 데이터를 구성할 수 있다. 예를 들면, REDEFINE의 일부가 오직 알파벳 텍스트 필드들을 포함하는 반면, 다른 REDEFINE가 동일 바이트들에 대한 십진법 필드들(decimal fields)을 포함한다면, 십진법 필드들은 어떤 것이든 포함할 수 있지만 숫자와 단일 소수점은 어느 것도 포함할 수 없어 인식 불가능한 것으로 표시될 수 있다. 이러한 상황은 COBOL REDEFINES이 사용되었던 기존 메인 프레임 데이터에서 발생될 수 있다. 필드들(비교적 단순 값의 기재)의 데이터 유효성에 기초한 데이터 패턴 코드 형태는 올바른 구문을 검색하는데 사용될 수 있다. 일부 구현에서, 데이터 패턴 코드의 결과는 각 대안 REDEFIN 포맷에만 관련된 데이터 패턴 코드에 대해 발생하는 조건부 레코드 포맷으로 데이터 구조를 변환하는데 사용될 수 있다.
기존 데이터에 대하여, 필드들에 대한 질문들은 많은 소스들에 대해 공통적이고 구체적이거나, 또는 소스들 사이가 지속적으로 반복되거나 그렇지 않은 필드들 사이의 상관관계에 대한 것으로, 값이 기재된 데이터에 사용되어진 비즈니스 룰들의 컨설팅을 통해 답변이될 수 있다. 일부 예에서는, 이러한 규칙들이 손실되거나 또는 이용가능하지 않을(unavailabl) 수도 있다. 예를 들면, 어떤 서면 문서는 시대에 뒤떨어지거나 또는 손실될 수 있는 반면 규칙들은 여전히 활성화되어 사용될 수 있다. 이러한 일례에서, 데이터 패턴 코드 형태는 필드들사이의 상관관계를 결정하고, 필드들과 레코드의 소스들 사이의 연계를 결정하기 위해 사용되어 질 수 있다.
일부 구현에서, 레코드의 필드들 사이의 상관관계는 데이터 패턴 코드를 구조화한 후 집계를 수행하여 축소시킬 수 있다. 예를 들어, 트랜잭션 데이터 세트(300)(도 3)에서, 데이터 세트가 "매장 식별 필드(store_id field)"까지 포함되면, 값이 기재된 세금 필드들을 가지고 있는 많은 레코드의 수는 어느 지역의 매장이 세일을 하거나 또는 부가세(VAT tax)를 포함하는 지를 결정하는데 사용될 수 있다. 어떤 지역들이 세금을 부과하는 지에 대한 결정은 상세하게 설명된 데이터의 통계에서 유추할 수 있다.
일부 구현에서, 데이터는 금융 트랜잭션을 위해 XML 및 ISO20022와 같은 산업 표준 레코드 포맷들에 존재할 수 있다. 예를 들어, 일부에서는 기존 시스템들을 재설계할 필요없이 공통 포맷으로 기존 데이터를 채울 수 있기 때문에 공통적인 형식인 ISO20022를 사용하는 것을 선택한다. 또한, 다른 기존 소스들(사용자 맞춤형 또는 확장된 기존 포맷들을 포함)은 다른 소스들과 함께 공통적으로 필드들에 값이 기재될 수 있으며, 일부 필드들은 고유한 기존 소스로 값이 기재될 수 있다. 이러한 점에서, 개발자들은 산업 표준(the industry standard)에 보관된 데이터로 작업하는 응용 프로그램들을 작성해야 한다. 산업 표준에 의해 완료된 레코드 포맷은 복잡할 수 있으며, 어떤 하나의 기존 유형(legacy type)의 관점으로부터 불필요한 데이터를 포함할 수 있으므로, 개발자들은 값이 기재되지 않은 필드들을 삭제(discard)하는 것을 선택할 수 있다. 특히, XML 스키마는 값이 채워 가능성이 있는 필드들의 세트를 정의할 수 있다. 따라서, XML 레코드(예를 들어, XML 형식에 따라 데이터를 포함한 문서)는 레코드에 대해 값이 기재될 수 있는 필드들만을 포함한다.
복수의 기존 소스들의 데이터가 함께 저장되는 이러한 데이터 저장 환경에서 XML 레코드들 내에 존재하는 데이터는 각기 다를 수 있다. 만일 데이터 패턴 코드가 각 XML 레코드에 대해 연산된다면, 상기 코드는 레코드가 독립적인 처리를 위해 쉽게 분리되는 필드들의 다른 조합을 사용하는 것을 가능하게 할 수 있다. 함께 값이 기재되는 필드들의 종류는 질적으로 다른 종류의 데이터(예를 들어, BIC 코드들과 같은 기관 식별 정보(institutional identifying information)는 이름과 주소 정보로부터 구별된다)를 나타낼 수 있으며, 개별 처리하게 된다. 다수의 데이터 패턴 코드들의 생성 또는 마스킹은 데이터 세그먼트들을 쉽게 구별하는 것을 가능하게 할 수 있다.
일부 구현에서는, 더 나아가, 일부 XML 태그들이 필수적일 수 있으나 반면 다른 구현에서는 아닐 수 있다. 전술한 데이터 패턴 코드 형태는 문서들의 참조하는 것에 의존하지 않고 필드들의 분석을 도울 수 있다.
일부 구현에서는, 데이터 패턴 코드 형태는 다운스트림 응용프로그램들(downstream applications)에 대한 테스트 케이스들(test cases)을 준비하는데 사용될 수 있다. 응용프로그램에 입력되는 데이터가 많은 소스들로부터 집합된 경우, 응용프로그램이 수신된 다양한 입력들을 적절히 처리할 수 있는 지에 대한 우려가 발생할 수 있다. 실제 상황에서, 응용프로그램의 입력 데이터 양은 의미있는 테스트를 허용하기에 너무 많을 수 있다. 일부구현에서는, 이 문제를 해결하기 위해, 데이터 패턴 코드는 생산 데이터, 즉 응용프로그램의 입력 데이터로 형성될 수 있다. 테스트 레코드들(test records)의 데이터 세트는 데이터 패턴 코드에 기초하여 생성되어 생성될 수 있으며, 응용프로그램에 적용될 수 있다. 예를 들어, 작은 수의 레코드들(예를 들어, 싱글 레코드(single record) 또는 또다른 미리 설정된 개수의 레코드들)은 각각 구별된 데이터 패턴 코드를 선택할 수 있다. 전체 생산 데이터를 포함하는 이러한 데이터 세트는 응용프로그램이 적절히 처리하도록 설정된 테스트 케이스의 종합적인 집합을 나타내는 것으로 간주될 수 있다.
도 2는 데이터 패턴 분석 절차(200)를 나타내는 흐름도이다. 절차는 데이터 저장 시스템의 저장 데이터 세트를 저장하는 단계를 포함한다(202). 데이터 세트는 다양한 필드들에 해당하는 값들을 포함하는 복수의 레코드를 포함할 수 있다. 레코드들은 레코드들의 데이터 패턴의 표현을 위해 데이터 저장 시스템에 결합된 데이터 처리 시스템에서 분석된다(204). 레코드들 내의 데이터 패턴의 표현은 예를 들어 레코드들 내의 필드들의 필드 속성을 나타내는 비트들을 포함하는 비트맵과 같은 데이터 패턴 코드 형태를 포함할 수 있다. 상기 레코드들의 각 레코드에 대한 처리는 복수의 레코드들의 필드들 조합 또는 적어도 하나의 필드들을 분석하는 단계를 포함할 수 있다(206). 분석은 데이터 세트의 각 레코드에 대해 데이터 세트 내의 적어도 하나의 다른 레코드들 또는 적어도 하나의 다른 데이터 세트들과 연결된 연산하는 단계를 포함할 수 있다. 예를 들어, 숫자 필드의 평균은 데이터 세트 내의 레코드들의 세트에 대해 연산될 수 있으며, 현재 평균이 일부 임계값에 의한 유사한 평균보다 더 큰 경우, 결정을 위해 다른 데이터 세트들(유사한 평균)로부터 수집된 레코드들의 세트의 평균과 비교한다. 분석은 복수의 레코드들의 필드 사이의 적어도 하나의 패턴들을 발견하는 단계를 포함할 수 있다. 예를 들어, 필드들에 포함된 관련 속성 또는 상태가 값이 기재되어있는지 또는 그렇지 않은지를 포함한다면, 패턴은 상기 필드들에 값이 기재되었는지 또는 그렇지 않은 지를 나타내는 정보의 배열이 될 수 있다. 이러한 방법으로, 데이터 패턴 코드는 레코드에 해당하는 데이터 패턴을 나타내기 위한 형태가 될 수 있다(208). 상기 레코드들이 처리된 후, 코드들의 결과는 레코드들 및 그들의 해당 데이터 패턴들을 식별하는 방식으로 저장될 수 있다(210). 추가적인 레코드들이 분석됨에 따라, 절차는 추가적인 레코드들의 처리를 반복할 수 있다(200).
일부 구현에서, 서브루틴(subroutine)은 필드 이름들(field names)의 벡터(vector)를 포함하는 레코드를 인수로서 수신하고, 데이터 패턴 코드를 생성하여 큰 프로그램(larger program) 내에서 사용될 수 있다. 예를 들어, 서브루틴은 "빈(blank)" 또는 "빈 또는 널(blank_or_NULL)" 등과 같은 값들을 갖는 룰 타입(rule_type) 및 레코드를 인수로 정할 수 있다. 서브루틴은 각 필드 이름 및 룰 타입(rule_type) 선택에 관련된 비트맵 구조에 대한 값들을 연산할 수 있다. 룰 타입(rule_type) "빈(blank)" 은 필드가 비었는지 또는 값이 기재되었는 지를 나타내는 데이터 패턴 코드를 제공한다. 예를 들어, 비트맵의 결과는 필드에 값이 기재되면 비트가 설정되고, 필드에 값이 기재되지 않으면 제로(zero)가 되는 비트 집합을 가진 이진수이다. 룰 타입(rule_type) "빈 또는 널(blank_or_NULL)"은 각 코드에 대한 두 비트를 사용해서 필드가 blank(0), populated(1), 또는 NULL(2)인지를 나타내는 데이터 패턴 코드를 제공할 수 있다. 룰 타입(rule_type) "유효성(validity)" 은 주어진 필드가 유효하지 않은 (0)인지 또는 유효한 (1)인지를 나타내는 데이터 패턴 코드를 제공할 수 있다. 유효하지 않은 필드(invalid field)는 관련된 데이터 타입에 대해 허용하지 않는 값들 또는 바이트들을 포함할 수 있다. 예를 들어, "31-JUN-1960"은 데이터 필드로서 유효하지 않은 반면, "123a"은 십진 필드로서 유효하다.
룰 타입(rule_type) "expression"은 각 필드에 대해 제공할 수 있는 표현 및 비트(또는 비트 값들의 집합)와 함께 그 결과를 연관시키기 위한 표현을 허락할 수 있다. 예를 들어, 일부 널이 아닌 필드(non-nullable)는 "빈(blank)" 규칙으로 분석될 수 있는 반면, 다른 널(null) 필드들은 "빈 또는 널(blank_or_NULL)" 규칙으로 분석될 수 있다. 열거된 값들의 작은 세트(small set)만을 포함하는 다른 필드들은 비트값에 매핑된 특정한 값들을 가질 수 있다. 예를 들어, 성별 "M" 또는 "F"는 "0" or "1"로 매핑되는 반면, "트랜잭션 타입 필드(transaction_type field)"의 "A", "C" 또는 "P"는 "0", "1" 또는 "2"로 매핑될 수 있다.
일부 구현에서, 적어도 하나의 필드들의 조합은 부호화될 수 있다. 예를 들어, 유사성에 대해 필드들을 비교(fuzzy matching)하는 응용에서, 일치하는 코드들의 세트는 두 필드들(가능한 별도로 분리된 데이터 세트들 안에 전형적으로 두 개로 분리된 코드들)의 비교를 위해 할당될 수 있다. 예를 들어, 비교되는 두 회사의 이름이 주어진 결과 "불일치(Mismatch)"(0), 즉 회사 이름들이 일부 미리 정해진 기준에 따라 유사하지 않은 것으로 표시될 수 있으며, "정확히 일치(Exact match)"(1), "퍼지 일치(Fuzzy match)"(2), 즉 회사 이름들이 일부 미리 정해진 기준에 따라 동일하지 않지만 유사한 것으로 표시될 수 있다. 또한, "값이 기재되지 않음(Unpopulated) 0", 즉 회사 이름 "0"은 값이 기재되지 않은 것인 반면 회사 이름 "1"은 값이 기재됨을 나타내며, "값이 기재되지 않음(Unpopulated)1", 즉 회사 이름 "1"은 값이 기재되지 않은 반면 회사 이름 "0"은 값이 기재되지 않음을 나타낸다. 그리고, "값이 기재되지 않음(Unpopulated)01", 즉 회사 이름 어느 것도 값이 기재되지 않음을 나타낸다. 퍼지 일치에 대한 기법의 예, 그리고 퍼지 일치에 기초한 클러스터링은 미국 공개 특허 공보 2009/0182728 A1의 "일치 대략 문자열에 대한 레코드 보관 관리(MANAGING AN ARCHIVE FOR APPROXIMATE STRING MATCHING,)" 및 미국 공개 특허 2010/0106724 A1의 "퍼지 데이터 동작(FUZZY DATA OPERATIONS)"은 본 명세서에 각각 참조적으로 포함된다.
일부 구현에서, 패턴 정보는 사용자에게 사용자 인터페이스를 내의 그래픽 디스플레이를 통해 사용자에게 제공될 수 있다. 이 방법은 사용자가 값이 기재된 레코드 필드들의 일부를 빠르게 알아낼 수 있다. 도 4는 필드들(400)의 리스트(list), 비트 레이블(bit label)(401) 및 마스크(mask)(402)의 설정 버튼(button)을 포함하는 사용자 인터페이스를 나타낸다. 각 필드에 대한 코드들의 가능한 설정은 표시(404)를 통해 제공된다. (상기 선택들은 각 필드에 따라 다를 수 있으며, 일부 구현에서 사용자 인터페이스 표시는 각 필드에 대해 서로 다른 선택들을 표시할 수 있다.) 요소들을 나타내는 다이어그램(406)은 각각의 고유 패턴(고유 데이터 패턴 코드에 해당)에서 각각 선택한 필드에 대해 설정된다. 거기에는 마스크(402)(레이블(401)의 상단쪽에서 식별된 해당 필드) 내에서 선택한 각 버튼의 열 및 각각의 고유 패턴에 대한 행이 있다. 주어진 패턴을 갖는 레코드들의 일부는 기재되는 값의 일부가 보다 큰 것을 나타내는 어두운 음영과 함께 백분율(410)로서 수치적으로 그레이스케일 디스플레이(408) 내에 표시된다.
도 5는 실시예로 마스크가 선택적으로 설정되는 경우 및 각 필드에 대해 두 개 이상의 데이터 패턴 코드들이 발생하는 경우의 사용자 인터페이스를 나타낸다. 필드들은 "500"으로 설정이며, 레이블들은 "501"로 각각의 필드에 할당된다. 마스크(502)는 버튼들(buttons)을 선택하여 설정된다. 표시(504)는 디스플레이된 데이터 패턴 코드의 리스트이다. 여기서 그레이 레벨들은 데이터 패턴 코드들을 구별하는데 사용지만, 단순히 숫치적으로 데이터 패턴 코드를 표시하는 것을 포함하여 다른 디스플레이로 표시하는 것도 가능하다. 패턴들의 세트는 마스크 내에서 선택한 필드에 해당하는 각 열(column)과 값이 기재된 패턴을 나타내는 데이터 패턴 코드에 해당하는 각 행(row)을 포함하는 격자(grid)(506)로 표시된다. 데이터 패턴 코트들의 세트로 선택되고, 상기 마스크와 관련있는 각각의 패턴을 포함하는 레코드들의 상기 비율을 반영하여 값이 기재된 상기 비율은 그레이스케일(508) 및 백분율(510)로서 수치적으로 표시된다.
전술한 데이터 패턴 분석 방법은 컴퓨터의 실행을 위한 소프트웨어를 사용하여 구현될 수 있다. 예를 들어, 적어도 하나의 프로그램 또는 프로그램 컴퓨터 시스템들에서 실행되는 적어도 하나의 컴퓨터 프로그램들의 소프트웨어 형식 절차들은 각각 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템, 적어도 하나의 입력 장치 또는 포트 및 적어도 하나의 출력장치 또는 포트를 포함한다. 소프트웨어는 큰 프로그램의 적어도 하나의 모듈들을 형성할 수 있으며, 예를 들어 데이터 흐름 그래프의 설계 및 디자인과 관련된 다른 서비스들을 제공할 수 있다. 그래프의 노드들과 요소들은 컴퓨터 로 읽을 수 있는 기록매체 또는 데이터 저장소에 저장된 데이터 모델에 부합하는 다른 조직 데이터가 포함된 데이터 구조로서 구현될 수 있다.
소프트웨어는 일반 또는 특수 목적의 프로그래밍 컴퓨터 또는 컴퓨터가 실행되는 컴퓨터 네트워크의 통신 매체를 통해 전달(전파신호 부호화)되어 읽을 수 있는 CD-ROM과 같은 저장 기록매체로 제공될 수 있다. 모든 기능은 특수 목적 컴퓨터에서 수행되거나 또는 코 프로세서(coprocessors)로서 특별한 목적의 하드웨어에 사용될 수 있다. 소프트웨어는 다른 컴퓨터들에 의해 수행되는 소프트웨어에 의해 명시된 계산의 다른 부분들이 분산된 방식으로 구현될 수 있다. 이러한 각 컴퓨터 프로그램은 저장 매체 또는 장치가 설명된 절차를 수행하는 컴퓨터 시스템에 의해 읽혀질 때, 컴퓨터를 운영하고 구성하기 위해 일반 또는 특수 목적의 프로그램 컴퓨터에서 읽을 수 있는 저장 매체 또는 장치(예를 들면, 고체형 메모리 모듈 또는 미디어, 또는 자기(magnetic), 또는 광학 미디어)에 저장되거나 또는 다운로드 된다. 본 발명의 시스템은 컴퓨터 프로그램으로 구성되어 컴퓨터가 읽을 수 있으며, 설명된 기능들을 수행하기 위해 특정하게 미리 정해진 방법으로 동작하는 컴퓨터 시스템으로 구성된 저장 매체로 구현된 것으로 간주될 수 있다.
본 발명은 다수의 실시예를 설명한다. 그럼에도 불구하고, 다양한 개량이 본 발명의 특징 및 권리범위를 한정하지 않는다. 예를 들어, 전술한 단계 중 일부는 순서에 독립적일 수 있으며, 설명과 다른 순서로 수행될 수도 있다. 전술한 설명이 도면으로 제출되었지만 발명의 권리범위를 제한하지 않으며, 첨부된 특허청구범위의 범위에서 정의된다. 예를 들어, 전술한 다수의 기능 단계들은 실질적으로 전체 처리에 주는 영향 없이 다른 순서로 수행된다. 다른 실시예는 다음 권리범위의 범위에 속하는 것이다.

Claims (21)

  1. 데이터 저장 시스템에서, 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하는 단계: 및
    상기 데이터 저장 시스템에 결합된 데이터 처리 시스템에서, 상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하는 단계를 포함하되,상기 데이터 패턴들은 상기 복수의 레코드들 각각에 포함되는 적어도 하나의 필드들 내의 데이터의 유효성 또는 적어도 하나의 데이터의 값이 기재되었는 지를 나타내며,
    상기 처리는:
    상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되고;
    상기 첫번째 코드의 적어도 하나의 요소에 대해, 적어도 2 개의 요소 값들 각각은 적어도 2 개의 필드들의 대응하는 조합에서 발생하는 적어도 2개의 데이터 값들의 조합의 상이한 상태 또는 속성을 나타내는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 두 개의 요소 값들은, 각각, 값이 기재되거나 또는 기재되지 않은 필드의 상태를 나타내는 것을 특징을 하는 방법.
  3. 제2항에 있어서,
    상기 기재되지 않은 상태는 널 상태(null state), 부재 상태(absent state) 또는 빈 상태(empty state) 중 어느 하나를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 널 상태(null state)는 미리 정해진 값을 갖는 필드의 상태를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 미리 정해진 값은 적어도 하나의 간격 문자(space characters)를 포함하는 것을 특징으로 하는 방법.
  6. 제3항에 있어서,
    상기 부재 상태(absent state)는 레코드에서 미싱(missing)된 필드를 포함하는 것을 특징으로 하는 방법.
  7. 제3항에 있어서,
    상기 빈 상태(empty state)는 해당되는 데이터 값이 없는 필드를 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 두 개의 요소 값들은 상기 필드와 관련된 검증 규칙에 따라 유효하지 않거나 또는 유효한 필드 내에서 발생하는 데이터 값을 나타내는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 검증 규칙은 상기 데이터 값의 데이터 유형에 대한 적어도 한 부분에 기초하여 유효한 값들을 정의하는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 검증 규칙은 열거 값들의 리스트를 참조하여 적어도 일부 유효값들을 정의하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 첫번째 코드의 적어도 하나의 요소에 대해, 상기 세트에서 적어도 하나의 요소값들은 첫번째 필드에서 발생하는 데이터 값이 타겟 데이터 값에 일치하는 정도를 나타내는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 타겟 데이터 값은 두번째 필드에서 발생하는 데이터 값인 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 세트에서 적어도 적어도 세번째 요소값들은, 각각, 불일치(mismatch), 정확한 일치(Exact match) 또는 퍼지 일치(Fuzzy match) 중 어느 하나로 상기 첫번째 필드에서 발생하는 데이터 값이 상기 타겟 데이터 값에 일치하는 정도를 나타내는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 첫번째 코드의 적어도 하나의 요소에 대해,
    상기 세트에서 적어도 하나의 요소 값은 첫번째 레코드의 필드들의 조합 또는 필드에서 발생하는 적어도 하나의 값들, 그리고 첫번째 레코드와 다른 적어도 두번째 레코드에 포함된 적어도 하나의 레코드들의 세트의 필드들의 조합 또는 필드에서 발생하는 적어도 하나의 값들로부터 연산된 데이터 값을 부호화하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 첫번째 레코드는 첫번째 데이터 세트이며, 상기 두번째 레코드는 상기 첫번째 데이터 세트와 다른 두번째 데이터 세트인 것을 특징으로 하는 방법.
  16. 제 1 항에 있어서,
    적어도 두번째 코드의 적어도 하나의 요소에 대해, 상기 세트의 적어도 하나의 요소값은 필드에서 또는 필드들의 조합에서 발생하는 미리 정해진 데이터 값을 나타내는 방법.
  17. 제16항에 있어서,
    상기 두번째 코드의 요소에 대한 요소값들의 세트에서 요소값들의 수는
    상기 데이터 세트의 상기 복수의 레코드들 전체에 대한 필드들의 조합 또는 해당하는 필드에서 발생하는 데이터 값들의 전체 수와 같은 것을 특징으로 하는 방법.
  18. 제 1 항에 있어서, 상기 첫번째 코드의 적어도 하나의 요소에 대해, 적어도 3개의 요소 값들 각각은 적어도 2개의 필드들의 대응하는 조합에서 발생하는 적어도 2개의 데이터 값들의 조합의 상이한 상태 또는 특성을 나타내는 방법.
  19. 제 1항 내지 제 18항 중 어느 하나의 방법을 수행하기 위한 컴퓨터 시스템에서 수행하도록 하기 위한 명령들을 포함하는 컴퓨터 프로그램을 저장하는 컴퓨터로 판독가능한 저장 매체.
  20. 시스템에 있어서, 상기 시스템은:
    복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하도록 구성된 데이터 저장 시스템; 및
    제 1항 내지 제 18항 중 어느 하나의 방법을 수행하도록 구성된 상기 데이터 저장 시스템에 결합된 데이터 처리 시스템을 포함하는 시스템.
  21. 복수의 레코드들을 포함하는 적어도 하나의 데이터 세트를 저장하기 위한 수단; 및
    상기 복수의 레코드들의 데이터 패턴들을 나타내는 코드들을 생성하기 위해 상기 복수의 레코드들을 처리하기 위한 수단을 포함하되, 상기 데이터 패턴들은 상기 복수의 레코드들 각각에 포함되는 적어도 하나의 필드들 내의 데이터의 유효성 또는 적어도 하나의 데이터의 값이 기재되었는 지를 나타내며,
    상기 처리는,
    상기 복수의 레코드들 내의 다중 레코드들 각각에 대해 적어도 하나의 요소들로 부호화된 코드와 상기 레코드를 관련시키는 단계를 포함하며, 각 요소는 해당 필드의 속성 또는 상태를 나타내거나 또는 요소값들의 세트 중에 하나로 필드들의 결합을 나타내며, 적어도 첫번째 코드의 적어도 하나의 요소에 대해 상기 세트에서 요소값들의 수는 데이터 값들의 전체 수 보다 작으며, 상기 데이터 값들은 상기 데이터 세트 내의 상기 복수의 레코드들 전체의 필드들의 조합 또는 상기 해당 필드 내에서 발생되며; 및
    상기 첫 번째 코드의 적어도 하나의 요소에 대해, 적어도 2 개의 요소 값들 각각은 적어도 2 개의 필드들의 대응하는 조합에서 발생하는 적어도 2개의 데이터 값들의 조합의 상이한 상태 또는 속성을 나타내는 것을 특징으로 하는 시스템.
KR1020137022748A 2011-01-28 2012-01-27 데이터 패턴 정보 생성 KR101889120B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161437361P 2011-01-28 2011-01-28
US61/437,361 2011-01-28
PCT/US2012/022905 WO2012103438A1 (en) 2011-01-28 2012-01-27 Generating data pattern information

Publications (2)

Publication Number Publication Date
KR20140014155A KR20140014155A (ko) 2014-02-05
KR101889120B1 true KR101889120B1 (ko) 2018-08-16

Family

ID=45607383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137022748A KR101889120B1 (ko) 2011-01-28 2012-01-27 데이터 패턴 정보 생성

Country Status (8)

Country Link
US (2) US9449057B2 (ko)
EP (1) EP2668725B1 (ko)
JP (1) JP6066927B2 (ko)
KR (1) KR101889120B1 (ko)
CN (1) CN103348598B (ko)
AU (1) AU2012211167B2 (ko)
CA (1) CA2823658C (ko)
WO (1) WO2012103438A1 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982065B (zh) * 2003-09-15 2016-09-21 起元科技有限公司 数据处理方法、数据处理装置及计算机可读存储介质
US9558505B2 (en) 2006-07-18 2017-01-31 American Express Travel Related Services Company, Inc. System and method for prepaid rewards
US9542690B2 (en) 2006-07-18 2017-01-10 American Express Travel Related Services Company, Inc. System and method for providing international coupon-less discounts
US9430773B2 (en) 2006-07-18 2016-08-30 American Express Travel Related Services Company, Inc. Loyalty incentive program using transaction cards
US10102398B2 (en) 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
JP5620984B2 (ja) 2009-06-10 2014-11-05 アビニシオ テクノロジー エルエルシー テストデータの生成方法
KR101889120B1 (ko) 2011-01-28 2018-08-16 아브 이니티오 테크놀로지 엘엘시 데이터 패턴 정보 생성
US8595200B2 (en) * 2012-01-03 2013-11-26 Wizsoft Ltd. Finding suspicious association rules in data records
US9665874B2 (en) 2012-03-13 2017-05-30 American Express Travel Related Services Company, Inc. Systems and methods for tailoring marketing
US9195988B2 (en) 2012-03-13 2015-11-24 American Express Travel Related Services Company, Inc. Systems and methods for an analysis cycle to determine interest merchants
US9116947B2 (en) * 2012-03-15 2015-08-25 Hewlett-Packard Development Company, L.P. Data-record pattern searching
US9754278B2 (en) 2012-09-16 2017-09-05 American Express Travel Related Services Company, Inc. System and method for purchasing in a digital channel
US10664883B2 (en) 2012-09-16 2020-05-26 American Express Travel Related Services Company, Inc. System and method for monitoring activities in a digital channel
JP6357161B2 (ja) * 2012-10-22 2018-07-11 アビニシオ テクノロジー エルエルシー データストレージシステムにおけるデータソースを特徴付けるための方法
KR102129643B1 (ko) 2012-10-22 2020-07-02 아브 이니티오 테크놀로지 엘엘시 소스 추적으로 데이터 프로파일링
US10504132B2 (en) 2012-11-27 2019-12-10 American Express Travel Related Services Company, Inc. Dynamic rewards program
US9892026B2 (en) * 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US9003382B2 (en) * 2013-02-18 2015-04-07 Red Hat, Inc. Efficient just-in-time compilation
CN105917315B (zh) * 2013-12-18 2020-05-01 起元技术有限责任公司 一种用于生成数据记录的内容的方法和计算系统
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
US9971798B2 (en) 2014-03-07 2018-05-15 Ab Initio Technology Llc Managing data profiling operations related to data type
US10769122B2 (en) * 2014-03-13 2020-09-08 Ab Initio Technology Llc Specifying and applying logical validation rules to data
US10395237B2 (en) 2014-05-22 2019-08-27 American Express Travel Related Services Company, Inc. Systems and methods for dynamic proximity based E-commerce transactions
GB201409214D0 (en) * 2014-05-23 2014-07-09 Ibm A method and system for processing a data set
US9606903B2 (en) * 2014-06-06 2017-03-28 Paypal, Inc. Unit test automation for business rules and applications
US9355114B1 (en) * 2014-06-25 2016-05-31 Groupon, Inc. Graph-based compression of data records
US9922290B2 (en) 2014-08-12 2018-03-20 Microsoft Technology Licensing, Llc Entity resolution incorporating data from various data sources which uses tokens and normalizes records
KR102356771B1 (ko) * 2014-09-08 2022-01-27 아브 이니티오 테크놀로지 엘엘시 데이터 구동 테스트 프레임워크
US10176234B2 (en) 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
CN104820720A (zh) * 2015-05-26 2015-08-05 北京京东尚科信息技术有限公司 一种数据质量检测方法和装置
US10140327B2 (en) * 2015-08-24 2018-11-27 Palantir Technologies Inc. Feature clustering of users, user correlation database access, and user interface generation system
US11386061B2 (en) 2015-10-16 2022-07-12 Microsoft Technology Licensing, Llc Telemetry request system
US11288245B2 (en) 2015-10-16 2022-03-29 Microsoft Technology Licensing, Llc Telemetry definition system
US10929272B2 (en) * 2015-10-16 2021-02-23 Microsoft Technology Licensing, Llc Telemetry system extension
US10430284B2 (en) * 2016-06-08 2019-10-01 International Business Machines Corporation Creating a full backup image from incremental backups
CN106202240A (zh) * 2016-06-29 2016-12-07 华能国际电力股份有限公司 物资编码数据处理方法及装置
US11256710B2 (en) 2016-10-20 2022-02-22 Microsoft Technology Licensing, Llc String transformation sub-program suggestion
US11620304B2 (en) 2016-10-20 2023-04-04 Microsoft Technology Licensing, Llc Example management for string transformation
US10846298B2 (en) 2016-10-28 2020-11-24 Microsoft Technology Licensing, Llc Record profiling for dataset sampling
CA2989617A1 (en) * 2016-12-19 2018-06-19 Capital One Services, Llc Systems and methods for providing data quality management
US10229750B2 (en) * 2017-01-18 2019-03-12 Bank Of America Corporation Memory management architecture for use with a diagnostic tool
CN107403371B (zh) * 2017-04-13 2020-06-09 阿里巴巴集团控股有限公司 一种数据生成方法和装置
US20190163734A1 (en) * 2017-11-27 2019-05-30 Microsoft Technology Licensing, Llc Dynamic pattern recognition in spreadsheets
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10891307B2 (en) * 2018-05-31 2021-01-12 Microsoft Technology Licensing, Llc Distributed data synchronization in a distributed computing system
CN108959411B (zh) * 2018-06-07 2020-12-08 新华三大数据技术有限公司 Etl任务的处理方法、装置和设备
CN112585546A (zh) * 2018-06-25 2021-03-30 西门子股份公司 用于流式传输测量数据的系统和方法
US11526630B2 (en) 2019-02-21 2022-12-13 The Toronto-Dominion Bank Managing cryptographically secure exchanges of data using permissioned distributed ledgers
US10782942B1 (en) * 2019-09-13 2020-09-22 Capital One Services, Llc Rapid onboarding of data from diverse data sources into standardized objects with parser and unit test generation
CN111008523A (zh) * 2019-11-21 2020-04-14 中科鼎富(北京)科技发展有限公司 一种信息提取方法、装置及服务器
CN111177179B (zh) * 2019-12-06 2023-11-10 北京懿医云科技有限公司 一种信息记录方法及装置
CN111259107B (zh) 2020-01-10 2023-08-18 北京百度网讯科技有限公司 行列式文本的存储方法、装置以及电子设备
US11657033B2 (en) * 2020-10-16 2023-05-23 Capital One Services, Llc Systems and methods for maintaining data quality in a data store receiving both low and high quality data
US11593382B2 (en) 2021-03-22 2023-02-28 International Business Machines Corporation Efficient storage of columns with inappropriate data types in relational databases
US11449487B1 (en) 2021-03-22 2022-09-20 International Business Machines Corporation Efficient indexing of columns with inappropriate data types in relational databases
US20220318418A1 (en) * 2021-03-31 2022-10-06 Collibra Nv Systems and methods for an on-demand, secure, and predictive value-added data marketplace
CN114356985B (zh) * 2021-12-24 2024-04-02 深圳市傲天科技股份有限公司 信息估计方法、装置、设备及存储介质
CN114677955B (zh) * 2022-03-17 2023-09-26 Tcl华星光电技术有限公司 显示面板及其控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
JPH032938A (ja) 1989-05-31 1991-01-09 Hitachi Ltd データベース処理方法
FR2698465B1 (fr) 1992-11-20 1995-01-13 Bull Sa Méthode d'extraction de profils de statistiques, utilisation des statistiques créées par la méthode.
JP3079881B2 (ja) 1993-08-10 2000-08-21 三菱自動車工業株式会社 道路交通状況推定方法および車両運転特性制御方法
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
JP3519126B2 (ja) 1994-07-14 2004-04-12 株式会社リコー 自動レイアウトシステム
US5842200A (en) 1995-03-31 1998-11-24 International Business Machines Corporation System and method for parallel mining of association rules in databases
US6601048B1 (en) 1997-09-12 2003-07-29 Mci Communications Corporation System and method for detecting and managing fraud
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5778373A (en) 1996-07-15 1998-07-07 At&T Corp Integration of an information server database schema by generating a translation map from exemplary files
US6138123A (en) 1996-07-25 2000-10-24 Rathbun; Kyle R. Method for creating and using parallel data structures
JPH1055367A (ja) 1996-08-09 1998-02-24 Hitachi Ltd データ利用システム
US5845285A (en) 1997-01-07 1998-12-01 Klein; Laurence C. Computer system and method of data analysis
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US6134560A (en) 1997-12-16 2000-10-17 Kliebhan; Daniel F. Method and apparatus for merging telephone switching office databases
US6826556B1 (en) 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
US6959300B1 (en) 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6343294B1 (en) 1998-12-15 2002-01-29 International Business Machines Corporation Data file editor for multiple data subsets
US6741995B1 (en) 1999-03-23 2004-05-25 Metaedge Corporation Method for dynamically creating a profile
US6163774A (en) 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
JP4600847B2 (ja) 1999-06-18 2010-12-22 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの意味規則を用いた連続データストリームのセグメント化および処理
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
JP3567861B2 (ja) 2000-07-07 2004-09-22 日本電信電話株式会社 情報源所在推定方法及び装置及び情報源所在推定プログラムを格納した記憶媒体
JP4366845B2 (ja) 2000-07-24 2009-11-18 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US6788302B1 (en) 2000-08-03 2004-09-07 International Business Machines Corporation Partitioning and load balancing graphical shape data for parallel applications
US6952693B2 (en) 2001-02-23 2005-10-04 Ran Wolff Distributed mining of association rules
US20020161778A1 (en) 2001-02-24 2002-10-31 Core Integration Partners, Inc. Method and system of data warehousing and building business intelligence using a data storage model
US20020120602A1 (en) 2001-02-28 2002-08-29 Ross Overbeek System, method and computer program product for simultaneous analysis of multiple genomes
CA2349265A1 (en) 2001-05-30 2002-11-30 Andrew Emili Protein expression profile database
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US7130852B2 (en) 2001-07-27 2006-10-31 Silicon Valley Bank Internal security system for a relational database system
AU2002355530A1 (en) 2001-08-03 2003-02-24 John Allen Ananian Personalized interactive digital catalog profiling
US6801903B2 (en) 2001-10-12 2004-10-05 Ncr Corporation Collecting statistics in a database system
US20030140027A1 (en) 2001-12-12 2003-07-24 Jeffrey Huttel Universal Programming Interface to Knowledge Management (UPIKM) database system with integrated XML interface
US7813937B1 (en) 2002-02-15 2010-10-12 Fair Isaac Corporation Consistency modeling of healthcare claims to detect fraud and abuse
US7031969B2 (en) 2002-02-20 2006-04-18 Lawrence Technologies, Llc System and method for identifying relationships between database records
US7386318B2 (en) 2002-03-19 2008-06-10 Pitney Bowes Mapinfo Corporation Location based service provider
US20040083199A1 (en) 2002-08-07 2004-04-29 Govindugari Diwakar R. Method and architecture for data transformation, normalization, profiling, cleansing and validation
US6657568B1 (en) * 2002-08-27 2003-12-02 Fmr Corp. Data packing for real-time streaming
US7047230B2 (en) 2002-09-09 2006-05-16 Lucent Technologies Inc. Distinct sampling system and a method of distinct sampling for optimizing distinct value query estimates
US7043476B2 (en) 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
AU2003284118A1 (en) 2002-10-14 2004-05-04 Battelle Memorial Institute Information reservoir
US7698163B2 (en) 2002-11-22 2010-04-13 Accenture Global Services Gmbh Multi-dimensional segmentation for use in a customer interaction
US7403942B1 (en) 2003-02-04 2008-07-22 Seisint, Inc. Method and system for processing data records
US7117222B2 (en) 2003-03-13 2006-10-03 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
US7433861B2 (en) 2003-03-13 2008-10-07 International Business Machines Corporation Byte-code representations of actual data to reduce network traffic in database transactions
US20040249810A1 (en) 2003-06-03 2004-12-09 Microsoft Corporation Small group sampling of data for use in query processing
GB0314591D0 (en) 2003-06-21 2003-07-30 Ibm Profiling data in a data store
US20050240354A1 (en) 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US20060069717A1 (en) 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
CN102982065B (zh) 2003-09-15 2016-09-21 起元科技有限公司 数据处理方法、数据处理装置及计算机可读存储介质
US7587394B2 (en) 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
US7149736B2 (en) 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
AU2003279999A1 (en) 2003-10-21 2005-06-08 Nielsen Media Research, Inc. Methods and apparatus for fusing databases
US7376656B2 (en) 2004-02-10 2008-05-20 Microsoft Corporation System and method for providing user defined aggregates in a database system
US8447743B2 (en) 2004-08-17 2013-05-21 International Business Machines Corporation Techniques for processing database queries including user-defined functions
US8145642B2 (en) 2004-11-30 2012-03-27 Oracle International Corporation Method and apparatus to support bitmap filtering in a parallel system
US8572018B2 (en) 2005-06-20 2013-10-29 New York University Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7774346B2 (en) * 2005-08-26 2010-08-10 Oracle International Corporation Indexes that are based on bitmap values and that use summary bitmap values
US20070073721A1 (en) * 2005-09-23 2007-03-29 Business Objects, S.A. Apparatus and method for serviced data profiling operations
US8271452B2 (en) 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US8412713B2 (en) 2007-03-06 2013-04-02 Mcafee, Inc. Set function calculation in a database
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090226916A1 (en) 2008-02-01 2009-09-10 Life Technologies Corporation Automated Analysis of DNA Samples
US7912867B2 (en) 2008-02-25 2011-03-22 United Parcel Services Of America, Inc. Systems and methods of profiling data for integration
CN101290625A (zh) * 2008-06-11 2008-10-22 华东师范大学 一种xml文档的存储和检索方法
US8463739B2 (en) 2008-08-28 2013-06-11 Red Hat, Inc. Systems and methods for generating multi-population statistical measures using middleware
US20100114976A1 (en) 2008-10-21 2010-05-06 Castellanos Maria G Method For Database Design
KR101607178B1 (ko) 2008-10-23 2016-03-29 아브 이니티오 테크놀로지 엘엘시 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
US9251212B2 (en) 2009-03-27 2016-02-02 Business Objects Software Ltd. Profiling in a massive parallel processing environment
EP2478433A4 (en) * 2009-09-16 2016-09-21 Ab Initio Technology Llc MAPPING DATA SET ELEMENTS
US8560575B2 (en) 2009-11-12 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment
WO2011060257A1 (en) * 2009-11-13 2011-05-19 Ab Initio Technology Llc Managing record format information
US8396873B2 (en) 2010-03-10 2013-03-12 Emc Corporation Index searching using a bloom filter
US8775447B2 (en) 2010-06-22 2014-07-08 Ab Initio Technology Llc Processing related datasets
US8296274B2 (en) 2011-01-27 2012-10-23 Leppard Andrew Considering multiple lookups in bloom filter decision making
KR101889120B1 (ko) 2011-01-28 2018-08-16 아브 이니티오 테크놀로지 엘엘시 데이터 패턴 정보 생성
US9275367B2 (en) 2011-05-05 2016-03-01 Aegis Analytical Corporation System for designating, displaying and selecting types of process parameters and product outcome parameters
US8610605B2 (en) 2011-06-17 2013-12-17 Sap Ag Method and system for data compression
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
CN103176973B (zh) 2011-12-20 2016-04-20 国际商业机器公司 用于生成数据库的测试工作负载的系统和方法
US8762396B2 (en) 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. Yoon et al., BitCube: A three-dimensional bitmap indexing for XML documents, Journal of intelligent information system, vol.17 no.2/3, pp.241-254, 2001.01.01.
J.Yoon et al., BitCube: clustering and Statistical Analysis for XML Documents, Journal of Intelligent Information systems, 2001.

Also Published As

Publication number Publication date
CN103348598A (zh) 2013-10-09
EP2668725A1 (en) 2013-12-04
CA2823658C (en) 2018-03-13
EP2668725B1 (en) 2021-12-22
AU2012211167B2 (en) 2014-08-21
CN103348598B (zh) 2017-07-14
US20160078100A1 (en) 2016-03-17
AU2012211167A1 (en) 2013-05-02
WO2012103438A1 (en) 2012-08-02
JP6066927B2 (ja) 2017-01-25
US9449057B2 (en) 2016-09-20
CA2823658A1 (en) 2012-08-02
US9652513B2 (en) 2017-05-16
KR20140014155A (ko) 2014-02-05
JP2014511587A (ja) 2014-05-15
US20120197887A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
KR101889120B1 (ko) 데이터 패턴 정보 생성
US8626702B2 (en) Method and system for validation of data extraction
KR102432104B1 (ko) 데이터 요소 간의 관계를 결정하기 위한 시스템 및 방법
US9031873B2 (en) Methods and apparatus for analysing and/or pre-processing financial accounting data
US9477786B2 (en) System for metadata management
US7940899B2 (en) Fraud detection, risk analysis and compliance assessment
US20120005153A1 (en) Creation of a data store
EP2551773A1 (en) Data audit module for application software
US11947567B2 (en) System and method for computing and managing datasets using hierarchical analytics
Dakrory et al. Automated ETL testing on the data quality of a data warehouse
US8396847B2 (en) System and method to retrieve and analyze data for decision making
US9348850B1 (en) Method for large-scale data schema analysis and quality assurance
Liu et al. Extraction of attribute dependency graph from database applications
Meskine et al. A support architecture to MDA contribution for data mining
CN115545934A (zh) 数据处理方法和装置
Feng et al. Frequent Pattern Mining for Massive XBRL Data in Internet Information Disclosure System
Woodall et al. A Classification of Data Quality Assessment Methods
Borek et al. DATA QUALITY ASSESSMENT METHODS

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