배열 DBMS
Array DBMS어레이 데이터베이스 관리 시스템(array DBMS)은 어레이(래스터 데이터라고도 함)를 위한 데이터베이스 서비스를 제공한다. 즉, 1, 2 또는 그 이상의 차원에 있는 데이터 항목의 동질적인 모음(흔히 픽셀, 복셀 등)이 그것이다. 종종 배열은 센서, 시뮬레이션, 이미지 또는 통계 데이터를 나타내기 위해 사용된다. 이러한 어레이는 종종 테라바이트 및 페타바이트 크기에 이르는 단일 개체를 포함하는 빅 데이터인 경향이 있다. 예를 들어 오늘날의 지구 및 우주 관찰 아카이브는 일반적으로 하루에 테라바이트씩 성장한다. 어레이 데이터베이스는 이 정보 범주에 대해 유연하고 확장 가능한 저장 및 검색을 제공하는 것을 목표로 한다.
개요
어레이 DBMS는 세트의 표준 데이터베이스 시스템과 동일한 스타일로 (개념적으로) 무제한 크기의 어레이에서 확장 가능하고 유연한 스토리지와 유연한 검색/조작 기능을 제공한다. 실제로 어레이가 독립적으로 나타나지 않는 것처럼, 그러한 어레이 모델은 일반적으로 관계 모델과 같은 일부 전체 데이터 모델에 내장된다. 어떤 시스템은 표와 유사하게 어레이를 구현하고, 어떤 시스템은 어레이를 추가 속성 유형으로 도입한다.
어레이를 관리하려면 새로운 기술이 필요한데, 특히 기존의 데이터베이스 튜플과 오브젝트가 단일 데이터베이스 페이지(일반적으로 4KB 서버 상의 디스크 액세스 단위)에 잘 맞는 경향이 있는 반면 어레이 오브젝트는 여러 미디어를 쉽게 확장할 수 있기 때문이다. 어레이 스토리지 관리자의 주요 임무는 대형 어레이와 하위 어레이에 대한 빠른 액세스를 제공하는 것이다. 이를 위해 배열을 삽입하는 동안 편리한 크기의 타일 또는 청크로 분할한 후 쿼리 평가 중에 액세스 단위의 역할을 한다.
어레이 DBMS는 이러한 어레이에 대한 선언적 액세스를 제공하는 쿼리 언어를 제공하여 어레이를 생성, 조작, 검색 및 삭제할 수 있도록 한다. 예를 들어 SQL과 마찬가지로, 임의의 복잡성의 표현은 일련의 코어 어레이 작업 위에 구축될 수 있다. 데이터와 쿼리 모델에서 만들어진 확장 때문에, 어레이 DBMS는 "SQL뿐만 아니라"라는 의미에서 NoSQL 범주 아래에 포함되기도 한다. 쿼리 최적화 및 병렬화는 확장성을 달성하기 위해 중요하다. 실제로, 많은 어레이 운영자들은 각 타일을 개별 노드나 코어에 처리함으로써 병렬 평가를 위해 자신을 잘 빌려준다.
어레이 DBMS의 중요한 응용 영역에는 지구, 우주, 생명, 사회과학뿐만 아니라 관련 상업 응용 분야(산업에서의 탄화수소 탐사, 사업에서의 OLAP 등)가 포함된다. 1-D 환경 센서 시계열, 2-D 위성 영상, 3-D x/y/t 영상 시계열 및 x/y/z 지구물리학 데이터와 4-D x/y/z 기후 및 해양 데이터를 찾을 수 있는 지리 데이터에서 발생하는 다양성을 관찰할 수 있다.
이력 및 현황
오늘날 지배적인 관계형 데이터 모델은 집합과 튜플과 같은 정도로 어레이 패러다임을 직접적으로 지원하지 않는다. ISO SQL은 배열 값 속성 유형을 나열하지만, 이것은 1차원일 뿐이고, 거의 운영 지원이 없으며, 어레이 DBMS의 응용 도메인에는 사용할 수 없다. 또 다른 옵션은 파일: (개념상) 무제한 길이의 바이트 문자열과 동등한 BLOB("이중 큰 개체")에 의존하지만, 질의 없이 다시 한 번 하는 것이다. 다차원 부분 집합 취하기와 같은 언어 기능.
BLOB를 넘어선 첫 번째 중요한 작업이 PICDMS와 함께 구축되었다.[1] 이 시스템은 절차적이고 적절한 스토리지 지원이 없음에도 불구하고 2-D 어레이 쿼리 언어의 전구성을 제공한다.
다차원적 차원 및 대수적 기반 의미론을 가진 최초의 선언적 쿼리 언어가 확장 가능한 아키텍처와 함께 바우만(Baumann)에 의해 발표되었다.[2][3] 2-D로 제한된 또 다른 배열 데이터베이스 언어는 마라테와 살렘에 의해 제시되었다.[4] 리브킨 외 연구진들이 세미날 이론적 작업을 완수했다.;[5] NCRA라 불리는 그들의 모델에서, 그들은 다차원 배열로 내포된 관계 미적분을 확장한다; 그 결과들 중에는 배열 질의 복잡성 분석에 대한 중요한 기여가 있다. 2-D 및 3-D 공간 래스터 데이터에 적합한 지도 대수학(map gearge)이 메니스 외 연구진에 의해 발표되었다.[6]
어레이 DBMS 구현 측면에서 라스다만 시스템은 완전한 쿼리 지원을 통해 n-D 어레이 중 구현 기록이 가장 길다. Oracle GeoRaster는 SQL 통합이 없더라도 2-D 래스터 맵의 청크한 스토리지를 제공한다. TerraLib은 객체 관계형 DBMS 기술을 확장하여 주격 데이터 유형을 처리하는 오픈소스 GIS 소프트웨어로, 벡터 데이터에 주안점을 두고 있지만, 래스터에 대한 지원도 있다. PostGIS는 버전 2.0부터 2-D 래스터에 대한 래스터 지원을 내장하고 있으며, 특수 기능은 선언적 래스터 쿼리 기능을 제공한다. SciQL은 MoneDB DBMS에 추가되고 있는 배열 질의어다. SciDB는 배열 데이터베이스 지원을 확립하기 위한 보다 최근의 이니셔티브다. SciQL과 마찬가지로 배열은 rasdaman과 PostGIS에서와 같이 새로운 속성 타입이 아니라 테이블과 동등한 것으로 간주된다.
희소성 데이터의 특별한 경우, OLAP 데이터 큐브는 잘 확립되어 있으며, 셀 값과 위치(유효한 정보가 전혀 전달되지 않는 몇몇 위치 앞에서 적절한 압축 기법)를 함께 저장하고 SQL로 작동한다. 이 기법은 밀도가 확장되지 않기 때문에 대부분의 셀이 의미 있는 정보를 전달하는 위성 영상과 같은 조밀한 데이터에 표준 데이터베이스가 사용되지 않고, 오히려 과학 데이터 관리와 유사한 상황에서 독점적인 임시 구현이 우세하다. 따라서, 배열 DBMS가 특정한 기여를 할 수 있는 곳이다.
일반적으로 어레이 DBMS는 떠오르는 기술이다. Oracle GeoRaster, PostGIS 2.0, rasdaman 등 운영적으로 구축된 시스템이 존재하지만, 여전히 질의어 설계 및 공식화, 질의 최적화, 병렬화 및 분산 처리, 전반적인 확장성 문제 등 개방적인 연구 질문이 많다. 게다가, 과학 커뮤니티는 여전히 어레이 데이터베이스 기술을 채택하는 것을 꺼리고 있고 전문화되고 독점적인 기술을 선호하는 경향이 있다.
개념
데이터베이스에 어레이를 추가할 때는 스토리지 관리(다중 미디어를 포함하는 어레이 관리 등)에 대한 개념 모델링(적합한 운영자 등)부터 쿼리 처리(효율적인 처리 전략 등)에 이르기까지 데이터베이스 설계의 모든 측면을 재고해야 한다.
개념 모델링
형식적으로, 배열 A는(전체 또는 부분적)기능에 의해:X, 0과 V, 범위라고 하는 일부(사각형)평가하다 V일부 d>에 여기서 X, 도메인은d-dimensional 정수 간격 →, 집합으로, 이{X에서(p,v)p, V에 'v'}이에요를 나타내는 배열 요소나 세포의 각(p,v)다시 쓸 수도 있고, w. 일반적인 표기법에 따라 주어진다rite A[p] = v. X의 예는 {0..767} × {0..1023}(XGA 크기 영상의 경우, V의 예에는 {0..)이 포함된다.8비트 그리스케일 영상의 경우 255} 및 {0..255} × {0..255} × {0..표준 RGB 이미지용 255}.
확립된 데이터베이스 관행에 따라 배열 질의 언어는 선언적이고 평가 시 안전해야 한다. 어레이에 대한 반복이 어레이 프로세싱의 핵심이기 때문에 선언성은 이 측면에 매우 중점을 둔다. 그렇다면 개념적으로 모든 셀을 동시에 검사해야 한다. 즉, 쿼리는 평가 중에 어레이 셀에 대해 명시적인 반복 시퀀스를 시행하지 않는다. 평가 안전성은 모든 쿼리가 제한된 수의 (마침 시간) 단계 후에 종료될 때 달성된다. 다시 말하지만, 일반적인 루프와 반복을 피하는 것이 이를 달성하는 방법이다. 동시에 명시적 루프 시퀀스를 피하면 다지관 최적화 기회가 열린다.
배열 쿼리
배열 쿼리 연산자의 예로서 최소 배열 원시 요소 집합에 걸쳐 표현 언어를 설정하는 라스다만 대수 및 쿼리 언어가 제공될 수 있다. 우리는 일반적인 핵심 운영자들부터 시작해서 일반적인 특수 사례와 속기들을 제시한다.
Marray 연산자는 주어진 도메인 범위에 걸쳐 배열을 생성하고 셀을 초기화한다.
주사를 놓다 색인을 달다-범위-사양 가치 세포를 놓다-가치를 매기다-표현
여기서 인덱스 범위-지수가 결과 도메인을 정의하고 반복 시퀀스를 지정하지 않고 반복 변수를 여기에 바인딩한다. 셀-값-표현은 도메인의 각 위치에서 평가된다.
예: "코너 포인트(10,20) 및 (40,50)에서 주어진 배열 A의 컷아웃"
주사를 놓다 p 에 [10:20,40:50] 가치 A[p]
이 특별한 경우, 순수한 부분집합은 다음과 같이 축약할 수 있다.
A[10:20,40:50]
이 부분집합은 배열의 치수를 유지하며, 슬라이스를 추출하여 치수를 줄이기 위해 슬라이싱 치수에 단일 슬라이스 포인트 값을 표시한다.
예: "위치 t=100에서 x/y/t 시간대를 통과하는 슬라이스, 사용 가능한 모든 데이터를 x 및 y로 검색"
A[*:*,*:*,100]
와일드카드 연산자 *는 배열의 현재 경계가 사용됨을 나타낸다. 치수 경계가 정의 시간에 열려 있는 배열은 배열의 수명 동안 해당 치수의 크기가 변경될 수 있다는 점에 유의하십시오.
위의 예들은 단순히 원래의 값들을 복사했을 뿐이다. 대신에, 이러한 값들은 조작될 수 있다.
예: "어레이 A, 각 셀 값에 로그()가 적용되는 경우."
주사를 놓다 p 에 도메인(A) 가치 통나무를 하다( A[p] )
이것은 다음과 같이 축약할 수 있다.
통나무를 하다( A )
유도 연산이라 불리는 원리를 통해,[7] 쿼리 언어는 셀 타입이 어레이 레벨에서 제공하는 모든 연산도 제공한다. 따라서 숫자 값에서는 일반적인 모든 단항 및 이항 산술, 지수 및 삼각 연산자와 표준 부울 연산자 세트를 간단한 방법으로 사용할 수 있다.
콘덴서 연산자는 셀 값을 SQL Aggregate와 유사하게 하나의 스칼라 결과로 집계한다. 응용 프로그램의 일반적인 형태:
응축시키다 응축시키다-op 에 걸쳐서 색인을 달다-범위-사양 사용. 세포를 놓다-가치를 매기다-표현
이전 Marray와 마찬가지로, 인덱스 범위 지정은 반복 시퀀스를 지정하지 않고 반복할 도메인을 지정하고 반복 변수를 다시 여기에 바인딩한다. 마찬가지로 셀-값-표현도 각 도메인 위치에서 평가된다. 콘덴스-op 절은 셀 값 표현식을 하나의 단일 값으로 결합하는 데 사용되는 집계 연산을 명시한다.
예: "A의 모든 값에 대한 합계"
응축시키다 + 에 걸쳐서 p 에 씨름하다(A) 사용. A[p]
이 작업의 속기는 다음과 같다.
add_message( A )
같은 방식으로 그리고 SQL Aggregate와 유사하게, 카운트, 평균, 최소, 최대, 부울 정량자를 포함한 많은 추가 속기가 제공된다.
다음 예는 히스토그램을 도출하여 마레이와 응축 연산자의 조합을 보여준다.
예: "8비트 그리스케일 이미지 A에 대한 히스토그램"
주사를 놓다 양동이로 만들다 에 [0:255] 가치 count_message( A = 양동이로 만들다 )
유도 비교 A=버킷은 A와 동일한 범위의 부울 배열을 설정한다. 집계 연산자는 버킷의 각 값에 대해 true 발생 횟수를 세고, 이후 1-D 히스토그램 배열의 적절한 배열 셀에 넣는다.
그러한 언어는 루프를 사용하지 않고도 분석적으로 표현할 수 있는 통계 및 영상 작업을 형성할 수 있다. 이러한 배열 언어의 표현력은 원칙적으로 순위를 가진 관계형 질의 언어와 동등하다는 것이[8] 증명되었다.
배열창고
어레이 스토리지는 다양한 차원과 일반적으로 큰 크기의 어레이를 수용해야 한다. 핵심 과제는 디스크의 공간적 근접성을 유지하여 부분집합 중 디스크 접근 수를 줄이는 것이다. 다차원 어레이를 중첩 목록(또는 1-D 어레이)으로 에뮬레이션해도 이를 달성할 수 없으며, 따라서 일반적으로 확장 가능한 아키텍처로 이어지지 않는다는 점에 유의하십시오.
일반적으로 배열은 접근 단위를 형성하는 하위 배열로 분할된다. 모든 파티션의 크기가 동일한 정기 파티션을 청킹이라고 한다(경계 제외).[9] 모든 종류의 파티션을 지원함으로써 동일한 크기의 파티션에 대한 제한을 없앤 일반화가 타일링되고 있다.[10] 어레이 파티셔닝은 어레이 하위 집합에 대한 액세스를 크게 향상시킬 수 있다. 액세스 패턴에 타일링을 조정함으로써 서버는 디스크 액세스 하나만 사용하여 필요한 모든 데이터를 가져오는 것이 이상적이다.
타일 압축은 때때로 필요한 스토리지 양을 상당히 줄일 수 있다. 또한 결과의 전송에는 네트워크 대역폭이 종종 제한적인 요소를 구성하는 검토 대상의 대량의 데이터에 대해 압축이 유용하다.
쿼리 처리
타일을 기반으로 한 스토리지 구조는 타일별 처리 전략을 제안한다(타일 스트리밍이라고 불리는 라스다만에서). 타일 다음에 타일을 로드하여 실제로 관련된 질의의 많은 클래스를 평가할 수 있으므로, 서버가 주 메모리를 넘어서는 규모의 배열 순서를 처리할 수 있다.
과학/기술 애플리케이션에서 복잡한 질의와 함께 방대한 크기의 배열로 인해, 최적화는 배열 질의를 효율적으로 만드는 데 중심적인 역할을 한다. 하드웨어와 소프트웨어 병렬화를 모두 적용할 수 있다. 경험적 최적화의 예로는 "두 개의 입력 영상을 셀로 추가함으로써 발생하는 배열의 최대값은 각 입력 배열의 최대값을 추가하는 것과 같다"는 규칙이 있다. 왼쪽 변형을 오른쪽 표현으로 대체함으로써 비용은 세 개의 (비용적으로) 어레이 트래버설에서 두 개의 어레이 트래버설과 한 개의 (저렴한) 스칼라 작업으로 감소한다(SQL/MDA 쿼리 표준을 사용하는 그림 참조).
응용 프로그램 도메인
대부분의 경우(대부분은 아니더라도) 일부 현상을 샘플링하거나 시뮬레이션한 결과는 어레이로 편리하게 저장, 검색 및 전달할 수 있는 래스터화된 데이터 집합이다. 전형적으로 배열 데이터는 그것을 더 자세히 설명하는 메타데이터로 장식된다. 예를 들어, 지리적으로 참조된 이미지는 지리적 위치와 그것이 표현되는 좌표 참조 시스템을 포함할 것이다.
다음은 대규모 다차원 배열 데이터가 처리되는 대표적인 도메인이다.
- 지구과학: 지질 / 지도, 원격 감지, 지질학, 해양학, 수문학, 대기과학, 극저온권 과학
- 우주 과학: 행성 과학, 천체 물리학(광학 및 전파 망원경 관측, 우주 시뮬레이션)
- 생명과학: 유전자 데이터, 콘코칼로컬 현미경, CAT 스캔
- 사회과학: 통계 데이터 큐브
- 비즈니스: OLAP, 데이터 웨어하우징
이는 예에 불과하다. 일반적으로 어레이는 센서, 시뮬레이션, 이미지 및 통계 데이터를 자주 나타낸다. 점점 더 많은 공간적, 시간적 차원이 판매나 제품과 같은 추상적 축과 결합된다. 그러한 추상적 축이 명백하게 예견되는 한 예는 [Open_Geospatial_Consortium Open Geospatial Consortium] (OGC) 커버리지 모델이다.
표준화
많은 지역사회는 HDF, NetCDF, TIFF와 같은 데이터 교환 형식을 확립했다. 지구과학 공동체에서 사실상의 표준은 데이터 전송 아키텍처와 프로토콜인 OPeNDAP이다. 이것은 데이터베이스 사양은 아니지만, 개념 모델과 클라이언트/서버 구현과 같은 데이터베이스 시스템의 특징을 나타내는 중요한 요소들을 제공한다.
선언적 지리 래스터 질의 언어인 Web Coverage Processing Service(WCPS)는 OGC(Open Geospatial Consortium)에 의해 표준화되었다.
2014년 6월 SQL 데이터베이스 표준을 유지하는 ISO/IEC JTC1 SC32 WG3는 2003년 SQL 버전 이후 이용 가능한 초기 어레이 지원을 바탕으로 새로운 칼럼 타입으로 SQL에 다차원 어레이 지원을 추가하기로 했다.[11] 2018년 가을에 채택된 새로운 표준은 ISO 9075 SQL Part 15: MDA(다차원 어레이)로 명명되었다.
배열 DBMS 목록
참고 항목
참조
- ^ Chock, M, Cardenas, A, Klinger, A: PICDMS(사진 데이터베이스 관리 시스템)의 데이터베이스 구조 및 조작 기능. IEEE ToPAMI, 6:484–492, 1984
- ^ 바우만, P: 다차원 이산형 데이터 관리. VLDB 저널 4(3)1994, 공간 데이터베이스 시스템에 관한 특별호, 페이지 401-4444
- ^ Baumann, P.: Spatio-Temporal Data 및 Beyond에 대한 데이터베이스 배열 대수. Proc. NGITS’99, LNCS 1649, Springer 1999, pp.76-93
- ^ 마라테, A, 살렘, K. : 배열을 조작하는 언어. Proc. VLDB'97, 그리스 아테네, 1997년 8월, 페이지 46–55
- ^ Libkin, L, Machlin, R, Wong, L.: 다차원 배열의 쿼리 언어: 설계, 구현 및 최적화 기법. Proc. ACM SGIMOD'96, 캐나다 몬트리올, 페이지 228–239
- ^ 메니스, J, 비거, R, 톰린, C.D.: 스파티오-임시분석을 위한 큐빅 맵 대수 함수 지도 및 지리 정보 과학 32(1) 2005, 페이지 17-32
- ^ 리터, G., 윌슨, J., 데이비드슨, J. 이미지 대수: 개요. 컴퓨터 비전, 그래픽 및 이미지 처리, 49(1)1994, 297-336
- ^ 마클린, R: 인덱스 기반 다차원 배열 쿼리: 안전 및 동등성. Proc. ACM PODS'07, 중국 베이징, 2007년 6월, 페이지 175–184
- ^ 사라와기, S, 스톤브레이커, M.: 대형 다차원 배열의 효율적인 조직. Proc. ICDE'94, 미국 휴스턴, 1994, 페이지 328-336
- ^ 퍼타도, P, 바우만, P: 임의 타일링 기반 다차원 배열 저장. Proc. ICDE'99, 1999년 3월 23-26, 호주 시드니, 페이지 328-336
- ^ Chirgwin, R.: SQL은 2014년 6월 26일, SQL/MDA 사양, The Register, The Register를 통해 NoSQL의 빅데이터에 대한 신뢰에 맞서 싸운다.