2012-03-30 3 views
0

클라이언트 용 Mondrian-Saiku 솔루션을 평가 중입니다.Mondrian - Fact 테이블의 데이터를 XML로

현재 데이터베이스 스키마를 분석 한 결과 '사실 테이블 데이터'가 현재 XML에 저장되고 있음을 알 수 있습니다. XML 자체는 Blob 데이터 유형으로 MySQL 테이블에 저장됩니다. 이것을 다음과 같이 생각하십시오 : 테이블에는 회사의 모든 거래가 있습니다. 각 트랜잭션의 세부 사항은 자체 XML에 저장됩니다. 각 XML 문자열은 지정된 트랜잭션 행의 필드 값 중 하나로 저장됩니다.

몬드리안 XML 스키마는 명시 적으로 열 이름을 사용해야하므로 약간의 딜레마가 발생합니다.

XML 데이터를 추출하여 새 테이블로 전송하는 것 (다른 시스템의 데이터 및 종속성의 크기로 인해 실제로는 그렇지 않음)이 부족한 경우, 클라이언트의 기존 설정을 목적에 맞게 사용할 수있는 방법이 있습니까? 몬드리안 - 사이 쿠 구현 중?

답변

1

전통적인 테이블 방식으로 데이터를 노출해야합니다. 여기에 데이터베이스가 무엇입니까? blob의 XML에서 일부 XML 처리를 수행하고 열을 노출하는 데이터베이스보기를 만들 수 있습니까?

어쩌면 합성 또는 jboss teiid와 같은 것이 여기에서 도움이 될 수 있습니다. 이 도구를 사용하면 거의 모든 것을 표준으로 볼 수 있습니다. 그것은 충분히 빠르지 않을 수도 있습니다!

+0

입력 해 주셔서 감사합니다. 이 질문을 게시 한 이후에, 나는 몬드리안 XML이 MySQL을 통해 ExtractValue()를 지원한다는 것을 실험을 통해 알게되었다. 이렇게하면 기존 데이터베이스를 변경할 필요가 없습니다. 병목 현상은 ExtractValue()에서 비롯된 것으로 보입니다. ExtractValue()는 데이터 집계를 위해 여러 번 실행됩니다. – kaspnord

+0

확인. 아 아. 전체 레코드가 XML로 인코딩되었다고 말한 것 같습니다. 그래서 나는 당신의 질문을 오해했습니다. 그렇습니다. 몬드리안 (Mondrian)은 그런 식으로 모든 SQL 함수를 지원한다고 생각합니다. 분명히 첫 번째 실행 후 캐싱해야하지만, 너무 느린 경우에는 XML을 구문 분석하는 더 빠른 방법을 찾거나 적절한 열에 데이터를 추출하는 것이 좋습니다. 또는 Agg 테이블을 사용할 수도 있지만이 경우에는 OTT가됩니다. – Codek