KR20190020801A - 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법 - Google Patents

분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법 Download PDF

Info

Publication number
KR20190020801A
KR20190020801A KR1020197002252A KR20197002252A KR20190020801A KR 20190020801 A KR20190020801 A KR 20190020801A KR 1020197002252 A KR1020197002252 A KR 1020197002252A KR 20197002252 A KR20197002252 A KR 20197002252A KR 20190020801 A KR20190020801 A KR 20190020801A
Authority
KR
South Korea
Prior art keywords
key
field
data set
operator
value pair
Prior art date
Application number
KR1020197002252A
Other languages
English (en)
Other versions
KR102172138B1 (ko
Inventor
지안웨이 장
운종 장
충 왕
야오 수
춘양 원
신 후앙
잔 송
관인 주
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20190020801A publication Critical patent/KR20190020801A/ko
Application granted granted Critical
Publication of KR102172138B1 publication Critical patent/KR102172138B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • 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/465Distributed object oriented 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/18File system types
    • G06F16/182Distributed 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/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 출원은 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법을 개시한다. 일 구현 방법에 의하면, 이러한 분산 컴퓨팅 프레임워크는 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정하기 위해 구성되는 파싱 유닛; 및 연산자를 제공하기 위해 구성되고, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하는 연산자 유닛을 포함한다. 이로 인하여, 임의의 연산자가 수신하거나 반환한 파라미터의 유형은 모두 필드 타입 분산 데이터 집합일 수가 있게 되고, 임의의 연산자는 모두 필드 타입 분산 데이터 집합에서 필드에 대응하는 데이터에 대하여 작업할 수 있게 된다. 이로써, 임의의 연산자는 한 번의 구현을 하고 나서 연산자의 재사용이 가능하게 된다. 분산 컴퓨팅 태스크를 더 간단한 표현식으로 나타내어 표현함으로써, 사용자가 분산 컴퓨팅 프레임워크를 이용하여 분산 컴퓨팅 프로그램을 작성하는 복잡성을 간소화하였고, 나아가, 표현식을 통하여 분산 컴퓨팅에 관련되는 연산자를 확정할 수 있어서 분산 컴퓨팅 과정을 최적화할 수 있다.

Description

분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법
본 출원은 컴퓨터 분야에 관한 것으로, 구체적으로 분산 분야에 관한 것이고, 특히 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법에 관한 것이다.
분산 컴퓨팅 프로그램 개발에서 사용자는 분산 컴퓨팅 프레임워크로부터 제공된 인터페이스, 예를 들면 분산 컴퓨팅 프레임워크 Hive의 SQL-like 인터페이스, 분산 컴퓨팅 프레임워크 Spark의 DataFrame 인터페이스를 이용하여, 분산 컴퓨팅 프로그램을 작성할 수 있다.
그러나 현재 분산 프레임워크가 제공하는 인터페이스는, 일 측면으로는 연산자의 재사용을 실현할 수 없다. DataFrame 인터페이스를 예로 들어 설명하면, max/min/count 등의 UDF 제공이 필요하고, 이러한 UDF는 모두 스탠드얼론 데이터 집합을 프로세싱하는 것으로, 기존의 sum/count 등 작업은 재사용할 수 없다. 필드에서 가능한 작업도 극히 제한적이고, 이미 사용자에 의하여 구현된 연산자는 일정 필드에서의 사용이 필요할지라도 재사용될 수 없다. 다른 측면으로, 일부 분산 컴퓨팅에서 흔히 보는 분산 컴퓨팅 태스크에 대한 설명에 불편이 따른다. SQL-like 인터페이스를 예로 들면, SQL-like 인터페이스는 중첩된 데이터 집합에 대한 컨셉이 결여되므로, 데이터를 어느 한 필드에 따라 그룹화하고 각각의 그룹으로부터 어느 한 필드에서의 제일 큰 n개의 기록을 추출하는 것과 같은 분산 컴퓨팅 태스크를 프로세싱할 시, 표현식 select field_1, field_2 from table_1 group by field1 order by field_2 desc limit 10을 사용하게 되면 사실은 전역에서 10개의 기록을 추출하는 것이지 각각의 그룹에서 10개의 기록을 추출하는 것이 아니다. 표현식 select field_1, field_2 from table_1 group by field_1 limit 10 order by field_2 desc를 사용하게 되면 이러한 표현식은 SQL 문법에 맞지 않으므로 분산 컴퓨팅 태스크를 설명할 수 없게 된다.
본 출원은 상기 배경기술 부분에 존재하는 기술적 문제를 해결하기 위한 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법을 제공하고자 한다.
첫 번째 측면으로, 본 출원은 분산 컴퓨팅 프레임워크를 제공하고, 이러한 분산 컴퓨팅 프레임워크에는 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정하기 위해 구성되고, 여기서 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리키는 파싱 유닛; 및 연산자를 제공하기 위해 구성되고, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고 여기서 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고 요소는 복수의 키-값 쌍을 포함하고 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터인 연산자 유닛이 포함된다.
두 번째 측면으로, 본 출원은 분산 컴퓨팅 방법을 제공하고, 이러한 방법은 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정하되, 여기서 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리키는 단계; 연산자의 입력 파라미터를 생성하되, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하며, 여기서 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고 요소는 복수의 키-값 쌍을 포함하고 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터인 단계; 및 연산자가 입력 파라미터에 근거하여 분산 컴퓨팅을 수행하는 단계를 포함한다.
본 출원에서 제공하는 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법은, 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정하기 위해 구성되는 파싱 유닛 및 연산자를 제공하고 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하는 연산자 유닛을 통하여, 임의의 연산자가 수신하거나 반환한 파라미터의 유형은 모두 필드 타입 분산 데이터 집합일 수 있고 임의의 연산자는 모두 필드 타입 분산 데이터 집합에서 필드에 대응하는 데이터에 대하여 작업할 수 있도록 구현하였다. 이로써 임의의 연산자는 한 번의 구현을 하고 나서 연산자의 재사용이 가능하게 된다. 분산 컴퓨팅 태스크를 더 간단한 표현식으로 나타내어 표현함으로써 사용자가 분산 컴퓨팅 프레임워크를 이용하여 분산 컴퓨팅 프로그램을 작성하는 복잡성을 간소화하였고, 나아가, 표현식을 통하여 분산 컴퓨팅에 관련되는 연산자를 확정할 수 있어서 분산 컴퓨팅 과정을 최적화할 수 있다.
이하 첨부 도면과 결부되어 제시되는 실시예에 대한 상세한 설명은 본원의 기타 특징, 목적 및 장점을 더 명확하게 보여준다.
도1은 본원의 일 실시예에 따른 분산 컴퓨팅 프레임워크의 구조 개략도이다.
도2는 본원의 일 실시예에 따른 분산 컴퓨팅 방법의 흐름도이다.
도3은 본원의 실시예에 따른 분산 컴퓨팅 프레임워크를 구현하기에 적합한 컴퓨터 시스템의 구조 개략도이다.
이하 첨부된 도면 및 실시예와 결부하여 본원에 대하여 더 상세히 설명하도록 한다. 여기 설명되는 구체적인 실시예는 단지 관련 발명에 대한 해석을 위한 것으로 본 발명에 대하여 한정하려는 의도가 아님을 이해하여야 한다. 또한, 설명의 편의를 위하여 첨부 도면에는 관련 발명에 관한 부분만 도시함을 밝히고자 한다.
본원의 실시예 및 실시예의 특징은 서로 모순되지 않는 한 상호 조합되어 실시될 수 있음을 밝히고자 한다. 이하, 첨부된 도면과 실시예를 참조하여 본원에 대하여 상세히 설명하도록 한다.
도1은 본원의 일 실시예에 따른 분산 컴퓨팅 프레임워크의 구조 개략도를 도시한 것이다. 분산 컴퓨팅 프레임워크(100)는 파싱 유닛(101) 및 연산자 유닛(102)을 포함한다. 파싱 유닛(101)은 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정하기 위해 구성되고, 여기서 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리키며; 연산자 유닛(102)은 연산자를 제공하기 위해 구성되고, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터이다.
본 실시예에서, 분산 컴퓨팅 태스크는 표현식을 이용하여 표현할 수 있다. 분산 컴퓨팅 태스크의 표현식은 각각의 연산자에 대응하는 연산자 키워드 및 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리키는 필드에 대응하는 필드 키워드를 포함할 수 있다. 파싱 유닛은 표현식 중의 연산자 키워드 및 필드 키워드를 파싱하고 연산자 및 연산자에 대응하는 필드를 확정할 수 있다.
웹사이트 클릭 수 데이터가 분산 컴퓨팅 태스크에 필요한 데이터인 경우를 예로 들어 설명하면, 웹사이트 클릭 수 데이터는 웹사이트 데이터와 클릭 수 데이터 두 부분을 포함한다. 연산자는 웹사이트 데이터와 클릭 수 데이터에 작용할 수 있다. 분산 컴퓨팅 태스크의 표현식은 연산자 키워드 및 필드 키워드를 포함할 수 있다. 파싱 유닛은 분산 컴퓨팅 태스크의 표현식 중의 연산자 키워드 및 필드 키워드에 대한 파싱을 통하여 연산자 및 연산자에 대응하는 필드, 즉 웹사이트 필드 및 클릭 수 필드를 확정할 수 있다.
본 실시예에서, 분산 컴퓨팅 프레임워크는 필드 타입 분산 데이터 집합 SchemaPCollection을 제공할 수 있다. 데이터 구조 PCollection은 분산 데이터 집합을 나타낼 수 있다. SchemaPCollection 데이터 구조는 구조화된, 필드를 갖춘 PCollection을 표시할 수 있다. SchemaPCollection 데이터 구조는 각각의 요소가 하나의 사전이 되는 PCollection에 상당할 수 있다. 연산자 유닛이 제공하는 각각의 연산자의 입력 파라미터는 SchemaPCollection 및 필드를 포함할 수 있고, 반환 값의 유형은 SchemaPCollection일 수도 있다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 연산자 유닛은 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 분산 데이터 집합을 필드 타입 분산 데이터 집합으로 전환하기 위해 구성되는 필드 타입 분산 데이터 집합 생성 연산자를 포함하고, 필드 타입 분산 데이터 집합 중의 요소는 복수의 키-값 쌍을 포함하고, 여기서 각각의 키-값 쌍의 키는 하나의 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터이다.
웹사이트 클릭 수 데이터가 분산 컴퓨팅 태스크에 필요한 데이터인 경우를 예로 들어 설명하면, 각 조각의 데이터는 복수의 웹사이트와 클릭 수 두 부분을 포함한다. 분산 컴퓨팅 태스크에 필요한 데이터는 PCollection일 수 있다. 필드 타입 분산 데이터 집합 생성 연산자는 웹사이트 필드 및 클릭 수 필드를 포함하는 필드 파라미터를 수신하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection을 생성할 수 있다. 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection 중의 각각의 요소가 하나의 사전이 될수 있고, 이러한 사전은 복수의 키-값 쌍으로 이루어지고, 키는 웹사이트 집합, 클릭 수일 수 있다. 키 웹사이트 집합에 대응하는 값은 복수의 웹사이트이고, 키 클릭 수에 대응하는 값은 클릭 수 데이터이다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 연산자 유닛은, 필드 타입 분산 데이터 집합 중의 각각의 요소 중의 부동한 키를 가진 키-값 쌍을 조합하여 각각의 요소가 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻기 위해 구성되는 스플라이스 연산자를 포함한다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 연산자 유닛은, 필드 타입 분산 데이터 집합 중의 요소 중의 그룹화 필드가 가리키는 키에 대응하는 값에 근거하여 필드 타입 분산 데이터 집합 중의 요소를 그룹화하여 복수의 그룹화된 필드 타입 분산 데이터 집합을 얻고 여기서 각각의 그룹화 필드가 가리키는 키에 대응하는 값은 하나의 그룹화된 필드 타입 분산 데이터 집합에 대응하고 그룹화된 필드 타입 분산 데이터 집합은 그룹화 필드가 가리키는 키에 대응하는 값을 포함하는 요소를 적어도 하나 포함하는 것을 구현하기 위해 구성된 그룹화 연산자를 포함한다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 연산자 유닛은, 순회 필드에 근거하여 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하기 위해 구성되는 순회 연산자를 포함한다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 집계 연산자(Aggregation Operator)는 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하여 얻은 결과를 집계를 하기 위해 구성된 것이다.
본 실시예에서, 연산자 유닛은 스플라이스 연산자 select연산자 및 집계 연산자 agg연산자를 포함할 수 있다. 분산 컴퓨팅 프레임워크는 사용자한테 select연산자 및 agg연산자에 대응하는 select 인터페이스 및 agg 인터페이스를 제공할 수 있다. select 인터페이스 및 agg 인터페이스 외에 추가로 보조 인터페이스, 예를 들면 join 인터페이스, distinct 인터페이스 및 sort_by 인터페이스를 패키징할 수가 있다.
본 실시예에서는, select 인터페이스 및 agg 인터페이스를 통하여 SchemaPCollection에 대하여 프로세싱할 수 있다. 이로써, 분산 컴퓨팅 프레임워크에 기존하고 PCollection에 작용하는 여러 가지 인터페이스를 재사용할 수 있고, select 인터페이스 및 agg 인터페이스는 PCollection에 작용하는 임의의 기존하는 여러 가지 인터페이스와 조합하여 여러 가지 분산 컴퓨팅 태스크를 수행할 수 있는 작업을 구성하고 완전한 기능을 구현할 수 있다.
이하 코드와 결부하여 본 출원의 분산 컴퓨팅 프레임워크로부터 제공되는 연산자의 작용에 대하여 설명한다.
분산 컴퓨팅 태스크에 필요한 데이터는 이하 웹사이트 클릭 수 데이터인 ('alibaba.com, baidu.com, tencent.com', 1), ('baidu.com, tencent.com', 2), ('alibaba.com, tencent.com', 3), ('alibaba.com, baidu.com', 2), ('alibaba.com, jd.com', 1)이다. 분산 컴퓨팅 태스크는 웹사이트에 따라 그룹화를 수행하고 각각의 웹사이트의 클릭 수의 총 합계, 클릭 수의 최대치 및 클릭 수의 평균치를 산출하는 것이다.
상기 분산 컴퓨팅 태스크의 수행에 사용될 수 있는 일부 코드는 다음과 같다.
p = base.Pipeline.create('local')
analytics = p.parallelize([('alibaba.com, baidu.com, tencent.com', 1), ('baidu.com, tencent.com', 2), ('alibaba.com, tencent.com', 3), ('alibaba.com, baidu.com', 2), ('alibaba.com, jd.com', 1)])\
.apply(schema.from_tuple, ['websites', 'clicknum'])
.apply(schema.select, lambda cols: {
'website': cols['websites'].flat_map(lambda line: line.split(', ')),
'clicknum': cols['clicknum']
})
.apply(schema.group_by, ['website'])\
.apply_values(schema.agg, lambda cols: {
'max_click_num': cols['clicknum'].max(),
'sum_click_num': cols['clicknum'].flat_map(lambda x: x['x']),
'avg_click_num': cols['clicknum'].sum() / cols['clicknum'].count()
})
본 실시예에서, 각각의 한줄 코드는 하나의 표현식에 상당할 수 있고, 사용자는 표현식의 형식으로 분산 컴퓨팅 태스크의 코드를 작성할 수 있다. 분산 컴퓨팅 프레임워크는 하나의 apply문법 설탕을 제공할 수 있고, apply문법 설탕의 의미는 다음과 같을 수 있다.
.apply(f, *args)는 f(pcollection, *args)에 등가된다.
분산 컴퓨팅 태스크에 필요한 데이터인 ('alibaba.com, baidu.com, tencent.com', 1), ('baidu.com, tencent.com', 2), ('alibaba.com, tencent.com', 3), ('alibaba.com, baidu.com', 2) 및 ('alibaba.com, jd.com', 1)는 하나의 분산 데이터 집합 PCollection이다.
상기 코드 중의 .apply(schema.from_tuple, ['websites', 'clicknum'])에 대하여, 파싱 유닛은 연산자 키워드 from_tuple에 근거하여 필드 타입 분산 데이터 집합 생성 연산자를 확정할 수 있다. 필드 websites 및 clicknum은 필드 키워드 websites 및 clicknum을 통하여 확정될 수 있다. 필드 타입 분산 데이터 집합 생성 연산자는 필드 websites 및 필드clicknum에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 PCollection을 필드 websites 및 clicknum에 따라서 필드 타입 분산 데이터 집합 SchemaPCollection으로 전환할 수 있다. SchemaPCollection에는 복수의 요소가 포함되고 각각의 요소는 복수의 키-값 쌍을 포함하고, 여기서 각각의 키-값 쌍의 키는 하나의 필드이고 값은 PCollection에서 필드에 대응하는 데이터이다. 전환으로 얻은 SchemaPCollection은 5개의 요소를 포함하고 각각의 요소는 사전일 수 있다. 사전에는 키 websites와 websites에 대응하는 값으로 구성된 키-값 쌍 및 키 clicknum과 clicknum에 대응하는 값으로 구성된 키-값 쌍이 포함된다.
첫 번째 요소에는 키-값 쌍websites-alibaba.com, baidu.com, tencent.com 및 키-값 쌍clicknum-1이 포함된다.
두 번째 요소에는 키-값 쌍websites-baidu.com, tencent.com 및 키-값 쌍clicknum-2가 포함된다.
세 번째 요소에는 키-값 쌍websites-alibaba.com, tencent.com 및 키-값 쌍clicknum-3가 포함된다.
네 번째 요소에는 키-값 쌍websites-alibaba.com, baidu.com 및 키-값 쌍clicknum-2가 포함된다.
다섯 번째 요소에는 키-값 쌍websites-alibaba.com, jd.com 및 키-값 쌍clicknum-1이 포함된다.
상기 코드 중의 .apply(schema.select, lambda cols: {'website': cols['websites'].flat_map(lambda line: line.split(', ')), 'clicknum': cols['clicknum']})에 대하여, 파싱 유닛은 연산자 키워드 select에 근거하여 스플라이스 연산자를 확정할 수 있다. 필드 website 및 clicknum은 필드 키워드에 근거하여 확정될 수 있다.
SchemaPCollection 에서의 각각의 요소 중의 키 websites에 대하여, flat_map연산자를 적용하여 키 websites에 대응하는 값을 쉼표에 따라 분할하여 키 website 및 키 website에 대응하는 값으로 구성된 키-값 쌍을 얻는다.
키 websites에 대응하는 값을 쉼표에 따라 분할한 후, SchemaPCollection 중의 요소는 키 website와 키 website에 대응하는 값으로 구성된 키-값 쌍, 그리고 키 clicknum과 키 clicknum에 대응하는 값으로 구성된 키-값 쌍을 포함하게 된다.
첫 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-baidu.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-1이다.
두 번째 요소는 키-값 쌍website-baidu.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-2이다.
세 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-3이다.
네 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-baidu.com, 키-값 쌍clicknum-2이다.
다섯 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-jd.com, 키-값 쌍clicknum-1이다.
본 실시예에서, 스플라이스 연산자는 필드 타입 분산 데이터 집합 중의 각각의 요소 중 부동한 키를 가진 키-값 쌍을 조합하여 각각의 요소가 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻는다.
스플라이스 연산자는 각각의 요소 중의 키 website에 대응하는 키-값 쌍과 키 clicknum에 대응하는 키-값 쌍을 조합하여 각각의 요소가 하나의 website에 대응하는 키-값 쌍 및 하나의 키 clicknum에 대응하는 키-값 쌍을 포함하는 SchemaPCollection을 얻을 수 있다.
각각의 요소 중의 키 website에 대응하는 키-값 쌍과 키 clicknum에 대응하는 키-값 쌍을 조합한 후, SchemaPCollection에서의
첫 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이다.
두 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1이다.
세 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1이다.
네 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
다섯 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2이다.
여섯 번째 요소가 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3이다.
일곱 번째 요소가 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3이다.
여덟 번째 요소가 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2이다.
아홉 번째 요소가 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
열 번째 요소가 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이다.
열한 번째 요소가 키-값 쌍website-jd.com과 키-값 쌍clicknum-1이다.
상기 코드 중의 .apply(schema.group_by, ['website'])에 대하여, 파싱 유닛은 그룹화 연산자 키워드 group_by에 근거하여 그룹화 연산자를 확정할 수 있다. 필드 website는 필드 키워드 website에 근거하여 확정될수 있다.
본 실시예에서, 그룹화 연산자는 그룹화 필드 website가 가리키는 키 website에 대응하는 값에 근거하여 SchemaPCollection 중의 요소를 그룹화하여 복수의 그룹화된 SchemaPCollection을 얻을 수 있고, 각각의 그룹화 필드가 가리키는 키 website에 대응하는 값은 하나의 그룹화된 SchemaPCollection에 대응하고, 그룹화된 SchemaPCollection은 그룹화 필드가 가리키는 키 website에 대응하는 값을 포함하는 요소를 적어도 하나 포함한다.
그룹화 연산자는 키 website에 대응하는 값이 동일한 요소를 집계하여 키 website에 대응하는 값이 동일한 키-값 쌍을 복수 개 포함하는 그룹화된 SchemaPCollection을 얻을 수 있다.
첫 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1, 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2, 그리고 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2가 포함된다.
두 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1, 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2, 그리고 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3가 포함된다.
세 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2, 그리고 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이 포함된다.
네 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-jd.com과 키-값 쌍clicknum-1이 포함된다.
상기 코드 중의 apply_values(schema.agg, lambda cols: { 'max_click_num': cols['clicknum'].max(), 'sum_click_num':cols['clicknum'].flat_map(lambda x: x['x']), 'avg_click_num':cols['clicknum'].sum()/cols['clicknum'].count()})에 대하여, 파싱 유닛은 순회 연산자 키워드 apply_values에 근거하여 순회 연산자를 확정할 수 있다. 필드clicknum은 필드 키워드 clicknum에 근거하여 확정될 수 있다. 순회 연산자는 순회 필드clicknum에 근거하여 각각의 그룹화된 SchemaPCollection중의 모든 요소 중의 키 clicknum에 대응하는 값에 대하여 각각max, sum 및 count작업을 수행할수 있다. 이로써, baidu.com, tencent.com, alibaba.com, jd.com의 클릭 수 최대치, 클릭 수 총 합계 및 클릭 수 평균치를 각각 산출할 수 있다.
파싱 유닛은 집계 연산자 키워드 agg에 근거하여 집계 연산자를 확정할 수 있다. 집계 연산자는 각각의 그룹화된 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하여 얻은 결과를 집계할 수 있다. 집계 연산자는 각각의 그룹화된 SchemaPCollection중의 모든 요소 중의 키 clicknum에 대응하는 값에 대하여 max, sum, count작업을 수행하여 얻은baidu.com, tencent.com, alibaba.com, jd.com의 클릭 수 최대치, 클릭 수 총 합계 및 클릭 수 평균치를 집계할 수 있다.
본 출원에서 임의의 연산자가 수신하거나 반환한 파라미터의 유형은 모두 필드 타입 분산 데이터 집합일 수 있고, 임의의 연산자는 모두 필드 타입 분산 데이터 집합에서 필드에 대응하는 데이터에 대하여 작업할 수 있다. 이로써, 임의의 연산자는 모두 한번 구현되면 연산자의 재사용이 가능하게 된다. 분산 컴퓨팅 태스크를 더 간단한 표현식으로 나타내어 표현함으로써, 사용자가 분산 컴퓨팅 프레임워크를 이용하여 분산 컴퓨팅 프로그램을 작성하는 복잡성을 간소화하였고, 나아가, 표현식을 통하여 분산 컴퓨팅에 관련되는 연산자를 확정할 수 있어서 분산 컴퓨팅 과정을 최적화할 수 있다.
도2는 본원의 일 실시예에 따른 분산 컴퓨팅 방법의 절차(200)를 도시한 것이다. 이러한 방법은 다음과 같은 단계를 포함한다.
단계(201), 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 연산자에 대응하는 필드를 확정한다.
본 실시예에서, 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리킨다. 분산 컴퓨팅 태스크는 표현식을 이용하여 표현할 수 있다. 웹사이트 클릭 수 데이터가 분산 컴퓨팅 태스크에 필요한 데이터인 경우를 예로 들어 설명하면, 웹사이트 클릭 수 데이터는 웹사이트 데이터와 클릭 수 데이터 두 부분을 포함한다. 연산자는 웹사이트 데이터와 클릭 수 데이터에 작용할 수 있다. 분산 컴퓨팅 태스크의 표현식은 연산자 키워드 및 필드 키워드를 포함할 수 있다. 파싱 유닛은 분산 컴퓨팅 태스크의 표현식 중의 연산자 키워드 및 필드 키워드에 대한 파싱을 통하여 연산자 및 연산자에 대응하는 필드, 즉 웹사이트 필드 및 클릭 수 필드를 확정할 수 있다.
단계(202), 연산자의 입력 파라미터를 생성한다.
본 실시예에서, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터이다.
본 실시예에서, 분산 컴퓨팅 프레임워크는 필드 타입 분산 데이터 집합 SchemaPCollection을 제공할 수 있다. 데이터 구조 PCollection은 분산 데이터 집합을 나타낼 수 있다. SchemaPCollection 데이터 구조는 구조화된, 필드를 갖춘 PCollection을 표시할 수 있다. SchemaPCollection 데이터 구조는 각각의 요소가 하나의 사전이 되는 PCollection에 상당할 수 있다. 각각의 연산자의 입력 파라미터는 SchemaPCollection 및 필드를 포함할 수 있고, 반환 값의 유형은 SchemaPCollection일 수도 있다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 분산 데이터 집합을 필드 타입 분산 데이터 집합으로 전환하고, 필드 타입 분산 데이터 집합 중의 요소는 복수의 키-값 쌍을 포함하고, 여기서, 각각의 키-값 쌍의 키는 하나의 필드이고 값은 분산 데이터 집합에서 필드에 대응하는 데이터인 단계도 포함한다.
웹사이트 클릭 수 데이터가 분산 컴퓨팅 태스크에 필요한 데이터인 경우를 예로 들어 설명하면, 각 조각의 데이터는 복수의 웹사이트와 클릭 수 두 부분을 포함한다. 분산 컴퓨팅 태스크에 필요한 데이터는 PCollection일 수 있다. 웹사이트 필드 및 클릭 수 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection을 생성할 수 있다. 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection 중의 각각의 요소가 하나의 사전이 될수 있고, 이러한 사전은 복수의 키-값 쌍으로 이루어지고, 키는 웹사이트 집합, 클릭 수일 수 있다. 키 웹사이트 집합에 대응하는 값은 복수의 웹사이트이고, 키 클릭 수에 대응하는 값은 클릭 수 데이터이다.
예하면, 분산 컴퓨팅 태스크에 필요한 데이터는 이하 웹사이트의 클릭 수 데이터인 ('alibaba.com, baidu.com, tencent.com', 1), ('baidu.com, tencent.com', 2), ('alibaba.com, tencent.com', 3), ('alibaba.com, baidu.com', 2), ('alibaba.com, jd.com', 1)이다. 분산 컴퓨팅 태스크에 필요한 데이터는 하나의 분산 데이터 집합 PCollection이다.
본 실시예에서, 필드 websites 및 필드clicknum에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 PCollection을 필드 websites 및 clicknum에 따라서 필드 타입 분산 데이터 집합 SchemaPCollection으로 전환할 수 있다. SchemaPCollection에는 복수의 요소가 포함되고 각각의 요소는 복수의 키-값 쌍을 포함하고, 여기서, 각각의 키-값 쌍의 키는 하나의 필드이고 값은 PCollection에서 필드에 대응하는 데이터이다.
SchemaPCollection은 5개 요소를 포함하고 각각의 요소는 사전일 수 있다. 사전에는 키 websites와 websites에 대응하는 값으로 구성된 키-값 쌍 및 키 clicknum과 clicknum에 대응하는 값으로 구성된 키-값 쌍이 포함된다.
첫 번째 요소에는 키-값 쌍websites-alibaba.com, baidu.com, tencent.com및 키-값 쌍clicknum-1이 포함된다.
두 번째 요소에는 키-값 쌍websites-baidu.com, tencent.com 및 키-값 쌍clicknum-2가 포함된다.
세 번째 요소에는 키-값 쌍websites-alibaba.com, tencent.com및 키-값 쌍clicknum-3가 포함된다.
네 번째 요소에는 키-값 쌍websites-alibaba.com, baidu.com 및 키-값 쌍clicknum-2가 포함된다.
다섯 번째 요소에는 키-값 쌍websites-alibaba.com, jd.com 및 키-값 쌍clicknum-1이 포함된다.
단계(203), 연산자가 입력 파라미터에 근거하여 분산 컴퓨팅을 수행한다.
본 실시예에서, 단계(202)을 통하여 연산자의 입력 파라미터를 생성한 후, 연산자가 입력 파라미터SchemaPCollection 및 필드에 근거하여 분산 컴퓨팅을 수행할 수 있다.
본 실시예에서, 하나의 apply문법 설탕을 제공할 수 있고, apply문법 설탕의 의미는 다음과 같을 수 있다.
.apply(f, *args)는 f(pcollection, *args)에 등가된다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 필드 타입 분산 데이터 집합 중의 각각의 요소 중의 부동한 키를 가진 키-값 쌍을 조합하여 각각의 요소가 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻는 단계를 더 포함한다.
본 실시예에서, 필드 타입 분산 데이터 집합 중의 각각의 요소 중의 부동한 키를 가진 키-값 쌍을 조합하여 각각의 요소가 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻는다.
웹사이트 클릭 수 데이터가 분산 컴퓨팅 태스크에 필요한 데이터인 경우를 예로 들어 설명하면, 각 조각의 데이터는 복수의 웹사이트와 클릭 수 두 부분을 포함한다. 분산 컴퓨팅 태스크에 필요한 데이터는 PCollection일 수 있다. 웹사이트 필드 및 클릭 수 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection을 생성할 수 있다. 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 SchemaPCollection 중의 각각의 요소는 하나의 사전이 될수 있고, 이러한 사전은 복수의 키-값 쌍으로 이루어지고, 키는 웹사이트 집합 및 클릭 수일 수 있다. 키 웹사이트 집합에 대응하는 값은 복수의 웹사이트이고, 키 클릭 수에 대응하는 값은 클릭 수 데이터이다.
예하면, SchemaPCollection중의 요소는 키 website와 키 website에 대응하는 값으로 구성된 키-값 쌍, 그리고 키 clicknum과 키 clicknum에 대응하는 값으로 구성된 키-값 쌍을 포함한다.
첫 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-baidu.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-1이다.
두 번째 요소는 키-값 쌍website-baidu.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-2이다.
세 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-tencent.com, 키-값 쌍clicknum-3이다.
네 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-baidu.com, 키-값 쌍clicknum-2이다.
다섯 번째 요소는 키-값 쌍website-alibaba.com, 키-값 쌍website-jd.com, 키-값 쌍clicknum-1이다.
각각의 요소 중의 키 website에 대응하는 키-값 쌍과 키 clicknum에 대응하는 키-값 쌍을 조합하여 각각의 요소가 하나의 website에 대응하는 키-값 쌍 및 하나의 키 clicknum에 대응하는 키-값 쌍을 포함하는 SchemaPCollection을 얻을 수 있다.
각각의 요소 중의 키 website에 대응하는 키-값 쌍과 키 clicknum에 대응하는 키-값 쌍을 조합한 후, SchemaPCollection에서 첫 번째 요소는 키-값 쌍website-alibaba.com 및 키-값 쌍clicknum-1이다.
두 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1이다.
세 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1이다.
네 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
다섯 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2이다.
여섯 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3이다.
일곱 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3이다.
여덟 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2이다.
아홉 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
열 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이다.
열한 번째 요소는 키-값 쌍website-jd.com과 키-값 쌍clicknum-1이다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 필드 타입 분산 데이터 집합 중의 요소 중의 그룹화 필드가 가리키는 키에 대응하는 값에 근거하여 필드 타입 분산 데이터 집합 중의 요소를 그룹화하여 복수의 그룹화된 필드 타입 분산 데이터 집합을 얻고, 여기서, 각각의 그룹화 필드가 가리키는 키에 대응하는 값은 하나의 그룹화된 필드 타입 분산 데이터 집합에 대응하고, 그룹화된 필드 타입 분산 데이터 집합은 그룹화 필드가 가리키는 키에 대응하는 값을 포함하는 요소를 적어도 하나 포함하는 단계도 포함한다.
예하면, SchemaPCollection에서 첫 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이다.
두 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1이다.
세 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1이다.
네 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
다섯 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2이다.
여섯 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3이다.
일곱 번째 요소는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3이다.
여덟 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2이다.
아홉 번째 요소는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2이다.
열 번째 요소는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이다.
열한 번째 요소는 키-값 쌍website-jd.com과 키-값 쌍clicknum-1이다.
그룹화 필드 website에 근거하여 요소 중의 website가 가리키는 키 website에 대응하는 값에 따라 SchemaPCollection중의 요소를 그룹화하여 복수의 그룹화된 SchemaPCollection을 얻을 수 있고, 각각의 그룹화 필드가 가리키는 키 website에 대응하는 값은 하나의 그룹화된 SchemaPCollection에 대응하고, 그룹화된 SchemaPCollection은 그룹화 필드가 가리키는 키 website에 대응하는 값을 포함하는 요소를 적어도 하나 포함한다.
SchemaPCollection 중에서 키 website에 대응하는 값이 동일한 요소를 집계하여 키 website에 대응하는 값이 동일한 키-값 쌍을 복수 개 포함하는 그룹화된 SchemaPCollection을 얻을 수 있다.
첫 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1, 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2 및 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2가 포함된다.
두 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1, 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2 및 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3가 포함된다.
세 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2 및 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이 포함된다.
네 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-jd.com 및 키-값 쌍clicknum-1이 포함된다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 순회 필드에 근거하여 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하는 단계도 포함한다.
그룹화 필드 website에 근거하여 요소 중의 website가 가리키는 키 website에 대응하는 값에 따라 SchemaPCollection중의 요소를 그룹화하여 복수의 그룹화된 SchemaPCollection을 얻는 과정을 예로 들면, 첫 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-baidu.com과 키-값 쌍clicknum-1, 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2 및 키-값 쌍website-baidu.com과 키-값 쌍clicknum-2가 포함된다.
두 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-tencent.com과 키-값 쌍clicknum-1, 키-값 쌍website-tencent.com과 키-값 쌍clicknum-2 및 키-값 쌍website-tencent.com과 키-값 쌍clicknum-3가 포함된다.
세 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-3, 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-2 및 키-값 쌍website-alibaba.com과 키-값 쌍clicknum-1이 포함된다.
네 번째 그룹화된 SchemaPCollection에는 키-값 쌍website-jd.com과 키-값 쌍clicknum-1이 포함된다.
순회 필드clicknum에 근거하여 각각의 그룹화된 SchemaPCollection중의 모든 요소 중의 키 clicknum에 대응하는 값에 대하여 각각 max, sum, count작업을 수행함으로써, baidu.com, tencent.com, alibaba.com, jd.com의 클릭 수 최대치, 클릭 수 총 합계 및 클릭 수 평균치를 각각 산출할 수 있다.
본 실시예의 일부 선택 가능한 구현방법에 있어서, 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하여 얻은 결과를 집계하는 단계도 포함한다.
그룹화된 SchemaPCollection을 예로 들면, 각각의 그룹화된 SchemaPCollection중의 모든 요소 중의 키 clicknum에 대응하는 값에 대하여 max, sum, count작업을 수행하여 얻은 baidu.com, tencent.com, alibaba.com, jd.com의 클릭 수 최대치, 클릭 수 총 합계 및 클릭 수 평균치를 집계할 수 있다. 출력 결과는 다음과 같은 형식으로 표현할 수 있다.
[{'sum_click_num': 7, 'website': 'alibaba.com', 'avg_click_num': 1, 'max_click_num': 3},
{'sum_click_num': 6, 'website': 'tencent.com', 'avg_click_num': 2, 'max_click_num': 3},
{'sum_click_num': 5, 'website': 'baidu.com', 'avg_click_num': 1, 'max_click_num': 2},
{'sum_click_num': 1, 'website': 'jd.com', 'avg_click_num': 1, 'max_click_num': 1}].
본 출원에서 임의의 연산자가 수신하거나 반환한 파라미터의 유형은 모두 필드 타입 분산 데이터 집합일 수 있고, 임의의 연산자는 모두 필드 타입 분산 데이터 집합에서 필드에 대응하는 데이터에 대하여 작업할 수 있다. 이로써, 임의의 연산자는 모두 한번 구현되면 연산자의 재사용이 가능하게 된다. 분산 컴퓨팅 태스크를 더 간단한 표현식으로 나타내어 표현함으로써, 사용자가 분산 컴퓨팅 프레임워크를 이용하여 분산 컴퓨팅 프로그램을 작성하는 복잡성을 간소화하였고, 나아가, 표현식을 통하여 분산 컴퓨팅에 관련되는 연산자를 확정할 수 있어서 분산 컴퓨팅 과정을 최적화할 수 있다.
도3은 본원의 실시예에 따른 분산 컴퓨팅 프레임워크를 구현하기에 적합한 컴퓨터 시스템(300)의 구조 개략도를 도시한 것이다.
도3에서, 컴퓨터 시스템(300)은 중앙 처리 장치(CPU)(301)를 포함하고, 이는 리드 온리 메모리(ROM)(302)에 저장된 프로그램 또는 저장 파트(308)로부터 랜덤 엑세스 메모리(RAM)(303)에 로딩된 프로그램에 근거하여 여러 가지 적당한 동작 및 처리를 수행할 수 있다. RAM(303)에는 시스템(300) 작업에 필요한 여러 가지 프로그램 및 데이터도 저장되어 있다. CPU(301), ROM(302) 및 RAM(303)은 버스(304)를 통하여 서로 연결된다. 입력/출력(I/O) 인터페이스(305)도 버스(304)에 연결된다.
I/O 인터페이스(305)에, 다음과 같은 부재들을, 즉 키보드, 마우스 등을 포함하는 입력 파트(306); 음극선관(CRT) 및 액정 디스플레이(LCD) 등, 및 스피커 등을 포함하는 출력 파트(607); 하드디스크 등을 포함하는 저장 파트(308); 및 LAN 카드, 모뎀 등과 같은 네트워크 인터페이스 카드를 포함하는 통신 파트(309)를 연결할 수 있다. 통신 파트(309)는 인터넷과 같은 네트워크를 통하여 통신 처리를 수행한다. 드라이버(310)도 수요에 따라 I/O 인터페이스(305)에 연결된다. 플로피 디스크, 광 디스크, 광자기 디스크, 반도체 메모리 등과 같은 이동식 매체(311)는 이로부터 리드된 컴퓨터 프로그램이 수요에 따라 저장 파트(308)에 설치되도록 수요에 따라 드라이버(310)에 설치된다.
특히, 본원에서 개시된 실시예에 따라 흐름도를 참고로 하여 설명된 상술의 과정은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 예하면, 본원에서 개시된 실시예에는 컴퓨터 프로그램 제품이 포함되고, 이는 기계 가독 매체 위에 실체가 있도록 포함되어 있는 컴퓨터 프로그램을 포함하고 상기 컴퓨터 프로그램은 흐름도에 도시된 방법을 수행하기 위한 프로그램 코드를 포함한다. 이런 실시예에서 이러한 컴퓨터 프로그램은 통신 파트(309)를 통해 온라인에서 다운받아서 설치할 수 있거나 및/또는 이동식 매체(311)로부터 설치할 수 있다.
첨부 도면 중의 흐름도 및 블록도은 본원의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 구현 가능한 시스템 체계, 기능과 작업을 도시한다. 이러한 부분에서 흐름도 또는 블록도 중의 각각의 블록은 하나의 모듈, 프로그램 세그먼트 또는 코드의 일부분을 표시할수 있고 상기 모듈, 프로그램 세그먼트, 또는 코드의 일부분은 규정된 로직 기능을 구현하기 위한 실행 가능한 명령을 하나 또는 복수 개 포함한다. 그리고 유의할 점은, 일부 대안적인 구현에 있어서, 블록에 표기된 기능은 첨부 도면에서의 표기 순서와 다른 순서로 발생할 수도 있다. 예하면, 순차적인 연결로 표시된 두개 의 블록은 사실상 기본적으로 병행하여 수행될 수도 있고 경우에 따라서는 반대인 순서로 수행될 수도 있는데 이러한 부분은 관련 기능에 따라 결정된다. 이 외에도, 블록도 및/또는 흐름도에서의 각각의 블록, 그리고 블록도 및/또는 흐름도에서의 블록의 조합은, 하드웨어를 기반으로 하고 규정된 기능 또는 작업을 수행하는 전용화된 시스템을 통하여 구현되거나 또는 전용 하드웨어와 컴퓨터 명령의 조합으로도 구현될 수 있음을 유의하여야 한다.
본 발명의 다른 측면으로, 비휘발성 컴퓨터 저장 매체가 제공된다. 이러한 비휘발성 컴퓨터 저장 매체는 상기 실시예 중의 상기 기기에 포함되어 구성된 비휘발성 컴퓨터 저장 매체일 수도 있고 단말기에 구성되어 있지 않고 단독으로 존재하는 비휘발성 컴퓨터 저장 매체일 수도 있다. 상기 비휘발성 컴퓨터 저장 매체에는 하나 또는 복수의 프로그램이 저장되어 있다. 상기 하나 또는 복수의 프로그램이 하나의 기기에 의하여 실행될 시, 상기 기기는, 분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 상기 연산자에 대응하는 필드를 확정하되, 여기서 상기 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 가리키고; 상기 연산자의 입력 파라미터를 생성하되, 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 여기서 상기 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 상기 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터이고; 및 상기 연산자가 상기 입력 파라미터를 기반으로 분산 컴퓨팅을 수행한다.
이상의 설명은 단지 본 출원의 바람직한 실시예 및 운용된 기술 원리에 대한 설명일 뿐이다. 당해 분야의 통상의 기술자라면 본 출원에서 주장하는 발명의 범위는 상술한 기술적 특징의 특정 조합으로 구성된 기술 방안에 한정되지 않으며, 또한 상기 발명 사상을 벗어나지 않는 범주에서 상기 기술적 특징 또는 그 등가물의 임의의 조합으로 구성된 기타 기술방안도 이에 포함되는 것임을 이해할 수가 있다. 예하면, 상기 특징을 본원에서 개시한(단, 이에 한정되지 않음) 이와 유사한 기능을 가진 기술 특징으로 치환하여 얻은 기술방안도 본원의 청구 범위에 포함된다.

Claims (14)

  1. 분산 컴퓨팅 프레임워크에 있어서,
    분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 상기 연산자에 대응하는 필드를 확정하기 위해 구성되고,
    상기 필드는 상기 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 나타내기 위한 것인 파싱 유닛; 및
    상기 연산자를 제공하기 위해 구성되고, 상기 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하되, 여기서, 상기 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 상기 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 연산자 유닛;을 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  2. 제1항에 있어서,
    상기 연산자 유닛은
    상기 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 분산 데이터 집합을 필드 타입 분산 데이터 집합으로 전환하기 위하여 구성되고, 상기 필드 타입 분산 데이터 집합 중의 요소는 복수의 키-값 쌍을 포함하고, 여기서, 각 키-값 쌍의 키는 하나의 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 필드 타입 분산 데이터 집합 생성 연산자를 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  3. 제2항에 있어서,
    상기 연산자 유닛은
    상기 필드 타입 분산 데이터 집합 중의 각 요소 중 부동한 키를 가진 키-값 쌍을 조합하여 각 요소는 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻기 위해 구성되는 스플라이스 연산자를 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  4. 제3항에 있어서,
    상기 연산자 유닛은
    상기 필드 타입 분산 데이터 집합 중의 요소 중 그룹화 필드가 가리키는 키에 대응하는 값에 근거하여 필드 타입 분산 데이터 집합 중의 요소를 그룹화하여 복수의 그룹화된 필드 타입 분산 데이터 집합을 얻기 위해 구성되고, 여기서, 각 그룹화 필드가 가리키는 키에 대응하는 값은 하나의 그룹화된 필드 타입 분산 데이터 집합에 대응하고, 그룹화된 필드 타입 분산 데이터 집합은 그룹화 필드가 가리키는 키에 대응하는 값을 포함하는 요소를 적어도 하나 포함하는 그룹화 연산자를 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  5. 제4항에 있어서,
    상기 연산자 유닛은
    순회 필드에 근거하여 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하기 위해 구성되는 순회 연산자를 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  6. 제5항에 있어서,
    상기 연산자 유닛은
    상기 필드 타입 분산 데이터 집합 중의 모든 요소 중 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하여 얻은 결과를 집계하기 위해 구성되는 집계 연산자를 포함하는 것을 특징으로 하는 분산 컴퓨팅 프레임워크.
  7. 분산 컴퓨팅 방법에 있어서,
    분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 상기 연산자에 대응하는 필드를 확정하되, 여기서, 상기 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 나타내는 단계;
    상기 연산자의 입력 파라미터를 생성하되, 상기 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 여기서, 상기 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 상기 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 단계; 및
    상기 연산자가 상기 입력 파라미터를 기반으로 분산 컴퓨팅을 수행하는 단계를 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  8. 제7항에 있어서,
    상기 필드에 근거하여 분산 컴퓨팅 태스크에 필요한 데이터에 대응하는 분산 데이터 집합을 필드 타입 분산 데이터 집합으로 전환하되, 상기 필드 타입 분산 데이터 집합 중의 요소는 복수의 키-값 쌍을 포함하고, 여기서 각 키-값 쌍의 키는 하나의 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 단계를 더 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  9. 제8항에 있어서,
    상기 필드 타입 분산 데이터 집합 중의 각 요소 중 부동한 키를 가진 키-값 쌍을 조합하여, 각 요소는 키가 서로 다른 키-값 쌍을 포함하는 필드 타입 분산 데이터 집합을 얻는 단계를 더 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  10. 제9항에 있어서,
    상기 필드 타입 분산 데이터 집합 중의 요소 중 그룹화 필드가 가리키는 키에 대응하는 값에 근거하여 필드 타입 분산 데이터 집합 중의 요소를 그룹화하여 복수의 그룹화된 필드 타입 분산 데이터 집합을 얻되, 여기서, 각 그룹화 필드가 가리키는 키에 대응하는 값은 하나의 그룹화된 필드 타입 분산 데이터 집합에 대응하고, 그룹화된 필드 타입 분산 데이터 집합은 그룹화 필드가 가리키는 키에 대응하는 값을 포함하는 요소를 적어도 하나 포함하는 단계도 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  11. 제10항에 있어서,
    순회 필드에 근거하여 상기 필드 타입 분산 데이터 집합 중의 모든 요소 중의 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하는 단계도 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  12. 제11항에 있어서,
    상기 필드 타입 분산 데이터 집합 중의 모든 요소 중 순회 필드가 가리키는 키에 대응하는 값에 대하여 작업을 수행하여 얻은 결과를 집계하는 단계도 포함하는 것을 특징으로 하는 분산 컴퓨팅 방법.
  13. 프로세서; 및
    메모리를 포함하고,
    상기 메모리에는 상기 프로세서에 의하여 수행 가능한 컴퓨터 판독가능 명령이 저장되어 있고, 상기 컴퓨터 판독가능 명령이 수행 될 시, 상기 프로세서는 분산 컴퓨팅 방법을 수행하되, 상기 방법은
    분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 상기 연산자에 대응하는 필드를 확정하되, 여기서, 상기 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 나타내는 단계;
    상기 연산자의 입력 파라미터를 생성하되, 상기 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 여기서, 상기 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 상기 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 단계; 및
    상기 연산자가 상기 입력 파라미터를 기반으로 분산 컴퓨팅을 수행하는 단계를 포함하는 기기.
  14. 비휘발성 컴퓨터 저장 매체로서, 상기 컴퓨터 저장 매체에는 프로세서에 의하여 수행 가능한 컴퓨터 판독가능 명령이 저장되어 있고, 상기 컴퓨터 판독가능 명령이 프로세서에 의하여 수행 될 시, 상기 프로세서는 분산 컴퓨팅 방법을 수행하되, 상기 방법은
    분산 컴퓨팅 태스크의 표현식을 파싱하고 연산자 및 상기 연산자에 대응하는 필드를 확정하되, 여기서, 상기 필드는 연산자가 작용하는 분산 데이터 집합의 데이터의 속성을 나타내는 단계;
    상기 연산자의 입력 파라미터를 생성하되, 상기 연산자의 입력 파라미터는 필드 및 필드 타입 분산 데이터 집합을 포함하고, 여기서, 상기 필드 타입 분산 데이터 집합은 적어도 하나의 요소를 포함하고, 상기 요소는 복수의 키-값 쌍을 포함하고, 키-값 쌍의 키는 필드이고 값은 분산 데이터 집합에서 상기 필드에 대응하는 데이터인 단계; 및
    상기 연산자가 상기 입력 파라미터를 기반으로 분산 컴퓨팅을 수행하는 단계를 포함하는 비휘발성 컴퓨터 저장 매체.
KR1020197002252A 2016-09-21 2016-10-14 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법 KR102172138B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610836654.7A CN106406985B (zh) 2016-09-21 2016-09-21 分布式计算框架和分布式计算方法
CN201610836654.7 2016-09-21
PCT/CN2016/102122 WO2018053889A1 (zh) 2016-09-21 2016-10-14 分布式计算框架和分布式计算方法

Publications (2)

Publication Number Publication Date
KR20190020801A true KR20190020801A (ko) 2019-03-04
KR102172138B1 KR102172138B1 (ko) 2020-10-30

Family

ID=57997066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197002252A KR102172138B1 (ko) 2016-09-21 2016-10-14 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법

Country Status (6)

Country Link
US (1) US11132363B2 (ko)
EP (1) EP3480693A4 (ko)
JP (1) JP6781820B2 (ko)
KR (1) KR102172138B1 (ko)
CN (1) CN106406985B (ko)
WO (1) WO2018053889A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445645B (zh) 2016-09-06 2019-11-26 北京百度网讯科技有限公司 用于执行分布式计算任务的方法和装置
CN109726822B (zh) * 2018-12-14 2020-10-09 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN112783924B (zh) * 2019-11-07 2024-07-16 北京沃东天骏信息技术有限公司 一种脏数据识别方法、装置和系统
CN115906983B (zh) * 2022-11-23 2024-01-02 北京百度网讯科技有限公司 分布式模型训练方法、装置、设备、存储介质及程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070118076A (ko) * 2005-04-08 2007-12-13 마이크로소프트 코포레이션 네트워크 애플리케이션 프로그램 사이에서 요청된 데이터를생성 및 통신하기 위한 시스템, 컴퓨터 구현 방법 및컴퓨터 판독가능 매체
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置
US20140019437A1 (en) * 2012-07-16 2014-01-16 Microsoft Corporation Data Scope Origination Within Aggregation Operations
US20140164353A1 (en) * 2012-12-11 2014-06-12 Microsoft Corporation Optimizing parallel queries using interesting distributions
US20140172898A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Distributed sql query processing using key-value storage system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915229B (zh) * 2011-08-02 2016-05-04 深圳市世纪光速信息技术有限公司 一种分布式计算方法及系统
EP2786276A1 (en) * 2011-11-30 2014-10-08 DeCarta Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
WO2013091195A1 (zh) * 2011-12-21 2013-06-27 华为技术有限公司 一种分布式系统中处理事务的方法、相关设备及系统
CN103593721B (zh) * 2012-08-13 2016-10-05 中国商用飞机有限责任公司 基于复杂事件处理的业务流程监控方法
CN103902592B (zh) 2012-12-27 2018-02-27 深圳市腾讯计算机系统有限公司 基于MapReduce实现分析函数的方法及系统
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
CN103399887A (zh) * 2013-07-19 2013-11-20 蓝盾信息安全技术股份有限公司 一种海量日志的查询与统计分析系统
CN103399927B (zh) * 2013-08-05 2016-11-02 百度在线网络技术(北京)有限公司 分布式计算方法和装置
US9477731B2 (en) * 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
CN104239532A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 Hive中自制用户提取信息工具的方法和装置
CN105786808B (zh) * 2014-12-15 2019-06-18 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
US20160371355A1 (en) * 2015-06-19 2016-12-22 Nuodb, Inc. Techniques for resource description framework modeling within distributed database systems
US10108547B2 (en) * 2016-01-06 2018-10-23 Netapp, Inc. High performance and memory efficient metadata caching

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070118076A (ko) * 2005-04-08 2007-12-13 마이크로소프트 코포레이션 네트워크 애플리케이션 프로그램 사이에서 요청된 데이터를생성 및 통신하기 위한 시스템, 컴퓨터 구현 방법 및컴퓨터 판독가능 매체
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
US20140019437A1 (en) * 2012-07-16 2014-01-16 Microsoft Corporation Data Scope Origination Within Aggregation Operations
US20140164353A1 (en) * 2012-12-11 2014-06-12 Microsoft Corporation Optimizing parallel queries using interesting distributions
US20140172898A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Distributed sql query processing using key-value storage system
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置

Also Published As

Publication number Publication date
EP3480693A4 (en) 2019-07-10
JP6781820B2 (ja) 2020-11-04
WO2018053889A1 (zh) 2018-03-29
US20190213188A1 (en) 2019-07-11
EP3480693A1 (en) 2019-05-08
US11132363B2 (en) 2021-09-28
JP2019527441A (ja) 2019-09-26
KR102172138B1 (ko) 2020-10-30
CN106406985B (zh) 2019-10-11
CN106406985A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN110908997B (zh) 数据血缘构建方法、装置、服务器及可读存储介质
US7870167B2 (en) Implementing event processors
US11132363B2 (en) Distributed computing framework and distributed computing method
EP2539832A2 (en) Operating on time sequences of data
CN110442602B (zh) 数据查询方法、装置、服务器及存储介质
US20100293161A1 (en) Automatically avoiding unconstrained cartesian product joins
Zhang et al. Multi-query optimization for complex event processing in SAP ESP
US11379499B2 (en) Method and apparatus for executing distributed computing task
WO2019120093A1 (en) Cardinality estimation in databases
KR20040073343A (ko) 선언 시퀀스화된 리포트 파라미터화
CN111443901B (zh) 一种基于Java反射的业务扩展方法及装置
US11720543B2 (en) Enforcing path consistency in graph database path query evaluation
CN111198898A (zh) 大数据查询方法及大数据查询装置
CN112825068B (zh) 数据血缘生成方法及装置
CN115328917A (zh) 一种查询方法、装置、设备及存储介质
CN112307050B (zh) 一种重复关联计算的识别方法、装置及计算机系统
CN115145652A (zh) 一种数据处理任务的创建方法、装置、设备及介质
CN118556232A (zh) 数据模型生成的方法和装置
US20170161359A1 (en) Pattern-driven data generator
CN108763474B (zh) 获取交易相关性及执行回归测试的方法、装置及存储介质
WO2019153543A1 (zh) 数据维度生成方法、装置、设备以及计算机可读存储介质
US8250090B2 (en) Method for performing message-based distributed computing, involves executing expression of matched message response on members identified by set instance definition using dimension values derived from message
WO2023185377A1 (zh) 一种多粒度数据模式挖掘方法及相关设备
TW201944232A (zh) 使用統一聚合查詢語言獲取資源的方法及系統
CN114706878A (zh) 检查sql语句的方法及装置

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