저는 최근에 제플린을 사용하기 시작했습니다. 실시간 분석이 가능한 훌륭한 웹 기반 노트북입니다. 다음과 같은 개념을 통해 다양한 백엔드를 지원합니다. 통역사.
제플린 인터프리터는 제플린 사용자가 특정 언어/데이터 처리 백엔드를 사용할 수 있게 해주는 플러그인입니다. 예를 들어 제플린에서 스칼라 코드를 사용하려면 스파크 인터프리터가 필요합니다.
이미 Spark 인터프리터를 사용하여 일부 Couchbase 관련 작업을 수행할 수 있습니다. 카우치베이스 스파크 커넥터. 하지만 Spark SQL 및 DataFrames와 같이 패드에서 일부 N1QL 쿼리를 실행하고 싶습니다. 그래서 Couchbase N1QL 인터프리터를 만들어야 합니다. 그렇게 하는 것은 쉽고 문서화클래스 하나만 있으면 됩니다.
이 클래스는 추상 클래스를 확장해야 합니다. org.apache.zeppelin.interpreter.Interpreter 를 사용하여 다음과 같은 추상 메서드를 구현해야 합니다: 열기, 닫기, 해석, getFormType, getProgress, 완료.
제가 여기서 한 일과 거의 비슷합니다:
열기 그리고 닫기 는 각각 클러스터와 버킷에 대한 연결을 열고 닫는 역할을 담당합니다. 해석 방법은 패드를 실행하는 것입니다. 이것은 패드의 텍스트를 원하는 대로 변환하는 곳입니다. 이 인터프리터에서는 N1QL 쿼리를 가져와서 실행하고 결과를 변환하여 Zeppelin에서 사용할 수 있도록 하겠습니다. 여기서 변환이란 모든 것이 테이블 형식이어야 하므로 결과 JSON 문서를 평평하게 만드는 것을 의미합니다.
이제 원하는 모든 N1QL 쿼리를 실행할 수 있습니다. 다음은 게임 샘플 버킷에서 가져온 간단한 예제입니다:

왼쪽 하단에는 리더 보드가, 왼쪽 상단에는 레벨별로 정렬된 플레이어 목록이, 플레이어별 아이템 분포도 역시 레벨별로 정렬된 것을 볼 수 있습니다. 플레이어 레벨과 플레이어가 보유한 아이템 수 사이에는 상관 관계가 없음을 알 수 있습니다. 기본 쿼리는 N1QL에서 기본적으로 사용할 수 있는 JOIN을 사용하고 있습니다.
이제 추가할 수 있는 다른 기능들이 많이 있습니다. 제플린하면 가장 먼저 떠오르는 것이 자동 완성 기능일 것입니다. N1QL 키워드나 json 필드 등 다양한 상황에서 유용하게 사용할 수 있습니다. 실제로 이 기능은 쿼리 UI 에 들어가면 탭 키 또는 Ctrl+Space. 다른 좋은 기능으로는 특히 지리공간 쿼리를 위한 뷰와 Couchbase FTS를 지원하는 것이 있습니다. 플러그인 개발을 시작한 것은 Github에서 팔로우할 수 있으며, Apache 이슈 추적기. 평소와 마찬가지로 피드백과 기여를 환영합니다!