Nothing Special   »   [go: up one dir, main page]

KR20170031750A - Managing lineage information - Google Patents

Managing lineage information Download PDF

Info

Publication number
KR20170031750A
KR20170031750A KR1020177004181A KR20177004181A KR20170031750A KR 20170031750 A KR20170031750 A KR 20170031750A KR 1020177004181 A KR1020177004181 A KR 1020177004181A KR 20177004181 A KR20177004181 A KR 20177004181A KR 20170031750 A KR20170031750 A KR 20170031750A
Authority
KR
South Korea
Prior art keywords
data
logical
data processing
lineage
information
Prior art date
Application number
KR1020177004181A
Other languages
Korean (ko)
Other versions
KR102292803B1 (en
Inventor
에드워드 바흐
리차드 오바도르프
브론드 라슨
Original Assignee
아브 이니티오 테크놀로지 엘엘시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아브 이니티오 테크놀로지 엘엘시 filed Critical 아브 이니티오 테크놀로지 엘엘시
Publication of KR20170031750A publication Critical patent/KR20170031750A/en
Application granted granted Critical
Publication of KR102292803B1 publication Critical patent/KR102292803B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • G06F17/30339
    • G06F17/30377
    • G06F17/30598
    • G06F17/30958
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • G06F9/4436
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 계보 모듈(115)에 의해 사용되는 계보 정보를 관리하는 것은 적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들(810, 1110, 1111) 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보를 수신하는 단계; 적어도 하나의 런타임 아티팩트(runtime artifacts)(429)를 수신하는 단계 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및 상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하는 단계를 포함한다.Managing lineage information used by data lineage module 115 includes receiving lineage information indicative of at least one lineage relationships between at least two data processing programs and at least two logical data sets 810, 1110, ; Receiving at least one runtime artifact 429, each runtime artifact comprising information relating to a previous execution of a data processing program of the at least two data processing programs; And analyzing the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.

Figure P1020177004181
Figure P1020177004181

Description

계보 정보의 관리{MANAGING LINEAGE INFORMATION}Management of lineage information {MANAGING LINEAGE INFORMATION}

본 출원은 2014년 7월 18일에 출원된 미국 출원 번호 62/026,228에 대해 우선권을 주장한다.This application claims priority to U.S. Serial No. 62 / 026,228 filed on July 18, 2014.

본 명세서는 파라미터 세트들을 관리하는 것에 관련된다.This specification relates to managing parameter sets.

데이터 처리 시스템에서 종종 특정 유형의 사용자들이 데이터가 그 시스템을 통과할 때 데이터의 계보(lineage)의 보고서들에 액세스할 수 있는 것이 바람직하다. 매우 일반적으로, 여러 용도 중에서, 이러한 “데이터 계보” 보고서들은 위험을 감소시키고, 규정 준수 의무를 확인하며, 비즈니스 프로세스를 간소화하고, 데이터를 보호하는 데 사용될 수 있다. 데이터 계보 보고서들은 정확하고 완전해야 한다. In a data processing system it is often desirable for certain types of users to be able to access reports of the lineage of data as it passes through the system. Very commonly, among many uses, these "data lineage" reports can be used to reduce risk, identify regulatory compliance obligations, simplify business processes, and protect data. Data lineage reports should be accurate and complete.

본 발명의 목적은 계보 정보(lineage information)를 관리하기 위한 방법, 계보 정보를 관리하기 위한 소프트웨어, 및 계보 정보를 관리하기 위한 컴퓨팅 시스템을 제공하기 위한 것이다.An object of the present invention is to provide a method for managing lineage information, software for managing geneage information, and a computing system for managing geneage information.

일 측면에서, 일반적으로, 이러한 파라미터 값들의 세트들을 사용하여 인스턴스화 되었던 제네릭 컴퓨터 프로그램들의 인스턴스들 간의 관계들을 반영하는 계보 정보 파라미터 값들의 세트들을 관리하는 것이 더 정확하고 완전한 데이터 계보 보고서들의 생성을 가능하게 한다. In one aspect, managing sets of lineage information parameter values, which generally reflect relationships between instances of generic computer programs that have been instantiated using these sets of parameter values, enables the generation of more accurate and complete data lineage reports do.

일 측면에서, 일반적으로, 계보 정보(lineage information)를 관리하기 위한 방법은In one aspect, in general, a method for managing lineage information

적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보를 수신하는 단계; 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하는 단계 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및 상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하는 단계를 포함한다.Receiving lineage information representative of at least one lineage relationships between at least two data processing programs and at least two logical data sets; Receiving at least one runtime artifacts, each runtime artifact comprising information relating to a previous execution of a data processing program of the at least two data processing programs; And analyzing the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.

측면들은 다음 특징들 중 하나 이상을 포함할 수 있다. The sides may include one or more of the following features.

상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 간접적 계보 관계를 추가하는 후보 수정을 포함한다.The at least one candidate modifications include a candidate modification that adds a new indirect genealogical relationship between the data processing program of the at least two data processing programs and the logical data set of the at least two logical data sets.

상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 직접적인 계보 관계를 추가하는 제1 후보 수정을 포함한다.The at least one candidate modifications include a first candidate modification that adds a new direct lineage relationship between the data processing program of the at least two data processing programs and the logical data set of the at least two logical data sets.

상기 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는 상기 적어도 두 개의 데이터 처리 프로그램들에 의해 판독되거나 기록되는 물리 데이터세트들을 결정하기 위해 상기 적어도 두 개의 데이터 처리 프로그램들의 이전 실행들의 로그들을 분석하는 단계를 포함한다.Wherein analyzing the runtime artifact and the genealogy information comprises analyzing logs of previous runs of the at least two data processing programs to determine physical data sets to be read or written by the at least two data processing programs .

상기 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는 상기 계보 정보에서 표현되고 동일한 물리 데이터세트와 관련된 상기 적어도 두 개의 논리 데이터세트들의 두 개의 별개 논리 데이터세트들을 식별하는 단계를 더 포함한다.Analyzing the runtime artifact and the genealogy information further comprises identifying two distinct sets of logical data of the at least two logical data sets represented in the genealogical information and associated with the same physical data set.

상기 제1 후보 수정은 상기 두 개의 별개 논리 데이터세트들 사이의 새로운 계보 관계의 생성을 포함한다.The first candidate modification includes generating a new lineage relationship between the two separate sets of logical data.

상기 제1 후보 수정은 상기 두 개의 별개 논리 데이터세트들을 새로운 결합된 논리 데이터세트로 병합하는 것을 포함하는 상기 새로운 계보 관계의 생성을 포함한다.The first candidate modification includes merging the two separate sets of logical data into a new combined logical data set.

상기 적어도 두 개의 데이터 처리 프로그램들의 각각의 데이터 처리 프로그램은 적어도 하나의 파라미터 값들의 세트에 따라 인스턴스화된 제네릭 데이터 처리 프로그램(generic data processing program)의 인스턴스이다.Each data processing program of the at least two data processing programs is an instance of a generic data processing program instantiated according to a set of at least one parameter values.

상기 적어도 하나의 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는 적 상기 적어도 두 개의 데이터 처리 프로그램들의 제1 데이터 처리 프로그램의 이전 실행들의 적어도 하나의 로그들을, 적어도 하나의 파라미터 값들의 제1 세트에 따라 상기 제1 데이터 처리 프로그램의 제1 인스턴스화에서 사용되는 제1 파라미터 세트를 결정하기 위해, 분석하는 단계, 상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계, 및 상기 제1 데이터 처리 프로그램의 제1 인스턴스화가 상기 제1 데이터 처리 프로그램의 제네릭 버전(generic version)과 상기 적어도 일부 파라미터들에 기초하여 상기 계보 정보에서 표현되지 않는 것을 결정하는 단계를 포함한다.Wherein analyzing the at least one runtime artifact and the genealogy information comprises comparing at least one logs of previous runs of the first data processing program of the at least two data processing programs with a first set of at least one parameter values Analyzing to determine a first set of parameters to be used in a first instantiation of the first data processing program, selecting at least some parameters from the first set of parameters, Determining that the instantiation is not represented in the genealogical information based on the generic version of the first data processing program and the at least some parameters.

상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계는 사용자로부터 수신된 정보에 기초하여 파라미터들을 선택하는 단계를 포함한다.Wherein selecting at least some parameters from the first set of parameters comprises selecting parameters based on information received from a user.

상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계는 적어도 하나의 미리 정의된 규칙들에 기초하여 파라미터들을 선택하는 단계를 포함한다.Wherein selecting at least some parameters from the first set of parameters comprises selecting parameters based on at least one predefined rule.

상기 적어도 하나의 미리 정의된 규칙들의 제1 규칙은 날짜 형태의 파라미터 값들을 가지는 파라미터들이 상기 선택된 파라미터들로부터 배제되는 것을 명시한다.The first rule of the at least one predefined rule specifies that parameters having parameter values in date form are excluded from the selected parameters.

상기 적어도 하나의 미리 정의된 규칙들의 제1 규칙은 제네릭 데이터 처리 프로그램의 논리로 변환된 파라미터 값을 가지는 파라미터가 상기 선택된 파라미터들에 포함되는 것을 명시한다.The first rule of the at least one predefined rule specifies that a parameter having a parameter value converted into logic of the generic data processing program is included in the selected parameters.

상기 계보 정보에 대한 상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 상기 제1 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 계보 관계를 추가하는 제1 후보 수정을 포함한다.Wherein the at least one candidate modifications to the genealogy information include a first candidate modification that adds a new genealogical relationship between the first data processing program of the at least two data processing programs and the logical data set of the at least two logical data sets .

또 다른 측면에서, 일반적으로, 계보 정보(lineage information)를 관리하기 위한 소프트웨어가 컴퓨터 판독가능한 매체 상에 비일시적 형태로 저장되고, 상기 소프트웨어는 컴퓨팅 시스템이 적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보를 수신하도록 하고; 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하도록 하고 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및In another aspect, generally, software for managing lineage information is stored in a non-transitory manner on a computer-readable medium, the software being programmed such that the computing system has at least two data processing programs and at least two Receive lineage information representative of at least one lineage relationships between logical data sets; To receive at least one runtime artifacts, each runtime artifact comprising information relating to a previous run of a data processing program of the at least two data processing programs; And

상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하도록 하는 명령들을 포함한다.And to analyze the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.

또 다른 측면에서, 일반적으로, 계보 정보(lineage information)를 관리하기 위한 컴퓨팅 시스템은 적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보와 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하도록 구성된 입력 디바이스 또는 포트 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및 상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하도록 구성된 적어도 하나의 프로세서를 포함한다.In another aspect, generally, a computing system for managing lineage information includes at least one data processing program, and at least one of a plurality of data processing programs and at least one An input device or port configured to receive runtime artifacts, each runtime artifact comprising information relating to a previous execution of a data processing program of the at least two data processing programs; And at least one processor configured to analyze the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.

또 다른 측면에서, 일반적으로, 계보 정보(lineage information)를 관리하기 위한 컴퓨팅 시스템은 적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보와 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하기 위한 수단 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및 상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하기 위한 수단을 포함한다.In another aspect, generally, a computing system for managing lineage information includes at least one data processing program, and at least one of a plurality of data processing programs and at least one Means for receiving runtime artifacts, each runtime artifact comprising information relating to a previous execution of a data processing program of the at least two data processing programs; And means for analyzing the at least one runtime artifacts and the lineage information to determine at least one candidate modifications to the lineage information.

측면들은 다음 장점들 중 하나 이상을 포함할 수 있다.The aspects may include one or more of the following advantages.

본원에서 설명된 방법들을 사용하여 파라미터 세트들을 발견하고 파라미터 세트들의 기존 세트를 보강하기 위해 발견된 파라미터 세트들을 사용함으로써, 기존 파라미터 세트들의 보강된 세트를 사용하여 생성된 데이터 계보 보고서들은 데이터 처리 시스템의 진정한 데이터 계보를 더 정확하게 나타낸다. 특히, 이전에 간과되었을 수 있는 데이터 처리 시스템에 대한 데이터 계보의 부분들이 데이터 계보 보고서에 포함된다. The data lineage reports generated using the enhanced set of existing parameter sets, by discovering the parameter sets using the methods described herein and using the found parameter sets to augment the existing set of parameter sets, It more accurately represents true data lineage. In particular, portions of the data lineage for data processing systems that may have been overlooked previously are included in the data lineage report.

일부 예에서, 파라미터 세트 발견 방법들의 결과들은 또한 컴퓨터 프로그램의 인스턴스들의 실행들의 로그 엔트리들(log entries)을 보강(즉, 발견된 파라미터 세트들에 관한 정보로 로그 엔트리들을 보강)하는데 사용될 수 있다. 보강된 로그 엔트리는 컴퓨터 프로그램들 및/또는 데이터세트들 사이의 논리적 연결들이 물리적 연결들에 대응하는지를 검증하는 데 유리하게 사용될 수 있다. 이러한 검증 결과들은 사용자에게 제시된 데이터 계보가 컴퓨터 프로그램들과 그것들의 입력 및 출력 간의 정확한 계보 관계들을 보여주는 것을 보장한다.In some instances, the results of the parameter set discovery methods may also be used to augment log entries of the executions of instances of the computer program (i. E. Reinforce log entries with information about discovered parameter sets). Enhanced log entries can be advantageously used to verify that logical connections between computer programs and / or data sets correspond to physical connections. These verification results ensure that the data lineage presented to the user shows accurate lineage relationships between computer programs and their inputs and outputs.

본 발명의 다른 특징들과 장점들은 다음 설명으로부터, 그리고 청구범위로부터 명백해질 것이다. Other features and advantages of the invention will be apparent from the following description, and from the claims.

도 1은 파라미터 세트들의 발견을 위한 시스템의 블록도이다.
도 2는 서브 그래프들(sub-graphs)과 그것들의 관련 파라미터 세트들을 포함하는 데이터플로 그래프이다.
도 3은 도 2의 데이터플로 그래프의 실행 시간 구성이다.
도 4는 도 2의 데이터플로 그래프의 정적 분석 구성(static analysis configuration)이다.
도 5는 파라미터 세트들의 발견을 위한 방법의 순서도다.
도 6은 파라미터 세트들의 발견을 위한 방법의 예시적인 동작의 전반부이다.
도 7은 파라미터 세트들의 발견을 위한 방법의 예시적인 동작의 후반부이다.
도 8은 제1 서브 그래프와 제2 서브 그래프를 포함하는 예시 데이터플로 그래프이다.
도 9는 물리 데이터세트들로 해석된(resolved) 논리 데이터세트들을 가지는 도 8의 데이터플로 그래프를 도시한다.
도 10은 도 8의 데이터플로 그래프에 대한 데이터 계보 보고서를 도시한다.
도 11은 제1 서브 그래프 및 제2 서브 그래프를 포함하고 중복 논리 데이터세트들을 가지는 예시 데이터플로 그래프이다.
도 12는 물리 데이터세트들로 해석된 논리 데이터세트들을 가지는 도 11의 예시 데이터플로 그래프를 도시한다.
도 13은 도 11의 데이터플로 그래프에 대한 데이터 계보 브레이크(data lineage break)를 포함하는 데이터 계보 보고서를 도시한다.
도 14는 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제1 기법을 도시한다.
도 15는 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제2 기법을 도시한다.
도 16은 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제3 기법을 도시한다.
도 17은 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제4 기법을 도시한다.
도 18은 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제5 기법을 도시한다.
도 19는 데이터 계보 보고서의 데이터 계보 브레이크의 영향을 완화하기 위한 제6 기법을 도시한다.
Figure 1 is a block diagram of a system for discovery of parameter sets.
Figure 2 is a dataflow graph containing sub-graphs and their associated parameter sets.
FIG. 3 shows the execution time configuration of the data flow graph of FIG.
Figure 4 is a static analysis configuration of the dataflow graph of Figure 2;
Figure 5 is a sequence of methods for the discovery of parameter sets.
Figure 6 is a first part of an exemplary operation of a method for discovery of parameter sets.
Figure 7 is a later part of an exemplary operation of a method for discovery of parameter sets.
8 is an example data flow graph including a first subgraph and a second subgraph.
Figure 9 shows the dataflow graph of Figure 8 with logical data sets resolved into physical data sets.
Figure 10 shows a data lineage report for the dataflow graph of Figure 8;
11 is an exemplary dataflow graph that includes a first subgraph and a second subgraph and has redundant logical data sets.
Figure 12 shows an example data flow graph of Figure 11 with logical data sets interpreted as physical data sets.
13 shows a data lineage report that includes a data lineage break for the data flow graph of FIG.
Figure 14 shows a first technique for mitigating the impact of data lineage breaks in a data lineage report.
15 shows a second technique for mitigating the effect of data lineage breaks in the data lineage report.
Figure 16 shows a third technique for mitigating the impact of data lineage breaks in the data lineage report.
Figure 17 shows a fourth technique for mitigating the impact of data lineage breaks in the data lineage report.
18 shows a fifth technique for mitigating the effects of data lineage breaks in the data lineage report.
19 illustrates a sixth technique for mitigating the effects of data lineage breaks in the data lineage report.

도 1은 본원에서 설명된 파라미터 세트 발견 기법들이 사용될 수 있는 데이터 처리 시스템(100)의 일 예를 도시한다. 상기 시스템은 일부 구현에서 정점들 사이의 (작업 요소들 즉, 데이터의 흐름을 나타내는) 방향성 링크들에 의해 연결되는 (데이터 처리 컴포넌트들 또는 데이터세트들을 나타내는) 정점들을 포함하는 데이터플로 그래프들(117)로써 어플리케이션을 개발하기 위한 시스템인 개발 환경(118)을 포함한다. 예를 들어, 이러한 환경은 본원에서 참조로 원용되는 “Managing Parameters for Graph-Based Applications”라는 타이틀의 미국 공보 번호 2007/0011668에서 더 상세히 설명된다. 이러한 그래프 기반 계산을 실행하기 위한 시스템은 본원에서 참조로 원용되는 “EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS”라는 타이틀의 미국 특허 5,966,072에서 설명된다. 이 시스템에 따라 만들어진 상기 데이터플로 그래프들(117)은 그래프 컴포넌트들에 의해 표현되는 개별 프로세스들로 정보를 보내고 개별 프로세스들로부터 정보를 얻기 위한, 상기 프로세스들 사이에 정보를 이동시키기 위한, 그리고 상기 프로세스들에 대한 실행 순서를 정의하기 위한 방법들을 제공한다. 이 시스템은 임의의 가용한 방법들(예를 들어, 그래프의 링크들에 따른 통신 경로들은 TCP/IP 또는 UNIX 도메인 소켓들을 사용할 수 있거나 프로세스들 사이에 데이터를 전달하는 공유 메모리를 사용할 수 있음)로부터 프로세스간 통신 방법을 선택하는 알고리즘을 포함한다. 상기 개발 환경(118)을 사용하여 개발자(120)에 의해 생성된 상기 데이터플로 그래프들(117)은 상기 시스템(100)의 다른 모듈들에 의한 차후 사용을 위해 상기 개발 환경(118)에 액세스 가능한 데이터 저장 시스템(116)에 저장될 수 있다. FIG. 1 illustrates an example of a data processing system 100 in which the parameter set discovery techniques described herein may be used. The system includes dataflow graphs 117 (see FIG. 1) that include vertices (representing data processing components or datasets) connected by directional links (representing work elements or data flows) between vertices in some implementations ), Which is a system for developing an application. For example, such an environment is described in greater detail in U.S. Publication No. 2007/0011668 entitled " Managing Parameters for Graph-Based Applications ", which is incorporated herein by reference. A system for performing such graph-based calculations is described in U.S. Patent 5,966,072, titled "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS", which is incorporated herein by reference. The dataflow graphs 117 made in accordance with the system can be used to send information to individual processes represented by graph components and to obtain information from individual processes, to move information between the processes, Provides methods for defining the execution order for processes. The system can be used in any of the available ways (e.g., communication paths along the graph links can use TCP / IP or UNIX domain sockets or use shared memory to pass data between processes) And an algorithm for selecting an inter-process communication method. The dataflow graphs 117 generated by the developer 120 using the development environment 118 are accessible to the development environment 118 for subsequent use by other modules of the system 100. [ May be stored in the data storage system 116.

실행 환경(104)은 파라미터 해석 모듈(parameter resolution module)(106) 및 실행 모듈(112)을 포함한다. 상기 실행 환경(104)은 예를 들어, UNIX 운영 시스템 버전 같은 적합한 운영 시스템의 제어 하에 하나 이상의 범용 컴퓨터 상에 호스팅될 수 있다. 예를 들어, 상기 실행 환경(104)은 로컬(예를 들어, 대칭 멀티 프로세싱(SMP) 컴퓨터 같은 멀티프로세서 시스템) 또는 로컬 분산된(예를 들어, 클러스터들로 결합된 다중 프로세서들 또는 대규모 병렬 처리(MPP) 시스템들) 또는 원격 또는 원격 분산된(예를 들어, 근거리 통신망(LAN) 및/또는 원거리 통신망(WAN)), 또는 이들의 임의의 조합인, 다중 중앙 처리 유닛들(CPUs) 또는 프로세서 코어들을 사용하는 컴퓨터 시스템들의 구성을 포함하는 다중 노드 병렬 컴퓨팅 환경을 포함할 수 있다. The execution environment 104 includes a parameter resolution module 106 and an execution module 112. The execution environment 104 may be hosted on one or more general purpose computers under the control of a suitable operating system, such as, for example, a UNIX operating system version. For example, the execution environment 104 may be a local (e.g., multiprocessor system such as a symmetric multiprocessing (SMP) computer) or a locally distributed (e.g., multiple processors coupled into clusters, (CPUs) or processors (MPUs), which are remote or remote distributed (e.g., local area network (LAN) and / or wide area network (WAN) And a multi-node parallel computing environment including configurations of computer systems using cores.

상기 파라미터 해석 모듈(106)은 상기 데이터 저장 시스템(116)으로부터 상기 데이터플로 그래프들(117)의 사양을 수신하고 상기 실행 모듈(112)에 의한 실행에 대해 상기 데이터플로 그래프(들)(117)을 준비하기 위해 (아래에 더 상세히 설명되는 바와 같이) 상기 데이터플로 상기 데이터플로 그래프들(117)에 대한 파라미터들을 해석한다. 상기 실행 모듈(112)은 상기 파라미터 해석 모듈(106)으로부터 상기 준비된 데이터플로 그래프들(117)을 수신하고 데이터 소스(102)로부터의 데이터를 처리하고 출력 데이터(114)를 생성하기 위해 그것들을 사용한다. 상기 출력 데이터(114)는 상기 데이터 소스(102)에 또는 상기 실행 환경(104)에 액세스 가능한 데이터 저장 시스템(116)에 다시 저장될 수 있거나, 달리 사용될 수 있다. 일반적으로, 상기 데이터 소스(102)는 저장 장치들 또는 온라인 데이터 스트림으로의 연결들 같은 하나 이상의 데이터 소스를 포함할 수 있고, 그것들 각각은 다양한 형식 (예를 들어, 데이터베이스 테이블, 스프레드시트 파일(spreadsheet files), 플랫 텍스트 파일(flat text files) 또는 메인프레임에 의해 사용되는 원시 포맷) 중 임의의 것으로 데이터를 저장할 수 있거나 제공할 수 있다.The parametric analysis module 106 receives the specifications of the dataflow graphs 117 from the data storage system 116 and receives the dataflow graphs 117 for execution by the execution module 112. [ (As described in more detail below) to interpret the parameters for the dataflow graphs 117. The execution module 112 receives the prepared data flow graphs 117 from the parameter interpretation module 106 and processes the data from the data source 102 and uses them to generate output data 114 do. The output data 114 may be stored again in the data storage system 116 accessible to the data source 102 or in the execution environment 104, or otherwise used. Generally, the data source 102 may include one or more data sources, such as connections to storage devices or online data streams, each of which may be in a variety of formats (e.g., a database table, a spreadsheet files), flat text files, or raw formats used by the mainframe).

상기 데이터 소스(102)를 제공하는 저장 장치들은 예를 들어, 상기 실행 환경(104)을 호스팅하는 컴퓨터에 연결된 저장 매체(예를 들어, 하드 드라이브(108)) 상에 저장되어 상기 실행 환경(104)에 로컬일 수 있거나, 예를 들어, (예를 들어, 클라우드 컴퓨팅 인프라스트럭처에 의해 제공되는) 원격 연결을 통해 상기 실행 환경(104)을 호스팅하는 컴퓨터와 통신하는 원격 시스템(예를 들어, 메인프레임(110)) 상에 호스팅되어 상기 실행 환경(104)에 원격일 수 있다. The storage devices providing the data source 102 may be stored on a storage medium (e.g., hard drive 108) connected to a computer hosting the execution environment 104, for example, , Or may be local to a remote system (e. G., A < / RTI > main) that communicates with a computer hosting the execution environment 104 via a remote connection (e. G., Provided by a cloud computing infrastructure) Frame 110) and remotely to the execution environment 104.

상기 시스템(100)은 또한 기업 사용자들(121)(예를 들어, 데이터 설계자들 또는 비즈니스 사용자들)이 액세스 가능한 메타데이터 환경 모듈(119)을 포함한다. 상기 메타데이터 환경 모듈(119)은 데이터플로 그래프들(117)에 대한 데이터 계보를 생성하기 위해 상기 데이터플로 그래프들(117)(또는 그것들을 특성화하는 메타데이터와 그것들이 참조하는 입력 및 출력 데이터세트들)을 처리하는 데이터 계보 모듈(115)을 포함한다. 상기 기업 사용자(121)는 상기 데이터플로 그래프들(117)의 검증과 컴플라이언스 검사(compliance checking) 같은 이유로 상기 데이터 계보를 볼 수 있다. 특정 데이터 항목(예를 들어, 데이터세트 또는 데이터세트 내 필드)에 관한 데이터 계보 정보는 데이터 처리 시스템에 의해 수행되는 처리로 인해 발생하는 종속 관계에 기반하고, 본원에서 사용되는 용어 “데이터 계보”는 일반적으로 다른 관련 데이터 항목들과 그 데이터 항목들을 소비하거나 생성하는 처리 엔티티들을 포함하는 세트를 나타낸다. 데이터 계보 보고서(데이터 계보 다이어그램이라고도 함)는 데이터 항목들과 처리 엔티티들을 나타내는 노드들 및 그것들 사이의 종속 관계를 나타내는 링크들을 가지는 그래프 형태의 데이터 계보의 그래픽 표현을 포함할 수 있다. 데이터 계보 보고서들을 생성하고 디스플레이할 수 있는 일부 시스템들은 상향단(upstream end)의 최종 데이터 소스들로부터 하향단(downstream end)에서 산출되는 최종 데이터까지의 종단간 데이터 계보(end-to-end data lineage)를 자동적으로 표시할 수 있다. 특정 데이터 항목으로부터 상향 경로 상의 노드들은 때로 그 데이터 항목에 대한 “종속성(dependencies)”이라고도 하고 특정 데이터 항목으로부터 하향 경로 상의 노드들은 때로 그 데이터 항목에 대한 “영향(impacts)”이라고도 한다. “데이터 계보”가 본원에서 사용되는 바와 같이 때로 상향 종속성만을 나타내는 데 사용되는 반면, “데이터 계보”가 특정 상황에 적절하게 상향 종속성 및/또는 하향 영향 중 하나 또는 모두를 나타낼 수 있다. The system 100 also includes a metadata environment module 119 that is accessible to enterprise users 121 (e.g., data architects or business users). The metadata environment module 119 is configured to generate the data flow graphs 117 (or the metadata that characterizes them and the input and output data sets they refer to to generate the data lineage for the data flow graphs 117) And a data lineage module 115 for processing the data. The enterprise user 121 can view the data lineage for reasons such as verification of the data flow graphs 117 and compliance checking. The data lineage information for a particular data item (e.g., a data set or a field in a data set) is based on a dependency that arises due to processing performed by the data processing system, and the term " data lineage " Generally refers to a set of other related data items and processing entities that consume or generate those data items. A data lineage report (also referred to as a data lineage diagram) may include a graphical representation of a data lineage in the form of a graph having nodes representing data items and processing entities and links representing dependencies between them. Some systems that can generate and display data lineage reports are end-to-end data lineage from the last data sources in the upstream end to the final data in the downstream end. ) Can be displayed automatically. Nodes on the upstream path from a particular data item are sometimes referred to as "dependencies" for that data item and nodes on the downward path from a particular data item are sometimes referred to as "impacts" on that data item. While " data lineage " is sometimes used to denote only upward dependency, as used herein, a " data lineage " may indicate one or both of an upward dependency and / or a downward impact, as appropriate to the particular situation.

1.One. 데이터플로 그래프 개요 Dataflow graph overview

도 2를 참조하면, 도 1의 실행 환경(118)을 사용하여 생성된 데이터플로 그래프(217)의 일 예는 gather.mp로 명명된 제1 서브 그래프(202)와 process.mp로 명명된 제2 서브 그래프(204)를 포함한다. Referring to FIG. 2, an example of a dataflow graph 217 generated using the execution environment 118 of FIG. 1 includes a first subgraph 202 named gather.mp and a second subgraph 202 named process.mp. 2 subgraph (204).

상기 제1 서브 그래프(202)는 제1 논리 데이터세트 DS1(206)과 제2 논리 데이터세트 DS2(208)을 입력으로 수신하고, 상기 제1 및 제2 논리 데이터세트들(206, 208)로부터의 데이터를 처리하여 제3 논리 데이터세트 DS3(210)에 그 처리 결과를 기록한다. 상기 제2 서브 그래프(204)는 제4 논리 데이터세트 DS4(212)(제3 논리 데이터세트(210)와 동일한 물리 파일을 가리킴)를 입력으로 수신하고, 상기 제4 논리 데이터세트(212)로부터의 데이터를 처리하여 테이블(214)에 그 처리 결과를 기록한다. The first subgraph 202 receives as input a first logical data set DS1 206 and a second logical data set DS2 208 and generates a first logical data set DS1 206 and a second logical data set DS2 208 from the first and second logical data sets 206, And records the processing result in the third logical data set DS3 (210). The second subgraph 204 receives as inputs a fourth logical data set DS4 212 (indicating the same physical file as the third logical data set 210) And records the result of the processing in the table 214. [

네 개의 논리 데이터세트들(206, 208, 210, 212) 각각은 실행시 물리 파일에 대한 경로로 해석되는 파라미터화된 경로와 관련된다. 특히, 제1 논리 데이터세트(206)는 파라미터화된 경로 /${FEED}/inv_${DATE}.dat 를 사용하여 식별되고, 제2 논리 데이터세트(208)는 파라미터화된 경로 /${FEED}/cust_${DATE}.dat 를 사용하여 식별되고, 제3 논리 데이터세트(210)는 파라미터화된 경로 /trans_${DATE}.dat 를 사용하여 식별되며, 제4 논리 데이터세트(212)는 파라미터화된 경로 /trans_${DATE}.dat 를 사용하여 식별된다. Each of the four sets of logical data 206, 208, 210, 212 is associated with a parameterized path that is interpreted as a path to a physical file at runtime. In particular, the first logical data set 206 is identified using the parameterized path / $ { FEED} / inv_ $ { DATE} .dat , and the second logical data set 208 is identified using the parameterized path / $ { FEED} / cust _ $ {DATE} .dat , and the third logical data set 210 is identified using the parameterized path /trans_${DATE}.dat , and the fourth logical data set 212 ) Is identified using the parameterized path /trans_${DATE}.dat .

제1 서브 그래프(202)는 인수로서 두 개의 파라미터 P1 = FEED 와 P2 = DATE를 수신하고, 아래에서 보다 상세히 설명되는 바와 같이, 상기 수신된 FEED 및 DATE 파라미터들의 값으로 파라미터화된 경로들의 FEED 및 DATE 자리표시자(placeholder)를 대체하여 제1 논리 데이터세트(206), 제2 논리 데이터세트(208) 및 제3 논리 데이터세트(210)의 각각의 물리적 위치로의 경로를 해석하기 위해 상기 파라미터들을 사용한다. 또한, 제1 서브 그래프(202)는 DATE 파라미터에 대한 “정적 분석” 값을 포함한다. 아래에서 보다 상세히 설명되는 바와 같이, 상기 DATE 파라미터에 대한 정적 분석 값은 데이터플로 그래프(217)의 정적 분석 동안(즉, 데이터플로 그래프(217)의 데이터 계보가 결정될 때) 파라미터 값으로 사용되는 자리 표시자 값이다. The first subgraph 202 receives two parameters P1 = FEED and P2 = DATE as arguments and feeds FEED and FEED of the parameterized paths to the values of the received FEED and DATE parameters, as described in more detail below. To interpret the path to each physical location of the first logical data set 206, the second logical data set 208 and the third logical data set 210 by replacing the DATE placeholder, Lt; / RTI > Also, the first subgraph 202 includes a " static analysis " value for the DATE parameter. As will be described in more detail below, the static analysis value for the DATE parameter is used as a parameter value during the static analysis of the dataflow graph 217 (i.e., when the data lineage of the dataflow graph 217 is determined) It is an indicator value.

유사하게, 제2 서브 그래프(104)는 단일 파라미터 P1 = DATE를 수신하고 수신된 DATE 파라미터의 값으로 제4 논리 데이터세트(212)에 대한 파라미터화된 경로의 DATE 자리표시자를 대체하여 제4 논리 데이터세트(212)의 물리적 위치로의 경로를 해석하기 위해 그것을 사용한다. 또한, 제2 서브 그래프(204)는 DATE 파라미터에 대한 “정적 분석” 값을 포함한다. 아래에서 보다 상세히 설명되는 바와 같이, 상기 DATE 파라미터에 대한 정적 분석 값은 데이터플로 그래프(217)의 정적 분석 동안(즉, 데이터플로 그래프(217)의 데이터 계보가 결정될 때) 파라미터 값으로 사용되는 자리 표시자 값이다. Similarly, the second subgraph 104 receives the single parameter P1 = DATE and replaces the DATE placeholder of the parameterized path for the fourth set of logical data 212 with the value of the received DATE parameter, And uses it to interpret the path to the physical location of the data set 212. Also, the second subgraph 204 includes a " static analysis " value for the DATE parameter. As will be described in more detail below, the static analysis value for the DATE parameter is used as a parameter value during the static analysis of the dataflow graph 217 (i.e., when the data lineage of the dataflow graph 217 is determined) It is an indicator value.

데이터플로 그래프(217)와 그 서브 그래프들의 연산(operation)은 그것이 수신하는 파라미터들에 의존하기 때문에, 상기 데이터플로 그래프와 그 서브 그래프들은 때로 “제네릭(generic)” 데이터플로 그래프 또는 “제네릭(generic)” 컴퓨터 프로그램이라고도 한다.Because the operation of the dataflow graph 217 and its subgraphs depends on the parameters it receives, the dataflow graph and its subgraphs are sometimes referred to as "generic" dataflow graphs or "generic ) "It is also called a computer program.

1.1 파라미터들1.1 Parameters

일반적으로, 전술한 파라미터들은 "디자인 타임(design time)"파라미터 또는 "런 타임(run time)" 파라미터로 지정될 수 있다. 전술한 바와 같이 경로 해석을 위해 사용되는 것 외에도, 디자인 타임 파라미터들은 관련된 데이터플로 그래프의 논리 연산에 영향을 준다. 반대로, 런 타임 파라미터들은 작업별로 그래프에 제공되며 상기 그래프의 논리 연산에 영향을 주지 않는다. 일부 예에서, 데이터플로 그래프의 논리 연산은 상기 그래프의 기능 및 상기 그래프에 의해 이용되는 논리 데이터세트 모두를 지칭한다. In general, the above-mentioned parameters may be designated with a "design time" parameter or a "run time" parameter. In addition to being used for path analysis as described above, design time parameters affect the logical operation of the associated dataflow graph. Conversely, run-time parameters are provided in the work-by-work graph and do not affect the logical operation of the graph. In some instances, the logical operations of the dataflow graph refer to both the function of the graph and the logical data set used by the graph.

도 2에서, FEED 파라미터는 gather.mp 서브 그래프의 논리 연산에 영향을 주는 디자인 타임 파라미터이다. 예를 들어, 제1 서브 그래프(202)의 정렬(sort) 컴포넌트 (216)는 오름차순으로 그것이 수신하는 데이터를 정렬할 수 있고, 반면에 FEED 파라미터의 한 값에 대해, FEED 파라미터의 또 다른 상이한 값이 상기 정렬 컴포넌트(216)로 하여금 내림차순으로 데이터를 정렬하게 할 수 있다. 일부 예에서, 디자인 타임 파라미터들을 포함하는 데이터플로 그래프는 상기 디자인 타임 파라미터들의 공급된 값에 기초하여 그 논리 연산이 변하기 때문에 "제네릭 그래프(generic graph)"라고 불린다. In Fig. 2, the FEED parameter is a design time parameter that affects the logical operation of the gather.mp subgraph. For example, the sort component 216 of the first subgraph 202 may sort the data it receives in ascending order, while for one value of the FEED parameter, another different value of the FEED parameter May cause the alignment component 216 to align the data in descending order. In some instances, a dataflow graph that includes design-time parameters is called a "generic graph" because its logic operation changes based on the supplied values of the design-time parameters.

DATE 파라미터는 서브 그래프(202)의 논리 연산에 아무런 영향을 미치지 않고 작업별로 공급되는 런타임 파라미터이다. The DATE parameter is a run-time parameter supplied on a job-by-job basis without affecting the logical operation of the subgraph 202. [

1.2 파라미터 세트들1.2 Parameter sets

일부 예에서, 데이터플로 그래프들에 대한 파라미터들의 일반적으로 사용되는 세트들은 디스크에 저장될 수 있고 용이하게 재 사용될 수 있는 "파라미터 세트들"(때로는 "psets"라고도 함)로서 저장된다. 예를 들어, 도 2에서, 제1 서브 그래프(202)는 그것과 관련된 세 개의 psets, PSET_mexico(218), PSET_canada (220), 및 PSET_usa(222)를 가진다. PSET_mexico(218)는 일반적으로 사용되는 FEED 파라미터 값 "mexico"와 오늘 날짜를 반환하는 함수인 일반적으로 사용되는 DATE 파라미터 값 "today()"를 포함한다. PSET_canada(220)는 일반적으로 사용되는 FEED 파라미터 값 "canada"와 일반적으로 사용되는 DATE 파라미터 값 "today()"를 포함한다. PSET_usa(222)는 일반적으로 사용되는 FEED 파라미터 값 "usa"와 일반적으로 사용되는 DATE 파라미터 값 "today()"를 포함한다.In some instances, commonly used sets of parameters for dataflow graphs are stored as "parameter sets" (sometimes called "psets") that can be stored on disk and easily reused. For example, in FIG. 2, the first subgraph 202 has three psets, PSET_mexico 218, PSET_canada 220, and PSET_usa 222 associated with it. PSET_mexico 218 includes a commonly used DATE parameter value "today () ", which is a function that returns a commonly used FEED parameter value" mexico " PSET_canada 220 includes a commonly used FEED parameter value "canada" and a commonly used DATE parameter value "today ()". PSET_usa 222 includes a commonly used FEED parameter value "usa" and a commonly used DATE parameter value "today ()".

유사하게, 제2 서브 그래프(204)는 그것과 관련된 단일 pset, PSET(223)을 가진다. PSET(223)은 오늘 날짜를 반환하는 함수인 일반적으로 사용되는 DATE 파라미터 값 "today()"를 가진다. Similarly, the second subgraph 204 has a single pset, PSET 223, associated with it. PSET 223 has a commonly used DATE parameter value "today () ", which is a function that returns the current date.

2 파라미터 해석 모듈2 parameter analysis module

일부 예에서, 실행 모듈(112)에 의해 실행되는 데이터플로 그래프(117)에 앞서, 도 1의 파라미터 해석 모듈(106)은 상기 데이터플로 그래프(117)(및 그 관련된 서브 그래프들(202, 204))와 관련된 하나 이상의 psets을 식별하고 상기 하나 이상의 psets에서 고유한 디자인 타임 파라미터들의 개수를 결정한다. 주어진 데이터플로 그래프에 대한 각각의 고유한 디자인 타임 파라미터에 대해, 상기 파라미터 해석 모듈(106)은 상기 데이터플로 그래프의 별개의 실행가능한 인스턴스를 인스턴스화한다. 예를 들어, 도 3을 참조하면, 도 2의 데이터플로 그래프(217), gather.mp 에 대해, 제1 서브 그래프(202)의 세 개의 인스턴스들이 인스턴스화되고 (PSET_mexico->gather.mp(202a), PSET_canada-> gather.mp(202b), PSET_usa->gather.mp(202c)), 각각의 인스턴스는 도 2의 psets의 세 개의 고유 feed 파라미터들, mexico, canada, 및 usa 중 상이한 하나에 따라 구성된다. 제2 서브 그래프(204)는 어떠한 디자인 타임 파라미터들도 포함하지 않는 단일 pset(223)에만 관련되기 때문에, 제2 서브 그래프(204)의 단일 인스턴스 (process.mp(204a))만이 실행시에 인스턴스화된다. In some instances, prior to the dataflow graph 117 being executed by the execution module 112, the parameter interpretation module 106 of FIG. 1 may be configured to generate the dataflow graph 117 (and its associated subgraphs 202, 204 )) And determines the number of unique design-time parameters in the one or more psets. For each unique design time parameter for a given datagram graph, the parameter interpretation module 106 instantiates a separate executable instance of the datagram graph. 3, three instances of the first subgraph 202 are instantiated (PSET_mexico-> gather.mp 202a) for the dataflow graph 217, gather.mp of FIG. 2, , PSET_canada-> gather.mp (202b), PSET_usa-> gather.mp (202c)), each instance is configured according to a different one of the three unique feed parameters of psets, mexico, canada, do. Since only a single instance of the second subgraph 204 (process.mp 204a) is instantiated at run time, since the second subgraph 204 is related only to a single pset 223 that does not include any design time parameters, do.

