참고: 이 게시물은 버전 5.5 프리뷰 릴리스 기준의 Couchbase Analytics 데이터 정의 언어를 사용합니다. 최신 버전의 업데이트 및 주요 변경 사항에 대한 자세한 내용은 다음을 참조하세요. 카우치베이스 애널리틱스 서비스 변경 사항.
데이터 시각화 및 보고는 의사 결정자가 분석의 패턴과 개념을 파악하는 데 도움이 될 수 있습니다. Couchbase Analytics(현재 개발자 프리뷰 버전)는 원활한 NoETL 체험(동영상) 를 사용하여 강력한 쿼리로 데이터를 분석할 수 있습니다. Knowi 는 클라우드 기반 보고 및 시각화 도구로, Couchbase와 통합됩니다. 이러한 도구는 함께 작동하여 강력하고 쉬운 데이터 시각화를 제공할 수 있습니다.
이전에 블로그에 소개한 것처럼 신시내티 레즈(Couchbase 고객사)는 Apache NiFi를 사용하고 있습니다. 를 사용하여 기업의 데이터를 Couchbase 클러스터로 처리하고 있습니다. 그들이 Couchbase로 탐색하고 있는 많은 사용 사례 중 하나는 실시간 대시보드를 만드는 것입니다. 이 대시보드는 무엇보다도 게이트가 열리고 티켓이 스캔되기 시작한 후 야구장의 데이터 시각화를 보여줄 수 있습니다.
이 실시간 데이터 시각화는 야구장의 패턴을 보여주고, 티켓 소지자가 언제 나타나고 어디로 가는지 파악하는 데 도움이 될 수 있습니다.
이 블로그 게시물에서는 신시내티 레즈의 홈 경기가 열리는 그레이트 아메리칸 볼 파크의 데이터 시각화를 제공하기 위해 Couchbase와 Knowi를 실제로 사용한 예를 보여드리겠습니다. 이 게시물에서 보여드리는 것은 레드삭스가 사용하는 것과 정확히 일치하는 것은 아니며, 단순화된 것입니다.
Couchbase의 데이터
레드삭스는 구간, 열, 좌석 번호를 지도 그래픽의 특정 지점과 일치시키는 정교한 매핑 시스템을 갖추고 있습니다. 하지만 이 블로그 게시물에서는 Google 지도의 위도와 경도를 사용하겠습니다.
제가 작업하고 있는 데이터는 티켓 소지자의 이름, 지리적 좌표, 지리적 좌표로 구성된 단순화된 문서입니다. 유형 필드에 입력합니다. 예제 문서입니다:
|
1 2 3 4 5 6 7 8 |
{ "name": "스파키 앤더슨", "geo": { "lat": 39.097303, "lon": -84.507277 }, "type": "ticketScan" } |
일반적으로 매핑 데이터는 분리되어 있고 티켓 스캔을 통해 즉석에서 조인될 수 있을 것으로 예상합니다. 하지만 이미 그런 작업이 완료되었다고 가정해 봅시다. 하나의 문서에 필요한 모든 것이 있습니다.
위와 같은 문서가 들어 있는 '티켓'이라는 버킷을 만들었습니다. 프로덕션 환경에서는 야구 경기가 진행되는 동안 이 버킷으로 데이터가 계속 유입됩니다(아마도 NiFi를 통해). 실제로 저는 최근에 한 경기에 참석하여 주말 경기의 피크 시간대에 게이트를 통과하고 티켓을 스캔하는 동안 이 시스템을 테스트하는 데 도움을 주었습니다.
카우치베이스 애널리틱스
Knowi는 이 버킷에 직접 연결하여 리포팅을 시작할 수 있습니다. 그러나 이 상황에서는 Couchbase Analytics를 사용하는 것이 더 나을 수 있습니다. Couchbase Analytics를 사용하면 더 복잡한 쿼리에 대한 인덱스 작성에 대해 걱정할 필요가 없으며, 운영 버킷에 대한 성능 영향을 줄일 수 있습니다.
Couchbase 애널리틱스를 시작하려면 Couchbase를 설치할 때 애널리틱스 서비스를 활성화했는지 확인하세요. 애널리틱스 서비스가 '서버' 탭에 표시되어야 합니다:

