KR20230122681A - 스탠드 인 테이블들 - Google Patents
스탠드 인 테이블들 Download PDFInfo
- Publication number
- KR20230122681A KR20230122681A KR1020237026506A KR20237026506A KR20230122681A KR 20230122681 A KR20230122681 A KR 20230122681A KR 1020237026506 A KR1020237026506 A KR 1020237026506A KR 20237026506 A KR20237026506 A KR 20237026506A KR 20230122681 A KR20230122681 A KR 20230122681A
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- encoding
- identified table
- identified
- query
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000007405 data analysis Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012517 data analytics Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2393—Updating materialised views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
리프레시 전에 테이블들(140)을 사전 활용하기 위한 방법(300)은, 데이터 분석 애플리케이션(204)에서의 실행을 위한 질의(120)를 선택하는 단계, 및 질의에 의해 특정된 테이블(140), 예를 들어 구체화된 테이블을 식별하는 단계를 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대한 인코딩(150), 이를테면 해시 값을 컴퓨팅하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대해 사전 저장된 인코딩(170)과 컴퓨팅된 인코딩을 비교하는 것을 포함한다. 컴퓨팅된 인코딩이 사전 저장된 인코딩과 동일하다는 조건으로, 동작들은, 식별된 테이블을 재-구체화하는 것 대신에, 질의를 실행할 때 식별된 테이블을 활용하는 것을 포함한다. 그렇지 않으면, 컴퓨팅된 인코딩이 사전 저장된 인코딩과 상이하다는 조건으로, 동작들은 질의의 결과들(190)을 리턴하기 전에 식별된 테이블을 재-구체화하는 것을 포함한다.
Description
[0001] 본 개시내용은 데이터베이스 관리를 위한 질의 프로세싱(query processing) 분야에 관한 것으로, 더 상세하게는 질의 프로세싱에서의 구체화된 테이블(materialized table) 활용에 관한 것이다.
[0002] 종래의 데이터베이스 관리 시스템은, 데이터베이스 질의들이 로컬 또는 원격의 다른 컴퓨팅 프로세스들로부터 수신될 수 있게 하는 프로그래밍 방식 사용자 인터페이스(programmatic user interface)를 제공하며, 이 프로그래밍 방식 사용자 인터페이스로부터, 그러한 질의들에 대한 결과들이 질의 컴퓨팅 프로세스들에 제공될 수 있다. 질의의 공통 형태는, 고려를 위한 데이터베이스 내의 레코드들의 세트, 디멘션(dimension), 예를 들어 데이터베이스의 레코드들의 세트 내의 1차 관심 필드, 및 측정치(measure), 예를 들어 레코드들의 결과 세트 내의 대응하는 2차 관심 필드에 대한 값을 선택한다. 필터링 및 제한 기준들은 또한, 레코드들의 결과 세트의 프리젠테이션(presentation)을 정렬하는 방법에 관한 정렬 지시(sorting directive), 및 질의에 대한 응답으로 리턴된 레코드들의 세트 사이의 리턴된 측정치들에 대해 동작하는 집계 함수(aggregate function)들 이외에도 특정될 수 있다.
[0003] 일반적으로 말하면, 질의들을 제기하기 위한 3 개의 일반적인 방법들: 메뉴 구동, 예에 의한 질의, 및 질의 언어 공식화가 있다. 제1 인스턴스에서, 메뉴에서의 파라미터들의 선택에 기반하여 질의가 공식화 및 발행(issue)된다. 제2 인스턴스에서, 정보 리트리벌 시스템(information retrieval system)은 블랭크 레코드(blank record)를 제시하고, 최종 사용자가 질의를 정의하는 필드들 및 값들을 특정할 수 있게 한다. 제3 인스턴스에서, 최종 사용자는 질의 언어로 작성된 양식화된 질의(stylized query)를 활용하여 질의를 공식화한다. 후자는, 전문화된 언어의 사용을 요구하기 때문에 가장 복잡한 방법이지만, 후자는 또한, 정보 리트리벌 시스템에 질의하는 최소 제약 모드(least constrained mode)이기 때문에 가장 강력하다.
[0004] 간단한 질의를 실행하는 것은 계산적으로 가벼울 수 있고, 근본적인 데이터베이스 관리 시스템의 자원들에 거의 영향을 미치지 않을 수 있다. 그러나, 더 복잡한 질의들은 데이터베이스 관리 시스템의 자원들에 상당한 영향을 미칠 수 있고, 질의에 대한 결과 세트가 제공될 수 있기 전에 약간의 프로세싱 리드 타임(processing lead time)을 요구할 수 있다. 이에 따라, 이러한 리드 타임 및 데이터베이스 관리 시스템의 컴퓨팅 자원들에 대한 영향을 감소시키기 위한 의도로 여러 기술들이 제안되었다. 하나의 그러한 기술은 구체화된 테이블의 사용이다.
[0005] 구체화된 테이블은 질의의 결과들을 포함하는 데이터베이스 테이블이다. 구체화된 테이블을 설정하는 프로세스는 구체화(materialization)로 알려져 있으며, 이는 기능적 언어들에서의 함수의 값의 메모이제이션(memoization)과 유사하게, 질의의 결과들을 캐싱하는 형태이다. 구체화된 테이블은 뷰의 개념과 대조적이다. 관계 모델을 따르는 데이터베이스 관리 시스템에서, 뷰는 데이터베이스 질의의 결과를 표현하는 가상 테이블이다. 질의 또는 업데이트가 뷰의 가상 테이블을 어드레싱(address)할 때마다, 데이터베이스 관리 시스템은 근본적인 데이터베이스 테이블 또는 테이블들에 대해 질의 또는 업데이트를 변환(convert)한다. 구체화된 테이블은, 질의 결과가, 때때로 오리지널 베이스 테이블들로부터 업데이트될 수 있는 뷰보다는 구체적인(concrete) 구체화된 테이블로서 캐싱된다는 점에서 상이하다.
[0006] 결과적으로, 전통적인 뷰의 경우에서와 같이 구체화된 테이블에 대한 어떠한 업데이트도 발생하지 않기 때문에, 구체화된 테이블의 콘텐츠가 구체화 시간으로부터 변화되지 않는 한, 후속 질의에 대한 결과 세트로의 더 효율적인 액세스가 달성될 수 있다. 그러나, 구체화된 테이블의 콘텐츠가 구체화 시간 이후 변화된 경우, 재-구체화가 요구되고, 구체화된 테이블들을 활용하는 장점이 상실되었을 것이다. 중요하게는, 구체화된 테이블의 콘텐츠가 구체화 이후 변화되었는지 여부를 결정하는 것은 그 자체로 자원 소모적일 수 있고, 구체화된 테이블을 참조(referencing)하는 질의를 프로세싱하는 데 부가적인 시간 지연들을 생성할 수 있다.
[0007] 본 개시내용의 양상들은 질의 프로세싱에서의 구체화된 테이블들의 사용에 관한 종래 기술의 결함들을 해결하고, 리프레시(refresh) 전에 구체화된 테이블들을 사전 활용하기 위한 신규하고 자명하지 않은 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 본 개시내용의 일 양상은, 데이터 프로세싱 하드웨어에 의해 실행될 때, 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는, 리프레시 전에 테이블들을 사전 활용하기 위한 컴퓨터 구현 방법을 제공한다. 방법의 하나의 동작은, 데이터 분석 애플리케이션(data analytics application)에서의 실행을 위한 질의를 선택하는 것, 및 질의에 의해 특정된 테이블, 예를 들어 구체화된 테이블을 식별하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대한 인코딩, 이를테면 해시 값을 컴퓨팅하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대해 사전 저장된 인코딩과 컴퓨팅된 인코딩을 비교하는 것을 포함한다. 컴퓨팅된 인코딩이 사전 저장된 인코딩과 동일하다는 조건으로, 동작들은, 식별된 테이블을 재-구체화하는 것 대신에, 질의를 실행할 때 식별된 테이블을 활용하는 것을 포함한다. 그렇지 않으면, 컴퓨팅된 인코딩이 사전 저장된 인코딩과 상이하다는 조건으로, 동작들은 질의의 결과들을 리턴하기 전에 식별된 테이블을 재-구체화하는 것을 포함한다.
[0008] 본 개시내용의 이러한 양상은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 본 개시내용의 일 양상에서, 식별된 테이블의 적어도 하나의 부분은 식별된 테이블만의 테이블 구조이고, 식별된 테이블은 백그라운드 프로세스에서 재-구체화되고, 식별된 테이블은 일단 재-구체화가 완료되면 재-구체화된 테이블로 대체된다. 일 예에서, 식별된 테이블은 2차 테이블에 의존하며, 인코딩의 컴퓨테이션은 식별된 테이블 및 또한 2차 테이블 둘 모두에 대한 해시 값을 컴퓨팅하는 것을 포함한다. 여기서, 비교는, 식별된 테이블 및 2차 테이블 둘 모두에 대해 사전 저장된 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 포함한다.
[0009] 다른 구현에서, 동작들은, 컴퓨팅된 해시 값이 사전 저장된 해시 값과 상이하다는 조건으로, 2차 테이블에 대한 것이 아니라 단지 식별된 테이블에 대해 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 더 포함한다. 컴퓨팅된 해시 값이 단지 식별된 테이블에 대한 해시 값과 동일하다는 조건으로, 동작들은, 백그라운드 프로세스에서 동시에 2차 테이블을 재-구체화하면서 식별된 테이블을 활용하지만, 그렇지 않으면 질의의 결과를 리턴하기 전에 식별된 테이블 및 2차 테이블을 재-구체화하는 것을 포함한다.
[0010] 본 개시내용의 다른 양상은 리프레시 전에 구체화된 테이블들을 사전 활용하도록 구성(adapt)된 데이터 프로세싱 시스템을 제공한다. 이 시스템은 하나 이상의 컴퓨터들을 포함하는 호스트 컴퓨팅 플랫폼 ― 컴퓨터들 각각은 메모리 및 적어도 하나의 프로세서를 포함함 ―, 및 호스트 컴퓨팅 플랫폼에서 실행되는 동안 동작들을 수행하도록 인에이블(enable)되는 컴퓨터 프로그램 명령들을 포함하는 사전 활용 모듈을 포함한다. 하나의 동작은, 데이터 분석 애플리케이션에서의 실행을 위한 질의를 선택하는 것, 및 질의에 의해 특정된 테이블, 예를 들어 구체화된 테이블을 식별하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대한 인코딩, 이를테면 해시 값을 컴퓨팅하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대해 사전 저장된 인코딩과 컴퓨팅된 인코딩을 비교하는 것을 포함한다. 컴퓨팅된 인코딩이 사전 저장된 인코딩과 동일하다는 조건으로, 동작들은, 식별된 테이블을 재-구체화하는 것 대신에, 질의를 실행할 때 식별된 테이블을 활용하는 것을 포함한다. 그렇지 않으면, 컴퓨팅된 인코딩이 사전 저장된 인코딩과 상이하다는 조건으로, 동작들은 질의의 결과들을 리턴하기 전에 식별된 테이블을 재-구체화하는 것을 포함한다.
[0011] 본 개시내용의 이러한 양상은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 본 개시내용의 일 양상에서, 식별된 테이블의 적어도 하나의 부분은 식별된 테이블만의 테이블 구조이고, 식별된 테이블은 백그라운드 프로세스에서 재-구체화되고, 식별된 테이블은 일단 재-구체화가 완료되면 재-구체화된 테이블로 대체된다. 일 예에서, 식별된 테이블은 2차 테이블에 의존하며, 인코딩의 컴퓨테이션은 식별된 테이블 및 또한 2차 테이블 둘 모두에 대한 해시 값을 컴퓨팅하는 것을 포함한다. 여기서, 비교는, 식별된 테이블 및 2차 테이블 둘 모두에 대해 사전 저장된 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 포함한다.
[0012] 다른 구현에서, 동작들은, 컴퓨팅된 해시 값이 사전 저장된 해시 값과 상이하다는 조건으로, 2차 테이블에 대한 것이 아니라 단지 식별된 테이블에 대해 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 더 포함한다. 컴퓨팅된 해시 값이 단지 식별된 테이블에 대한 해시 값과 동일하다는 조건으로, 동작들은, 백그라운드 프로세스에서 동시에 2차 테이블을 재-구체화하면서, 식별된 테이블을 활용하지만, 그렇지 않으면 질의의 결과를 리턴하기 전에, 식별된 테이블 및 2차 테이블을 재-구체화하는 것을 포함한다.
[0013] 본 개시내용의 다른 양상은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 컴퓨터 프로그램 제품을 제공하며, 컴퓨터 프로그램 제품은 프로그램 명령들이 구현된 컴퓨터 판독가능 저장 매체를 포함하고, 프로그램 명령들은 디바이스로 하여금 동작들을 수행하게 하도록 디바이스에 의해 실행가능하다.
[0014] 하나의 동작은, 데이터 분석 애플리케이션에서의 실행을 위한 질의를 선택하는 것, 및 질의에 의해 특정된 테이블, 예를 들어 구체화된 테이블을 식별하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대한 인코딩, 이를테면 해시 값을 컴퓨팅하는 것을 포함한다. 다른 동작은 식별된 테이블의 적어도 하나의 부분에 대해 사전 저장된 인코딩과 컴퓨팅된 인코딩을 비교하는 것을 포함한다. 컴퓨팅된 인코딩이 사전 저장된 인코딩과 동일하다는 조건으로, 동작들은, 식별된 테이블을 재-구체화하는 것 대신에, 질의를 실행할 때 식별된 테이블을 활용하는 것을 포함한다. 그렇지 않으면, 컴퓨팅된 인코딩이 사전 저장된 인코딩과 상이하다는 조건으로, 동작들은 질의의 결과들을 리턴하기 전에 식별된 테이블을 재-구체화하는 것을 포함한다.
[0015] 본 개시내용의 이러한 양상은 다음의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 본 개시내용의 일 양상에서, 식별된 테이블의 적어도 하나의 부분은 식별된 테이블만의 테이블 구조이고, 식별된 테이블은 백그라운드 프로세스에서 재-구체화되고, 식별된 테이블은 일단 재-구체화가 완료되면 재-구체화된 테이블로 대체된다. 일 예에서, 식별된 테이블은 2차 테이블에 의존하며, 인코딩의 컴퓨테이션은 식별된 테이블 및 또한 2차 테이블 둘 모두에 대한 해시 값을 컴퓨팅하는 것을 포함한다. 여기서, 비교는, 식별된 테이블 및 2차 테이블 둘 모두에 대해 사전 저장된 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 포함한다.
[0016] 다른 구현에서, 동작들은, 컴퓨팅된 해시 값이 사전 저장된 해시 값과 상이하다는 조건으로, 2차 테이블에 대한 것이 아니라 단지 식별된 테이블에 대해 해시 값과 컴퓨팅된 해시 값을 비교하는 것을 더 포함한다. 컴퓨팅된 해시 값이 단지 식별된 테이블에 대한 해시 값과 동일하다는 조건으로, 동작들은, 백그라운드 프로세스에서 동시에 2차 테이블을 재-구체화하면서 식별된 테이블을 활용하지만, 그렇지 않으면 질의의 결과를 리턴하기 전에 식별된 테이블 및 2차 테이블을 재-구체화하는 것을 포함한다.
[0017] 본 개시내용의 하나 이상의 구현들의 세부사항들은 아래의 설명 및 첨부 도면들에서 제시된다. 다른 양상들, 특징들 및 장점들은 설명 및 도면들로부터 그리고 청구항들로부터 자명할 것이다.
[0018] 도 1은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 프로세스의 그림 예시이다.
[0019] 도 2는 리프레시 전에 구체화된 테이블들을 사전 활용하도록 구성된 데이터 프로세싱 시스템의 개략적인 예시이다.
[0020] 도 3은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 프로세스를 예시하는 흐름도이다.
[0021] 다양한 도면들에서 동일한 참조 심볼들은 동일한 엘리먼트들을 표시한다.
[0019] 도 2는 리프레시 전에 구체화된 테이블들을 사전 활용하도록 구성된 데이터 프로세싱 시스템의 개략적인 예시이다.
[0020] 도 3은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 프로세스를 예시하는 흐름도이다.
[0021] 다양한 도면들에서 동일한 참조 심볼들은 동일한 엘리먼트들을 표시한다.
[0022] 본 개시내용의 양상들은 리프레시 전에 구체화된 테이블들을 사전 활용하는 것을 제공한다. 본 개시내용의 양상에 따르면, 데이터베이스의 각각의 상이한 데이터 질의들에 대한 응답으로 상이한 구체화된 테이블들이 생성되기 때문에, 해시는 구체화된 테이블들의 각각의 구체화된 테이블의 적어도 부분에 대해 생성될 수 있고, 구체화된 테이블들 중 대응하는 구체화된 테이블과 관련하여 연관될 수 있다. 예를 들어, 그 부분은 구체화된 테이블들 중 대응하는 구체화된 테이블에 대한 테이블 구조일 수 있다. 그 후, 구체화된 테이블을 참조하는 질의가 프로세싱을 위해 수신될 때, 해시는 참조된 구체화된 테이블의 매칭 부분에 대해 생성되고, 구체화된 테이블들 중 대응하는 구체화된 테이블의 부분에 대한 해시들 중 저장된 해시와 비교될 수 있다. 해시들이 매칭하는 한, 저장된 구체화된 테이블이 사용될 수 있다. 그렇지 않으면, 참조된 구체화된 테이블은 질의에 대한 결과 세트에 포함되기 전에 재-구체화될 수 있다.
[0023] 추가 예시에서, 도 1은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 프로세스를 그림으로 도시한다. 도 1에 도시된 바와 같이, 데이터베이스 질의(120)는 데이터베이스(110) 내의 데이터에 대해 발행될 수 있다. 데이터베이스 질의(120)는 구체화된 테이블(140)에 대한 참조(130)를 포함한다. 그런 다음, 2 개의 예들을 들자면, 예를 들어 단지 참조된 구체화된 테이블(140)의 구조 ― 열 헤딩들, 행들의 수, 또는 둘 모두 ― 를 포함하는, 참조된 구체화된 테이블(140)의 부분 또는 참조된 구체화된 테이블(140) 내의 연관된 콘텐츠의 부분에 대해 해시 값(150)이 컴퓨팅된다. 그런 다음, 비교기(180)는 대응하는 구체화된 테이블들에 대해 사전 저장된 해시 값들의 세트(160)에 저장된 사전 저장된 해시 값들(170A, 170N)과 컴퓨팅된 해시 값(150)을 비교한다. 컴퓨팅된 해시(150)가 사전 저장된 해시 값들(170A, 170N) 중 대응하는 해시 값과 매칭하는 한, 참조된 구체화된 테이블(140)은 데이터베이스 질의(120)에 대한 질의 결과 세트(190)에 통합될 수 있다. 그러나, 그렇지 않으면, 참조된 구체화된 테이블(140)은 질의 결과 세트(190)로의 포함을 위해 재-구체화될 수 있다.
[0024] 재-구체화 동안, 예를 들어 참조된 구체화된 테이블(140)의 구조의 미리 저장된 해시 값(170A, 170N)과 참조된 구체화된 테이블(140)의 구조에 대한 컴퓨팅된 해시 값(150)을 비교함으로써, 참조된 구체화된 테이블(140)의 구조가 변화되지 않았다고 결정될 수 있다. 그 인스턴스에서, 참조된 구체화된 테이블(140)은 재-구체화가 있을 때까지 질의 결과 세트(190)에 포함될 수 있다. 그런 다음, 재-구체화 후에, 참조된 구체화된 테이블(140)의 재-구체화된 형태는 그런 다음, 질의 결과 세트(190)로 치환될 수 있다.
[0025] 또한, 참조된 구체화된 테이블(140)이 하나 이상의 다른 구체화된 테이블들(140A, 140B)에 의존하는 한, 컴퓨팅된 해시 값(150)은 참조된 구체화된 테이블(140), 및 종속적인 구체화된 테이블들(140A, 140B) 중 하나 이상에 대해 컴퓨팅될 수 있다. 대안적으로, 컴퓨팅된 해시 값(150)은 단지, 참조된 구체화된 테이블(140) 및 종속적인 구체화된 테이블들(140A, 140B) 중 하나 이상의 구조에 대해 컴퓨팅될 수 있다. 어느 상황이든, 비교기(180)가, 참조된 구체화된 테이블(140) 및 하나 이상의 종속적인 구체화된 테이블들(140A, 140B)에 대해 사전 저장된 값들(170A, 170B) 중 대응하는 값과 상이한 것으로 컴퓨팅된 해시 값(150)을 결정하는 것을 조건으로, 참조된 구체화된 테이블(140) 및 하나 이상의 종속적인 구체화된 테이블들(140A, 140B)에 대해 완전 재-구체화(full re-materialization)가 수행될 수 있다.
[0026] 선택적으로, 비교기(180)는, 컴퓨팅된 해시 값(150)이 사전 저장된 해시 값들(170A, 170B) 중 대응하는 값과 등가(equivalent)가 아니라고 결정할 수 있다. 그런 다음, 이러한 상황에서, 비교기(180)는, 오직 참조된 구체화된 테이블(140)의 구조에 기인하는, 컴퓨팅된 해시 값(150)의 부분이, 사전 저장된 해시 값들(170A, 170B) 중 대응하는 해시 값의 대응하는 부분과 동일하다고 결정할 수 있다. 그 결과, 참조된 구체화된 테이블(140)이 재-구체화되는 동안, 참조된 구체화된 테이블(140)은 질의 결과 세트(190)에 통합될 수 있다. 그 후, 참조된 구체화된 테이블(140)의 재-구체화된 형태는 질의 결과 세트(190)로 치환될 수 있다.
[0027] 도 1과 관련하여 설명된 프로세스는 데이터 프로세싱 시스템(200) 내에서 구현될 수 있다. 추가 예시에서, 도 2는 리프레시 전에 구체화된 테이블들을 사전 활용하도록 구성된 데이터 프로세싱 시스템(200)을 개략적으로 도시한다. 시스템(200)은 하나 이상의 컴퓨터들을 포함하는 호스트 컴퓨팅 시스템(210)을 포함하며, 컴퓨터들 각각은 메모리(212) 및 적어도 하나의 프로세서(214)를 갖는다. 호스트 컴퓨팅 시스템(210)은 호스트 컴퓨팅 시스템(210)에서 실행되는 데이터베이스 관리 시스템(250)을 통해 액세스되는 데이터베이스(260)에 컴퓨터 통신 네트워크(220)를 통해 통신가능하게 커플링된다. 이와 관련하여, 데이터베이스 관리 시스템(250)은, 데이터 분석 애플리케이션(204)에서의 실행을 위해, 상이한 클라이언트 컴퓨팅 디바이스들(230) 각각에서의 질의 인터페이스(240)를 통해 상이한 클라이언트 컴퓨팅 디바이스들(230)로부터 데이터베이스(260) 내의 데이터에 대한 데이터베이스 질의들을 수신하도록 구성된다.
[0028] 특히, 시스템은 또한, 구체화된 테이블 사전 활용 모듈(300)을 포함한다. 구체화된 테이블 사전 활용 모듈(300)은, 데이터베이스 질의를 수신하고 그로부터 구체화된 테이블에 대한 참조를 추출하기 위해, 호스트 컴퓨팅 시스템(210)의 메모리(212)에 실행 동안 인에이블되는 컴퓨터 프로그램 명령들을 갖는 컴퓨터 프로그램 제품(202)을 포함한다. 프로그램 명령들은 추가로, 참조된 구체화된 테이블의 부분, 예를 들어, 상이한 열 라벨들을 포함하는 참조된 구체화된 테이블의 구조에 대한 해시 값을 컴퓨팅하고, 참조된 구체화된 테이블에 대해 해시 데이터 저장부(270) 내의 미리 저장된 값과 컴퓨팅된 해시 값을 비교하도록 인에이블된다. 프로그램 명령들은 또 추가로, 구체화된 테이블의 구조가 구체화된 테이블의 근본적인 데이터의 변화들에 관계없이 변화되지 않았을 것이기 때문에, 해시 값들이 매칭하는 한, 참조된 구체화된 테이블을 구체화된 테이블에 통합하도록 인에이블된다. 그 후, 프로그램 명령들은 질의 결과 세트로의 후속 치환을 위해, 참조된 구체화된 테이블의 재-구체화를 지시한다.
[0029] 구체화된 테이블 사전 활용 모듈(300)의 동작의 또 다른 추가 예시에서, 도 3은 리프레시 전에 구체화된 테이블들을 사전 활용하기 위한 프로세스 또는 방법(302)을 예시하는 흐름도이다. 블록(310)에서 시작하여, 데이터베이스 질의가 수신되고, 블록(320)에서, 구체화된 테이블에 대한 참조가 질의로부터 추출될 수 있다. 블록(330)에서, 참조된 구체화된 테이블의 부분, 이를테면 열 라벨들의 세트, 또는 참조된 테이블의 콘텐츠, 또는 참조된 구체화된 테이블이 2차 구체화된 테이블에 의존하는 한 테이블들 둘 모두의 콘텐츠의 조합 또는 테이블들 중 1차 테이블만의 콘텐츠가 결정된다. 블록(340)에서, 그 부분에 대해 동시성(contemporaneous) 해시 값이 컴퓨팅된다. 블록(350)에서, 참조된 구체화된 테이블에 대한 사전 컴퓨팅된 해시 값이 해시 값들의 데이터 저장부로부터 리트리브되고, 블록(360)에서, 사전 컴퓨팅된 해시 값이 동시성 컴퓨팅된 해시 값과 비교된다.
[0030] 블록(370)에서, 참조된 구체화된 테이블의 재-구체화와 동시에 참조된 구체화된 테이블의 중간 활용을 허용하기 위해, 참조된 구체화된 테이블의 부분에 대해 동시성 컴퓨팅된 해시 값과 사전 컴퓨팅된 해시 값이 동일한지 여부가 결정된다. 사전 컴퓨팅된 해시 값이 동시성 컴퓨팅된 해시 값과 동일하지 않다는 조건으로, 참조된 구체화된 테이블은 사전 활용될 수 없다. 블록(360)에서, 사전 컴퓨팅된 해시 값이 동시성 컴퓨팅된 해시 값과 동일하다는 조건으로, 참조된 구체화된 테이블은, 수신된 질의에 대한 질의 결과에서 사전 활용될 수 있다. 그 후, 블록(370)에서, 참조된 테이블이 재-구체화된다. 그런 다음, 마지막으로, 블록(380)에서, 재-구체화된 테이블은 질의 검색 결과에 포함된다.
[0031] 본 개시내용은 시스템, 방법, 컴퓨터 프로그램 제품 또는 이들의 임의의 조합 내에서 구현될 수 있다. 컴퓨터 프로그램 제품은, 프로세서로 하여금 본 개시내용의 양상들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령들을 갖는 컴퓨터 판독가능 저장 매체 또는 매체들을 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 명령 실행 디바이스에 의한 사용을 위해 명령들을 보유 및 저장할 수 있는 유형의 디바이스일 수 있다. 컴퓨터 판독 가능 저장 매체는 예를 들어, 전자 저장 디바이스, 자기 저장 디바이스, 광학 저장 디바이스, 전자기 저장 디바이스, 반도체 저장 디바이스, 또는 전술한 것들의 임의의 적절한 조합일 수 있다(그러나 이에 제한되지는 않음).
[0032] 본원에 설명된 컴퓨터 판독 가능 프로그램 명령들은 컴퓨터 판독 가능 저장 매체로부터 개개의 컴퓨팅/프로세싱 디바이스들로 또는 네트워크를 통해 외부 컴퓨터 또는 외부 저장 디바이스로 다운로드될 수 있다. 컴퓨터 판독가능 프로그램 명령들은, 전체적으로 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서, 그리고 부분적으로 원격 컴퓨터 상에서 또는 전체적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 본 개시내용의 양상들은, 본 개시내용의 양상들에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도 예시들 및/또는 블록 다이어그램들을 참조하여 본원에 설명된다. 흐름도 예시들 및/또는 블록 다이어그램들의 각각의 블록, 그리고 흐름도 예시들 및/또는 블록 다이어그램들의 블록들의 조합들은 컴퓨터 판독가능 프로그램 명령들에 의해 구현될 수 있다는 것이 이해될 것이다.
[0033] 이러한 컴퓨터 판독 가능 프로그램 명령들은 기계를 생산하기 위해 범용 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그래밍 가능 데이터 프로세싱 장치에 제공될 수 있어서, 컴퓨터 또는 다른 프로그래밍 가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령들은, 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에 특정된 기능들/행동들을 구현하기 위한 수단을 생성한다. 이러한 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 프로그래밍 가능 데이터 프로세싱 장치 및/또는 다른 디바이스들에 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독 가능 저장 매체에 저장될 수 있어서, 명령들을 저장하는 컴퓨터 판독가능 저장 매체는 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에 특정된 기능/행동의 양상들을 구현하는 명령들을 포함하는 제조 물품(article of manufacture)을 포함한다.
[0034] 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 다른 프로그래밍 가능 데이터 프로세싱 장치 또는 다른 디바이스 상에 로딩되어, 일련의 동작 단계들이 컴퓨터, 다른 프로그래밍 가능 장치 또는 다른 디바이스 상에서 수행되어 컴퓨터 구현 프로세스를 생성하게 할 수 있어서, 컴퓨터, 다른 프로그래밍 가능 장치 또는 다른 디바이스 상에서 실행되는 명령들은 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에 특정된 기능들/행동들을 구현한다.
[0035] 도면들의 흐름도 및 블록 다이어그램들은 본 개시내용의 다양한 양상들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성 및 동작을 예시한다. 이와 관련하여, 흐름도 또는 블록 다이어그램들 내의 각각의 블록은 특정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능한 명령들을 포함하는 모듈, 세그먼트, 또는 명령들의 부분을 표현할 수 있다. 일부 대안적인 구현들에서, 블록에서 언급된 기능들은 도면들에서 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속하여 도시된 2 개의 블록들은 사실상, 실질적으로 동시에 실행될 수 있거나, 또는 블록들은 수반되는 기능성에 따라 때때로 역순으로 실행될 수 있다. 블록 다이어그램들 및/또는 흐름도 예시의 각각의 블록, 그리고 블록 다이어그램들 및/또는 흐름도 예시 내의 블록들의 조합들은, 특정된 기능들 또는 행동들을 수행하거나 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합들을 행하는 특수 목적 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것이 또한 주목될 것이다.
[0036] 마지막으로, 본원에 사용된 용어는 단지 특정 양상들을 설명하는 목적을 위한 것이며, 본 개시내용의 제한으로 의도되지 않는다. 본원에 사용된 바와 같이, 단수 형태들은, 문맥상 명확하게 달리 표시되지 않는 한, 복수 형태들을 또한 포함하는 것으로 의도된다. 본 명세서에서 사용되는 경우 "포함하다", "포함하는" 및/또는 "포함한"이라는 용어들은 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
[0037] 아래의 청구항들에서 모든 수단들 또는 단계 더하기 기능 엘리먼트들의 대응하는 구조들, 재료들, 행동들 및 등가물들은, 구체적으로 청구된 바와 같은 다른 청구된 엘리먼트들과 결합하여 기능을 수행하기 위한 임의의 구조, 재료 또는 행동을 포함하는 것으로 의도된다. 본 개시내용의 설명은 예시 및 설명의 목적들을 위해 제시되었지만, 개시된 형태로 본 개시내용을 제한하거나 또는 철저한 것으로 의도되는 것은 아니다. 본 개시내용의 범위 및 사상을 벗어나지 않으면서 많은 수정들 및 변형들이 당해 기술분야에서 통상의 지식을 가진 자들에게 자명할 것이다. 그 예는 본 개시내용의 원리들 및 실제 적용을 가장 잘 설명하기 위해, 그리고 당해 기술분야에서 통상의 지식을 가진 다른 자들이 고려되는 특정 용도에 적합한 다양한 수정들을 갖는 다양한 구현들에 대해 본 개시내용을 이해할 수 있게 하기 위해 선택되고 설명되었다.
[0038] 다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위를 벗어나지 않으면서 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.
Claims (12)
- 리프레시(refresh) 전에 테이블들(140)을 사전 활용하기 위한 컴퓨터 구현 방법(302)으로서,
데이터 프로세싱 하드웨어(214)에 의해 실행될 때 상기 데이터 프로세싱 하드웨어(214)로 하여금 동작들을 수행하게 하며, 상기 동작들은,
데이터 분석 애플리케이션(204)에서의 실행을 위한 질의(120)를 선택하는 동작;
상기 질의(120)에 의해 특정된 테이블(140)을 식별하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대한 인코딩(150)을 컴퓨팅하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대해 사전 저장된 인코딩(170)과 상기 컴퓨팅된 인코딩(150)을 비교하는 동작;
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 동일하다는 조건으로, 상기 식별된 테이블(140)을 재-구체화(re-materializing)하는 것 대신에 상기 질의(120)를 실행할 때 상기 식별된 테이블(140)을 활용하는 동작; 및
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 상이하다는 조건으로, 상기 질의(120)의 결과들(190)을 리턴하기 전에 상기 식별된 테이블(140)을 재-구체화하는 동작을 포함하는,
리프레시 전에 테이블들(140)을 사전 활용하기 위한 컴퓨터 구현 방법(302). - 제1 항에 있어서,
상기 식별된 테이블(140)의 적어도 하나의 부분은 상기 식별된 테이블(140)만의 테이블 구조이고, 상기 식별된 테이블(140)은 백그라운드 프로세스에서 재-구체화되며, 상기 식별된 테이블(140)은 일단 상기 재-구체화가 완료되면 재-구체화된 테이블(140)로 대체되는,
리프레시 전에 테이블들(140)을 사전 활용하기 위한 컴퓨터 구현 방법(302). - 제1 항 또는 제2 항에 있어서,
상기 식별된 테이블(140)은 2차 테이블(140)에 의존하며, 상기 인코딩(150)의 컴퓨테이션(computation)은 상기 식별된 테이블(140) 및 또한 상기 2차 테이블(140) 둘 모두에 대한 해시 값(150)을 컴퓨팅하는 것을 포함하며, 상기 비교는, 상기 식별된 테이블(140) 및 상기 2차 테이블(140) 둘 모두에 대해 사전 저장된 해시 값(170)과 상기 컴퓨팅된 해시 값(150)을 비교하는 것을 포함하는,
리프레시 전에 테이블들(140)을 사전 활용하기 위한 컴퓨터 구현 방법(302). - 제3 항에 있어서,
상기 동작들은,
상기 컴퓨팅된 해시 값(150)이 상기 사전 저장된 해시 값(170)과 상이하다는 조건으로, 상기 2차 테이블(140)이 아닌 단지 상기 식별된 테이블(140)에 대한 해시 값과 상기 컴퓨팅된 해시 값(150)을 비교하는 동작; 및
상기 컴퓨팅된 해시 값(150)이 단지 상기 식별된 테이블(140)에 대한 상기 해시 값과 동일하다는 조건으로, 백그라운드 프로세스에서 동시에 상기 2차 테이블(140)을 재-구체화하면서 상기 식별된 테이블(140)을 활용하지만, 그렇지 않으면 상기 질의(120)의 결과(190)를 리턴하기 전에 상기 식별된 테이블(140) 및 상기 2차 테이블(140)을 재-구체화하는 동작을 더 포함하는,
리프레시 전에 테이블들(140)을 사전 활용하기 위한 컴퓨터 구현 방법(302). - 리프레시 전에 구체화된 테이블들(140)을 사전 활용하도록 구성(adapt)된 데이터 프로세싱 시스템(200)으로서,
하나 이상의 컴퓨터들을 포함하는 호스트 컴퓨팅 플랫폼(210) ― 상기 컴퓨터들 각각은 메모리(212) 및 적어도 하나의 프로세서(214)를 포함함 ― ; 및
상기 호스트 컴퓨팅 플랫폼(210)에서 실행되는 동안 동작들을 수행하도록 인에이블되는 컴퓨터 프로그램 명령들을 포함하는 사전 활용 모듈(300)을 포함하며,
상기 동작들은,
데이터 분석 애플리케이션(204)에서의 실행을 위한 질의(120)를 선택하는 동작;
상기 질의(120)에 의해 특정된 테이블(140)을 식별하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대한 인코딩(150)을 컴퓨팅하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대해 사전 저장된 인코딩(170)과 상기 컴퓨팅된 인코딩(150)을 비교하는 동작;
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 동일하다는 조건으로, 상기 식별된 테이블(140)을 재-구체화하는 것 대신에 상기 질의(120)를 실행할 때 상기 식별된 테이블(140)을 활용하는 동작; 및
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 상이하다는 조건으로, 상기 질의(120)의 결과들(190)을 리턴하기 전에 상기 식별된 테이블(140)을 재-구체화하는 동작을 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하도록 구성된 데이터 프로세싱 시스템(200). - 제5 항에 있어서,
상기 식별된 테이블(140)의 적어도 하나의 부분은 상기 식별된 테이블(140)만의 테이블 구조이고, 상기 식별된 테이블(140)은 백그라운드 프로세스에서 재-구체화되며, 상기 식별된 테이블(140)은 일단 상기 재-구체화가 완료되면 재-구체화된 테이블(140)로 대체되는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하도록 구성된 데이터 프로세싱 시스템(200). - 제5 항 또는 제6 항에 있어서,
상기 식별된 테이블(140)은 2차 테이블(140)에 의존하며, 상기 인코딩(150)의 컴퓨테이션은 상기 식별된 테이블(140) 및 또한 상기 2차 테이블(140) 둘 모두에 대한 해시 값(150)을 컴퓨팅하는 것을 포함하며, 상기 비교는, 상기 식별된 테이블(140) 및 상기 2차 테이블(140) 둘 모두에 대해 사전 저장된 해시 값(170)과 상기 컴퓨팅된 해시 값(150)을 비교하는 것을 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하도록 구성된 데이터 프로세싱 시스템(200). - 제7 항에 있어서,
상기 동작들은,
상기 컴퓨팅된 해시 값(150)이 상기 사전 저장된 해시 값(170)과 상이하다는 조건으로, 상기 2차 테이블(140)이 아닌 단지 상기 식별된 테이블(140)에 대한 해시 값과 상기 컴퓨팅된 해시 값(150)을 비교하는 동작; 및
상기 컴퓨팅된 해시 값(150)이 단지 상기 식별된 테이블(140)에 대한 상기 해시 값과 동일하다는 조건으로, 백그라운드 프로세스에서 동시에 상기 2차 테이블(140)을 재-구체화하면서 상기 식별된 테이블(140)을 활용하지만, 그렇지 않으면 상기 질의(120)의 결과(190)를 리턴하기 전에 상기 식별된 테이블(140) 및 상기 2차 테이블(140)을 재-구체화하는 동작을 더 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하도록 구성된 데이터 프로세싱 시스템(200). - 리프레시 전에 구체화된 테이블들(140)을 사전 활용하기 위한 컴퓨터 프로그램 제품(202)으로서,
상기 컴퓨터 프로그램 제품(202)은 프로그램 명령들이 구현된 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 프로그램 명령들은 디바이스(210)로 하여금 동작들을 수행하게 하도록 상기 디바이스(210)에 의해 실행 가능하며, 상기 동작들은,
데이터 분석 애플리케이션(204)에서의 실행을 위한 질의(120)를 선택하는 동작;
상기 질의(120)에 의해 특정된 테이블(140)을 식별하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대한 인코딩(150)을 컴퓨팅하는 동작;
상기 식별된 테이블(140)의 적어도 하나의 부분에 대해 사전 저장된 인코딩(170)과 상기 컴퓨팅된 인코딩(150)을 비교하는 동작;
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 동일하다는 조건으로, 상기 식별된 테이블(140)을 재-구체화하는 것 대신에 상기 질의(120)를 실행할 때 상기 식별된 테이블(140)을 활용하는 동작; 및
상기 컴퓨팅된 인코딩(150)이 상기 사전 저장된 인코딩(170)과 상이하다는 조건으로, 상기 질의(120)의 결과들(190)을 리턴하기 전에 상기 식별된 테이블(140)을 재-구체화하는 동작을 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하기 위한 컴퓨터 프로그램 제품(202). - 제9 항에 있어서,
상기 식별된 테이블(140)의 적어도 하나의 부분은 상기 식별된 테이블(140)만의 테이블 구조이고, 상기 식별된 테이블(140)은 백그라운드 프로세스에서 재-구체화되며, 상기 식별된 테이블(140)은 일단 상기 재-구체화가 완료되면 재-구체화된 테이블(140)로 대체되는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하기 위한 컴퓨터 프로그램 제품(202). - 제9 항 또는 제10 항에 있어서,
상기 식별된 테이블(140)은 2차 테이블(140)에 의존하며, 상기 인코딩(150)의 컴퓨테이션은 상기 식별된 테이블(140) 및 또한 상기 2차 테이블(140) 둘 모두에 대한 해시 값(150)을 컴퓨팅하는 것을 포함하며, 상기 비교는, 상기 식별된 테이블(140) 및 상기 2차 테이블(140) 둘 모두에 대해 사전 저장된 해시 값(170)과 상기 컴퓨팅된 해시 값(150)을 비교하는 것을 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하기 위한 컴퓨터 프로그램 제품(202). - 제11 항에 있어서,
상기 동작들은,
상기 컴퓨팅된 해시 값(150)이 상기 사전 저장된 해시 값(170)과 상이하다는 조건으로, 상기 2차 테이블(140)이 아닌 단지 상기 식별된 테이블(140)에 대한 해시 값과 상기 컴퓨팅된 해시 값(150)을 비교하는 동작; 및
상기 컴퓨팅된 해시 값(150)이 단지 상기 식별된 테이블(140)에 대한 상기 해시 값과 동일하다는 조건으로, 백그라운드 프로세스에서 동시에 상기 2차 테이블(140)을 재-구체화하면서 상기 식별된 테이블(140)을 활용하지만, 그렇지 않으면 상기 질의(120)의 결과(190)를 리턴하기 전에 상기 식별된 테이블(140) 및 상기 2차 테이블(140)을 재-구체화하는 동작을 더 포함하는,
리프레시 전에 구체화된 테이블들(140)을 사전 활용하기 위한 컴퓨터 프로그램 제품(202).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/143,104 | 2021-01-06 | ||
US17/143,104 US11531664B2 (en) | 2021-01-06 | 2021-01-06 | Stand in tables |
PCT/US2022/011197 WO2022150313A1 (en) | 2021-01-06 | 2022-01-04 | Stand in tables |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230122681A true KR20230122681A (ko) | 2023-08-22 |
Family
ID=80050883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237026506A KR20230122681A (ko) | 2021-01-06 | 2022-01-04 | 스탠드 인 테이블들 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11531664B2 (ko) |
EP (1) | EP4275132A1 (ko) |
JP (1) | JP2024502131A (ko) |
KR (1) | KR20230122681A (ko) |
CN (1) | CN116745757A (ko) |
WO (1) | WO2022150313A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531664B2 (en) * | 2021-01-06 | 2022-12-20 | Google Llc | Stand in tables |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2414983A1 (en) * | 2002-12-23 | 2004-06-23 | Ibm Canada Limited-Ibm Canada Limitee | Independent deferred incremental refresh of materialized views |
US20050091180A1 (en) * | 2003-10-22 | 2005-04-28 | Nitzan Peleg | Method and apparatus for refreshing materialized views |
US7930297B2 (en) * | 2004-12-03 | 2011-04-19 | Oracle International Corporation | Materialized view maintenance and change tracking |
US7774354B2 (en) * | 2007-08-02 | 2010-08-10 | International Business Machines Corporation | Method and system for response time optimization for task list retrieval from databases |
US20130091266A1 (en) * | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
CN102624871B (zh) * | 2012-02-03 | 2015-01-07 | 杭州杰唐信息技术有限公司 | 一种基于分布式企业服务总线实现的远程文件同步方法 |
CN102662946B (zh) * | 2012-02-20 | 2015-10-07 | 北京地拓科技发展有限公司 | 一种自动监测数据库中记录变化的方法和系统 |
US10120899B2 (en) * | 2013-03-14 | 2018-11-06 | Oracle International Corporation | Selective materialized view refresh |
US9454572B2 (en) * | 2013-03-14 | 2016-09-27 | Oracle International Corporation | Out-of-place materialized view refresh |
US10223395B2 (en) * | 2015-02-05 | 2019-03-05 | Sap Se | Derivation of hierarchy indexes |
US9928281B2 (en) | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
KR101706252B1 (ko) * | 2016-02-29 | 2017-02-13 | 주식회사 티맥스데이터 | 이기종 데이터베이스들 간의 쿼리 결과를 동기화하기 위한 방법, 서버 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램 |
WO2018146492A1 (en) * | 2017-02-10 | 2018-08-16 | Count Technologies Ltd | Computer-implemented method of querying a dataset |
JP6803279B2 (ja) * | 2017-03-28 | 2020-12-23 | クラリオン株式会社 | 車載装置、地図更新システム |
US10754851B2 (en) * | 2017-12-22 | 2020-08-25 | Adobe Inc. | Question answering for data visualizations |
US20200073953A1 (en) * | 2018-08-30 | 2020-03-05 | Salesforce.Com, Inc. | Ranking Entity Based Search Results Using User Clusters |
US10924398B2 (en) * | 2018-09-25 | 2021-02-16 | Ebay Inc. | Time-series data monitoring with sharded server |
US11068493B2 (en) * | 2018-11-07 | 2021-07-20 | Adobe Inc. | Guided content discovery in visual search |
US11681691B2 (en) * | 2018-11-19 | 2023-06-20 | Numetric, Inc. | Presenting updated data using persisting views |
US11042544B2 (en) * | 2018-12-05 | 2021-06-22 | International Business Machines Corporation | Derived data dictionary for optimizing transformations of encoded data |
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US11526769B2 (en) * | 2019-03-30 | 2022-12-13 | International Business Machines Corporation | Encoding knowledge graph entries with searchable geotemporal values for evaluating transitive geotemporal proximity of entity mentions |
US11074258B2 (en) * | 2019-05-15 | 2021-07-27 | Sap Se | Temporary materialized views |
US11633436B2 (en) * | 2019-09-20 | 2023-04-25 | The Broad Institute, Inc. | Cholesterol reducing compositions and methods of use thereof |
US11392566B2 (en) * | 2019-11-27 | 2022-07-19 | Oracle International Corporation | Rowid decoding: an alternative to dictionary decoding |
EP3849243A1 (en) * | 2020-01-10 | 2021-07-14 | BlackBerry Limited | Multi-band channel discovery for wlan |
US11531664B2 (en) * | 2021-01-06 | 2022-12-20 | Google Llc | Stand in tables |
-
2021
- 2021-01-06 US US17/143,104 patent/US11531664B2/en active Active
-
2022
- 2022-01-04 EP EP22701097.2A patent/EP4275132A1/en not_active Withdrawn
- 2022-01-04 WO PCT/US2022/011197 patent/WO2022150313A1/en active Application Filing
- 2022-01-04 JP JP2023541080A patent/JP2024502131A/ja active Pending
- 2022-01-04 KR KR1020237026506A patent/KR20230122681A/ko unknown
- 2022-01-04 CN CN202280009223.7A patent/CN116745757A/zh active Pending
- 2022-12-06 US US18/062,303 patent/US11841841B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN116745757A (zh) | 2023-09-12 |
US20230098361A1 (en) | 2023-03-30 |
US20220215009A1 (en) | 2022-07-07 |
JP2024502131A (ja) | 2024-01-17 |
WO2022150313A1 (en) | 2022-07-14 |
US11841841B2 (en) | 2023-12-12 |
EP4275132A1 (en) | 2023-11-15 |
US11531664B2 (en) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8510316B2 (en) | Database processing system and method | |
US7822710B1 (en) | System and method for data collection | |
US8090700B2 (en) | Method for updating databases | |
US11269880B2 (en) | Retroreflective clustered join graph generation for relational database queries | |
US11934361B2 (en) | Automatic generation of a data model from a structured query language (SQL) statement | |
TWI706260B (zh) | 基於行動端NoSQL資料庫的索引建立方法及裝置 | |
CN111143470A (zh) | 跨平台数据库数据同步比对方法及装置 | |
CN112015741A (zh) | 一种海量数据的分库分表存储方法与装置 | |
US20250036625A1 (en) | Late Materialization of Queried Data in Database Cache | |
CN106547828A (zh) | 一种基于神经网络的数据库缓存系统及方法 | |
US11841841B2 (en) | Stand in tables | |
WO2020147334A1 (zh) | 基于ignite缓存架构的数据查询方法及系统 | |
CN110955712A (zh) | 基于多数据源的开发api处理方法及装置 | |
US11880370B2 (en) | Retroreflective join graph generation for relational database queries | |
EP3667513A1 (en) | Automated summarized view of multi-dimensional object in enterprise data warehousing systems | |
CN112527765B (zh) | 一种数据迁移方法及装置 | |
JPH06215037A (ja) | インデックスの自動更新装置 | |
US11423027B2 (en) | Text search of database with one-pass indexing | |
US11797579B2 (en) | Data content governance for presentation layer synchronization for a version controlled underlying data model | |
CN115221249B (zh) | 跨库数据查询方法、装置、计算机设备和存储介质 | |
CN112749176A (zh) | 库存数据的同步处理方法及装置、存储介质、服务器 | |
US20220222083A1 (en) | Lightweight extends | |
CN116361323A (zh) | 一种关系树调整方法、装置、设备及存储介质 | |
CN119476447A (zh) | 一种私有知识模型知识的生成方法、装置、设备及介质 | |
JPH08297571A (ja) | ソフトウェア管理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20230803 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application |