2016-09-13 6 views
0

지난 며칠 동안 WSO2 CEP를 탐색 해 왔습니다.WSO2 CEP - 여러 실행 계획을위한 단일 이벤트 테이블

단일 조회 테이블을 여러 실행 계획에서 사용할 수있는 시나리오를 고려 중입니다. 내가 아는 한, 모든 데이터를 저장하는 유일한 방법은 이벤트 테이블입니다.

내 질문은 :

  1. 내가 한 번 이벤트 테이블을로드 (하나 개의 실행 계획이 될 수있다) 및 기타 실행 계획과 해당 테이블을 공유 할 수 있습니까?

  2. Q1 대답이 아니오이면 다른 실행 계획에 동일한 데이터가 여러 복사본으로 저장됩니다. 맞습니까? 이 공간 활용을 줄이는 방법이 있습니까?

  3. 이벤트 표가 올바른 해결책이 아닌 경우 다른 옵션은 무엇입니까? 사전에

감사합니다, -Obaid

답변

0

이벤트 테이블은 시나리오에서 작동합니다. 그러나 인 메모리 이벤트 테이블 대신 RDBMS EventTable 또는 Hazelcast EventTable을 사용해야 할 수도 있습니다. 이들을 사용하여 단일 테이블 데이터를 여러 실행 계획과 공유 할 수 있습니다.

서버 종료 후에도 데이터를 보존하려면 RDBMS EventTables를 사용해야합니다 (이 경우 H2 브라우저, MySQL Workbench 등 각각의 DB 브라우저를 사용하여 테이블 데이터에 액세스 할 수도 있습니다) . 런타임에 하나의 이벤트 테이블을 여러 실행 계획과 공유하려는 경우 Hazelcast EventTable을 사용할 수 있습니다.

+0

도움 주셔서 감사합니다. 우리가 hazelcast을 고려하는 경우 – Obaid

+0

그래서, 그것은 다음과 같은 수 : 1.로드 한 실행 계획에서 hazelcast 백업 이벤트 테이블 (정의 + 스트림에서 삽입) 2. 데이터는 메모리 클러스터에 hazelcast에 저장됩니다 3. 다른 실행 계획의 동일한 데이터를 사용하려는 경우 step-1과 동일하게 정의하면 데이터가 이미 있으므로 스트림에서로드 할 필요가 없습니다. 위의 내용이 잘못되면 나를 바로 잡으십시오. 고마워요, 오바 이드 – Obaid

+0

정확히. 그러나 Hz로 데이터 공유가 도입되었습니다 (CEP 4.2.0) [https://github.com/wso2/product-cep/releases/download/v4.2.0-rc2/wso2cep-4.2.0-RC2.zip] (이번 주에 출시 예정) 이전 버전에서는 작동하지 않을 수 있습니다. <4.2.0을 사용하는 경우, RDBMS 이벤트 테이블을 사용해야 할 수도 있습니다. – Grainier