카우치베이스 서버

Couchbase와 N1QL로 도널드 트럼프 트윗 분석하기

AWS 서버리스 람다 예약 이벤트를 통해 트윗을 CouchBase에 저장하기 에서 AWS 서버리스 람다를 사용해 Couchbase에 트윗을 저장하는 방법을 설명했습니다. 이제 이 람다 함수는 며칠 동안 실행되어 다음에서 269개의 트윗을 수집했습니다. 리얼도널드트럼프. 이 블로그는 다음에서 영감을 받았습니다. 트위터의 SQL: N1QL을 사용한 손쉬운 분석에서는 N1QL을 사용하여 이러한 트윗을 분석하는 방법을 보여줍니다.

N1QL 의 SQL과 유사한 쿼리 언어입니다. 카우치베이스 JSON 문서에서 작동합니다. N1QL과 SQL의 차이점 는 N1QL과 SQL의 차이점을 설명합니다. N1QL을 사용하여 다음과 같은 흥미로운 정보를 공개해 보겠습니다. 리얼도널드트럼프의 트윗을 확인하세요. 다음 분들께 감사드립니다. N1QL 팀의 Sitaram 를 사용하여 쿼리를 해킹할 수 있습니다.

트윗 수

첫 번째 쿼리는 데이터베이스에 얼마나 많은 트윗이 있는지 확인하는 것입니다. 쿼리는 매우 간단합니다: 쿼리:

보시다시피 구문은 SQL과 매우 유사합니다. 선택, COUNT 그리고 FROM 절은 SQL 구문에서 이미 익숙한 것입니다. 트윗_수 는 반환된 결과에 대해 정의된 별칭입니다. 트위터 는 모든 JSON 문서가 저장되는 버킷입니다. 결과:

결과도 JSON 문서가 됩니다.

트윗 샘플 JSON 문서

JSON 문서에 쿼리를 작성하려면 문서의 구조를 알아야 합니다. 다음 쿼리를 통해 이를 알 수 있습니다. 쿼리:

여기에 도입된 새로운 조항은 다음과 같습니다. LIMIT. 이를 통해 결과 집합에서 반환되는 객체의 수를 제한할 수 있습니다. 선택. 결과:

트윗 상위 5일

기본적인 쿼리가 끝나면 이제 몇 가지 흥미로운 데이터를 살펴보겠습니다. 상위 5일 중 리얼도널드트럼프 트윗한 트윗 수와 트윗 횟수는? 쿼리:

보통 그룹 기준 그리고 주문 기준 SQL 절은 동일한 기능을 수행합니다. N1QL 기능 값에 함수를 적용합니다. 값에 createdAt 필드에 숫자를 문자열로 반환합니다. TO_NUM 함수는 문자열을 숫자로 변환합니다. MILLIS_TO_STR 함수는 문자열을 날짜로 변환합니다. 마지막으로 SUBSTR 함수는 날짜의 관련 부분을 추출합니다. 결과:

2017년 1월 17일이 가장 많이 트윗된 날입니다. 물론 이 결과는 데이터베이스에 저장된 JSON 문서의 데이터에 국한된 것입니다. 더 포괄적인 @realDonaldTrump 트윗 데이터베이스를 가지고 계신 분 있나요?

트윗 빈도

좋아요, 데이터베이스에 따르면 하루 최대 트윗 수는 13건입니다. 리얼도널드트럼프가 특정 날짜에 트윗한 횟수를 확인하려면 어떻게 해야 하나요? 쿼리:

이 작업은 다음을 사용하여 쉽게 수행할 수 있습니다. N1QL 중첩 쿼리. 결과:

47일 동안 트윗이 단 한 건도 없는 날은 단 하루뿐입니다. 총 합계는 트윗_수 를 보면 트윗이 없는 날이 하루도 없다는 것을 알 수 있습니다 :)

하루 중 가장 많이 트윗하는 시간

리얼도널드트럼프는 다음과 같이 알려져 있습니다. 새벽 3시에 트윗하기. 그가 가장 많이 트윗하는 시간이 언제인지 살펴봅시다. 쿼리:

결과:

이제 논란이 되는 트윗은 새벽 3시에 올라온 것 같습니다. 하지만 39개의 트윗은 점심 식사 직후 디저트를 먹고 있는 오후 1시(동부 표준시)에 올라오고 있습니다.

트윗할 일반적인 요일

트윗을 가장 많이 올리는 요일이 무엇인지 알아보세요. 쿼리:

DATE_PART_STR 는 날짜의 일부를 반환하는 새로운 함수입니다. 추가 요일_요일 속성을 사용하여 요일을 가져옵니다. 결과:

화요일이 가장 많이 트윗하는 날인 것 같습니다. 그 다음으로는 일요일과 수요일이 같은 수준입니다. 주말에 가까워질수록 실적이 떨어지는 경향이 있습니다.

#22417 는 평일 부분을 영어로 보고할 수 있어야 합니다.

트윗에서 언급된 상위 5개 멘션

쿼리:

사용자 멘션 엔티티 는 JSON 문서의 중첩 배열입니다. UNNEST 는 개념적으로 중첩된 배열과 상위 객체의 조인을 수행합니다. 조인된 각 결과 객체는 쿼리의 입력이 됩니다. 결과:

말할 필요도 없이, 그는 트윗에서 자신의 이름을 가장 많이 언급합니다! 그리고 그가 가장 좋아하는 두 개의 TV 방송국 폭스 뉴스 그리고 CNN.

RT가 많은 트윗 상위 5개

람다 함수는 3시간마다 깨어나서 최신 트윗을 가져옵니다. 따라서 데이터베이스는 트윗과 RT 및 마음에 들어요와 같은 관련 정보의 스냅샷입니다. 따라서 트윗이 보관된 시점에 따라 RT 및 마음에 들어요가 정확하게 표시되지 않을 수 있습니다. 하지만 이 정보를 바탕으로 가장 많은 RT를 받은 트윗을 살펴봅시다. 쿼리:

매우 간단한 쿼리입니다. 결과:

원본과 RT

작성된 트윗과 리트윗된 트윗은 몇 건인가요? 쿼리:

결과:

대부분의 트윗은 리트윗이 거의 없는 원본 트윗입니다.

트윗에서 가장 많이 사용되는 단어

쿼리:

이 쿼리는 다음을 사용합니다. 분할 함수의 결과입니다:

트윗에서 '미디어', '가짜', '미국'이라는 단어의 사용 빈도

쿼리:

LOWER 함수는 대소문자에 관계없이 단어를 비교하는 데 사용됩니다. 결과:

람다 함수 는 계속해서 트윗을 데이터베이스에 저장합니다.

이 쿼리를 직접 사용해 보시겠습니까?

N1QL 참조

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.