제이 고팔라크리쉬난의 게스트 포스팅입니다. 제이는 Cloud9 차트는 최신 데이터 아키텍처를 위해 구축된 분석 플랫폼으로, Couchbase 및 N1QL을 기본적으로 지원합니다. 트위터에서 팔로우하기 클라우드9차트
이 게시물에서는 Couchbase의 뉴욕시 녹색 택시 데이터 집합을 사용하여 N1QL 및 Cloud9 차트를 사용한 기본 분석을 시연합니다.
기본 NoSQL 분석
일반적으로 NoSQL 데이터베이스에 대한 분석은 일반적으로 다음 중 하나를 의미합니다:
-
기존 BI 아키텍처가 이해할 수 있는 ODBC 드라이버를 사용하여 데이터를 관계형 형식으로 변환합니다. 이를 위해서는 일반적으로 타사 ODBC 드라이버, 기존(일반적으로 데스크톱 기반) BI 도구 및 미리 정의된 스키마가 필요합니다.
-
분석을 위해 관련 데이터를 관계형 데이터베이스에 로드하는 ETL 프로세스입니다. 이를 위해서는 NoSQL 및 SQL 기반 데이터 저장소 전체에 스키마를 정의해야 하며, Couchbase와 같은 NoSQL 데이터베이스의 스키마 유연성을 무효화합니다. 또한 데이터 구조에 대한 변경 사항이 기본 저장소로 전파되는 데 오랜 시간이 소요됩니다.
네이티브 NoSQL 분석은 ODBC 드라이버 및 ETL 프로세스에 대한 종속성을 제거하여 비즈니스 및 기술 사용자가 기본 데이터베이스를 최대한 활용하여 실행 가능한 인사이트를 즉시 도출할 수 있도록 지원합니다.
간단히 말해, Couchbase-Cloud9 차트 통합의 특징은 다음과 같습니다:
-
드라이버/번역기 없이 완전 네이티브 N1QL 통합
-
포인트 앤 클릭 N1QL 쿼리 생성기
-
중첩된 개체 및 배열 지원
-
Couchbase와 다른 SQL/NoSQL 또는 REST API 기반 소스 간의 조인
-
즉각적인 시각화 및 임베드 가능한 대시보드
-
고급 분석 및 예측
데이터 세트
이 데이터 세트는 4,500만 건의 녹색 택시 승차 데이터로 구성되어 있습니다. 뉴욕시 택시 및 리무진 위원회.
녹색 택시는 2013년 뉴욕시에서 전통적으로 노란색 택시의 서비스가 부족했던 뉴욕시 외곽 자치구의 택시 승객을 대상으로 출시되었습니다.
분석의 초점은 다음과 같습니다:
-
픽업 지역 및 하차 장소의 지리적 공간 분석
-
동네별 시간대별 여행 소요 시간
-
요금 분석
-
승차 예측
CSV 형식의 원시 데이터 세트는 다음과 같이 찾을 수 있습니다. 여기 (압축된 경우 2GB, 압축 해제된 경우 15GB).
카우치베이스 클러스터
3노드 Couchbase 클러스터는 Couchbase의 친구들이 프로비저닝했습니다. cbtransfertool 를 사용하여 CSV 파일에서 카우치베이스로 데이터를 로드했습니다. 원시 데이터는 다음과 같습니다(간결성을 위해 잘라낸 것임):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "greentaxi": { "드롭오프_위도": "40.824813842773438", "드롭오프_경도": "-73.902938842773438", "Ehail_fee": "", "추가": 0.5, "Fare_amount": 10.5, "Lpep_dropoff_datetime": "2013-12-22 02:17:35", ..... "dropoff_city": "뉴욕시-브롱크스", "드롭오프_카운티": "Bronx", "pickup_city": "뉴욕시-맨해튼", "픽업_카운티": "신규 York", } } |
인덱스 및 성능 고려 사항
- 메모리 최적화된 보조 인덱스 (기본 인덱스에 추가)에 드롭오프_도시, 픽업_도시, 드롭오프_도시, 픽업_날짜 및 드롭오프_날짜에 대한 인덱스가 추가되었습니다.
- A 커버링 인덱스 도 위도/경도 클러스터로 사용되었습니다:
|
1 2 3 |
만들기 INDEX pickup_ latlong_idx 켜기 cloud9(라운드(to_number(픽업_위도),3), 라운드(to_number(픽업_경도),3)) |
시간/일/픽업/하차별로 라이딩을 추적하기 위해 원시 데이터의 집계가 다른 버킷에 생성되어 빠른 쿼리 실행이 가능해졌습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
삽입 INTO rides_agg (KEY UUID()) 선택 카운트(*) as 라이드, 라운드(평균(요금_금액),0) as 요금, 라운드(평균(기간),0) as 기간, 일, 시간, 픽업 지역, 드롭오프_지역 FROM (선택 날짜_파트_str(밀리_투_존_이름(dropoff_ts, "EST"),"day_of_week") as 일, 날짜_파트_str(밀리_투_존_이름(dropoff_ts, "EST"),"시간") as 시간, 픽업 지역, 드롭오프_지역, 요금_금액, 날짜_차이_밀리스(dropoff_ts,pickup_ts,"분") as 기간 FROM 그린택시 어디 날짜_차이_밀리스(dropoff_ts,pickup_ts,"분") < 150 ) AS tmp 그룹 BY 일, 시간, 드롭오프_지역, 픽업 지역 주문 BY 일,시간 |
분석
다음 분석의 전체 대시보드에 액세스할 수 있습니다. 여기. 이렇게 생성된 실시간 대시보드/보고서를 다른 사람들과 공유할 수 있습니다.
픽업 및 드롭오프 분석:
다음 N1QL 쿼리는 픽업 지리적 위치를 클러스터링하여 Cloud9 차트를 사용하여 픽업 위치의 지리적 공간 보기를 즉시 도출할 수 있습니다:
|
1 2 3 4 5 6 7 8 |
선택 라운드(to_number(픽업_위도),3) as 위도, 라운드(to_number(픽업_경도),3) as 경도, 카운트(*) as 카운트 FROM cloud9 그룹 BY 라운드(to_number(픽업_위도),3),라운드(to_number(픽업_경도),3) 주문 BY 카운트 DESC |
위 지도에서 맨해튼 지역 내 데드존이 보이시나요? 그 이유는 다음과 같습니다: 녹색 택시는 이스트 96번가 북쪽과 웨스트 110번가 북쪽에서만 픽업이 허용됩니다.
대부분의 택시가 맨해튼 지역에 집중되어 있는 아래의 노란색 택시와 대조해 보세요.
픽업 구역은 제한되어 있지만, 그린 택시 서비스의 승객 하차 구역에는 제한이 없습니다. 하차 히트맵은 다음과 같습니다:
반납 위치 N1QL 쿼리:
|
1 2 3 4 5 6 7 8 |
선택 라운드(to_number(드롭오프_위도),3) as 위도, 라운드(to_number(드롭오프_경도),3) as 경도, 카운트(*) as 카운트 FROM cloud9 그룹 BY 라운드(to_number(드롭오프_위도),3),라운드(to_number(드롭오프_경도),3) 주문 BY 카운트 DESC; |
라이드 트렌드 및 예측
그린캡 서비스 출시 이후 월별 전체 승차 추이를 살펴보겠습니다.
|
1 2 3 4 |
선택 카운트(*) AS 라이드, 픽업_날짜_TS 양식 녹색 택시 그룹 BY 픽업 날짜_ts |
추세를 보면 2013년 말부터 서비스가 증가하기 시작했으며, 2014년부터는 월별 승차 횟수 추세가 안정화되고 있습니다.
예측 모델을 적용하여 향후 몇 달 동안의 총 승차 횟수를 결정해 보겠습니다.
Cloud9 차트에서 제공되는 예측 모델은 데이터를 백테스트하여 가장 적합한 모델을 결정합니다. 이 모델은 향후 몇 달 동안 약간의 상승이 예상된다는 것을 의미합니다.
이웃 비교
픽업 제한은 택시 소유자의 입장에서 흥미로운 수수께끼를 제기합니다. 제한 구역에 하차하면 드라이버는 다음 픽업을 위해 다시 픽업 지역으로 돌아와야 합니다.
운전자/오너 운영자에게 가장 생산적인 지역은 어디일까요? 이 질문에 답하기 위해 몇 가지 지역 분석을 살펴보겠습니다.
다음은 시작 지역과 종료 지역 간의 관계를 나타내는 코드 다이어그램입니다. 예를 들어, 할렘 → 해밀턴 하이츠보다 해밀턴 하이츠 → 할렘에서 출발하는 라이딩이 훨씬 더 많습니다(43% 더 많음).
|
1 2 3 4 5 6 7 8 |
선택 픽업 지역, 드롭오프_지역, 합계(라이드) AS 라이드 FROM rides_agg 어디 픽업 지역 !='' AND 드롭오프_지역 !='' 그룹 BY 픽업 지역, 드롭오프_지역 주문 BY 라이드 DESC |
요금 분석
픽업 장소가 할렘이고 하차 장소가 픽업 금지 지역인 첼시인 경우. 수요일 오후 5~6시에는 아래 그리드 히트맵에 표시된 대로 35분 정도 소요되며, 평균 요금은 $28입니다. 하지만 이는 드라이버가 다음 승차를 위해 픽업 지역으로 돌아가야 한다는 것을 의미합니다. 드라이버의 입장에서는 이상적이지 않습니다.
다른 하차 장소인 브루클린의 포트 그린 지역(할렘에서 출발)과 대조해 보세요. 이 지역은 출퇴근 시간대에 평균 57분이 소요되는 $47달러이며, 지리적 히트맵에 표시된 대로 포트 그린 지역 내에서 충분한 픽업 기회를 제공합니다.
여기서 한 걸음 더 나아가 택시 사업자는 어떤 영역에 자산을 배치해야 할까요?
다음 차트는 해당 질문에 대한 답을 찾는 데 도움이 되며, 특정 요일과 시간대에 대한 위치별 최고 평균 요금을 제공합니다.
날짜/시간별 위치별 최고 운임
예를 들어 화요일 오전 8~9시에는 은쿠 가든(Nkew Gardens) 지역이 평균 픽업 요금이 가장 높은 반면, 토요일 밤 11시에는 자메이카 지역이 가장 높은 요금이 책정되는 것으로 나타났습니다.
요약
오랜 시간이 걸리는 ETL 프로세스나 분석 목적으로 반정형 데이터를 관계형 형식으로 끼워 맞추던 시대는 지났습니다. Cloud9 Charts를 사용하면 기본적으로 N1QL을 활용하여 즉각적이고 실행 가능한 인사이트를 도출하고, 이를 즉시 공유하고 임베드할 수 있습니다.
Couchbase 배포 및 쿼리 최적화를 실무적으로 지원해 주신 Prasad Varakur, Chin Hong 및 나머지 Couchbase 팀원들에게 특별히 감사드립니다.