2012-04-03 2 views
4

나는 앞으로의 프로젝트에 대한 분석을하려고합니다.대부분의 사람들이 MDX 쿼리를 어떻게 사용합니까? MDX 결과를 사용하여 웹 UI를 구동해야합니까?

트렌드, 차트 및 분석과 관련이 있습니다. 일정 기간 동안 MAX, MIN, AVG, SUM 등을 생각하십시오.

우리는 시간 차원에 대해 이러한 계산을 계산할 수있는 OLAP 큐브가 있다고 가정 해보십시오.

이론적으로 백엔드는 큐브에 쿼리하고 일부 속성 B에 대해 한 달 또는 한 년 또는 여러 날 (예 : 지난 5 년 동안)에 대한 결과를 가져옵니다. 뷰를 확장하거나 축소하기 위해 재무 주식 차트에서 사용되는 것과 유사한 슬라이더 창을 사용하여 렌더링 된 날짜 범위를 조작 할 수 있습니다.

우리 중 일부는 MDX를 사용하여 일부 HTML 5 차트 도구를 사용하는 UI를 구동 할 수 있다고 생각합니다.

저는 OLAP, MDX, Cubes 등을 처음 접했습니다. 하지만 .NET 코드에서 MDX 쿼리의 결과를 가져 오는 명확한 방법이없는 것으로 보입니다. (MVC 웹에서 C#을 사용할 것입니다. 대지).

지금까지 우리가 찾은 것 중 가장 잘 작동하는 것은 ADOMD입니다.

사람들이 제안 할 수있는 대안이 있는지 궁금합니다.

OLAP 큐브 및 MDX 쿼리를 사용하여 웹 사이트를 운전하는 사람이 있습니까?

지난 2 개월 동안 속성 B의 개체 A와 같은 질문에 대답하기 위해 큐브가 이미 올바르게 설정되어있는 경우 큐브에 쿼리하여 해당 데이터를 정확하게 표시하고 표시 방법을 표시 할 수 있어야합니다. 일부 UI에 적합합니다. 나는 그렇게하는 깔끔한 방법이 있는지 확신하지 못한다.

모든 의견, 통찰력, 아이디어는 인정 될 것입니다.

+0

이와 비슷한 것은 아마도 지금가는 길일 것입니다. http://www.mdxsamples.com/csharp.html – topwik

답변

0

C#을 사용하고 있고 사용자 지정 웹 서비스를 사용하여 사용자 지정 UI를 작성하는 경우 Ranet을 사용해 볼 수 있습니다. 이것은 오픈 소스 프로젝트 였지만 이후 폐쇄되었습니다. 광고가 너에게 의미가 있을지 모르겠다. Ranet은 ANTLR을 구현하여 작동합니다. 구현하기에 시간을 투자하는 것이 합리적이라면 어렵지 않을 것입니다. 그런 다음 .NET 배포가 가능한 많은 ANTLR을 활용할 수 있습니다. 또는 XMLA 및 ADOMD.NET을 사용하여 직관적 인 개체를 차트 생성에 사용할 수 있지만 비효율적 인 프로토콜입니다. Java를 사용하는 경우 olap4j를 사용하면 필요한 것을 많이 제공 할 수 있습니다. 옵션은 서버의 인터페이스에 따라 크게 달라집니다. 몬드리안을 사용하고 있습니까? XMLA 서블릿이 있습니까? 사용자 정의 웹 서비스?

+0

ADOMD.NET을 좀 더 살펴보아야 할 것입니다. 초기 단점은 MDX 쿼리를 문자열로 작성하고 문자열을 데이터 액세스 개체의 명령 텍스트로 설정해야한다는 것이 었습니다. 저장 프로 시저에 일부 매개 변수를 전달하고 저장된 proc이 MDX 구문에 대해 걱정할 필요가없는 깨끗한 OLTP 저장 프로 시저가 없습니다. SSAS 세계에서 C# stored procs에 관한 내용을 읽었지만 ... – topwik

3

OLAP & 입방체는이 작업에 매우 적합하며 잘못된 트리를 짖지 않을 것입니다. 나는 icCube와 그것의 Web reporting의 예제를 취할 것이다. 링크에서 볼 수있는 차트는 현재 필터 선택을 기반으로 MDX 쿼리를 생성합니다. 이벤트 (예 : 셀 클릭) 및 드릴 다운 지원을 얻을 수 있습니다. 이것은 순수 자바 스크립트로 이루어 지므로 자신의 웹 사이트에 통합 할 수 있어야합니다. 이 도구는 기본적으로 OEM 솔루션을 대상으로 설계되었습니다. 그래서 그것은 당신 자신의 필요를 충족시키기 위해 매우 구성 가능합니다; 예를 들어, 자신의 차트 라이브러리 (현재 지원됨 : Google, ExtJs/Sencha, amCharts, protoviz, flot)를 사용할 수 있습니다.

1

실제로, Ranet OLAP 버전의 codeplex와 google을 사용할 수 있습니다.

내가 드래그 앤 드롭 인터페이스를 가지고 프로젝트에 근무 ... 코드가 업데이트되지 않습니다,하지만 Ranet OLAP

HTML5 online demo

6

오년 전에 프로젝트의 공식 사이트에서 볼 수 있습니다 (HTML과 엄청나게 많은 JS) 사용자가 원하는대로 정확하게 사용자 지정 큐브 쿼리를 구성 할 수 있습니다. 우리는 아약스가있는 ASP를 호출하여 ADOMD로 큐브 데이터를 가져 와서 HTML 테이블로 반환했습니다. 차트 작성은 SVG를 작성한 사용자 정의 JS를 통해 이루어졌습니다. (요즘은 .NET과 JQuery로는 더 쉬울 것이지만 여전히 많은 작업이 될 것입니다.)

ropey로 들리지만 잘 작동하고 영국의 최대 환대 회사에 판매 데이터를 분석하기에 충분할만큼 신뢰할 수있었습니다.

문제가 생겨서 인터넷 검색을 통해 인터넷으로 OLAP 데이터를 제공하는 유일한 사람인 것처럼 보였습니다 (대부분의 사람들은 인트라넷 상황에 처해 있었고 웹 브라우저를 사용하지 않았거나). 상황이 바뀌 었는지는 모르겠지만 OLAP은 고객의 데이터를 관리하거나 고객의 데이터를 볼 수 없도록하는 방식으로 볼 수 있습니다.

내 조언 : 당신이 단어를 '피벗 테이블'을 듣는 경우 고객이 사용자 수준 또는 위치 수준의 보안 (역할을)하려면

  1. 다음 멀리
  2. 을 실행, 도망
  3. 확인 사람들은 MDX를 작성하는 데 능숙합니다. 사람들이 복잡한 보고서를 만들 것을 요청할 것이기 때문에 (UI를 사용하여 보고서를 구성하고 싶지는 않을 것입니다)
  4. 큐브를 만드는 데 시간이 걸리지 만 때때로 사람들은 볼 것을 기대합니다. 실시간으로 변경되면 새로 고침 (SQL에서는이 작업을 수행하지만 OLAP에서는 reproc이 필요합니다.) 싱 시간)
  5. 드릴 가능한 차트가 발견 변칙
  6. 에 대한 멋진, 좋은 것입니다
