코알못

[Redash] 데이터 시각화 도구를 이용 해보자! - Slack (결과전송) 본문

BIG DATA

[Redash] 데이터 시각화 도구를 이용 해보자! - Slack (결과전송)

코린이s 2022. 2. 27. 10:41
728x90

매일 특정 시간에 TOP 장르에 대해 Slack 으로 공유 해주는 봇을 만들어본다!

필요한 도구는 Redash + goole sheet + zapier + slack 이 필요하다.

zapier 는 여러 앱을 통합해주는 도구로 자동으로 어떠한 처리를 할 수 있도록 한다.

즉, Redash 의 결과를 google sheet 에 넣고(zapier 는 redash를 지원하지 않는다.)

zapier 를 이용해 goole sheet 와 Salck 을 연결하여 특정 시간에 알람을 보내도록 한다. 

우선 무료 zapier 으로는 아래 제한이 있다.

  • 15분마다 감지 가능
  • 1달에 100개의 작업가능
  • 5개의 zap 만 생성 가능
  • single step zaps

가격표는 아래 참고 하자

우선 우리는 무료로 실습하고 필요하면 유료 결제 하자!

- https://zapier.com/

 

Zapier | The easiest way to automate your work

Get premium tools to build advanced workflows. Our Premium Plans give you the tools to automate more, so you can work less. Plans that start at $20 per monthBuild more workflows with more stepsCreate conditional workflowsGet priority supportUpgrade or down

zapier.com

우선 TOP 장르 추출 쿼리를 만든다.

아래와 같이 CSV 다운 URL 을 복사한다.

복사 클릭!

그 다음 구글 가서 구글 시트를 하나 만든 뒤 =IMPORTDATA("CSV 다운 URL") 를 이용하여 연동 한다.

만약 ' 다음 URL 을 가져올 수 없습니다' 에러 발생시 해당 Redash 서버에 구글 서버에 대한 방화벽(80 , 443 중 사용하는 포트 > 저자의 경우 http 이므로 80포트)이 열려 있는지 확인 한다. 이유는 구글 시트 > redash 로 호출하는 방식이기에 inbound 가 열려있어야 한다.

해당 엑셀의 데이터는 삭제를 한뒤 다시 함수를 사용해야 새로 불러와 지며, 그래야 zapier 에서 update로 인식하기에 해당 액션을 매크로로 등록한다.

cel 제거 > 함수입력 매크로로 만들고 저장한다.

함수가 생성 되어있으며

function refrash() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
  spreadsheet.getActiveRange().setFormula('=IMPORTDATA("http://[publicip]/api/queries/3/results.csv?api_key=[apikey]")');
};

매크로 함수명을 알아 볼 수 있도록 변경한뒤

아래 트리거 추가를 눌러 추가한다. 

1분마다 새로고침 되도록 한다.

완료된 화면은 아래와 같다.

그 다음 zapier 에 가서 회원 가입하고 나면 아래와 같이 zap 설정할 수있는 화면이 나오는데 아래와 같이 설정 하고 try it 을 누른다.

아래와 같이 get started 를 눌러 시작한다.

우선 구글 시트를 연결하라고 한다.

만든 시트를 선택하고 Next 를 누른다.

시트를 선택한다.

트리거를 걸 칼럼을 선택한다.

그다음 슬랙을 연결한다.

알람을 받을 채널을 선택한다.

수정하고 싶은 항목을 선택한다.

선택한 내용을 설정한다.

테스트 전송을 해본다.

정상적으로 설정한 채널에 알람이 왔다.

아래 총 설정한 부분을 보고 Turn on Zap 을 클릭시 

slack 으로 메세지가 한번 더 오고 완료 된다.

테스트를 해보았으나 이전에 나온 텍스트의 경우 다른 데이터라고 인지하지 않아 알람을 전송하지 않는다.

구글링 해보니 1년전 글에 수정 예정이라고 나와 있으나 최신 버전에서 안되는것을 보니 수정이 안된것으로 보인다.

케이스 알람 여부
[가요] > [가요] X
[가요] > [팝] O
[가요 > ] > [가요] X
[가요 > > 가요] > [댄스] O
[가요 > > 가요 > 댄스] > [] X

그래서 텍스트를 인지하기 보다는 유니크한 값을 넣어 인지 하도록 한다.

우선 저자의 경우 일별 TOP 장르를 인지하려고 했으니 일별로 변경되는 값인 일자 넣고 해당 데이터가 변경되면 인지 하도록 한다.

그러나 지금은 테스트를 위해서는 일시를 넣어서 계속적으로 감지되는지 확인한다.

// 쿼리

1분 마다 갱신되도록 한다.

// 시트

시트도 1분마다 갱신되도록 매크로를 등록한다.

// zapier 연결

// 일시를 감지하도록 함

// 상세 설정

// 알림

정상적으로 알림 오는것을 확인 하였다!

다른 알림 받고자 하는 데이터가 있다면 목적에 맞게 감지 대상 칼럼을 선정하여 만들면 될 것 같다.

끝!

<참고>

- redash slack bot 중단(slack안에서 redash를 통한 데이터 조회 불가능) : https://discuss.redash.io/t/deprecating-the-redash-slack-bot/8518 

- 이모지 사이트 : https://www.webfx.com/tools/emoji-cheat-sheet/

728x90
Comments