2014-02-18 2 views
1

저는 몇 주 동안 카산드라 문서와 비디오를 유튜브에 올려 놓았습니다.상관 분석을위한 카산드라 데이터 모델

나는 로그 저장 및 상관 관계 시스템을 구현 중이며이를 위해 Cassandra를 사용하고 싶습니다. 하지만 이런 유형의 애플리케이션을 위해 Cassandra 데이터 모델을 둘러 볼 필요가 없습니다. 필자는 이러한 유형의 애플리케이션을위한 최고의 데이터 모델에 대한 심층적 인 예제를 발견하지 못했습니다.

로깅 시스템은 HTTP 웹 트래픽을 중심으로 이루어집니다. 내 로그 소스는 시간이 갈수록 확장되지만, 지금은 프록시 로그, 응용 프로그램 로그 및 호스트 이름/IP 및 이벤트 데이터가 포함 된 다른 시스템 로그가 포함됩니다.

내 상관 관계는 소스 및 대상 IP 주소와 호스트 이름, 도메인 이름, 위치 정보 위치, http 방법 (GET/PUT/연결) 및 요청 된 파일 유형과 관련된 가능한 다른 상관 관계 (예 : jar .exe .pdf). 시간에 따른 상관 관계는이 모든 경우에서도 중요 할 것입니다.

저는 Cassandra의 데이터 모델링이 실행될 쿼리에 대해 생각해 보는 것을 여러 곳에서 읽었습니다. 그래서 몇 가지 예를 여기에 지정했습니다. 더 많은 예제가 있지만 다음은 좋은 시작이 될 것이고 모든 쿼리는 비슷한 상관 패턴을 따를 것입니다.

예 질의 1 : IP 10.0.0.1이 지난 24 시간 내에 URL에서 .jar 확장자 또는 지난 주

예 질의 2 로그에서 볼 된 곳이 나를보기 : 이 time02

0을 통해 나에게 time01에서 소스 호스트 192.168.1.1에 대한 모든 로그 이벤트를보기 :

예 쿼리 3 나에게 지난 24 시간 동안 도메인 xyz.com에가는 모든 PUT 요청을보기

예제 쿼리 4 : 어제 발생한 10.0.0.1과 192.168.1.1 사이의 모든 통신을 표시합니다.

예제 쿼리 5 : 모든 새로운 이벤트를 기존 도메인 및 IP 목록과 비교하고 이러한 IP 및 도메인을 포함하는 새로운 이벤트를 보여줍니다.

필요한 경우 자세한 정보를 제공 할 수 있습니다. 모든 지침이 유용 할 것입니다.

감사합니다.

+0

마지막 문장에서 설명한대로 포인터와 지침을 찾고 있습니다. 비슷한 프로젝트 나 구현에 대한 링크 일지라도 큰 도움이 될 것입니다. – user3324184

+0

각 쿼리에 대해 묻는 단일 엔터티는 무엇입니까? 즉, 파티션 키 (기본 키의 첫 번째 열)입니다. 그런 다음 쿼리에서 슬라이스를 수행 할 열 (예 : 인접 행 읽기)을 찾으십시오.이 위치는 "X와 Y 사이"또는 "마지막 X 내"또는 이와 유사합니다. 이러한 열은 클러스터링 키 (PKey의 2+ 이상) 여야합니다. 마지막으로 모든 쿼리를 지원하는 데 필요한만큼 테이블에 데이터를 복제해야합니다. –

+0

상관 관계 및 기타 복잡한 분석에 대해서는 MapReduce가 필요할 것이므로 Cassandra만으로는이 문제를 효율적으로 해결할 수 없습니다. –

답변

0

쿼리 1의 경우 클러스터 키로 합성 키와 타임 스탬프로 IP 주소와 파일 유형을 사용할 수 있습니다. 이렇게하면 파일 형식과 타임 스탬프 범위가있는 IP를 쿼리 할 수 ​​있습니다.

쿼리 및 2 (입력, 가져 오기, ...) 복합 키로 타임 스탬프를 클러스터링 열로 사용하려면 복합 기본 키를 고유하게 만들기 위해 UUID 또는 요청 ID를 클러스터링 ID로 추가해야 할 수 있습니다.

질의 3, IP 기본 키 소인 클러스터링 열 + UUID 같은 경우

필요한 질의 4 클러스터링 열로 복합 기본 키 및 타임 스탬프 IPA 및 IPB. 이 경우 통신이 방향성을 가지면 IPB와 IPA도 저장해야합니다.

쿼리 5, 클라이언트 프로그램에서이 작업을 수행해야합니다.

관련 문제