0

한 가지 우리가 일부는 경찰 아웃으로 볼 수 있지만, 상당히 잘 작동 과거에했던 - 우리가했습니다 데이터를 병합하고 2 차원 SQL 테이블에 저장하는 포함 된 MDX 쿼리가 포함 된 SSIS 패키지를 사용했습니다.

예를 들어 OLAP 큐브를 가져 와서 일, 주 등의 데이터를 추가 열과 함께 계산했습니다. 이를 통해 AJAX를 사용하여 데이터에 대해 초고속 쿼리를 수행 할 수있었습니다. 이 솔루션은 하루에 한 번 또는 일주일에 한 번 업데이트되는 데이터 세트를 처리하는 데 시간이 걸리는 MDX 계산에 특히 적합합니다. 일반적인 ETL 프로세스가 실행 된 후 밤에 SSIS-to-SQL 동기화 패키지가 실행되도록 트리거합니다.

새로 고치기 위해 20 초가 걸렸을 수있는 MDX calc를 SQL로 병합하고 밀리 초 단위로 가져와 사용자에게 본질적으로 전체 OLAP 보고서 및 인스턴트 응답 시간과 동일한 데이터를 제공 할 수 있습니다. 그런 다음이 방법을 차트 라이브러리와 결합하여 요약 데이터를 표시했습니다.

생각을위한 음식.

+0

필요한 각 세부 수준에서 각 쿼리에 대해 완전 커버 인덱스를 사용하여 약 200 만 행의 행 개수가있는 복구 주문 및 부품 티켓에 대한 데모를 준비하는 중입니다 (디스크 공간은 저렴한) 데이터입니다. 단지 매일 업데이트됩니다 ..이게 나에게 능력을 웹 측면에서 요약 정보를 생성 가서 색소폰/openxml를 사용하여 피벗을 능가하는 전체 수출을 허용 바라고 있습니다 .... 나는 어떤 구성 요소를 찾을 수 없었습니다 대용량 데이터에 대한 만족스러운 경험 생각? –

+0

우리가하는 일에 거의 비슷하게 들리지만 최근 몇 주 동안 ADOMD.NET으로 작업하여 큐브와 렌더링 차트를 Highcharts.js에서 직접 쿼리했습니다. 지금까지는 작동 중이지만 병합 된 데이터 메서드에 비해 처리 오버 헤드가 있습니다. –