2017-02-19 1 views
1

저는 x와 y가 실수 인 데이터웨어 하우스에서 y에 대해 x에 대한 차트 (플롯)의 과학 데이터를 저장하는 데 관심이 있습니다.스타 스키마의 차트 데이터 모델링

각 차트는 전통적인 스타/스노우 플레이크 스키마로 모델링 할 수있는 고정 된 설명 차원 (예 : 시간, 날짜, 위치, 장비)에 대해 생성됩니다.

예를 들어, 각도와 검출기의 응답을 말하며, 여기서 angle은 독립 변수이고 응답은 종속적입니다. 여기 각도는 0 ~ 360도 사이의 실수 일 수 있습니다.

필자는 현재 실제 값을 치수로 사용하여 angle_dimension 테이블에 적절한 스케일 (예 : 3dp)로 0에서 360까지의 값을 미리 채우고 필요할 경우 측정 된 결과를 반올림하지만 손실이 발생한다고 생각합니다 정밀도.

OLAP 큐브에서 나중에 사용할 수 있도록이 데이터를 저장하는 더 효과적인 방법이 있는지 궁금합니다. 내가 할 수있는 쿼리 유형은 다른 시간대의 차트 데이터를 비교하여 변경 사항을 찾거나 다른 위치 또는 지정된 장비에서 지정된 범위 (0-15도)의 평균 응답을 확인하는 것입니다 .

+0

세부 정보 데이터 또는 요약 데이터를 보시겠습니까? 세부 정보 데이터를 분석하려는 것 같습니다. 큐브는 그다지 좋지 않습니다. 예상되는 기록의 수를 아십니까? 각도와 관련하여 몇 가지 다른 속성이 있습니까? 차원 모델링에는 적합하지 않습니다. 현재 데이터가 저장되어 있으며 문제는 무엇입니까? –

+0

두 가지를 모두 사용할 수 있기를 원합니다. 목표는 평균값을보고 세부 사항으로 드릴 다운하여 사물이 허용 오차를 벗어나는 이유를 알아낼 수있게하는 것입니다. 현재 샘플링 시간 (0.25 초 간격)에 대한 차트로 생성 된 장비의 매개 변수 (약 20 개이지만 수백 개로 확장 될 수 있음)를 저장하고 있지만 각도의 함수로 다양 할 수도 있습니다. 우리는 몇 가지 비슷한 장비를 가지고 있으며, 각각 2 ~ 3 가지 모드로 작동합니다. 장비는 XML로 차트를 생성합니다. – adam

+0

필자는 선반 OLAP 도구 (Pentaho 커뮤니티)를 사용하여 사용자가 사용자 지정 코드를 작성하는 대신 데이터를 조작 할 수 있도록 양식에 데이터를 배치하려고했습니다. 그것은 현재 더 많은 원칙의 증거입니다, 나는 약 7 백만 레코드가있는 간단한 큐브를 가지고 있습니다. – adam

답변

0

마지막 단락은 시간별, 각도 별, 위치 별, 장비 별 - 차원 모두를 분석을 위해 저장하는 방법에 대한 좋은 힌트를 제공합니다.

이것을 모델링하는 한 가지 방법은 사실의 곡식을 실재로 2 개의 실수가있는 '한 행당 한 행'으로, 정밀도를 잃어 버리는 것일 수 있습니다.

숫자를 분류 할 때 보조 치수를 추가 할 수 있습니다. 각도보기에서 '각도 범위'를 0-15,16-30 등으로 표시되는 열로 사용할 수도 있습니다.

각도 및 응답 이상인 경우 복잡한/일반적인 디자인을 사용해야 할 수도 있습니다 '각도', '응답'등의 추가 'X 축 유형'열이 포함 된 'X 축 유형'의 일반 특성 항목으로 처리 할 수 ​​있습니다.

여기에 귀하의 광범위한 생각은 소리라고 생각합니다. 선반 도구는 세부 정보와 요약 정보를 모두 포함해야합니다. 핵심은 측정하고있는 물건의 본질적인 특성 (즉, 기계에서의 독서)과 사람들의 분석 방법을 모두 반영하는 모델을 만드는 것입니다. 기본적인 차원 모델을 다루는 대신 평균에 대한 계산을 제공하기 위해 큐브의 기능을 사용하려고합니다.

+0

안녕하세요, 답변과 의견에 감사드립니다. 필자는 프로토 타입 스키마에서 중복 키 문제를 해결하기위한 대안으로 포인트 당 행 수법을 고려해 봤습니다 ("x_value_dimension"을 포함하여 각 사실에 대한 각 차원 키의 합성 키가 있습니다.) 중복 x 값, 예 : 0-> 360 -> 0은 위반으로 이어진다). 그러나이 방법을 사용하면 오류를 찾기 위해 원본 그래프를 다시 시각화하는 것이 어려워 질 것이라고 생각했습니다. 그룹화를 위해 추가 치수를 추가하면 (실제로는 각 정수를보다 유연하게 만들 수 있음) 실제로이 문제를 해결할 수 있습니다. – adam

+0

좀 더 일반적인 (흥미로운?) 문제에 대해서는 float에서 빌려 쓸 수 있고 significand 및 지수 그룹화 차원을 가질 수 있습니다. 유사한 "x 축 유형"에 대해서는 일반적으로 유사한 규모가 예상됩니다. 데이터를 1sf (예 : 0.1 또는 0.05)로만 비닝하는 것일 수 있습니다. – adam

+0

기본 키를 사용하는 이유는 테이블의 세부 수준을 정의하고 적용하기 위해서입니다. 모든 차원 키에 PK를 자동으로 설정하면 안됩니다. 소스 시스템에서 어떤 종류의 샘플 번호가 있다면, 그것은 사실에 있어야하며 일종의 고유 제한 조건을 가져야합니다. –