서브 그래프들(202, 204)의 적절한 인스턴스들이 파라미터 해석 모듈(106)에 의해 인스턴스화되면, 상기 파라미터 해석 모듈(106)은 psets로부터의 실제 파라미터 값들로 상기 데이터세트들에 대한 파라미터화된 경로들의 파라미터 값 자리표시자들을 대체하여, 상기 데이터세트들의 물리적 위치로의 경로를 해석한다. 예를 들어, 제1 서브 그래프(202)의 PSET_mexico->gather.mp 인스턴스(202a)에 대해, 제1 데이터세트(206)에 대한 경로는 FEED 파라미터 값이 'mexico'이고 DATE 파라미터 값이 '031014'이기 때문에 /mexico/inv_031014로 해석된다. Once the appropriate instances of the subgraphs 202 and 204 are instantiated by the parameter interpretation module 106, the parameter interpretation module 106 may determine the parameters of the parameterized paths for the data sets to actual parameter values from psets Value placeholders to interpret the path to the physical location of the data sets. For example, for the PSET_mexico-> gather.mp instance 202a of the first subgraph 202, the path to the first data set 206 is the path with the FEED parameter value of 'mexico' and the DATE parameter value of '031014 It is interpreted as / mexico / inv_031014.

파라미터 해석 모듈(106)이 그 서브 그래프들(202, 204)을 포함하는 데이터플로 그래프(217)를 인스턴스화하고 데이터플로 그래프(217)의 데이터세트들로의 물리적 경로들을 해석했다면, 상기 데이터플로 그래프(217)는 실행 모듈(112)에 의한 실행에 대해 준비된다. 실행 동안, 제1 서브 그래프(202)의 세 개의 인스턴스들(202a, 202b, 202c)은 그 각각의 입력 데이터세트들로부터 데이터를 판독하고, 상기 데이터를 처리하여 /trans_031014.dat 물리 파일에 그 처리된 데이터를 저장한다. 입력 제2 서브 그래프(202)의 인스턴스(204a)에 대한 데이터세트(예를 들어, DS4(212))는 제1 서브 그래프의 출력 데이터세트와 동일한 물리 파일로 해석하기 때문에, 상기 /trans_031014.dat 물리 파일이 process.mp의 인스턴스에 의해 판독된 후 처리되어 테이블(214)에 저장된다. If the parameter interpretation module 106 instantiates the dataflow graph 217 including its subgraphs 202 and 204 and interprets the physical paths to the datasets of the dataflow graph 217, (217) is prepared for execution by the execution module (112). During execution, the three instances 202a, 202b, and 202c of the first subgraph 202 read data from their respective input data sets, process the data, and write /trans_031014.dat to the physical file And stores the data. Because the data set (e.g., DS4 212) for the instance 204a of the input second subgraph 202 is interpreted as the same physical file as the output data set of the first subgraph, the /trans_031014.dat The physical file is read by an instance of process.mp, processed and stored in table 214. [

3.3. 데이터 계보 모듈Data lineage module

도 4를 참조하면, 일부 예에서는, 데이터플로 그래프(217)를 실행하기보다는, 도 1의 데이터 설계자 또는 비즈니스 사용자(121)는 데이터가 데이터플로 그래프(217)를 통과할 때 데이터의 계보를 검사할 필요가 있을 수 있다. 그러기 위해, 도 1의 데이터 계보 모듈(115)이 데이터 설계자 또는 비즈니스 사용자(121)에게 제공하기 위한 데이터 계보 보고서를 생성하기 위해 데이터플로 그래프(217)를 분석하도록 구성된다. 4, in some instances, rather than executing the dataflow graph 217, the data designer or business user 121 of FIG. 1 may check the lineage of the data as it passes through the dataflow graph 217 It may be necessary to do so. To that end, the data lineage module 115 of FIG. 1 is configured to analyze the dataflow graph 217 to generate a data lineage report for providing to the data designer or business user 121. [

일부 예에서는, 데이터플로 그래프(217)에 대한 데이터 계보를 결정하는 제 1 단계로, 데이터 계보 모듈(115)이 데이터플로 그래프(217)의 개별 서브 그래프들(202, 204)을 식별한다. 상기 식별된 서브 그래프들(202, 204) 각각에 대해, 상기 데이터 계보 모듈(115)은 상기 서브 그래프(202, 204)와 관련된 하나 이상의 psets(218, 220, 222, 223)을 식별한 다음 상기 서브 그래프(202, 204)에 대한 하나 이상의 psets(218, 220, 222, 223)에서 고유한 디자인 타임 파라미터들의 개수를 결정한다. 각각의 고유한 디자인 타임 파라미터에 대해, 파라미터 해석 모듈은 서브 그래프(202, 204)의 별개의 인스턴스를 인스턴스화한다. In some instances, the data lineage module 115 identifies the individual subgraphs 202, 204 of the dataflow graph 217 as a first step in determining the data lineage for the dataflow graph 217. For each of the identified subgraphs 202, 204, the data lineage module 115 identifies one or more psets 218, 220, 222, 223 associated with the subgraph 202, 204, Determines the number of design time parameters unique to one or more psets (218, 220, 222, 223) for the subgraphs (202, 204). For each unique design-time parameter, the parameter interpretation module instantiates a separate instance of the subgraph 202, 204.

일부 예에서는, 상기 데이터 계보 모듈(115)이 실제 물리 파일들과 그것들이 저장하는 데이터가 데이터 계보 분석과 무관하다는 가정하에 동작한다. 이러한 이유로, 테이터세트들의 물리적 위치를 해석하기 위해 사용되는 임의의 런타임 파라미터 값들이 불필요하고 자리 표시자 값들로 대체될 수 있다. 상술한 바와 같이, 서브 그래프와 관련된 각각의 런 타임 파라미터에 대해, 대응하는 자리 표시자, 정정 분석 파라미터 값이 상기 서브 그래프에 포함된다. 예를 들어, 도 2에서, 데이터플로 그래프들(202, 204) 모두 DATE 런 타임 파라미터를 포함하기 때문에, 그것들은 또한 모두 자리표시자,'MMDDYY'의 정적 분석 파라미터 값을 포함한다. In some instances, the data lineage module 115 operates under the assumption that the actual physical files and the data they store are independent of the data lineage analysis. For this reason, any runtime parameter values used to interpret the physical location of the data sets are unnecessary and can be replaced with placeholder values. As described above, for each run-time parameter associated with the subgraph, the corresponding placeholder, correction analysis parameter value is included in the subgraph. For example, in FIG. 2, since both the dataflow graphs 202 and 204 include a DATE runtime parameter, they also all include the static analysis parameter value of the placeholder, 'MMDDYY'.

상기 데이터 계보 모듈(115)이 데이터 계보를 결정하기 위해 데이터플로 그래프(217)를 분석할 때, 데이터플로 그래프의 DATE 파라미터의 모든 인스턴스들이 'MMDDYY', 자리 표시자 값으로 대체되어, 도 4에 도시된 바와 같이 임시 데이터세트 객체들(452)을 생성한다. 다양한 서브 그래프 인스턴스들과 임시 데이터세트 객체들 사이의 상호 연결들이 그런 다음 식별되어, 데이터 계보로서 데이터 설계자 또는 비즈니스 사용자에게 제공된다. 예를 들어, 제1 서브 그래프(202)의 인스턴스들(202a, 202b, 202c)의 분석은 제1 서브 그래프(202)의 인스턴스들 모두가 /trans_MMDDYY.dat 데이터세트 객체에 의해 나타내어지는 데이터 세트에 데이터를 기록하는 것을 보여준다. 상기 분석은 그런 다음 제2 데이터플로 그래프(204)의 인스턴스(204a)가 /trans_MMDDYY.dat 데이터세트 객체에 의해 나타내어지는 데이터세트로부터 판독하는 것을 보여준다. 이 정보에 기초하여, 데이터플로 그래프(217)에 대한 데이터 계보는 제1 서브 그래프(202)의 인스턴스들(202a, 202b, 202c)의 출력이 제2 서브 그래프(204)의 인스턴스(204a)의 입력으로 공급되는 것을 보여준다. When the data lineage module 115 analyzes the dataflow graph 217 to determine the data lineage, all instances of the DATE parameter of the dataflow graph are replaced by the placeholder value 'MMDDYY' And creates temporary data set objects 452 as shown. Interconnections between the various subgraph instances and the temporary dataset objects are then identified and provided to the data designer or business user as a data lineage. For example, an analysis of the instances 202a, 202b, 202c of the first subgraph 202 may be performed by determining whether all instances of the first subgraph 202 are in the data set represented by the / trans_MMDDYY.dat data set object And recording the data. The analysis then shows that the instance 204a of the second dataflow graph 204 reads from the dataset represented by the dataset object / trans_MMDDYY.dat . Based on this information, the data lineage for the dataflow graph 217 is such that the output of the instances 202a, 202b, 202c of the first subgraph 202 is the output of the instances 204a of the second subgraph 204 Lt; / RTI >

4.4. 논리 pset 발견 및 생성 방법How to discover and create a logical pset

일부 예에서는, 주어진 데이터플로 그래프가 이전에 저장된 pset으로부터 보다는 실행 명령에 공급되는 인수로서 피라미터 값들을 수신하는 실행 명령을 사용하여 실행된다. 전술한 방법은 저장된 psets만을 사용하여 데이터 계보를 결정하기 때문에, 데이터플로 그래프의 실행을 위한 실행 명령에 공급되는 인수들로부터 비롯된 파라미터 값들과 관련된 psets은 데이터 계보에 표시되지 않는다. 이는 기업 설계자 또는 감사관에게 불완전하거나 부정확한 데이터 계보가 제공되는 결과를 초래할 수 있다. In some instances, a given dataflow graph is executed using an execute command that receives the pyrameter values as arguments supplied to the execute command rather than from the previously stored pset. Since the above-described method uses only stored psets to determine the data lineage, the psets associated with the parameter values resulting from the arguments supplied to the execution command for execution of the dataflow graph are not displayed in the data lineage. This may result in an incomplete or inaccurate data lineage to the corporate designer or auditor.

도 5는 데이터플로 그래프의 인스턴스들의 실행과 관련된 로그에서 식별된 파라미터 세트들에 기초하여 생성된 논리 psets로 데이터플로 그래프에 대한 기존 논리 파라미터 세트들(psets)의 저장소를 보강하기 위한 방법을 설명하는 순서도다. 일부 예에서는, 도 5에서 설명된 방법이 도 1의 데이터 계보 모듈(115)에 의해 구현된다.5 illustrates a method for augmenting a repository of existing logical parameter sets (psets) for a dataflow graph with the logical psets generated based on the identified parameter sets in the log associated with the execution of instances of the dataflow graph Order also. In some instances, the method described in FIG. 5 is implemented by the data lineage module 115 of FIG.

4.1 그래프 파라미터들4.1 Graph Parameters

처음에 데이터플로 그래프(예를 들어, 도 1의 제1 서브 그래프(202))의 일 예는 두 개의 파라미터들(P1과 P2)을 포함하고, 그것들 각각은 "디자인 타임" 파라미터 또는 "런 타임" 파라미터로 지정될 수 있다. 상술한 바와 같이, 디자인 타임 파라미터는 그래프의 논리 연산에 영향을 미치는 파라미터이고(예를 들어, 그래프에 의해 수행된 변환을 변경할 수 있음), 반면에 런 타임 파라미터가 작업별(예를 들어, 날짜)로 변경되고 그래프의 논리 연산에는 영향을 미치지 않는 파라미터이다.One example of a data flow graph initially (e.g., the first subgraph 202 of FIG. 1) includes two parameters P1 and P2, each of which may be a "design time & "Parameter. As described above, the design-time parameter is a parameter that affects the logical operation of the graph (for example, it may change the transformation performed by the graph), while the run-time parameter is a task-specific ) And does not affect the logical operation of the graph.

4.2 파라미터 분류4.2 Parameter classification

상기 그래프(202)가 파라미터 분류 결과(426)를 생성하기 위해 상기 그래프(202)의 파라미터들을 분석하는 파라미터 분류 단계(424)에 제공된다. 파라미터 분류 결과(426)에서, 각각의 파라미터가 디자인 타임 파라미터 또는 런 타임 파라미터로 분류된다. 순서도에서 설명되는 예시적 경우에서, P1은 디자인 타임 파라미터로 분류되고 P2는 런 타임 파라미터로 분류된다. The graph 202 is provided to a parameter classification step 424 for analyzing the parameters of the graph 202 to produce a parameter classification result 426. [ In the parameter classification result 426, each parameter is classified as a design time parameter or a run time parameter. In the exemplary case described in the flowchart, P 1 is classified as a design time parameter and P 2 is classified as a run time parameter.

일부 예에서는, 디자인플로 그래프에 대한 파라미터들이 디자인 타임 또는 런 타임 파라미터로 (예를 들어, 사용자에 의해) 미리 분류된다. (예를 들어, 레거시 데이터플로 그래프들(legacy dataflow graphs)에 대한) 다른 예에서는, 데이터플로 그래프에 대한 파라미터들이 디자인 타임 또는 런 타임 파라미터로 미리 분류되지 않는다. 이러한 경우에, 상기 파라미터 분류 단계(424)는 모든 파라미터들이 디자인 타임 파라미터들이라고 가정할 수 있다. 이후 재 분류 단계에서, 주어진 파라미터가 로그 엔트리들의 컬렉션(예를 들어, 아래에서 설명되는 작업 로그 데이터 스토어)에서 다수의 고유한 값들의 (예를 들어, 소정의 임계치를 초과하는)을 가지는 것으로 결정된다면, 주어진 파라미터가 런 타임 파라미터로 재분류될 수 있다. 또는, 재분류는 데이터 계보 민감도 분석(data lineage sensitivity analysis)에 기초할 수 있다. 특히, 파라미터가 데이터플로 그래프 내부의 데이터 계보(즉, 상기 데이터플로 그래프 내 데이터세트들 또는 컴포넌트들의 영향 또는 종속성)를 변경하지 않고 다양한 상이한 값들을 취할 수 있다면, 상기 파라미터는 런 타임 파라미터로 분류될 수 있다. 예를 들어, 그래프에서 데이터세트(예를 들어, 도 3의 DS1, DS2, DS3)의 관련된 레코드 형식들 또는 다른 특성들이 파라미터의 다양한 값들에 의해 영향받지 않는다면, 그 파라미터는 런 타임 파라미터로 재분류된다. 모든 내부 영향들과 종속성들을 해석하는 것을 포함하는 더 포괄적인 데이터 계보 민감도 분석, 및 데이터세트 레코드 형식들과 관련된 영향들과 종속성들만 해석하는 것을 포함하는 더 제한된 데이터 계보 민감도 분석같은 이러한 데이터 계보 민감도 분석의 변형들이 사용될 수 있다. In some instances, the parameters for the design flow graph are pre-classified as design-time or run-time parameters (e.g., by the user). In another example (for legacy dataflow graphs), the parameters for the dataflow graph are not pre-classified as design-time or run-time parameters. In this case, the parameter classifying step 424 may assume that all parameters are design-time parameters. In a subsequent reclassification step, it is determined that a given parameter has a number of unique values (e.g., exceeding a predetermined threshold) in a collection of log entries (e.g., the job log data store described below) The given parameters can be reclassified as run-time parameters. Alternatively, reclassification may be based on data lineage sensitivity analysis. In particular, if the parameters can take on a variety of different values without changing the data lineage within the datagram graph (i. E. The influence or dependence of the data sets or components in the datagram graph), then the parameters are classified as runtime parameters . For example, if the associated record formats or other characteristics of a data set (e.g., DS1, DS2, DS3 in FIG. 3) in the graph are not affected by the various values of the parameter, do. This data lineage sensitivity analysis, such as more comprehensive data lineage sensitivity analysis, including interpreting all internal influences and dependencies, and more limited data lineage sensitivity analysis, including interpreting only the effects and dependencies associated with data set record formats May be used.

(예를 들어, 레거시 데이터플로 그래프들에 대한) 일부 예에서는, 파라미터가 디자인 타임과 런 타임 부분들을 모두 포함할 수 있다. 예를 들어, 파일명 파라미터 “/mexico/inv_031014.dat"는 디자인 타임 부분(즉, "mexico")과 런 타임 부분(즉, "031014")을 포함한다는 점에서 하이브리드 파라미터(hybrid parameter)일 수 있다. 이러한 예에서, 사용자는 하이브리드 파라미터로부터 각각의 디자인 타임과 런 타임 파라미터들을 추출하고 분류하기 위해 상기 파라미터 분류 단계(424)에 의해 사용되는 문자열 파싱 규칙(string parsing rules)의 정규 표현 또는 일부 다른 유형을 제공할 수 있다. In some examples (e.g., for legacy dataflow graphs), the parameters may include both design time and runtime portions. For example, the filename parameter " /mexico/inv_031014.dat "may be a hybrid parameter in that it includes a design-time portion (i.e.," mexico ") and a run- . In this example, the user may use a regular expression of the string parsing rules used by the parameter classification step 424 to extract and classify each design time and runtime parameters from the hybrid parameter, Can be provided.

4.3 작업 로그 데이터 스토어4.3 Activity log data store

상기 방법은 각각은 데이터플로 그래프(202)의 인스턴스들의 실행과 관련된 정보를 포함하는, 다수의 작업 로그 엔트리들(429)를 포함하는 작업 로그 데이터 스토어(428)를 활용한다. 다른 정보 중에, 상기 작업 엔트리들 중 적어도 일부는 데이터플로 그래프(202)를 인스턴스화하기 위해 사용되었던 실행 명령의 기록을 포함한다. 주어진 작업 로그 엔트리에 대한 상기 실행 명령은 실행 명령에 대해 인수들로서 공급되었던 파라미터 값들과 그래프 명칭을 포함한다. 일반적으로, 상기 작업 로그 데이터 스토어(428)의 작업 로그 엔트리들 중 적어도 일부는 임의의 파라미터 세트들을 액세스하지 않고 데이터플로 그래프를 인스턴스화하나 대신에 실행 명령에 공급된 인수들로 파라미터 값들을 수신한다. The method utilizes an activity log data store 428, which includes a plurality of activity log entries 429, each containing information related to the execution of instances of the data flow graph 202. Among other information, at least some of the work entries include a record of the run command that was used to instantiate the dataflow graph 202. [ The execution command for a given job log entry includes parameter values and graph names that were supplied as arguments to the execution command. Generally, at least some of the job log entries of the job log data store 428 instantiate the dataflow graph without accessing any parameter sets, but instead receive parameter values with arguments supplied to the run command.

4.4 처리 루프4.4 Processing Loop

상기 작업 로그 데이터 스토어(428)와 상기 파라미터 분류 결과(426)는 상기 작업 로그 데이터 스토어(428)의 각각의 작업 로그 엔트리(429)에 대해 그래프 실행 명령에 대한 새로운 논리 pset을 생성하고, 상기 새로운 논리 pset이 기존 논리 psets의 저장소(448)에 이미 존재하는지를 결정하여, 그것이 이미 존재하지 않는다면 상기 저장소(448)에 상기 새로운 논리 pset을 추가하는 처리 루프(430)에 제공된다. The operation log data store 428 and the parameter classification result 426 generate a new logical pset for the graph execution command for each activity log entry 429 of the activity log data store 428, It is provided to the processing loop 430 to determine if the logical pset already exists in the store 448 of the existing logical psets and to add the new logical pset to the store 448 if it does not already exist.

4.4.1 초기 명령 라인 논리 pset 구성4.4.1 Initial Command Line Logical pset Configuration

상기 처리 루프(430) 내에서, 상기 파라미터 분류 결과(426)와 상기 작업 로그 데이터 스토어(428)로부터의 작업 로그 엔트리 Jn (432)이 논리 pset(436)을 생성하기 위해 상기 파라미터 분류 결과(426)에 따라 상기 작업 로그 엔트리(432)를 분석하는 논리 pset 구성 단계(434)에 제공된다. 그러기 위해, 상기 논리 pset 구성 단계(434)는 상기 그래프 실행 명령에 대해 인수들로서 포함되는 상기 파라미터 값들을 추출하기 위해 상기 작업 로그 엔트리(432)에 포함된 상기 그래프 실행 명령을 분석한다. 상기 논리 pset 구성 단계(434)는 또한 상기 작업 로그 엔트리(432)에 포함된 프로젝트 스코프(project scope)를 추출한다. 일부 예에서는, 상기 프로젝트 스코프가 데이터플로 그래프가 실행중인 프로젝트의 표시, 상기 데이터플로 그래프에 대한 내부 파라미터들의 표시, 및 상기 데이터플로 그래프에 의해 사용되는 환경 설정들, 전역 변수들과 구성 변수들의 표시를 포함한다. Within the processing loop 430, the parameter classification result 426 and the job log entry Jn 432 from the job log data store 428 are stored in the parameter classification result 426 to generate a logical pset 436 (Step 434) of analyzing the operation log entry 432 in accordance with the operation log entry 432 of FIG. To do so, the logical pset configuration step 434 analyzes the graph execution command contained in the job log entry 432 to extract the parameter values included as arguments to the graph execution command. The logical pset configuration step 434 also extracts a project scope contained in the job log entry 432. [ In some examples, the project scope is configured to display the project in which the dataflow graph is running, an indication of internal parameters for the dataflow graph, and preferences used by the dataflow graph, a representation of global variables and configuration variables .

상기 논리 pset 구성 단계(434)는 자동적으로 상기 논리 pset(436)에 상기 추출된 프로젝트 스코프를 포함한다. 상기 논리 pset 구성 단계(434)는 그런 다음 각각의 추출된 파라미터 값을 상기 파라미터 분류 결과(426)의 대응하는 파라미터와 매칭시킨다(match). 상기 논리 pset 구성 단계(434)가 추출된 파라미터 값이 상기 파라미터 분류 결과(426)의 디자인 타임 파라미터에 대응한다고 결정하면, 상기 논리 pset 구성 단계(434)는 상기 논리 pset(436)에 추출된 디자인 파라미터의 값을 포함한다. 상기 논리 pset 구성 단계(434)가 추출된 파라미터 값이 상기 파라미터 분류 결과(426)의 런 타임 파라미터에 대응한다고 결정하면, 상기 추출된 파라미터 값은 상기 논리 pset(436)에 포함되지 않는다. The logical pset configuration step 434 automatically includes the extracted project scope in the logical pset 436. The logical pset configuration step 434 then matches each extracted parameter value with the corresponding parameter in the parameter classification result 426. [ If the logical pset configuration step 434 determines that the extracted parameter value corresponds to the design time parameter of the parameter classification result 426, then the logical pset configuration step 434 determines whether the design extracted in the logical pset 436 Contains the value of the parameter. If the logical pset configuration step 434 determines that the extracted parameter value corresponds to a run time parameter of the parameter classification result 426, then the extracted parameter value is not included in the logical pset 436.

4.4.2 pset 서명 문자열 계산4.4.2 Calculating the pset signature string

상기 논리 pset(436)이 상기 논리 pset(436)의 파라미터 값들 및 상기 프로젝트 스코프에 기초하여 논리 pset 서명 문자열(444)을 계산하는 pset 서명 문자열 계산 단계(442)에 제공된다. 일부 예에서는, 상기 pset 서명 문자열(444)은 상기 논리 pset(436)에 대한 프로젝트 스코프, 상기 논리 pset(436)의 파라미터들의 이름/값 쌍들, 및 상기 논리 pset(436)과 관련된 데이터플로 그래프의 프로토타입(prototype)을 직렬화하여(by serializing) 계산된다. 다른 예에서는, 상기 pset 서명 문자열(444)은 해시 함수(hash function) 또는 다른 데이터 매핑 알고리즘을 상기 논리 pset(436)에 적용하여 계산된다. The logical pset 436 is provided to the pset signature string computation step 442 which computes the logical pset signature string 444 based on the parameter values of the logical pset 436 and the project scope. In some examples, the pset signature string 444 includes a project scope for the logical pset 436, name / value pairs of parameters of the logical pset 436, Prototypes are serialized by serialization. In another example, the pset signature string 444 is computed by applying a hash function or other data mapping algorithm to the logical pset 436.

4.4.3 pset 서명 문자열 검색4.4.3 Searching for pset signature strings

상기 pset 서명 문자열(444)은 기존 논리 psets의 저장소(448)의 모든 기존 논리 psets의 pset 서명 문자열들과 함께 pset 서명 검색 단계(446)에 제공된다. 상기 기존 논리 psets 각각에 대해, 기존 논리 pset의 pset 서명 문자열이 상기 pset 서명 문자열(444)에 비교된다. 상기 pset 서명 문자열(444)이 기존 논리 psets의 pset 서명 문자열 중 적어도 하나에 매칭한다면(match), 상기 그래프(432)의 실행 명령 인스턴스화에 대한 논리 pset이 이미 기존 논리 psets의 저장소(448)에 존재하기 때문에 아무것도 수행될 필요가 없다. The pset signature string 444 is provided to the pset signature search step 446 along with the pset signature strings of all existing logical psets in the store 448 of the existing logical psets. For each of the existing logical psets, the pset signature string of the existing logical pset is compared to the pset signature string 444. If the pset signature string 444 matches at least one of the pset signature strings of existing logical psets then the logical pset for the execution command instantiation of the graph 432 already exists in the store 448 of the existing logical psets So nothing needs to be done.

일부 예에서는, 모든 기존 논리 psets의 저장소(448)의 모든 기존 논리 psets의 pset 서명 문자열이 상기 저장소(448)에 상기 기존 논리 psets과 함께 저장된다. 다른 예에서는, 상기 기존 논리 psets에 대한 서명 문자열이 즉석에서 그리고 필요에 따라 계산된다. In some examples, the pset signature string of all existing logical psets in the store 448 of all existing logical psets is stored in the store 448 along with the existing logical psets. In another example, the signature string for the existing logical psets is calculated on the fly and as needed.

4.4.4. 새로운 논리 pset의 추가4.4.4. Adding a new logical pset

그렇지 않으면, 상기 기존 논리 psets의 서명 문자열 중 어떤 것도 상기 pset 서명 문자열(444)에 매칭하지 않으면, 상기 논리 pset(436)과 그 서명 문자열(444)은 새로운 논리 pset 추가 단계(450)에 의해 기존 논리 psets의 저장소(448)에 새로운 논리 pset으로서 추가된다. Otherwise, if none of the signature strings of the existing logical psets match the pset signature string 444, then the logical pset 436 and its signature string 444 are updated by a new logical pset addition step 450 Is added as a new logical pset to the store 448 of the logical psets.

4.4 예4.4 Yes

도 6 및 도 7을 참조하면, 도 2의 제1 서브 그래프(202)에 적용된 바와 같은 도 4의 논리 pset 발견 및 생성 방법의 예시 동작이 제시된다. 도 2의 제1 서브 그래프(202)는 두 개의 파라미터, P1 = FEED 와 P2 = DATE를 포함한다. 상기 제1 서브 그래프(202)는 파라미터들이 "디자인 타임" 또는 "런 타임" 파라미터들로 분류되는 파라미터 분류 단계(424)에 제공되어, 파라미터 분류 결과(426)를 생성한다. 상기 파라미터 분류 결과(426)는 P1 (FEED) 파라미터가 디자인 타임 파라미터이고 P2 (DATE) 파라미터가 런 타임 파라미터라는 것을 표시한다.Referring to Figs. 6 and 7, an exemplary operation of the logical pset discovery and generation method of Fig. 4 as applied to the first sub-graph 202 of Fig. 2 is presented. The first subgraph 202 of FIG. 2 includes two parameters, P1 = FEED and P2 = DATE. The first subgraph 202 is provided to a parameter classification step 424 where parameters are classified as "design time" or "run time" parameters to produce a parameter classification result 426. The parameter classification result 426 indicates that the P1 (FEED) parameter is a design-time parameter and the P2 (DATE) parameter is a run-time parameter.

상기 파라미터 분류 결과(426)와 작업 로그 데이터 스토어(428)는 논리 pset 구성 단계(434)에 제공된다. 도 6의 예에서, 상기 작업 로그 데이터 스토어(428)은 상기 제1 서브 그래프(202)(즉, gather.mp)의 인스턴스들의 실행과 관련된 정보를 포함하는 네 개의 작업 로그 엔트리들을 포함한다. 각각의 작업 로그 엔트리는 DATE와 FEED 파라미터들에 대한 값들을 인수로서 수신했던 실행 명령을 포함한다. The parameter classification result 426 and the operation log data store 428 are provided to a logical pset configuration step 434. [ In the example of FIG. 6, the job log data store 428 includes four job log entries that contain information related to the execution of instances of the first subgraph 202 (i.e., gather.mp). Each job log entry includes an execution command that received values for DATE and FEED parameters as arguments.

상기 논리 pset 구성 단계(434)는 상기 작업 로그 데이터 스토어(428)의 작업 로그 엔트리들 각각에 대해 상이한 논리 pset(436)을 생성한다. P1 (FEED) 파라미터가 디자인 타임 파라미터이기 때문에, 상기 실행 명령에 인수로서 공급되었던 그 값(예를 들어, mexico, usa, canada, 또는 hong kong)이 상기 논리 psets(436) 각각에 대해 포함된다. 상기 P2 (DATE) 파라미터가 런 타임 파라미터이기 때문에, 상기 실행 명령에 인수로서 공급되었던 그 값은 상기 논리 psets(436)에 포함되지 않는다. 상기 논리 psets(436) 각각은 상기 제1 서브 그래프(202)의 대응하는 인스턴스에 대한 프로젝트 스코프를 포함한다. The logical pset configuration step 434 generates a different logical pset 436 for each of the job log entries of the job log data store 428. [ Because the P1 (FEED) parameter is a design time parameter, its value (e.g., mexico, usa, canada, or hong kong) that was supplied as an argument to the execution command is included for each of the logical psets 436. Because the P2 (DATE) parameter is a run-time parameter, its value that was supplied as an argument to the execute command is not included in the logical psets 436. Each of the logical psets 436 includes a project scope for a corresponding instance of the first subgraph 202.

도 7을 참조하면, 상기 논리 psets(436)은 상기 논리 psets(436) 각각에 대한 상이한 논리 pset 서명 문자열(444)을 계산하는 pset 서명 문자열 계산 단계(442)에 제공된다. 7, the logical psets 436 are provided to the pset signature string computation step 442, which computes different logical pset signature strings 444 for each of the logical psets 436.

상기 논리 pset 서명 문자열들(444) 및 기존 psets의 저장소(448)의 기존 psets(447)에 대한 논리 pset 서명 문자열의 세트가 검색 단계(446)에 제공된다. 도 2의 경우와 같이, 제1 서브 그래프(202)와 관련된 세 개의 기존 psets, mexico FEED 파라미터에 대해 하나, usa FEED 파라미터에 대해 하나, 및 canada FEED 파라미터에 대해 하나가 있다. 따라서, 기존 psets(447)에 대한 논리 pset 서명 문자열들(444)의 세트는 상기 제1 서브 그래프(202)와 관련된 기존 psets 각각에 대한 문자열을 포함한다. The set of logical pset signature strings 444 and the set of logical pset signature strings for existing psets 447 of the existing psets repository 448 are provided to the retrieval step 446. [ As in the case of FIG. 2, there are three conventional psets associated with the first subgraph 202, one for the mexico FEED parameter, one for the usa FEED parameter, and one for the canada FEED parameter. Thus, the set of logical pset signature strings 444 for the existing psets 447 includes a string for each of the existing psets associated with the first subgraph 202.

상기 검색 단계(446)는 상기 기존 psets(447)에 대한 논리 pset 서명 문자열의 세트에서 상기 논리 pset 서명 문자열(444) 각각의 존재를 검색한다. 이 예에서, 상기 검색 단계(446)에 의해 생성되는 결과는 상기 기존 psets(447)에 대한 논리 pset 서명 문자열들의 세트에 포함되지 않는 유일한 논리 pset 서명 문자열이 'hongkong'의 FEED 파라미터 값을 가지는 논리 pset과 관련된 논리 pset 서명 문자열이라는 것이다. The retrieval step 446 retrieves the presence of each of the logical pset signature strings 444 in the set of logical pset signature strings for the existing psets 447. [ In this example, the result generated by the retrieval step 446 is a logic having a unique logical pset signature string not included in the set of logical pset signature strings for the existing psets 447 having the FEED parameter value of 'hongkong' It is a logical pset signature string associated with pset.

'hongkong' feed 파라미터를 포함하는 논리 pset(436)과 상기 검색 단계(446)의 결과가 'hongkong'의 FEED 파라미터를 포함하는 논리 pset, 및 그 대응하는 논리 pset 서명 문자열(444)을 기존 논리 psets의 저장소(448)에 추가하는 논리 pset 추가 단계(450)에 제공된다.  the logical pset 436 including the 'hongkong' feed parameter and the logical pset whose result of the search step 446 includes the FEED parameter of 'hongkong', and its corresponding logical pset signature string 444, To the store 448 of the logical pset (step 450).

상기 저장소에 새로운 논리 pset을 추가하여, 이전 데이터 계보 결과들에서 간과되었을 수 있는 제1 서브 그래프(202)의 'hongkong'인스턴스가 상기 데이터 계보 결과들에서 나타내어질 것이다. By adding a new logical pset to the repository, a 'hongkong' instance of the first subgraph 202, which may have been overlooked in previous data lineage results, will be indicated in the data lineage results.

런 타임 파라미터들에 대한 정적 분석 값들이 상기 예들에서 데이터플로 그래프 자체에 저장되는 것으로 설명되는 반면, 일부 예에서는, 런 타임 파라미터들에 대한 정적 분석 값들이 상기 데이터플로 그래프와 관련된 하나 이상의 psets에서 유지될 수 있다. While static analysis values for runtime parameters are described as being stored in the dataflow graph itself in the examples above, in some instances, static analysis values for runtime parameters are maintained in one or more psets associated with the dataflow graph .

일부 예에서는, 특정 디자인 타임 파라미터 값들이 정적 분석 시간에 반드시 존재하지 않는 소스들로부터 (예를 들어, 데이터베이스로부터) 도출된다. 그러나, 일부 예에서는, 작업 로그 데이터 스토어에 저장된 작업 로그 엔트리들이 그 특정 작업에 대해 해석되었던 모든 파라미터들에 대한 값들을 포함한다. 정적 분석 시간에, 상기 저장된 값들이 정적 분석 시간에 존재하지 않는 소스들로부터 도출된 파라미터 값들 대신 사용될 수 있다. In some instances, certain design-time parameter values are derived (e.g., from a database) from sources that are not necessarily present at the static analysis time. However, in some examples, the job log entries stored in the job log data store include values for all parameters that were interpreted for that particular job. At the static analysis time, the stored values may be used in place of the parameter values derived from sources that do not exist at the static analysis time.

일부 예에서는, 상기 작업 로그 스토어의 작업 로그 엔트리들이 데이터플로 그래프에 대한 모든 해석된 파라미터들, 상기 데이터플로 그래프에 의해 판독되고 기록된 모든 파일들의 로그, 및 성능 추적 정보를 포함한다. 일부 예에서는, 상기 작업 로그 데이터 스토어의 작업 로그 엔트리들이 도 4의 방법에 의해 발견된 임의의 논리 파라미터 세트들로 보강된다. 일부 예에서는, 상기 작업 로그 데이터 스토어의 작업 로그 엔트리들을 발견된 논리 파라미터 세트들로 보강하는 것은 상기 작업 로그 엔트리들과 상기 발견된 논리 파라미터 세트들 사이의 연관성을 형성하는 것을 포함한다. 상기 작업 로그 데이터 스토어의 보강된 작업 로그 엔트리들은 데이터 설계자 또는 비즈니스 사용자에게 다양한 형태의 정보를 제공하도록 활용될 수 있다. 일부 예에서는, 상기 보강된 작업 로그 엔트리들이 논리적으로 연결된 데이터플로 그래프들이 물리적으로도 연결되는 것을 확인하기 위해 분석될 수 있다. 일부 예에서는, 상기 보강된 작업 로그 엔트리들은 물리 데이터세트가 어떤 논리 데이터세트 인스턴스들에 대응하는가를 결정하기 위해 분석될 수 있다. 일부 예에서는, 상기 보강된 작업 로그 엔트리들은 동일한 물리 파일명을 가지나 상이한 정적 분석 파라미터들과 관련되는 데이터세트들을 식별하기 위해 분석될 수 있다. 이러한 예에서, 수동 복구를 위해 사용자에게 불일치(inconsistency)가 제시되거나 불일치가 자동적으로 복구될 수 있다. 일부 예에서는, 상기 데이터 계보 보고서가 불일치의 표시 및 그것이 자동적으로 복구될 수 있는지 여부를 포함할 수 있다. In some examples, the job log entries of the job log store include all analyzed parameters for the dataflow graph, a log of all files read and written by the dataflow graph, and performance tracking information. In some instances, the job log entries of the job log data store are augmented with any set of logical parameters found by the method of FIG. In some instances, augmenting the job log entries of the job log data store with found logical parameter sets includes forming an association between the job log entries and the found logical parameter sets. The enhanced job log entries of the job log data store can be utilized to provide various types of information to the data designer or business user. In some instances, the enhanced job log entries may be analyzed to ensure that logically linked dataflow graphs are also physically connected. In some instances, the enhanced job log entries may be analyzed to determine which physical data set corresponds to which logical data set instances. In some instances, the enhanced job log entries may be analyzed to identify data sets that have the same physical filename but are associated with different static analysis parameters. In this example, an inconsistency may be presented to the user for manual recovery or an inconsistency may be automatically recovered. In some instances, the data lineage report may include an indication of an inconsistency and whether it can be automatically recovered.

일부 예에서는, 상기 보강된 작업 로그 엔트리들이 빈도 및/또는 최신성(recency)에 의해 데이터 계보 보고서들을 필터링하는 데 상기 데이터 계보 모듈에 의해 사용될 수 있다. 예를 들어, 메타데이터 환경 모듈은 상기 실행 모듈에 의해 더 이상 실행되지 않는 다수의 데이터플로 그래프들 및 psets을 유지할 수 있다. 이러한 데이터플로 그래프들과 psets은 이후에 필요한 경우에 한해서 제자리에 남겨둘 수 있다. 그러나 실행되지 않는 데이터플로 그래프들과 psets은 데이터 계보 보고서들에 불필요한 혼란을 야기할 수 있다. 이 혼란을 감소시키기 위해, 어떤 데이터플로 그래프들 및/또는 psets이 가끔씩 사용되고/되거나 최근에 사용되지 않았는지를 결정하기위해 상기 보강된 작업 로그 엔트리들이 분석될 수 있다. 이 빈도 및 최신성 정보에 기초하여, 가끔씩 그리고 최근에 실행되지 않은 데이터플로 그래프들 및 psets(예를 들어, 지난 1년동안 실행되지 않은 데이터플로 그래프)이 기업 사용자에게 제시되기에 앞서 데이터 계보 보고서로부터 필터링될 수 있다. In some instances, the enhanced job log entries may be used by the data lineage module to filter data lineage reports by frequency and / or recency. For example, the metadata environment module may maintain multiple dataflow graphs and psets that are no longer executed by the execution module. These dataflow graphs and psets can be left in place only when needed later. However, non-executing dataflow graphs and psets can cause unnecessary confusion in data lineage reports. To reduce this confusion, the enhanced job log entries may be analyzed to determine which dataflow graphs and / or psets are occasionally used and / or have not been used recently. Based on this frequency and up-to-date information, data flow graphs and psets (for example, dataflow graphs that have not been run for the past year) that have not been executed occasionally and recently have been presented to enterprise users, Lt; / RTI >

일부 예에서는, 주어진 데이터플로 그래프에 대한 논리 pset (예를 들어, FEED = USA 를 포함하는 pset)이 존재할 수 있으나, 데이터플로 그래프를 호출하는 하나 이상의 작업들이 기존 pset을 활용하는 대신에 직접적으로 파라미터 값들을 데이터플로 그래프에 공급하여 이루어진다. 이러한 경우에, 작업들과 (예를 들어, 상기 작업들과 관련된 서명들을 통해) 상기 작업들에 의해 액세스되었던 논리 psets 사이에 유지되는 연관성이 연관된 논리 psets에 기초하여 작업 로그 엔트리들을 그룹화하는 데 사용될 수 있다. 상기 그룹화에 기초하여, 기존 pset을 활용하는 대신에 직접적으로 그래프를 호출하여 인스턴스화되는 임의의 작업들은 상기 논리 pset과 그 파라미터들에 관련된 것으로 식별될 수 있다. In some instances, there may be a logical pset for a given dataflow graph (e.g., a pset containing FEED = USA), but one or more operations that call the dataflow graph may not directly utilize the existing pset Values to the dataflow graph. In this case, the association maintained between the tasks and the logical psets accessed by the tasks (e.g., through the signatures associated with the tasks) may be used to group the task log entries based on the associated logical psets . Based on the grouping, any tasks that are instantiated by calling a graph directly instead of utilizing an existing pset can be identified as being related to the logical pset and its parameters.

일부 예에서는, 데이터플로 그래프에 대한 각각의 작업 로그 엔트리가 다른 정보 중에서 상기 작업 로그 엔트리와 관련된 데이터플로 그래프의 실행에 대한 모든 해석된 파라미터 값들의 목록을 포함한다. 다수의 작업 로그 엔트리들이 축적되면, 상기 작업 로그 엔트리들에 포함된 해석된 파라미터 값들이 상기 데이터플로 그래프의 다양한 "디자인 타임 인스턴스들"을 식별하기 위해 비교될 수 있다. 예를 들어, 상기 작업 로그 엔트리들에서 특정 해석된 파라미터들이 상기 작업 로그 엔트리들 모두에서 단지 몇 몇 값들에 의해서 나타내어질 수 있고, 반면에 특정 다른 해석된 파라미터들이 상기 작업 로그 엔트리들 모두에서 많은 상이한 값들에 의해 나타내어질 수 있다. 상기 작업 로그 엔트리들에서 단지 몇 몇 값들에 의해 나타내어지는 이러한 해석된 파라미터들은 "디자인 타임" 파라미터들일 가능성이 있으며 상기 작업 로그 엔트리들에서 많은 상이한 값들에 의해 나타내어지는 다른 해석된 파라미터들은 "런 타임 파라미터들"일 가능성이 있다. "디자인 타임 파라미터들"의 고유한 조합을 공유하는 데이터플로 그래프의 임의의 인스턴스들이 함께 그룹화되고 모두 상기 데이터플로 그래프의 "디자인 타임 인스턴스"로 간주된다. 상기 데이터 계보 모듈은 상기 데이터 계보 보고서에 상기 데이터플로 그래프의 상이한 디자인 타임 인스턴스들을 포함시킨다. In some examples, each job log entry for a dataflow graph includes a list of all interpreted parameter values for execution of a dataflow graph associated with the job log entry among other information. Once a number of job log entries have been accumulated, the interpreted parameter values contained in the job log entries may be compared to identify various "design time instances" of the datagram graph. For example, certain parsed parameters in the job log entries may be represented by only a few values in all of the job log entries, while certain other interpreted parameters may be represented in many of the job log entries Lt; / RTI > These interpreted parameters, which are represented by only a few values in the job log entries, are likely to be "design time" parameters, and other interpreted parameters, represented by many different values in the job log entries, There is a possibility. Any instances of a dataflow graph sharing a unique combination of "design time parameters" are grouped together and are all considered a "design time instance" of the dataflow graph. The data lineage module includes different design-time instances of the datagram graph in the data lineage report.

5.5. 중복 논리 데이터세트 발견 및 완화 방법How to discover and mitigate redundant logical data sets

5.1 개요5.1 Overview

일반적으로, 주어진 데이터플로 그래프에 대한 입력 및 출력 데이터세트들(예를 들어, 데이터베이스들 또는 데이터의 테이블들)은 상기 데이터플로 그래프에서 논리 데이터세트들로 명시된다. 일부 예에서는, 각각의 논리 데이터세트가 논리 파일명 같은 식별자와 관련된다. In general, input and output data sets (e.g., databases or tables of data) for a given dataflow graph are specified as logical data sets in the dataflow graph. In some examples, each logical data set is associated with an identifier, such as a logical file name.

상기 데이터플로 그래프가 실행되기 전에, 각각의 논리 데이터세트를 대응하는 물리 데이터세트(예를 들어, 디스크 상의 파일)로 해석하는 것을 포함하는 실행에 대해 준비된다. And interpreting each logical data set to a corresponding set of physical data (e.g., files on disk) before the dataflow graph is executed.

일부 예에서는, 각각의 물리 데이터세트는 물리 파일명(예를 들어, "summary.dat") 같은 식별자와 관련된다. 파라미터 해석 프로세스는 논리 데이터세트의 논리 파일명이 대응하는 물리 데이터세트의 물리 파일명과 다른 경우에도 논리 데이터세트를 그 대응하는 물리 데이터세트로 성공적으로 해석할 수 있다. In some instances, each physical data set is associated with an identifier, such as a physical file name (e.g., "summary.dat"). The parameter resolution process can successfully resolve the logical data set to its corresponding physical data set even if the logical file name of the logical data set is different from the physical file name of the corresponding physical data set.

데이터 계보 보고서가 두 개 이상의 서브 그래프들을 포함하는 데이터플로 그래프에 대해 결정될 때, 상기 서브 그래프들 사이의 계보 관계들이 상기 두 개 이상의 서브 그래프들의 입력 및 출력 논리 데이터세트들의 논리 파일명에 따라 적어도 부분적으로 결정된다. 이러한 이유로, 계보 관계의 정확성은 주어진 물리 데이터세트를 참조하는 상기 두 개 이상의 서브 그래프들의 임의의 입력 및 출력 논리 데이터세트들이 동일한 논리 파일명을 공유하는 것을 필요로 한다. 실제로, 제1 서브 그래프가 주어진 물리 데이터세트에 기록하고 제2 서브 그래프가 그 뒤에 상기 주어진 물리 데이터세트로부터 판독하나, 상기 제1 서브 그래프의 출력 논리 데이터세트와 상기 제2 서브 그래프의 입력 논리 데이터세트의 논리 파일명들이 매칭되지 않으면, 어떠한 계보 관계도 상기 두 개의 서브 그래프들 사이에서 식별되지 않을 것이다. 일부 예에서는, 동일한 물리 데이터세트로 해석하나 매칭되지 않는 논리 파일명들을 가지는 두 개의 논리 데이터세트들은 "중복 논리 데이터세트들(duplicate logical datasets)"이라 한다. When a data lineage report is determined for a dataflow graph comprising two or more subgraphs, the lineage relationships between the subgraphs are determined at least in part according to logical file names of the input and output logical data sets of the two or more subgraphs . For this reason, the accuracy of the lineage relationship requires that any input and output logical data sets of the two or more subgraphs that reference a given physical data set share the same logical file name. In practice, a first subgraph writes to a given physical data set and a second subgraph thereafter reads from the given physical data set, but the output logical data set of the first subgraph and the input logical data If the logical file names in the set are not matched, no lineage relationship will be identified between the two subgraphs. In some examples, two logical data sets having logical file names that are interpreted as the same physical data set but not matched are referred to as "duplicate logical data sets ".

아래에서 보다 상세히 설명되는 바와 같이, 데이터플로 그래프에서 중복 논리 데이터세트들이 식별될 수 있고 사용자에게 제시될 수 있다. 사용자는 이 때 여러 가지 방법들로 상기 중복 논리 데이터세트들을 처리하도록 선택할 수 있다. As will be described in greater detail below, redundant logical data sets can be identified and presented to the user in the dataflow graph. The user may then choose to process the redundant logical data sets in various ways.

5.2 중복 논리 데이터세트가 없는 예5.2 Example without redundant logical data sets

도 8을 참조하면, 도 1의 개발 환경(118)을 사용하여 생성된 데이터플로 그래프의 일 예(817)는 gather.mp로 명명된 제1 서브 그래프(802)와 precess.mp로 명명된 제2 서브 그래프(804)를 포함한다.8, an example 817 of a data flow graph generated using the development environment 118 of FIG. 1 includes a first subgraph 802 named gather.mp and a second subgraph 802 named precess.mp 2 < / RTI >

상기 제1 서브 그래프(802)는 논리 파일명 "Acct_1.dat"을 가지는 제1 논리 데이터세트 DL1(806)과 논리 파일명 "Acct_2.dat"을 가지는 제2 논리 데이터세트 DL2(808)를 입력으로 수신한다. 상기 제1 서브 그래프(802)는 상기 제1 및 제2 논리 데이터세트들(806, 808)로부터의 데이터를 처리하고 논리 파일명 "Acct_summ.dat"을 가지는 제3 논리 데이터세트 DL3(810)에 그 처리 결과를 기록한다. 상기 제2 서브 그래프(804)는 논리 파일명 "Acct_summ.dat"을 가지는 상기 제3 논리 데이터세트 DL3(810)를 입력으로 수신하고, 상기 제3 논리 데이터세트(810)로부터의 데이터를 처리하여, 테이블(814)에 그 처리 결과를 기록한다. 상기 제1 서브 그래프(802)와 상기 제2 서브 그래프(804) 모두에 의해 사용되는 상기 제3 논리 데이터세트(810)가 서브 그래프들(802, 804) 모두에서 동일한 논리 파일명을 가지는 데 유의한다. The first sub-graph 802 is input to a second logic data set D L2 (808) having a first logic data set D L1 (806) and the logical file name "Acct_2.dat" has a logical file name "Acct_1.dat" . The first subgraph 802 processes data from the first and second logical data sets 806 and 808 and writes the third logical data set D L3 810 having the logical file name " Acct_summ.dat & And records the result of the processing. The second subgraph 804 receives as input the third logical data set D L3 810 with the logical file name " Acct_summ.dat & quot ;, processes the data from the third logical data set 810 , And records the processing result in the table 814. Note that the third logical data set 810 used by both the first subgraph 802 and the second subgraph 804 has the same logical file name in both subgraphs 802 and 804 .

도 9를 참조하면, 데이터플로 그래프(817)가 실행에 앞서 해석될 때, 논리 데이터세트들이 그 대응하는 물리 데이터세트들로 해석된다. 예를 들어, 제1 논리 데이터세트(806)가 물리 파일명"Acct_1.dat"을 가지는 제1 물리 데이터세트 DP1(814)로 해석되고, 제2 논리 데이터세트(808)가 물리 파일명 "Acct_2.dat"을 가지는 제2 물리 데이터세트 DP2(816)로 해석되며, 제3 논리 데이터세트(810)가 물리 파일명 "summary.dat"을 가지는 제3 물리 데이터세트 DP3(818)로 해석된다. Referring to FIG. 9, when the dataflow graph 817 is interpreted prior to execution, the logical data sets are interpreted as their corresponding sets of physical data. For example, if the first logical data set 806 is interpreted as the first physical data set D P1 814 having the physical file name " Acct_1.dat & quot ;, and the second logical data set 808 is interpreted as the physical file name " Acct_2. dat is interpreted as a third physical data set D P3 (818) having an "interpreted as a second physical data set D P2 (816) and having a third logic data set (810) a physical file name" summary.dat ".

도 10을 참조하면, 상기 데이터플로 그래프에 대한 데이터 계보 보고서(1017)는 제1 서브 그래프(1002), 제2 서브 그래프(1004), 제1 논리 데이터세트(1006), 제2 논리 데이터세트(1008), 및 제3 논리 데이터세트(1010)를 포함한다. 상기 데이터 계보 보고서(1017)는 또한 제1 논리 데이터세트(1006)과 상기 제1 서브 그래프(1002)의 입력 사이의 제1 계보 관계(1018), 상기 제2 논리 데이터세트(1008)과 상기 제1 서브 그래프(1002)의 입력 사이의 제2 계보 관계(1020), 상기 제1 서브 그래프(1002)의 출력과 상기 제3 논리 데이터세트(1010) 사이의 제3 계보 관계(1022) 및 상기 제3 논리 데이터세트(1010)과 상기 제2 서브 그래프(1004) 사이의 제4 계보 관계(1024)를 포함한다. 동일한 논리 파일명(즉, "Acct_summ.dat")을 가지는 동일한 논리 데이터세트(즉, 상기 제3 논리 데이터세트 DL3(810))가 상기 제1 서브 그래프(802)의 출력에 그리고 상기 제2 서브 그래프(804)의 입력에 존재하기 때문에 이 경우에 데이터 계보 보고서(1017)가 정확하다는 데 유의한다. Referring to FIG. 10, a data lineage report 1017 for the data flow graph includes a first subgraph 1002, a second subgraph 1004, a first logical data set 1006, 1008, and a third logical data set 1010. The data lineage report 1017 also includes a first lineage relationship 1018 between the first logical data set 1006 and the input of the first subgraph 1002, 1 subgraph 1002 and a third genealogical relationship 1022 between the output of the first subgraph 1002 and the third logical data set 1010 and a second genealogical relationship 1020 between the inputs of the first subgraph 1002 and the third 3 logical data set 1010 and the second subgraph 1004, as shown in FIG. (I.e., the third logical data set D L3 810) having the same logical file name (i.e., " Acct_summ.dat ") is output to the output of the first subgraph 802, Note that the data lineage report 1017 is correct in this case because it exists at the input of the graph 804.

5.3 중복 논리 데이터세트가 있는 예5.3 Example with redundant logical data sets

도 11을 참조하면 도 1의 개발 환경(118)을 사용하여 생성된 데이터플로 그래프의 또 다른 예(1117)는 gather.mp로 명명된 제1 서브 그래프(1102)와 process.mp로 명명된 제2 서브 그래프(1104)를 포함한다. 11, another example 1117 of a dataflow graph generated using the development environment 118 of FIG. 1 includes a first subgraph 1102 named gather.mp and a second subgraph 1102 named process.mp 2 < / RTI >

상기 제1 서브 그래프(1102)는 논리 파일명"Acct_1.dat"을 가지는 제1 논리 데이터세트 DL1(1106)와 논리 파일명 "Acct_2.dat"을 가지는 제2 논리 데이터세트 DL2(1108)을 입력으로 수신한다. 상기 제1 서브 그래프(1102)는 상기 제1 및 제2 논리 데이터세트들(1106, 1108)로부터의 데이터를 처리하고 그 처리 결과를 논리 파일명 "Acct_summ.dat"을 가지는 제3 논리 데이터세트 DL3(1110)에 기록한다. 상기 제2 서브 그래프(1104)는 논리 파일명 "Acct-summ.dat"을 가지는 제4 논리 데이터세트 DL4(1111)를 입력으로 수신하고, 상기 제4 논리 데이터세트(1111)로부터의 데이터를 처리하여, 그 처리 결과를 테이블(814)에 기록한다. 상기 제3 논리 데이터세트(1110)(즉, "Acct_summ.dat")에 대한 논리 파일명은 상기 제4 논리 데이터세트(1111)(즉, "Acct-summ.dat")에 대한 논리 파일명과 다르다는 데 유의한다. The first subgraph 1102 inputs a first logical data set D L1 1106 having a logical file name " Acct_1.dat " and a second logical data set D L2 1108 having a logical file name " Acct_2.dat " . The first subgraph 1102 processes the data from the first and second logical data sets 1106 and 1108 and outputs the result of the processing to a third logical data set D L3 having a logical file name " Acct_summ.dat & (1110). The second subgraph 1104 receives as input a fourth logical data set D L4 1111 having a logical file name " Acct-summ.dat " and processes the data from the fourth logical data set 1111 And records the processing result in the table 814. [ The logical file name for the third logical data set 1110 (i.e., " Acct_summ.dat ") is different from the logical file name for the fourth logical data set 1111 (ie, " Acct-summ.dat ") Please note.

도 12를 참조하면, 상기 데이터플로 그래프(1117)가 실행에 앞서 해석될 때, 상기 논리 데이터세트들은 그 대응하는 물리 데이터세트들로 해석된다. 예를 들어, 상기 제1 논리 데이터세트(1106)는 물리 파일명 "Acct_1.dat"을 가지는 제1 물리 데이터세트 DP1(1114)로 해석되고, 상기 제2 논리 데이터세트(1108)는 물리 파일명 "Acct_2.dat"을 가지는 제2 물리 데이터세트 DP2(1116)로 해석되며, 상기 제3 논리 데이터세트(1110)와 상기 제4 논리 데이터세트(1111)는 모두 물리 파일명 "summary.dat"을 가지는 제3 물리 데이터세트 DP3(1218)로 해석된다. 상기 제3 논리 데이터세트(1110)와 상기 제4 논리 데이터세트(1111)는 그것들 각각이 동일한 물리 데이터세트(즉, 상기 제3 물리 데이터세트(1218))를 가리키기 때문에 중복 논리 데이터세트들이라는 것에 유의한다. Referring to FIG. 12, when the data flow graph 1117 is interpreted prior to execution, the logical data sets are interpreted as their corresponding sets of physical data. For example, the first logical data set 1106 is interpreted as a first physical data set D P1 1114 having a physical file name " Acct_1.dat & quot ;, and the second logical data set 1108 is interpreted as a physical file name & Acct_2.dat ", and the third logical data set 1110 and the fourth logical data set 1111 are both interpreted as a second physical data set D P2 1116 having a physical file name" summary.dat " Is interpreted as a third physical data set D P3 (1218). The third logical data set 1110 and the fourth logical data set 1111 are referred to as redundant logical data sets because they each indicate the same physical data set (i.e., the third physical data set 1218) .

도 13을 참조하면, 상기 데이터플로 그래프에 대한 데이터 계보 보고서(1317)는 제1 서브 그래프(1102), 제2 서브 그래프(1104), 제2 논리 데이터세트(1106), 제2 논리 데이터세트(1108), 제3 논리 데이터세트(1110) 및 제4 논리 데이터세트(1111)을 포함한다. 상기 데이터 계보 보고서(1317)는 또한 상기 제1 논리 데이터세트(1106)과 상기 제1 서브 그래프(1102)의 입력 사이의 제1 계보 관계(1318), 상기 제2 논리 데이터세트(1108)와 상기 제1 서브 그래프(1102)의 입력 사이의 제2 계보 관계(1320), 상기 제1 서브 그래프(1102)와 상기 제3 논리 데이터세트(1110) 사이의 제3 계보 관계(1322), 및 상기 제4 논리 데이터세트(1111)와 상기 제2 서브 그래프(1104) 사이의 제4 계보 관계(1324)를 포함한다. 13, a data lineage report 1317 for the data flow graph includes a first subgraph 1102, a second subgraph 1104, a second logical data set 1106, a second logical data set 1108, a third logical data set 1110, and a fourth logical data set 1111. The data lineage report 1317 also includes a first lineage relationship 1318 between the first logical data set 1106 and the input of the first subgraph 1102, A second genealogical relationship 1320 between inputs of the first subgraph 1102, a third genealogical relationship 1322 between the first subgraph 1102 and the third logical data set 1110, 4 logical relationship between the 4 logical data set 1111 and the second subgraph 1104.

상이한 논리 파일명들을 가지는 두 개의 상이한 논리 데이터세트들(즉, 상기 제3 논리 데이터세트(1110)와 상기 제4 논리 데이터세트(1111))이 동일한 물리 데이터세트(즉, 상기 제3 물리 데이터세트(1218))를 참조하기 때문에 이 경우에 상기 데이터 계보 보고서(1317)가 부정확하다는 것에 유의한다. 특히, 상기 논리 파일명 "Acct_summ.dat"을 가지는 상기 제3 논리 데이터세트 DL3(1110)가 상기 제1 서브 그래프(1102)의 출력에 존재하고 상기 논리 파일명 "Acct-summ.dat"을 가지는 상기 제4 논리 데이터세트(1111)가 상기 제2 서브 그래프(1104)의 입력에 존재한다. 상기 데이터 계보 보고서(1317)는 상기 제3 논리 데이터세트(1110)와 상기 제4 논리 데이터세트(1111)를 서로 어떠한 계보 관계도 없는 별개의 데이터세트로서 나타낸다. 이와 같이, 상기 데이터 계보 보고서(1317)는 상기 제3 논리 데이터세트(1110)와 상기 제4 논리 데이터세트(1111) 사이의 데이터 계보 내의 브레이크(break)를 부정확하게 포함한다. Two different sets of logical data (i.e., the third logical data set 1110 and the fourth logical data set 1111) having different logical file names are stored in the same physical data set (i.e., the third physical data set 1218), it is noted that the data lineage report 1317 is inaccurate in this case. In particular, the third logical data set D L3 (1110) having the logical file name "Acct_summ.dat" is present at the output of the first sub-graph 1102 and the file name having the logical "Acct-summ.dat" A fourth logical data set 1111 is present at the input of the second subgraph 1104. The data lineage report 1317 shows the third logical data set 1110 and the fourth logical data set 1111 as a separate data set having no lineage relationship with each other. Thus, the data lineage report 1317 incorrectly includes a break in the data lineage between the third logical data set 1110 and the fourth logical data set 1111.

5.4 중복 논리 데이터세트 발견5.4 Discovery of redundant logical data sets

일부 예에서는, 데이터플로 그래프에서 중복 논리 데이터세트들이 상기 데이터플로 그래프의 실행에 의해 생성되는 런타임 아티팩트(runtime artifacts)(예를 들어, 도 5의 작업 로그들(429))를 분석하여 발견될 수 있다. 특히, 데이터플로 그래프가 실행될 때마다, 작업 로그가 생성된다.In some instances, redundant logical data sets in the dataflow graph can be found by analyzing runtime artifacts (e.g., job logs 429 in FIG. 5) generated by execution of the dataflow graph have. Specifically, each time a dataflow graph is run, a job log is generated.

상기 작업 로그는 그래프 인스턴스명과 그래프의 각각의 데이터세트 컴포넌트들에 대해 그것이 액세스한 물리 데이터세트들과 액세스 유형(판독 또는 기록)을 포함하는 상기 데이터플로 그래프의 실행과 관련된 정보를 포함한다. 그래프 인스턴스들은 각각의 데이터세트 컴포넌트에 대해 논리 데이터세트명들을 결정하기 위해 검사될 수 있다. 상기 그래프 인스턴스와 상기 데이터 컴포넌트명을 매칭하여, 상기 시스템은 논리 데이터세트명들을 물리 데이터세트명들에 매핑할 수 있다.The activity log includes information related to the execution of the dataflow graph including the graph instance name and the access type (read or write) for each dataset component of the graph it accessed. Graph instances may be examined to determine logical dataset names for each dataset component. By matching the graph instance with the data component name, the system can map logical data set names to physical data set names.

중복 논리 데이터세트들을 식별하기 위해, 작업 로그들을 분석하여 매핑의 상기 첫번째 논리 데이터세트가 매핑의 두번째 논리 데이터세트와 다른 임의의 논리 대 물리 데이터세트 매핑들(logical to physical dataset mappings)을 식별한다. 첫번째 논리 데이터세트와 두번째 논리 데이터세트가 다른 임의의 논리 대 물리 데이터세트 매핑들은 중복 논리 데이터세트들로 분류된다.To identify redundant logical data sets, the operational logs are analyzed to identify any logical to physical dataset mappings that are different from the second logical data set of the first logical data set of the mapping. Any logical to physical data set mappings that differ from the first logical data set and the second logical data set are classified into redundant logical data sets.

상기 식별된 중복 논리 데이터세트들은 중복 논리 데이터세트들을 정정할지 결정하는 사용자에게 제시되거나 자동으로 완화된다. The identified redundant logical data sets are presented or automatically mitigated to the user who determines to correct the redundant logical data sets.

5.4.1 중복 논리 데이터세트 발견의 예5.4.1 Example of Discovery of Redundant Logical Data Sets

도 12를 다시 참조하면, 해석된 데이터플로 그래프(1117)가 실행될 때, 상기 데이터플로 그래프 실행에 대한 작업 로그가 생성된다. Referring back to FIG. 12, when the interpreted dataflow graph 1117 is executed, a job log for the dataflow graph execution is generated.

상기 작업 로그는 제1 서브 그래프(1102)와 제2 서브 그래프(1104) 사이의 흐름에 대응하는 단일 논리 대 물리 데이터세트 매핑을 포함한다. 상기 논리 대 물리 데이터세트 매핑은 상기 제1 서브 그래프(1104)의 출력에서 제3 논리 데이터세트 DL3(1110)에 대한 식별자, 상기 제2 서브 그래프(1106)의 입력에서 제4 논리 데이터세트 DL4(1111)에 대한 식별자, 및 제3 물리 데이터세트(1218)에 대한 식별자를 포함한다. The job log includes a single logical to physical data set mapping corresponding to the flow between the first subgraph 1102 and the second subgraph 1104. The logical to physical data set mapping comprises an identifier for the third logical data set D L3 1110 at the output of the first subgraph 1104 and an identifier for the fourth logical data set D 1110 at the input of the second subgraph 1106. [ An identifier for L4 1111, and an identifier for the third set of physical data 1218.

제3 논리 데이터세트(1110)와 제4 논리 데이터세트(1111)가 동일한 물리 데이터세트(즉, 제3 물리 데이터세트(1218))를 가리키는 별개의 논리 데이터세트(예를 들어, 상이한 논리 파일명들을 가지는 논리 데이터세트들)이기 때문에, 제3 논리 데이터세트(1110)와 제4 논리 데이터세트(1111)는 중복 논리 데이터세트들로 분류된다.The third logical data set 1110 and the fourth logical data set 1111 are stored in separate logical data sets (e.g., different logical file names) that point to the same physical data set (i.e., the third physical data set 1218) The third logical data set 1110 and the fourth logical data set 1111 are classified into redundant logical data sets.

상술된 단순 예가 상기 중복 논리 데이터세트 발견 방법을 포함하는 데이터 처리 시스템의 실제 구현에서 단일 작업 로그로부터 중복 논리 데이터세트들의 단일 쌍의 식별을 포함하는 반면, 중복 논리 데이터세트들의 여러 쌍이 여러 작업 로그들을 이용하여 식별될 수 있다는 것에 유의한다. While the above described simple example includes the identification of a single pair of redundant logical data sets from a single operation log in an actual implementation of the data processing system including the redundant logical data set discovery method, And < / RTI >

5.5 중복 논리 데이터세트 완화5.5 Reduced redundant logical data sets

상술한 바와 같이, 중복 논리 데이터세트들은 데이터 계보 보고서들에서 브레이크를 초래할 수 있다. 중복 논리 데이터세트들이 식별되면, 여러 상이한 방법들이 중복 논리 데이터세트들을 제거하거나 데이터 계보 보고서들에 대한 그 영향을 완화하기 위해 취해질 수 있다. 일부 예에서는, 상기 식별된 중복 논리 데이터세트들이 예를 들어, 스프레드시트 형태로 사용자에게 제시된다. 사용자는 이때 (예를 들어, 주어진 데이터플로 그래프에서 주어진 물리 데이터세트가 단일 논리 데이터세트에 의해서만 참조되도록 보장함으로써) 중복 논리 데이터세트들을 제거하기 위해 중복 논리 데이터세트들을 포함하는 데이터플로 그래프들을 편집할 수 있다. 다른 예에서는, 사용자가 중복 논리 데이터세트들의 쌍을 동등한 것으로 표시할 수 있다. 이런식으로, 사용자는 데이터플로 그래프들에 어떠한 변경도 가할 필요가 없다. 또 다른 예에서는, 중복 논리 데이터세트들의 쌍이 자동적으로 동등한 것으로 표시될 수 있다. As noted above, redundant logical data sets may result in a break in data lineage reports. Once redundant logical data sets are identified, several different methods can be taken to remove redundant logical data sets or mitigate its impact on data lineage reports. In some instances, the identified redundant logical data sets are presented to the user, for example, in the form of a spreadsheet. The user may then edit the dataflow graphs containing redundant logical data sets to remove redundant logical data sets (e.g., by ensuring that a given physical data set is referenced only by a single logical data set in a given dataflow graph) . In another example, a user may mark pairs of redundant logical data sets as equivalent. In this way, the user does not need to make any changes to the dataflow graphs. In another example, a pair of redundant logical data sets may be automatically marked as equivalent.

중복 논리 데이터세트의 쌍이 동등한 것으로 표시될 때, 데이터 계보 보고서에 그 동등성(equivalency)을 표시하는 여러 방법들이 있다. 한 방법에서는, 중복 데이터세트들의 쌍이 참조하는 물리 데이터세트가 데이터 계보 보고서에서 중복 논리 데이터세트들에 연결되어 보여진다. 예를 들어, 도 14를 참조하면, 제3 물리 데이터세트 DP3(1218)가 데이터 계보 보고서(1317)에 포함된다. 제3 논리 데이터세트 DL3(1110)와 제4 논리 데이터세트 DL4(1111) 모두 계보 관계들(1450 및 1452)에 의해 제3 물리 데이터세트(1218)에 연결된 것으로 보여진다. When pairs of redundant logical data sets are marked as equal, there are several ways to display equivalence in the data lineage report. In one method, a set of physical data referred to by a pair of redundant data sets is shown connected to redundant logical data sets in a data lineage report. For example, referring to FIG. 14, a third physical data set D P3 1218 is included in the data lineage report 1317. Both the third logical data set D L3 1110 and the fourth logical data set D L4 1111 are shown connected to the third physical data set 1218 by the lineage relationships 1450 and 1452. [

또 다른 방법에서는, 중복 논리 데이터세트들의 쌍의 논리 데이터세트들이 계보 관계에 의해 데이터 계보 보고서에서 서로 연결된 것으로 보여진다. 예를 들어, 도 15를 참조하면, 데이터 계보 보고서(1317)에서 계보 관계(1550)에 의해 제3 논리 데이터세트 DL3(1110)가 제4 논리 데이터세트 DL4(1111)에 연결된 것으로 보여진다. In yet another method, logical data sets of a pair of redundant logical data sets are shown connected together in a data lineage report by a lineage relationship. For example, referring to FIG. 15, it is seen that in the data lineage report 1317, a third logical data set D L3 1110 is connected to a fourth logical data set D L4 1111 by a lineage relationship 1550 .

또 다른 방법에서는, 중복 논리 데이터세트들의 쌍이 데이터 계보 보고서에서 결합된 논리 데이터세트에 의해 나타내어진다. 예를 들어, 도 16을 참조하면, 중복 논리 데이터세트들의 쌍이 데이터 계보 보고서(1317)에서 결합된 논리 데이터세트 DLR(1654)에 의해 나타내어진다. In another method, a pair of redundant logical data sets is represented by a combined logical data set in a data lineage report. For example, referring to FIG. 16, a pair of redundant logical data sets is represented by a combined logical data set D LR 1654 in a data lineage report 1317.

또 다른 방법에서는, 중복 논리 데이터세트들의 쌍 중 하나의 논리 데이터세트가 데이터 계보 보고서에서 중복 논리 데이터세트들의 쌍을 나타내기 위해 선택된다. 예를 들어, 도 17을 참조하면, 제4 논리 데이터세트 DL4(1111)는 데이터 계보 보고서(1317)에서 중복 논리 데이터세트들의 쌍을 나타낸다. In another method, one logical data set of pairs of redundant logical data sets is selected to represent a pair of redundant logical data sets in a data lineage report. For example, referring to FIG. 17, a fourth logical data set D L4 1111 represents a pair of redundant logical data sets in a data lineage report 1317.

또 다른 방법에서는, 중복 논리 데이터세트들의 쌍과 중복 논리 데이터세트들의 쌍의 결합된 논리 데이터세트의 표현이 데이터 계보 보고서에 포함된다. 중복 논리 데이터세트들의 쌍과 결합된 논리 데이터세트 사이의 계보 관계들의 고유한 구성이 데이터 계보 그래프에서 보여진다. 예를 들어, 도 18을 참조하면, 데이터 계보 보고서(1317)는 중복 논리 데이터세트들의 쌍의 결합된 논리 데이터세트 표현 DLR(1854), 제3 논리 데이터세트 DL3(1110) 및 제4 논리 데이터세트 DL4(1111)를 포함한다. 상기 결합된 논리 데이터세트(1854)는 제1 서브그래프(1102) 및 제2 서브 그래프(1104)와 직접적인 계보 관계들을 가지는 것으로 보여진다. 상기 결합된 논리 데이터세트(1845)는 또한 제3 논리 데이터세트(1110)를 통해 제1 서브 그래프(1102)와 간접적 계보 관계를 가지는 것으로 그리고 제4 논리 데이터세트(1111)를 통해 제2 서브 그래프(1104)와 간접적 계보 관계를 가지는 것으로 보여진다. In another method, a representation of a combined logical data set of a pair of redundant logical data sets and a pair of redundant logical data sets is included in the data lineage report. A unique configuration of lineage relationships between a pair of redundant logical data sets and a combined logical data set is shown in the data lineage graph. 18, the data lineage report 1317 includes a combined logical data set representation D LR 1854, a third logical data set D L3 1110, and a fourth logical < RTI ID = 0.0 > Data set D L4 1111. The combined logical data set 1854 is shown to have direct lineage relationships with the first subgraph 1102 and the second subgraph 1104. The combined logical data set 1845 also has an indirect genealogical relationship with the first subgraph 1102 via the third logical data set 1110 and a second subgraph (1104). ≪ / RTI >

또 다른 방법에서, 중복 논리 데이터세트들의 쌍의 논리 데이터세트들이 데이터 계보 보고서에 포함된다. 중복 논리 데이터세트들의 쌍의 논리 데이터세트들 사이의 계보 관계들의 고유한 구성이 데이터 계보 그래프에서 보여진다. 예를 들어, 도 19를 참조하면, 데이터 계보 보고서(1317)는 제3 논리 데이터세트 DL3 (1110) 및 제4 논리 데이터세트 DL4 (1111)를 포함한다. 제4 논리 데이터세트(1111)는 제1 서브 그래프(1102) 및 제2 서브 그래프(1104)와 직접적인 계보 관계들을 가지는 것으로 도시된다. 제3 논리 데이터세트 DL3(1110)는 제1 서브 그래프(1102)와 직접적인 계보 관계를 가지는 것으로 그리고 제4 논리 데이터세트(1111)를 통해 제2 서브 그래프(1104)와 간접적 계보 관계를 가지는 것으로 보여진다. In another method, logical data sets of a pair of redundant logical data sets are included in the data lineage report. A unique configuration of lineage relationships between logical data sets of pairs of redundant logical data sets is shown in the data lineage graph. For example, referring to FIG. 19, a data lineage report 1317 includes a third logical data set D L3 1110 and a fourth logical data set D L4 1111. The fourth logical data set 1111 is shown to have direct lineage relationships with the first subgraph 1102 and the second subgraph 1104. The third logical data set D L3 1110 has a direct descendent relationship with the first subgraph 1102 and with the second subgraph 1104 through the fourth logical data set 1111 .

일부 예에서는, 상술된 완화 방법들이 데이터 계보 보고서들에서 점선, 굵은 선, 또는 또다른 대체 방식으로 표시되어 데이터 계보 보고서의 사용자에게 완화 방법이 데이터 계보 보고서에 적용되었음을 분명히 하는 것에 유의한다. In some instances, it is noted that the mitigation methods described above are represented in the data lineage reports as dashed lines, bold lines, or in some other alternative manner to clarify to the user of the data lineage report that the mitigation method has been applied to the data lineage report.

상기 중복 논리 데이터세트 발견과 완화 접근방법들이 제1 컴포넌트가 물리 데이터세트에 기록하고 또 다른 컴포넌트가 그 물리 데이터세트로부터 판독하는 시나리오를 사용하여 설명되는 반면, 다른 시나리오들이 중복 논리 데이터세트들을 초래할 수 있다. 예를 들어, 중복 논리 데이터세트들의 쌍이 동일한 물리 데이터세트로부터 판독하는 두 개의 상이한 논리 데이터세트들로부터의 결과일 수 있다. 유사하게, 중복 논리 데이터세트들의 쌍은 동일한 물리 데이터세트에 기록하는 두 개의 상이한 논리 데이터세트들로부터의 결과일 수 있다. While the redundant logical data set discovery and mitigation approaches are described using scenarios in which a first component writes to a physical data set and another component reads from the physical data set, other scenarios may result in redundant logical data sets have. For example, a pair of redundant logical data sets may be the result from two different logical data sets that are read from the same physical data set. Similarly, a pair of redundant logical data sets may be a result from two different logical data sets writing to the same physical data set.

전술한 방법들은 모두 본원에서 참조로 원용되는 2009년 2월 26일에 출원된 미국 출원 번호 12/393,765, 2011년 10월 25일에 출원된 미국 출원 번호 13/281,039, 및 2014년 7월 24일에 출원된 미국 가출원 번호 62/028,485에서 더 상세히 설명된 바와 같이 데이터 계보 정보를 관리하고 제시하기 위한 그리고 데이터 객체들을 관리하기 위한 다양한 다른 방법으로부터의 특징들을 통합할 수 있다. The foregoing methods are described in U.S. Serial No. 12 / 393,765, filed February 26, 2009, U.S. Serial No. 13 / 281,039, filed October 25, 2011, To incorporate features from various other methods for managing and presenting data lineage information and for managing data objects as described in more detail in U. S. Provisional Application No. 62 / 028,485,

상술한 방법들은 예를 들어, 적합한 소프트웨어 명령들을 실행하는 프로그래머블 컴퓨팅 시스템을 이용하여 구현될 수 있거나, 필드 프로그래머블 게이트 어레이(FPGA)같은 적합한 하드웨어 또는 일부 하이브리드 형태로 구현될 수 있다. 예를 들어, 프로그램된 방법에서 상기 소프트웨어는 (분산, 클라이언트/서버, 또는 그리드 같은 다양한 아키텍처일 수 있는) 하나 이상의 프로그램된 또는 프로그래머블 컴퓨팅 시스템 - 각각은 적어도 하나의 프로세서, (휘발성 및/또는 비 휘발성 메모리 및/또는 저장 요소들을 포함하는) 적어도 하나의 데이터 저장 시스템, (적어도 하나의 입력 디바이스 또는 포트를 사용하여 입력을 수신하기 위한, 그리고 적어도 하나의 출력 디바이스 또는 포트를 사용하여 출력을 제공하기 위한) 적어도 하나의 사용자 인터페이스를 포함함 - 상에서 실행되는 하나 이상의 컴퓨터 프로그램의 절차들을 포함할 수 있다. 상기 소프트웨어는 예를 들어, 데이터플로 그래프의 디자인, 구성 및 실행에 관련된 서비스들을 제공하는 더 큰 프로그램의 하나 이상의 모듈을 포함할 수 있다. 상기 프로그램의 모듈들(예를 들어, 데이터플로 그래프의 요소들)은 데이터 구조 또는 데이터 저장소에 저장된 데이터 모델을 따르는 다른 조직화된 데이터로 구현될 수 있다. The methods described above may be implemented using, for example, a programmable computing system that executes appropriate software instructions, or may be implemented in suitable hardware, such as a field programmable gate array (FPGA) or in some hybrid form. For example, in a programmed manner, the software may be one or more programmed or programmable computing systems (which may be a variety of architectures such as distributed, client / server, or grid), each of which may be implemented as at least one processor (volatile and / At least one data storage system (including at least one input device or port) for receiving an input using at least one input device or port and at least one output device or port for providing output ) Comprising at least one user interface. The software may include, for example, one or more modules of a larger program that provide services related to the design, construction and execution of a dataflow graph. The modules of the program (e.g., elements of the dataflow graph) may be implemented with data structures or other organized data that conforms to a data model stored in a data repository.

상기 소프트웨어는 CD-ROM 또는 (예를 들어, 범용 또는 특별 목적 컴퓨팅 시스템 또는 디바이스에 의해 판독 가능한) 기타 컴퓨터 판독 가능 매체 같은 유형의, 비일시적 매체 상에 제공될 수 있거나, 그것이 실행되는 컴퓨팅 시스템의 유형의, 비일시적 매체로 네트워크의 통신 매체를 통해 전달될(예를 들어, 전파 신호에 인코딩될) 수 있다. 상기 처리 중 일부 또는 모두는 특별 목적 컴퓨터 상에서, 또는 코프로세서 또는 필드 프로그래머블 게이트 어레이(FPGAs) 또는 전용 주문형 집적 회로(ASICs) 같은 특별 목적 하드웨어를 사용하여 수행될 수 있다. 상기 처리는 소프트웨어에 의해 명시된 계산의 상이한 부분들이 상이한 컴퓨팅 요소들에 의해 수행되는 분산 방식으로 구현될 수 있다. 각각의 이러한 컴퓨터 프로그램은 저장 디바이스 매체가 본원에서 설명된 처리를 수행하는 컴퓨터의 의해 판독될 때 상기 컴퓨터를 구성하고 운영하기 위해, 바람직하게는 범용 또는 특별 목적 프로그래머블 컴퓨터에 의해 액세스 가능한 저장 디바이스의 컴퓨터 판독가능한 저장 매체(예를 들어, 솔리드 스테이트 메모리(solid state memory) 또는 매체, 또는 자기 또는 광학 매체)) 상에 저장되거나 다운로드된다. 본 발명의 시스템은 또한 컴퓨터 프로그램으로 구성되는, 유형의 비일시적 매체로 구현되는 것으로 간주될 수 있으며, 그렇게 구성된 매체는 컴퓨터가 본원에서 설명된 처리 단계들 중 하나 이상을 수행하도록 특정 및 사전 정의된 방식으로 동작하게 한다. The software may be provided on a non-volatile medium, such as a CD-ROM or other type of computer readable medium (e.g., readable by a general purpose or special purpose computing system or device) Type, non-transitory medium (e. G., Encoded in a radio signal) over a communication medium of the network. Some or all of the above processes may be performed on special purpose computers or using special purpose hardware such as coprocessors or field programmable gate arrays (FPGAs) or dedicated application specific integrated circuits (ASICs). The processing may be implemented in a distributed manner in which different portions of the computation specified by the software are performed by different computing elements. Each such computer program is stored on a computer of a storage device, preferably a general purpose or special purpose computer accessible by a general purpose or special purpose programmable computer, for configuring and operating the computer when the storage device medium is read by a computer performing the processing described herein Readable storage medium (e.g., solid state memory or medium, or magnetic or optical medium)). The system of the present invention may also be considered to be implemented as a type of non-transitory medium, which is configured as a computer program, and such configured medium may be a medium in which a computer is programmed to perform a specific and predefined .

본 발명의 다수의 실시 예가 설명되었다. 그럼에도 불구하고, 전술한 설명은 예시를 위한 것이고 다음 청구항들의 범위 내에서 정의되는 본 발명의 범위를 제한하는 것이 아니다. 따라서, 다른 실시 예들 또한 다음 청구항들의 범위 내에 있다. 예를 들어, 다양한 변형들이 본 발명의 범위를 벗어나지 않고 이루어질 수 있다. 또한, 전술한 단계들 중 일부는 순서 독립적일 수 있고 따라서 설명된 것과 다른 순서로 수행될 수 있다. A number of embodiments of the present invention have been described. Nevertheless, the foregoing description is for the purpose of illustration and is not intended to limit the scope of the invention, which is defined by the scope of the following claims. Accordingly, other embodiments are also within the scope of the following claims. For example, various modifications may be made without departing from the scope of the present invention. In addition, some of the steps described above may be order-independent and thus may be performed in a different order than described.

Claims (17)

계보 정보(lineage information)를 관리하기 위한 방법에 있어서, 상기 방법은
적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보를 수신하는 단계;
적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하는 단계 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및
상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하는 단계를 포함하는, 계보 정보를 관리하기 위한 방법.
A method for managing lineage information, the method comprising:
Receiving lineage information representative of at least one lineage relationships between at least two data processing programs and at least two logical data sets;
Receiving at least one runtime artifacts, each runtime artifact comprising information relating to a previous execution of a data processing program of the at least two data processing programs; And
And analyzing the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.
제1항에 있어서,
상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 간접적 계보 관계를 추가하는 후보 수정을 포함하는, 계보 정보를 관리하기 위한 방법.
The method according to claim 1,
Wherein the at least one candidate modifications comprise a candidate modification to add a new indirect genealogical relationship between a data processing program of the at least two data processing programs and a logical data set of the at least two logical data sets, Way.
제1항에 있어서,
상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 직접적인 계보 관계를 추가하는 제1 후보 수정을 포함하는, 계보 정보를 관리하기 위한 방법.
The method according to claim 1,
Wherein the at least one candidate modifications comprise a first candidate modification that adds a new direct lineage relationship between a data processing program of the at least two data processing programs and a logical data set of the at least two logical data sets. How to manage.
제3항에 있어서,
상기 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는 상기 적어도 두 개의 데이터 처리 프로그램들에 의해 판독되거나 기록되는 물리 데이터세트들을 결정하기 위해 상기 적어도 두 개의 데이터 처리 프로그램들의 이전 실행들의 로그들을 분석하는 단계를 포함하는, 계보 정보를 관리하기 위한 방법.
The method of claim 3,
Wherein analyzing the runtime artifact and the genealogy information comprises analyzing logs of previous runs of the at least two data processing programs to determine physical data sets to be read or written by the at least two data processing programs A method for managing genealogical information, comprising:
제4항에 있어서,
상기 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는 상기 계보 정보에서 표현되고 동일한 물리 데이터세트와 관련된 상기 적어도 두 개의 논리 데이터세트들의 두 개의 별개 논리 데이터세트들을 식별하는 단계를 더 포함하는, 계보 정보를 관리하기 위한 방법.
5. The method of claim 4,
Wherein analyzing the runtime artifact and the genealogy information further comprises identifying two separate sets of logical data of the at least two logical data sets represented by the genealogy information and associated with the same set of physical data. How to manage.
제5항에 있어서,
상기 제1 후보 수정은 상기 두 개의 별개 논리 데이터세트들 사이의 새로운 계보 관계의 생성을 포함하는, 계보 정보를 관리하기 위한 방법.
6. The method of claim 5,
Wherein the first candidate modification comprises creating a new lineage relationship between the two separate logical data sets.
제5항에 있어서,
상기 제1 후보 수정은 상기 두 개의 별개 논리 데이터세트들을 새로운 결합된 논리 데이터세트로 병합하는 것을 포함하는 상기 새로운 계보 관계의 생성을 포함하는, 계보 정보를 관리하기 위한 방법.
6. The method of claim 5,
Wherein the first candidate modification includes merging the two separate sets of logical data into a new combined logical data set.
제1항에 있어서,
상기 적어도 두 개의 데이터 처리 프로그램들의 각각의 데이터 처리 프로그램은 적어도 하나의 파라미터 값들의 세트에 따라 인스턴스화된 제네릭 데이터 처리 프로그램(generic data processing program)의 인스턴스인, 계보 정보를 관리하기 위한 방법.
The method according to claim 1,
Wherein each data processing program of the at least two data processing programs is an instance of a generic data processing program instantiated according to a set of at least one parameter values.
제8항에 있어서,
상기 적어도 하나의 런타임 아티팩트와 상기 계보 정보를 분석하는 단계는
상기 적어도 두 개의 데이터 처리 프로그램들의 제1 데이터 처리 프로그램의 이전 실행들의 적어도 하나의 로그들을, 적어도 하나의 파라미터 값들의 제1 세트에 따라 상기 제1 데이터 처리 프로그램의 제1 인스턴스화에서 사용되는 제1 파라미터 세트를 결정하기 위해, 분석하는 단계,
상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계, 및
상기 제1 데이터 처리 프로그램의 제1 인스턴스화가 상기 제1 데이터 처리 프로그램의 제네릭 버전(generic version)과 상기 적어도 일부 파라미터들에 기초하여 상기 계보 정보에서 표현되지 않는 것을 결정하는 단계를 포함하는, 계보 정보를 관리하기 위한 방법.
9. The method of claim 8,
The step of analyzing the at least one runtime artifact and the genealogy information
At least one log of previous executions of the first data processing program of the at least two data processing programs to a first set of parameter values, the first parameter being used in a first instantiation of the first data processing program To determine the set, analyze,
Selecting at least some parameters from the first set of parameters, and
And determining that the first instantiation of the first data processing program is not represented in the genealogical information based on the generic version of the first data processing program and the at least some parameters. Lt; / RTI >
제9항에 있어서,
상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계는 사용자로부터 수신된 정보에 기초하여 파라미터들을 선택하는 단계를 포함하는, 계보 정보를 관리하기 위한 방법.
10. The method of claim 9,
Wherein selecting at least some parameters from the first set of parameters comprises selecting parameters based on information received from a user.
제9항에 있어서,
상기 제1 파라미터 세트로부터 적어도 일부 파라미터들을 선택하는 단계는 적어도 하나의 미리 정의된 규칙들에 기초하여 파라미터들을 선택하는 단계를 포함하는, 계보 정보를 관리하기 위한 방법.
10. The method of claim 9,
Wherein selecting at least some parameters from the first set of parameters comprises selecting parameters based on at least one predefined rule.
제11항에 있어서,
상기 적어도 하나의 미리 정의된 규칙들의 제1 규칙은 날짜 형태의 파라미터 값들을 가지는 파라미터들이 상기 선택된 파라미터들로부터 배제되는 것을 명시하는, 계보 정보를 관리하기 위한 방법.
12. The method of claim 11,
Wherein the first rule of the at least one predefined rule specifies that parameters having parameter values in date form are excluded from the selected parameters.
제11항에 있어서,
상기 적어도 하나의 미리 정의된 규칙들의 제1 규칙은 제네릭 데이터 처리 프로그램의 논리로 변환된 파라미터 값을 가지는 파라미터가 상기 선택된 파라미터들에 포함되는 것을 명시하는, 계보 정보를 관리하기 위한 방법.
12. The method of claim 11,
Wherein the first rule of the at least one predefined rule specifies that a parameter having a parameter value converted into logic of the generic data processing program is included in the selected parameters.
제9항에 있어서,
상기 계보 정보에 대한 상기 적어도 하나의 후보 수정들은 상기 적어도 두 개의 데이터 처리 프로그램들의 상기 제1 데이터 처리 프로그램과 상기 적어도 두 개의 논리 데이터세트들의 논리 데이터세트 사이에 새로운 계보 관계를 추가하는 제1 후보 수정을 포함하는, 계보 정보를 관리하기 위한 방법.
10. The method of claim 9,
Wherein the at least one candidate modifications to the genealogy information include a first candidate modification that adds a new genealogical relationship between the first data processing program of the at least two data processing programs and the logical data set of the at least two logical data sets Wherein the method comprises the steps of:
컴퓨터 판독가능한 매체 상에 비일시적 형태로 저장된 계보 정보(lineage information)를 관리하기 위한 소프트웨어에 있어서, 상기 소프트웨어는 컴퓨팅 시스템이
적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보를 수신하도록 하고;
적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하도록 하고 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및
상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하도록 하는 명령들을 포함하는, 계보 정보를 관리하기 위한 소프트웨어.
22. A software for managing lineage information stored in a non-transitory form on a computer readable medium, the software comprising:
Receive lineage information representative of at least one lineage relationships between at least two data processing programs and at least two logical data sets;
To receive at least one runtime artifacts, each runtime artifact comprising information relating to a previous run of a data processing program of the at least two data processing programs; And
And to analyze the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information.
계보 정보(lineage information)를 관리하기 위한 컴퓨팅 시스템에 있어서, 상기 시스템은
적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보와 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하도록 구성된 입력 디바이스 또는 포트 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및
상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하도록 구성된 적어도 하나의 프로세서를 포함하는, 계보 정보를 관리하기 위한 컴퓨팅 시스템.
1. A computing system for managing lineage information, the system comprising:
An input device or port configured to receive lineage information and at least one runtime artifacts indicative of at least one lineage relationships between at least two data processing programs and at least two logical data sets, each runtime artifact comprising: Comprising information relating to a previous execution of a data processing program of at least two data processing programs; And
And at least one processor configured to analyze the genealogy information and the at least one runtime artifacts to determine at least one candidate modifications to the genealogy information, Computing system for.
계보 정보(lineage information)를 관리하기 위한 컴퓨팅 시스템에 있어서, 상기 시스템은
적어도 두 개의 데이터 처리 프로그램들과 적어도 두 개의 논리 데이터세트들 간의 적어도 하나의 계보 관계들을 나타내는 계보 정보와 적어도 하나의 런타임 아티팩트(runtime artifacts)를 수신하기 위한 수단 - 각각의 런타임 아티팩트는 상기 적어도 두 개의 데이터 처리 프로그램들의 데이터 처리 프로그램의 이전 실행에 관련된 정보를 포함함 - ; 및
상기 계보 정보에 대한 적어도 하나의 후보 수정들(candidate modifications)을 결정하기 위해 상기 적어도 하나의 런타임 아티팩트(runtime artifacts)와 상기 계보 정보를 분석하기 위한 수단을 포함하는, 계보 정보를 관리하기 위한 컴퓨팅 시스템.
1. A computing system for managing lineage information, the system comprising:
Means for receiving lineage information and at least one runtime artifacts representing at least one lineage relationships between at least two data processing programs and at least two logical data sets, each runtime artifact comprising: Comprising information relating to previous execution of a data processing program of the data processing programs; And
And means for analyzing the at least one runtime artifacts and the genealogy information to determine at least one candidate modifications to the genealogy information. .
KR1020177004181A 2014-07-18 2015-07-20 Managing lineage information KR102292803B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462026228P 2014-07-18 2014-07-18
US62/026,228 2014-07-18
PCT/US2015/041097 WO2016011442A1 (en) 2014-07-18 2015-07-20 Managing lineage information

Publications (2)

Publication Number Publication Date
KR20170031750A true KR20170031750A (en) 2017-03-21
KR102292803B1 KR102292803B1 (en) 2021-08-23

Family

ID=53836203

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177004178A KR102279859B1 (en) 2014-07-18 2015-07-20 Managing parameter sets
KR1020177004181A KR102292803B1 (en) 2014-07-18 2015-07-20 Managing lineage information

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177004178A KR102279859B1 (en) 2014-07-18 2015-07-20 Managing parameter sets

Country Status (9)

Country Link
US (3) US10175974B2 (en)
EP (4) EP3690637A1 (en)
JP (2) JP6457622B2 (en)
KR (2) KR102279859B1 (en)
CN (2) CN106796513B (en)
AU (3) AU2015289441B2 (en)
CA (2) CA2955378C (en)
SG (2) SG11201700384WA (en)
WO (2) WO2016011441A1 (en)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102279859B1 (en) 2014-07-18 2021-07-20 아브 이니티오 테크놀로지 엘엘시 Managing parameter sets
US10275227B1 (en) * 2015-02-20 2019-04-30 The Mathworks, Inc. Determining functional equivalence of configurations of a model
EP3278243B1 (en) 2015-04-03 2024-07-31 Oracle International Corporation Method and system for implementing a log parser in a log analytics system
US11226975B2 (en) 2015-04-03 2022-01-18 Oracle International Corporation Method and system for implementing machine learning classifications
US11727025B2 (en) 2015-04-03 2023-08-15 Oracle International Corporation Method and system for implementing a log parser in a log analytics system
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
DE112017005638T5 (en) * 2016-11-09 2019-07-25 Ab Initio Technology Llc Systems and methods for determining the relationship between data elements
US10431002B2 (en) * 2017-02-23 2019-10-01 International Business Machines Corporation Displaying data lineage using three dimensional virtual reality model
US10379825B2 (en) 2017-05-22 2019-08-13 Ab Initio Technology Llc Automated dependency analyzer for heterogeneously programmed data processing system
US10726069B2 (en) * 2017-08-18 2020-07-28 Sap Se Classification of log entry types
US11055074B2 (en) * 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
US11681944B2 (en) 2018-08-09 2023-06-20 Oracle International Corporation System and method to generate a labeled dataset for training an entity detection system
US10803051B2 (en) * 2018-10-10 2020-10-13 Bank Of America Corporation System for performing a lineage control in a data network
US11256701B2 (en) 2019-01-02 2022-02-22 Bank Of America Corporation Interactive lineage mapping system
US11194845B2 (en) * 2019-04-19 2021-12-07 Tableau Software, LLC Interactive lineage analyzer for data assets
US10996946B2 (en) 2019-05-22 2021-05-04 Ab Initio Technology Llc Static and runtime analysis of computer program ecosystems
US11080227B2 (en) * 2019-08-08 2021-08-03 SambaNova Systems, Inc. Compiler flow logic for reconfigurable architectures
US11265328B2 (en) 2019-09-12 2022-03-01 Snowflake Inc. Private data exchange metrics sharing
KR102168775B1 (en) * 2019-12-27 2020-10-23 주식회사에어플러그 Method for quickly processing service-based information query via a network and a device for said method
CN112131303A (en) * 2020-09-18 2020-12-25 天津大学 Large-scale data lineage method based on neural network model
EP4285237A1 (en) * 2021-01-31 2023-12-06 Ab Initio Technology LLC Dataset multiplexer for data processing system
EP4285238A1 (en) 2021-01-31 2023-12-06 Ab Initio Technology LLC Data processing system with manipulation of logical dataset groups
AU2022360364A1 (en) 2021-10-08 2024-04-04 Ab Initio Technology Llc Automated modification of computer programs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050030139A (en) * 2003-09-23 2005-03-29 마이크로소프트 코포레이션 Region-based memory management for object-oriented programs
US20120284287A1 (en) * 2011-05-06 2012-11-08 Sap Ag Systems and Methods for Business Process Logging
US20130018873A1 (en) * 2011-07-15 2013-01-17 International Business Machines Corporation Versioning of metadata, including presentation of provenance and lineage for versioned metadata
KR20140023971A (en) * 2011-05-13 2014-02-27 베네핏포커스.컴, 인크. Registration and execution of highly concurrent processing tasks

Family Cites Families (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2727026B2 (en) * 1989-06-14 1998-03-11 株式会社エイ・ティ・アール通信システム研究所 Program structure automatic design equipment
US5168441A (en) 1990-05-30 1992-12-01 Allen-Bradley Company, Inc. Methods for set up and programming of machine and process controllers
US5446885A (en) 1992-05-15 1995-08-29 International Business Machines Corporation Event driven management information system with rule-based applications structure stored in a relational database
JPH0744368A (en) 1993-07-29 1995-02-14 Hitachi Ltd Editing system for combination model
US5758351A (en) 1995-03-01 1998-05-26 Sterling Software, Inc. System and method for the creation and use of surrogate information system objects
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6216140B1 (en) 1997-09-17 2001-04-10 Hewlett-Packard Company Methodology for the efficient management of hierarchically organized information
US6216131B1 (en) 1998-02-06 2001-04-10 Starfish Software, Inc. Methods for mapping data fields from one data set to another in a data processing environment
US6088702A (en) 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
US6381735B1 (en) * 1998-10-02 2002-04-30 Microsoft Corporation Dynamic classification of sections of software
US6948154B1 (en) 1999-03-22 2005-09-20 Oregon State University Methodology for testing spreadsheets
US7120638B1 (en) 1999-09-21 2006-10-10 International Business Machines Corporation Method, system, program, and data structure for cleaning a database table
US6633875B2 (en) 1999-12-30 2003-10-14 Shaun Michael Brady Computer database system and method for collecting and reporting real estate property and loan performance information over a computer driven network
GB2358072B (en) 2000-01-07 2004-01-28 Mitel Corp Tabular range editing mechanism
US7117219B1 (en) * 2000-05-05 2006-10-03 Group 1 Software, Inc. Method and apparatus for creating a lineage of a data field in a data flow system
US7054885B1 (en) * 2000-05-23 2006-05-30 Rockwell Collins, Inc. Method and system for managing the configuration of an evolving engineering design using an object-oriented database
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US7031001B2 (en) 2000-07-31 2006-04-18 Canon Kabushiki Kaisha Print control apparatus and control method
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6708186B1 (en) 2000-08-14 2004-03-16 Oracle International Corporation Aggregating and manipulating dictionary metadata in a database system
US7143076B2 (en) 2000-12-12 2006-11-28 Sap Aktiengesellschaft Method and apparatus for transforming data
US6629098B2 (en) 2001-01-16 2003-09-30 Hewlett-Packard Development Company, L.P. Method and system for validating data submitted to a database application
US7614036B2 (en) 2001-03-22 2009-11-03 Robert D Bjornson Method and system for dataflow creation and execution
JP2002279147A (en) 2001-03-22 2002-09-27 Sharp Corp In-house production determination support device, in- house determination support method, machine-readable recording medium with in-house production determination support program recorded thereon and in-house determination support program
US7853553B2 (en) 2001-03-26 2010-12-14 Siebel Systems, Inc. Engine for converting data from a source format to a destination format using user defined mappings
US6732095B1 (en) 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US6494159B2 (en) 2001-05-11 2002-12-17 The United States Of America As Represented By The Secretary Of The Navy Submarine launched unmanned combat vehicle replenishment
US6832366B2 (en) 2001-05-17 2004-12-14 Simdesk Technologies, Inc. Application generator
US7099885B2 (en) 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US6868526B2 (en) 2001-07-18 2005-03-15 The Mathworks, Inc. Graphical subclassing
AUPR966001A0 (en) 2001-12-20 2002-01-24 Canon Information Systems Research Australia Pty Ltd A microprocessor card defining a custom user interface
US7080088B1 (en) 2002-01-30 2006-07-18 Oracle International Corporation Automatic reconciliation of bindable objects
US7185317B2 (en) 2002-02-14 2007-02-27 Hubbard & Wells Logical data modeling and integrated application framework
US6820077B2 (en) 2002-02-22 2004-11-16 Informatica Corporation Method and system for navigating a large amount of data
US7110924B2 (en) 2002-05-15 2006-09-19 Caterpillar Inc. Method for controlling the performance of a target system
US7574652B2 (en) 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US20050144189A1 (en) 2002-07-19 2005-06-30 Keay Edwards Electronic item management and archival system and method of operating the same
US7437766B2 (en) * 2002-10-03 2008-10-14 Sandia National Laboratories Method and apparatus providing deception and/or altered operation in an information system operating system
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7257603B2 (en) 2003-05-08 2007-08-14 Microsoft Corporation Preview mode
US20040225632A1 (en) 2003-05-08 2004-11-11 Microsoft Corporation Automated information management and related methods
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US20050010896A1 (en) 2003-07-07 2005-01-13 International Business Machines Corporation Universal format transformation between relational database management systems and extensible markup language using XML relational transformation
US20050060317A1 (en) 2003-09-12 2005-03-17 Lott Christopher Martin Method and system for the specification of interface definitions and business rules and automatic generation of message validation and transformation software
US7865507B2 (en) 2003-09-15 2011-01-04 Oracle International Corporation Data quality analyzer
CA2655735C (en) 2003-09-15 2011-01-18 Ab Initio Software Corporation Data profiling
US7328428B2 (en) 2003-09-23 2008-02-05 Trivergent Technologies, Inc. System and method for generating data validation rules
US7765529B1 (en) 2003-10-31 2010-07-27 The Mathworks, Inc. Transforming graphical objects in a graphical modeling environment
US7840949B2 (en) 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US7690000B2 (en) 2004-01-08 2010-03-30 Microsoft Corporation Metadata journal for information technology systems
US20050187984A1 (en) 2004-02-20 2005-08-25 Tianlong Chen Data driven database management system and method
US7543256B1 (en) 2004-03-01 2009-06-02 Advanced Micro Devices, Inc. System and method for designing an integrated circuit device
US8165853B2 (en) 2004-04-16 2012-04-24 Knowledgebase Marketing, Inc. Dimension reduction in predictive model development
JP4275013B2 (en) 2004-06-21 2009-06-10 三洋電機株式会社 Data flow graph processing device, processing device, reconfigurable circuit.
US7536406B2 (en) 2004-06-23 2009-05-19 Microsoft Corporation Impact analysis in an object model
US20060007464A1 (en) 2004-06-30 2006-01-12 Percey Michael F Structured data update and transformation system
US7353227B2 (en) 2004-07-23 2008-04-01 Sap Aktiengesellschaft Conflict resolution engine
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US8140786B2 (en) * 2006-12-04 2012-03-20 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US7760746B2 (en) * 2004-11-30 2010-07-20 Computer Associates Think, Inc. Cascading configuration using one or more configuration trees
US7428486B1 (en) 2005-01-31 2008-09-23 Hewlett-Packard Development Company, L.P. System and method for generating process simulation parameters
WO2006096683A1 (en) 2005-03-07 2006-09-14 Computer Associates Think, Inc. System and method for providing data manipulation using web services
JP4550641B2 (en) 2005-03-30 2010-09-22 大陽日酸エンジニアリング株式会社 Data collation apparatus and method
US8255363B2 (en) 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using dynamic tags to identify and process files
US8630917B2 (en) 2005-06-09 2014-01-14 At&T Intellectual Property Ii, L.P. Arrangement for guiding user design of comprehensive product solution using on-the-fly data validation
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7464105B2 (en) 2005-07-06 2008-12-09 International Business Machines Corporation Method for performing semi-automatic dataset maintenance
US7870162B2 (en) 2005-07-29 2011-01-11 Sap Ag Method for generating properly formed expressions
US20070050750A1 (en) 2005-08-31 2007-03-01 Microsoft Corporation Extensible data-driven setup application for operating system
US20070080088A1 (en) 2005-10-06 2007-04-12 Trotter Jason K Preassembly of cooperating parts
US9798781B2 (en) 2005-10-25 2017-10-24 Angoss Software Corporation Strategy trees for data mining
US8060821B2 (en) 2005-12-09 2011-11-15 Apple Inc. Enhanced visual feedback of interactions with user interface
US20070179956A1 (en) 2006-01-18 2007-08-02 Whitmyer Wesley W Jr Record protection system for networked databases
US7761586B2 (en) 2006-02-06 2010-07-20 Microsoft Corporation Accessing and manipulating data in a data flow graph
US7661067B2 (en) 2006-02-21 2010-02-09 International Business Machines Corporation Method for providing quick responses in instant messaging conversations
US7647298B2 (en) 2006-03-23 2010-01-12 Microsoft Corporation Generation of query and update views for object relational mapping
US20070294119A1 (en) 2006-03-30 2007-12-20 Adaptive Alpha, Llc System, method and computer program product for evaluating and rating an asset management business and associate investment funds using experiential business process and performance data, and applications thereof
US8868577B2 (en) 2006-03-31 2014-10-21 Sap Se Generic database manipulator
US7797319B2 (en) 2006-05-15 2010-09-14 Algebraix Data Corporation Systems and methods for data model mapping
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US7970746B2 (en) 2006-06-13 2011-06-28 Microsoft Corporation Declarative management framework
US7689565B1 (en) 2006-06-28 2010-03-30 Emc Corporation Methods and apparatus for synchronizing network management data
US20080040388A1 (en) * 2006-08-04 2008-02-14 Jonah Petri Methods and systems for tracking document lineage
CA2657233C (en) 2006-08-10 2016-06-21 Ab Initio Software Llc Distributing services in graph-based computations
US8397208B2 (en) * 2006-08-31 2013-03-12 Serena Software, Inc. Method and system for baselining across multiple domains
US7913233B2 (en) * 2006-09-28 2011-03-22 Bank Of America Corporation Performance analyzer
US8423564B1 (en) 2006-10-31 2013-04-16 Ncr Corporation Methods and apparatus for managing and updating stored information
US20080126988A1 (en) 2006-11-24 2008-05-29 Jayprakash Mudaliar Application management tool
US7890509B1 (en) 2006-12-05 2011-02-15 First American Real Estate Solutions Llc Parcel data acquisition and processing
US9614929B2 (en) * 2006-12-19 2017-04-04 International Business Machines Corporation Application server with automatic and autonomic application configuration validation
US7428846B2 (en) 2006-12-21 2008-09-30 Namco Machine & Gear Works Ltd. Shaft encoder with anti-backlash gears
US20080162384A1 (en) 2006-12-28 2008-07-03 Privacy Networks, Inc. Statistical Heuristic Classification
GB0700450D0 (en) 2007-01-10 2007-02-21 Radiation Watch Ltd The RWL threat engine
CA2676703A1 (en) * 2007-03-16 2008-09-25 Research In Motion Limited Automating construction of a data-source interface for component applications
US9430552B2 (en) 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US20080243765A1 (en) 2007-03-29 2008-10-02 Ariel Fuxman Method for generating nested mapping specifications in a schema mapping formalism
US7603368B2 (en) 2007-03-30 2009-10-13 Fmr Llc Mapping data on a network
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US8032404B2 (en) 2007-06-13 2011-10-04 International Business Machines Corporation Method and system for estimating financial benefits of packaged application service projects
US8694518B2 (en) 2007-06-14 2014-04-08 Colorquick, L.L.C. Method and apparatus for database mapping
US8429619B2 (en) 2007-07-03 2013-04-23 International Business Machines Corporation Executable high-level trace file generation system
US8103704B2 (en) 2007-07-31 2012-01-24 ePrentise, LLC Method for database consolidation and database separation
US7912264B2 (en) 2007-08-03 2011-03-22 Siemens Medical Solutions Usa, Inc. Multi-volume rendering of single mode data in medical diagnostic imaging
US9110967B2 (en) 2007-08-29 2015-08-18 International Business Machines Corporation Data lineage in data warehousing environments
US7860863B2 (en) 2007-09-05 2010-12-28 International Business Machines Corporation Optimization model for processing hierarchical data in stream systems
US8566296B2 (en) 2007-09-14 2013-10-22 Oracle International Corporation Support for compensation aware data types in relational database systems
US8954482B2 (en) 2007-09-20 2015-02-10 Ab Initio Technology Llc Managing data flows in graph-based computations
US8572551B2 (en) * 2007-12-20 2013-10-29 International Business Machines Corporation Difference log production for model merging
US7937415B2 (en) 2007-12-28 2011-05-03 Business Objects, S.A. Apparatus and method for stripping business intelligence documents of references to unused data objects
US9760612B2 (en) 2008-02-26 2017-09-12 Ab Initio Technology, Llc Graphic representations of data relationships
US20090234623A1 (en) 2008-03-12 2009-09-17 Schlumberger Technology Corporation Validating field data
JP4224126B1 (en) 2008-06-09 2009-02-12 パナソニック株式会社 Database management server device, database management system, database management method, and database management program
US20090319494A1 (en) 2008-06-20 2009-12-24 Microsoft Corporation Field mapping for data stream output
CN102138139B (en) * 2008-06-30 2014-12-17 起元技术有限责任公司 Data logging in graph-based computations
US8082228B2 (en) 2008-10-31 2011-12-20 Netapp, Inc. Remote office duplication
US9317624B2 (en) 2008-11-12 2016-04-19 Ab Initio Technology Llc Managing and automatically linking data objects
KR101738647B1 (en) 2008-12-02 2017-06-08 아브 이니티오 테크놀로지 엘엘시 Data maintenance system
AU2009322602B2 (en) * 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
CN105243422B (en) 2009-01-30 2018-07-06 起元技术有限责任公司 Data are handled using vector field
EP2221733A1 (en) 2009-02-17 2010-08-25 AMADEUS sas Method allowing validation in a production database of new entered data prior to their release
US20100293365A1 (en) * 2009-05-14 2010-11-18 Sony Computer Entertainment America Inc. Method and apparatus for system and software quick launch
CA2672336A1 (en) * 2009-07-15 2011-01-15 Ibm Canada Limited - Ibm Canada Limitee Tool for analyzing and resolving errors in a process server
US8935702B2 (en) 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
EP2478433A4 (en) * 2009-09-16 2016-09-21 Ab Initio Technology Llc Mapping dataset elements
US10445309B2 (en) 2009-11-13 2019-10-15 Ab Initio Technology Llc Managing record format information
US9805015B2 (en) 2009-12-16 2017-10-31 Teradata Us, Inc. System and method for enhanced user interactions with a grid
US8433733B2 (en) * 2010-01-13 2013-04-30 Vmware, Inc. Web application record-replay system and method
US8555265B2 (en) 2010-05-04 2013-10-08 Google Inc. Parallel processing of data
US8862563B2 (en) 2010-05-12 2014-10-14 Microsoft Corporation Getting dependency metadata using statement execution plans
US8583664B2 (en) 2010-05-26 2013-11-12 Microsoft Corporation Exposing metadata relationships through filter interplay
US8412744B2 (en) * 2010-06-23 2013-04-02 Microsoft Corporation Visualization of runtime analysis across dynamic boundaries
US8732143B2 (en) 2010-08-27 2014-05-20 Microsoft Corporation Reducing locking during database transactions
JP5902185B2 (en) 2010-10-25 2016-04-13 アビニシオ テクノロジー エルエルシー Management of dataset objects in data flow graphs representing computer programs
US8949166B2 (en) 2010-12-16 2015-02-03 International Business Machines Corporation Creating and processing a data rule for data quality
US9171283B2 (en) 2011-01-11 2015-10-27 International Business Machines Corporation Capturing and visualizing data lineage in content management system
KR101872748B1 (en) 2011-01-14 2018-06-29 아브 이니티오 테크놀로지 엘엘시 Managing changes to collections of data
US8718978B2 (en) * 2011-02-28 2014-05-06 Apple Inc. Performance logging framework
US20120310904A1 (en) 2011-06-01 2012-12-06 International Business Machine Corporation Data validation and service
US8924930B2 (en) * 2011-06-28 2014-12-30 Microsoft Corporation Virtual machine image lineage
US8893091B2 (en) * 2011-06-30 2014-11-18 International Business Machines Corporation Running an executable during a debug session
CN102279087B (en) * 2011-07-05 2014-03-26 苏州世力源科技有限公司 Safety chain protection mechanism and safety chain protection method for vertical impact test-bed
US9384193B2 (en) * 2011-07-15 2016-07-05 International Business Machines Corporation Use and enforcement of provenance and lineage constraints
US20130166515A1 (en) 2011-12-22 2013-06-27 David Kung Generating validation rules for a data report based on profiling the data report in a data processing tool
US8874435B2 (en) * 2012-04-17 2014-10-28 International Business Machines Corporation Automated glossary creation
EP2850539A4 (en) * 2012-05-14 2015-12-16 Nokia Technologies Oy Method and apparatus for determining context-aware similarity
US8516008B1 (en) 2012-05-18 2013-08-20 Splunk Inc. Flexible schema column store
US8954923B2 (en) * 2012-05-22 2015-02-10 Salesforce.Com, Inc. Mechanism for facilitating dynamic interaction with development applications and tools an on-demand services enviroment
CN102693310B (en) * 2012-05-28 2016-08-03 无锡成电科大科技发展有限公司 A kind of resource description framework querying method based on relational database and system
US9659042B2 (en) 2012-06-12 2017-05-23 Accenture Global Services Limited Data lineage tracking
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US9075860B2 (en) * 2012-10-18 2015-07-07 Oracle International Corporation Data lineage system
US9311221B2 (en) 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution
JP6264849B2 (en) * 2013-11-12 2018-01-24 富士通株式会社 Analysis method, analysis device, and analysis program
CN103745319B (en) * 2014-01-09 2017-01-04 北京大学 A kind of data provenance traceability system based on multi-state scientific workflow and method
KR102279859B1 (en) 2014-07-18 2021-07-20 아브 이니티오 테크놀로지 엘엘시 Managing parameter sets
CN104574306A (en) 2014-12-24 2015-04-29 掌赢信息科技(上海)有限公司 Face beautifying method for real-time video and electronic equipment
US9658848B2 (en) * 2015-05-29 2017-05-23 Bank Of America Corporation Stored procedure development and deployment
US10078579B1 (en) * 2015-06-26 2018-09-18 Amazon Technologies, Inc. Metrics-based analysis for testing a service
CN105118019B (en) 2015-09-11 2018-07-06 广东欧珀移动通信有限公司 A kind of image processing method and user terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050030139A (en) * 2003-09-23 2005-03-29 마이크로소프트 코포레이션 Region-based memory management for object-oriented programs
US20120284287A1 (en) * 2011-05-06 2012-11-08 Sap Ag Systems and Methods for Business Process Logging
KR20140023971A (en) * 2011-05-13 2014-02-27 베네핏포커스.컴, 인크. Registration and execution of highly concurrent processing tasks
US20130018873A1 (en) * 2011-07-15 2013-01-17 International Business Machines Corporation Versioning of metadata, including presentation of provenance and lineage for versioned metadata

Also Published As

Publication number Publication date
CA2955380C (en) 2021-03-16
EP3195114B1 (en) 2020-04-01
AU2015289441A1 (en) 2017-02-23
US11210086B2 (en) 2021-12-28
CA2955378A1 (en) 2016-01-21
JP6457622B2 (en) 2019-01-23
AU2019236625A1 (en) 2019-10-17
JP2017528797A (en) 2017-09-28
EP3742284A1 (en) 2020-11-25
US10175974B2 (en) 2019-01-08
CA2955378C (en) 2020-10-13
US20160019057A1 (en) 2016-01-21
US10318283B2 (en) 2019-06-11
CN106716352A (en) 2017-05-24
SG11201700384WA (en) 2017-02-27
CN106796513B (en) 2020-12-11
AU2015289441B2 (en) 2019-06-27
CN106716352B (en) 2020-04-28
KR20170031749A (en) 2017-03-21
EP3195114A1 (en) 2017-07-26
AU2015289442A1 (en) 2017-03-02
KR102292803B1 (en) 2021-08-23
JP6636009B2 (en) 2020-01-29
CN106796513A (en) 2017-05-31
JP2017525039A (en) 2017-08-31
US20190243639A1 (en) 2019-08-08
US20160019286A1 (en) 2016-01-21
AU2015289442B2 (en) 2019-07-11
WO2016011442A1 (en) 2016-01-21
EP3191962A1 (en) 2017-07-19
KR102279859B1 (en) 2021-07-20
WO2016011441A1 (en) 2016-01-21
AU2019236625B2 (en) 2020-11-26
EP3191962B1 (en) 2019-12-11
EP3690637A1 (en) 2020-08-05
SG11201700381XA (en) 2017-02-27
CA2955380A1 (en) 2016-01-21

Similar Documents

Publication Publication Date Title
US11210086B2 (en) Managing parameter sets
EP3783494A1 (en) Application testing
AU2021201363B2 (en) Format-specific data processing operations
US10996946B2 (en) Static and runtime analysis of computer program ecosystems

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