RSS 분석 (Redash 사용법) [R edash] Redash로 Developers.IO 블로그

안녕하세요! 클래스 메서드 CX사업본부 신입 엔지니어 임홍기입니다.오늘은 기술블로그 Developers.IO에 포스팅되는 블로그의 RSSFeed를 Redash로 분석해 보았습니다. Redash는 BI(Business Intelligence) Tool로 제공되는 유료 버전과 직접 호스팅하는 오픈 소스 버전이 있으므로 무료 버전인 RedashaMI로 EC2에서 호스팅해 보았습니다.Redash란?

Redash는 MySQL이나 Redshift, DynamoDB 등의 여러 종류의 데이터베이스를 연동하여 데이터베이스에 쿼리한 결과를 바탕으로 다양한 그래프를 작성할 수 있는 BI 서비스입니다. 자세한 정보는 redash 깃발허브를 확인하세요!

이런 식으로 연결된 데이터베이스에 쿼리한 결과를 가시화해 주는 서비스이며, 이번 포스팅의 전체적인 흐름입니다! (출처: redash.io )

사용된 아키텍처

아키텍처에 대해 간단히 소개해드리자면

  1. RSS Feed에 저장된 데이터는 30개가 고정되어 있기 때문에 매시간 XML 데이터를 S3로 전송합니다.2.S3에 저장된 XML을 이용하여 Redshift으로 COPY하기 쉬운 CSV로 변환합니다.3. 변환된 CSV 파일을 Redshift으로 COPY합니다.4. Redash에서 Redshift으로 쿼리를 하고 대시보드를 구성합니다. <-오늘의 포스트는 이 부분에 대해 설명합니다!>

오늘은 그 중에서도 Redash로 Redshift를 연동하여 쿼리 결과를 바탕으로 차트를 만들어 대시보드를 구성하는 부분에 대해 알아보겠습니다.Redash를 시작하는 EC2에서 Redash를 실행시키는 설정은 아래 공식문서의 내용을 바탕으로 합니다.

redash.io의 공식 홈페이지에 Region별로 AMI가 준비되어 있습니다.이 AMI를 이용하여 간단히 Redash가 배포된 EC2를 생성할 수 있습니다.한국의 경우 ap-southeast-2의 AMI인 ami-0d991ac4f545a6b34를 이용하세요.

공식 가이드에도 “forsmall deployment st2.small should beenough”가 있으므로 소규모 배포의 경우 최소 t2.small 인스턴스를 사용하는 것을 권장합니다!(보다 작은 t2.micro로 배포하면 접속에 실패할 수 있습니다.)

설정할 인스턴스를 생성하면 IP 또는 DNS로 인스턴스에 접속합니다.

접속을 하면 셋업 화면이 나오는데, 이를 구성하고 등록을 완료합니다.

등록이 완료되면 메인 화면으로 접속할 수 있습니다. 여기서 get started에 안내된 순서대로 진행하겠습니다.

데이터베이스 접속 Connecta Data Source를 선택하면 어떤 데이터베이스와 연동되는지 검색하고 선택할 수 있는 화면이 나옵니다.(현재 지원되는 데이터 소스는 아래에 기재되어 있습니다!)

AWS, 구글 Cloud, Micr osoft Azure 등 각종 플랫폼과 SaaS 서비스의 데이터베이스를 연동할 수 있습니다.이번에는 PostgreSQL을 기반으로 한 AWS의 데이터 웨어하우스 서비스인 Redshift과 연동해 보겠습니다.Redshift는 실행만 시켜도 많은 비용이 청구되기 때문에 데이터 양이 많지 않다면 RDS 등으로 해보시는 것을 추천합니다!

위와 같이 연동되는 데이터베이스의 정보를 기재합니다. (이때 DB접속에 사용되는 계정은 읽기 전용 계정으로 해두는 것이 안전합니다.)

‘Test Connection’ 버튼을 눌러서 Success가 출력되면 잘 연동이 되는 거죠.

쿼리를 작성한 후에 연동된 데이터베이스에 쿼리를 할 수 있습니다.