다음으로 '애널리틱스' 탭으로 이동합니다. 일반적인 N1QL 쿼리 워크벤치와 매우 유사한 화면이 표시됩니다.
애널리틱스 설정
시작하기 위한 간단한 세 단계가 있습니다.
먼저 분석 버킷을 만듭니다. 이 버킷은 일반 Couchbase 버킷에 해당합니다. 다음과 같은 명령을 입력하기만 하면 됩니다: 티켓 분석 버킷을 {"name":"tickets"}로 만듭니다;
다음으로, 해당 버킷 내에서 데이터 집합을 정의합니다. 해당 데이터 집합에 어떤 문서를 넣을지 지정할 수 있습니다. 어디 절을 추가합니다. 예시:
|
1 |
만들기 섀도 데이터 세트 티켓 스캔 켜기 티켓 분석 어디 `유형` = "ticketScan"; |
이것은 "섀도"로, Couchbase 버킷의 실시간 복사본(하위 집합)입니다.
마지막으로 명령어를 한 번 더 사용하여 섀도잉을 시작하세요: 연결 버킷 티켓분석;
이 시점에서 Couchbase 버킷 "tickets"의 티켓 스캔 문서가 Analytics 버킷 "ticketsAnalytics"로 복사되기 시작합니다.
즉시 시작됩니다. 다음과 같은 쿼리를 실행할 수 있습니다. 티켓 스캔에서 *를 선택합니다; 를 클릭하여 애널리틱스에서 데이터를 확인합니다.
페이지 오른쪽 상단의 '버킷 인사이트'에서도 이 설정의 시각적 표현을 볼 수 있습니다.

현재 애널리틱스는 아직 개발자 프리뷰 단계이며, 위 단계는 일반 릴리스(현재 올해 말 예정) 이후 변경될 수 있습니다.
Knowi 에이전트 설정(선택 사항)
14일 무료 평가판을 만들 수 있습니다. Knowi.
Knowi는 클라우드 기반이므로 아무것도 다운로드할 필요가 없습니다. 브라우저에서 바로 보고서와 시각화를 작성할 수 있습니다.
그러나 Couchbase 클러스터가 인터넷에 노출되어 있지 않거나 VPN 터널이 설정되어 있지 않은 경우에도 네트워크에서 Knowi 에이전트를 실행하여 Knowi를 사용할 수 있습니다. 이렇게 하면 Knowi가 데이터에 쉽게 액세스할 수 있습니다. 제 로컬 Couchbase 클러스터는 인터넷에 노출되어 있지 않기 때문에 Knowi 에이전트를 다운로드하기만 하면 됩니다:

config 폴더에 데이터 소스 JSON 파일을 만들어야 합니다. 이 작업은 /example 폴더에 수많은 예제 파일이 있기 때문에 매우 쉽습니다. Couchbase의 경우 datasource_example_couchbase.json. 로컬 클러스터의 경우 이러한 내용으로 파일을 만들었습니다:
|
1 2 3 4 5 6 7 8 9 |
[ { "name": "demoCouchbase", "host": "localhost", "dbName": "매트", "비밀번호": "비밀번호", "데이터 소스": "couchbase" } ] |
여기서는 분석 사용 권한이 있는 "matt"라는 사용자를 Couchbase에서 생성했다고 가정합니다.
에이전트에는 몇 가지 편리한 셸 스크립트와 배치 파일이 함께 제공됩니다. 서비스로 실행하거나 제가 한 것처럼 직접 실행할 수 있습니다. run.bat 를 실행하여 에이전트를 시작합니다. 이 시점에서 Knowi는 에이전트를 통해 Couchbase 클러스터와 통신할 수 있습니다.
Knowi에서 데이터 소스 설정
이제 Knowi.com UI로 돌아갑니다. 새 데이터 소스를 만듭니다. 원하는 이름을 지정할 수 있습니다. 저처럼 에이전트를 사용하는 경우에는 "localhost"를 데이터 소스로 설정합니다. 버킷 이름도 "tickets"으로 지정했습니다. 사용자 자격 증명을 입력했습니다. 애널리틱스의 경우 "데이터버스"를 지정해야 합니다. 기본적으로 이미 "기본" 데이터버스를 사용할 수 있습니다.
마지막으로 '내부 데이터 소스' 확인란을 선택합니다. 에이전트가 제대로 작동하고 있으면 드롭다운이 표시되고 에이전트를 선택할 수 있습니다. 에이전트를 사용하지 않는 경우에는 해당 확인란을 선택하지 마세요.

이 시점에서 이 데이터 소스를 사용하여 1개 이상의 Knowi 데이터 피드를 만들 수 있습니다.
Knowi 데이터 피드
Knowi의 데이터 피드/데이터 집합은 쿼리와 유사합니다. 다음은 Couchbase에서 티켓 정보를 얻기 위해 만든 (매우 간단한) 데이터 피드입니다.

