데이터의 연결 관계 도표화edit

X-Pack Graph 기능을 사용하여 Elasticsearch 색인에 포함된 항목의 연관성을 파악할 수 있습니다. 색인화된 용어의 상호 연결 관계를 탐색하고 어떤 연결이 가장 중요한지 확인할 수 있습니다. 이는 사기 탐지, 추천 엔진 등 다양한 애플리케이션에서 유용합니다.

예를 들어 그래프 탐색은 해커가 노리는 웹 사이트 취약점을 찾아내 웹 사이트를 더욱 강화하는 데 활용할 수 있습니다. 또는 전자 상거래 고객에게 그래프 기반 개별 맞춤형 추천을 제공할 수도 있습니다.

X-Pack은 Kibana를 위한 간단하면서도 강력한 그래프 탐색 API 및 대화형 그래프 시각화 툴을 제공합니다. 둘 다 기존 Elasticsearch 색인을 즉시 사용할 수 있습니다. X-Pack Graph 기능을 사용하기 위해 추가 데이터를 저장할 필요가 없습니다.

Graph의 작동 방식edit

Graph API는 Elasticsearch 색인에 있는 문서 및 용어에 대한 정보를 추출하고 요약할 수 있는 대안을 제시합니다. _그래프_는 연관 항목의 네트워크일 뿐입니다. 여기서는 색인에 있는 관련 용어의 네트워크입니다.

그래프에 포함하려는 용어를 _정점(vertex)_이라고 합니다. 임의의 두 정점의 관계가 _연결(connection)_입니다. 이 연결은 두 정점의 용어를 모두 포함하는 문서를 요약합니다.

Graph components

graph theory에서는 정점과 연결이 각각 _노드_와 _에지_로 표현되기도 합니다. 의미는 동일합니다. 여기서는 그래프 전문가가 아닌 사용자가 쉽게 이해할 수 있도록 또한 Elasticsearch 클러스터에 있는 노드와의 혼동을 피하기 위해 이 용어를 사용합니다.

그래프 정점은 이미 색인화한 용어입니다. 그 연결은 즉시 Elasticsearch 집계를 사용하여 유추합니다. 가장 중요한 연결을 찾기 위해 Graph API에서는 Elasticsearch 연관성 점수를 사용합니다. Graph API는 Elasticsearch에서 텍스트 검색 지원을 위해 기본 제공되는 데이터 구조 및 연관성 순위 툴을 활용하면서 대부분의 연결된 데이터에서 흔히 나타나는 유용한 시그널과 노이즈를 구분합니다.

이러한 기반에서 다음과 같은 질문에 쉽게 답할 수 있습니다.

  • 내 웹 사이트에 대한 해킹을 시도하는 자들의 공통된 행동은 무엇인가?
  • 이 유형의 원예용 장갑을 구매한 사용자가 관심을 가질 만한 다른 제품은 무엇인가?
  • Stack Overflow 상에서 Hadoop 관련 기술 및 Python 관련 기술에 대한 전문성을 모두 보유하고 있는 사람은 누구인가?

하지만 성능은 어떨까요? Graph API는 Elasticsearch 집계 프레임워크를 통해 수백만 건의 문서를 하나의 슈퍼 연결(super-connection)로 신속하게 요약할 수 있습니다. 계정 A와 계정 B 간의 모든 은행 거래를 검색하지 않고 그 관계를 나타내는 하나의 관계를 유추합니다. 물론 이러한 요약 프로세스는 멀티노드 클러스터의 전 범위에서 수행되며 Elasticsearch 배치에 따라 확장됩니다. 고급 옵션을 사용하면 데이터를 샘플링하고 요약하는 방식을 제어할 수 있습니다. 또한 그래프 쿼리가 클러스터에 지장을 주지 않도록 시간 초과를 설정할 수도 있습니다.