좌측에는 연동된 테이블이 나타나며 작성한 쿼리를 Execute 버튼으로 실행하여 그 결과를 확인할 수 있습니다.이렇게 해놓은 쿼리 결과는 저장해두면 이후 생성하는 쿼리 변수에 할당할 수도 있습니다.

쿼리를 만드는 두 번째 만든 쿼리 결과를 이용하여 두 번째 쿼리를 만들어 봅시다.

이번에 작성하는 쿼리는 Developers.IO 블로그에서 카테고리 및 기간별로 게시문을 작성한 Top 10명과 작성한 글의 개수를 표시하는 쿼리를 만들어보겠습니다.

쿼리 작성시 변수로 사용하는 부분은 {변수명}으로 작성하시면 됩니다.작성하면 설정할 수 있는 버튼이 활성화 되며 해당 버튼을 눌러 아래와 같이 설정하면 많은 변수들을 한꺼번에 할당할 수 있습니다.

Type으로 어떻게 사용할지 선택하면 됩니다작성된 쿼리를 이용하는 경우 Query Based Dropdown List를

단순하게 날짜를 이용하시는 경우 Date 등을 이용해 주시기 바랍니다.

참조하는 저장된 쿼리를 선택함으로써 쿼리 안에서 변수를 사용할 수 있습니다.

쿼리를 기반으로 그래프 작성

쿼리를 작성했을 때는 아래에 있는 New Visualization을 선택해 줍니다.

여기에서는 어떤 형태로 쿼리 결과를 표시할 것인지 지정합니다.차트의 X, Y칼럼에 어떤 값을 대입할 것인지 중복될 경우 Groupby를 수행할 수 있으며 각 X, Y칼럼의 상세 설정 등을 이곳에서 지정할 수 있습니다.

위에서 작성한 쿼리를 차트 타입을 선택함으로써 어떻게 표시되는지를 확인할 수 있습니다.(차트를 작성하는 쿼리 결과)

Bar타입의 경우

Area타입의 경우

대시보드 만들기

Create 버튼에 있는 Dashbo ard를 선택하면 위와 같이 작성되며 Add Widget 버튼으로 자신이 만든 쿼리 및 차트를 등록할 수 있습니다.

여기서 이전에 만들었던 쿼리와 해당 쿼리 변수의 Default를 설정할 수 있습니다.보이는 모습은 쿼리 결과가 Table형으로 보이는 Table과 만든 차트로 보이는 Chart가 존재합니다.모든 쿼리는 만든 후에 차트로 바꾸는 과정을 반복함으로써 대시보드를 다양하게 구성할 수 있습니다.

미리 만들어 놓은 쿼리를 차트로 바꿔 대시보드를 구성한 대시보드는 다음과 같습니다.

이번에 Developers.IO 포스트를 분석하기 위해 Redash를 도입해 보았습니다만, 생각보다 툴의 사용이 용이하고 강력한 기능이 많이 있기 때문에 데이터 분석 입문에 큰 도움이 되었습니다.본 포스트가 Redash.io를 이용하는데 도움이 되길 바랍니다.

참고 Redashopensour ceset up

현재 지원하는 데이터 소스·Amazon Athena·Amazon DynamoDB·Amazon Redshift·Axibase Time Series Database·Cassandra·ClickHouse·CockroachDB·CSV·Databricks (Apache Spark)·DB2 by IBM·Druid·Elasticsearch·Google Analytics·Google BigQuery·Google Spreadsheets·Graphite·Greenplum·Hive·Impala·InfluxDB·JIRA·JSata Warehouse / Synapse·Microsoft Azure SQL Database·Microsoft SQL Server·MongoDB·MySQL·Oracle·PostgreSQL·Presto·Prometheus·Python·Qubole·Rockset·Salesforce·ScyllaDB·Shell Scripts·Snowflake·SQLite·TreasureData·Vertica·Yandex AppMetrica

테이블과 쿼리를 만드는 데 사용된 CSVBlog.csv

Category.csv

클래스메서드코리아에 문의가 있으신 분은 [email protected] 으로 연락주시면 빠르게 담당자가 회신 드릴 수 있도록 하겠습니다!

error: Content is protected !!