Knowi는 기본적으로 N1QL을 지원합니다. 데이터 피드를 만들 때 Couchbase의 N1QL 언어의 모든 기능을 사용할 수 있습니다. 제 쿼리는 데모를 위해 아주 간단한 쿼리입니다.
Knowi 위젯
마지막으로 Knowi 위젯을 만들 수 있습니다. 위젯은 개별 보고서 또는 데이터 시각화입니다. 다양한 위젯을 사용할 수 있으며 위젯을 사용자 지정하고 결합할 수도 있습니다. 여기서는 간단하게 하나의 위젯을 만들어 보겠습니다. "새 위젯+"를 클릭한 다음 이전 섹션에서 만든 데이터 집합을 선택합니다.
다음으로 위젯 옆에 있는 '설정' 톱니바퀴를 클릭합니다. 보고 및 데이터 시각화를 위한 다양한 옵션이 있습니다. 꼭 확인하시고 실험해 보세요. 저는 '지리적 히트맵'을 선택했습니다.

중심 위도 및 중심 경도(39.097208,-84.506530)로 그레이트 아메리칸 볼 파크의 가운데를 선택하고 줌 레벨을 높게 설정했습니다. 반경은 히트맵의 스폿을 얼마나 크게 표시할지를 나타냅니다. 저는 야구장의 좌석에 해당하므로 비교적 작은 값인 5를 입력했습니다.
여기까지입니다. 위젯을 저장합니다. 눈알 아이콘을 클릭하여 미리 보기를 확인합니다. 다음은 제 카우치베이스 버킷에 총 6개의 티켓만 있는 미리보기입니다.

데이터 시각화 대시보드
마지막으로 이 데이터 시각화가 포함된 대시보드를 만들어 보겠습니다. Knowi 대시보드로 이동하여 "대시보드에 위젯 추가"를 클릭하고 위젯을 선택합니다. 그런 다음 위젯의 크기를 조정하고 이동할 수 있습니다. 더 완벽한 대시보드를 위해 다른 위젯을 추가할 수 있습니다. Reds는 비주얼라이제이션 자체를 보는 것만으로는 충분하지 않습니다. 또한 어떤 섹션이 가장 붐비는지, 일정 기간 동안 얼마나 많은 티켓이 스캔되었는지 등 전반적인 추세에 대한 보고를 원합니다.
나는 NET 프로그램(여기에서 소스 코드 제공) 를 클릭하여 무작위로 티켓을 추가하기 시작했습니다. 이 데이터 시각화의 실시간 업데이트를 보고 싶었습니다. 제 예제는 완전히 정확하지 않습니다: 모든 좌석을 위도와 경도에 직접 매핑하는 데 시간을 들이고 싶지 않았기 때문입니다. 하지만 아이디어를 얻기에 충분히 근접합니다.

(이 클립은 샘플 프로그램이 실행되는 5분 동안의 영상을 30초로 압축한 것입니다.)
분포는 무작위이며 두 개의 임의의 박스형 영역 내에 있습니다. 이 부분은 신시내티 레즈가 실제로 데이터를 더 효율적인 좌석 맵에 매핑하는 데 더 많은 전문 지식을 가지고 있는 부분이지만, 여러분이 아이디어를 얻을 수 있기를 바랍니다.
위와 같이 데이터 시각화가 실시간이 되려면 에이전트를 사용할 수 없습니다. 데이터 피드를 만들 때 '직접 쿼리' 확인란이 표시되도록 Knowi에 직접 액세스 권한을 부여해야 했습니다(그래서 저는 Microsoft Azure의 Couchbase).
이 특정 비주얼리제이션은 유틸리티 회사의 실시간 정전 지도에도 유용할 수 있습니다. 인터넷, 전력, 가스 또는 전화 정전을 지도에서 보고하는 대시보드를 만들 수 있습니다.
다음 단계는 무엇인가요?
이 게시물에서는 Knowi와 Couchbase Analytics를 사용하여 실시간 데이터 시각화 구축을 시작하는 것이 얼마나 쉬운지 살펴보았습니다.
Couchbase는 N1QL의 유연성과 메모리 우선 아키텍처의 성능을 제공하며, Knowi는 데이터 시각화 및 대시보드 기능을 제공합니다.
Knowi는 무료 평가판을 제공한다는 점을 기억하세요. 저는 이 Reds 프로젝트에서 Knowi와 짧은 시간 동안만 함께 일했지만, 그들의 지원이 도움이 되고 반응이 좋았으며 문서가 완전하고 유용하다는 것을 알았습니다.
다음 단계는 다음과 같습니다:
- 카우치베이스 서버 다운로드 를 무료로 다운로드하고 Couchbase 애널리틱스를 사용해 보세요(현재 카우치베이스 서버 5.5)
- 가입하기 Knowi 무료 체험판 오늘.
- 카우치베이스에 대한 질문이 있으신가요? 다음에서 질문하세요. 카우치베이스 포럼.
- Knowi에 대한 질문이 있으신가요? 여기를 확인하세요. Knowi 도움말 센터.
- 질문이 있으신가요? I'm on 트위터 @mgroves.