Redash 데이터를 Google 스프레드시트에 자동으로 반영하는 방법

소개



Redash를 사용하여 취득한 데이터를 시계열로 비교하고 싶을 때, 지금까지는 수작업으로 하고 있었습니다.
수작업이라면 취득해 잊거나 등 수수하게 귀찮기 때문에, 이 작업을 자동화할 수 없을까 생각한 것이 계기입니다.

절차



Google 스프레드시트를 기반으로 하는 시트를 만들고 이 시트를 정기적으로 복제하여 데이터를 활용합니다.
  • Redash 데이터를 Google 스프레드 시트에 맞게 조정
  • Google 스프레드 시트에서 Redash 데이터로드
  • 데이터로드 작업을 자동화하는 스크립트 설정
  • 자동화 된 작업의 반복 설정

  • 1. Redash 데이터를 Google 스프레드시트에 맞게 조정



    Google 스프레드시트에 전기하려는 Redash 데이터를 열고 Refresh Schedule를 설정합니다.Refresh Schedule 는 화면 왼쪽 하단(아래 그림의 빨간색 프레임 부분)의 파란색 문자로 설정할 수 있습니다.



    2. Google 스프레드시트에서 Redash 데이터 로드



    Google 스프레드시트를 열고 IMPORTDATA를 사용하여 Redash 데이터를 로드합니다.
    모든 셀에 =IMPORTDATA("RefreshのQuery API Key")를 입력하면 Redash 데이터가 Google 스프레드 시트에 반영됩니다.

    Refresh Query API Key를 얻는 방법


  • 화면 오른쪽 상단의 ・・・ 를 클릭
  • 펼친 메뉴에서 Show API Key 를 클릭
  • 표시된 모달의 Results in CSV format 하단의 URL을 복사하면 완료





  • 3. 데이터 로딩 작업을 자동화하는 스크립트 설정



    Google 스프레드시트 툴바에서 ツール에서 スクリプトエディタ를 클릭합니다.



    Apps Script가 표시되므로 이미지의 빨간색 프레임 부분에 다음 스크립트를 추가합니다.


    function myFunction() {
      var book = SpreadsheetApp.openById('[GoogleスプレッドシートのID]');
      var sheet1 = book.getSheetByName('[シート1(コピー元のシート)]');
      var date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd');
      var lastRow = sheet1.getLastRow();
      var lastColumn = sheet1.getLastColumn();
    
      book.insertSheet(date,1);
      var sheet2 = book.getSheetByName(date);
      var newData = sheet1.getRange( 1 , 1 , lastRow , lastColumn ).getValues();
      sheet2.getRange( 1 , 1 , lastRow , lastColumn ).setValues(newData);
    }
    

    이 스크립트에서는 다음을 수행합니다.
    ※ 화상에서는 이하의 실행 내용에 더해, 서식 설정도 카피하도록 기술하고 있습니다만, 여기에서는 할애합니다
  • 시트 1 뒤에 새 시트 삽입
  • "시트 1"의 정보를 새로 추가 된 시트에 복사합니다.
  • 새로 추가 된 시트의 이름을 날짜 (yyyyMMdd)의 이름으로 변경

  • 4. 자동화된 작업 반복 설정


  • Apps Script의 왼쪽에있는 시계 아이콘을 클릭 (트리거 페이지로 이동)
  • 페이지 오른쪽 하단의 トリガーを追加를 클릭 (모달 시작)
  • イベントのソースを選択 에서 時間主導型 선택
  • 時間ベースのトリガーのタイプを選択 에서 모든 타이머 선택
  • 마지막으로 타이머 실행 간격을 선택합니다

  • 매일 정시에 취득하고 싶었기 때문에, 이하와 같은 설정으로 했습니다.
  • 時間ベースのトリガーのタイプを選択 : 날짜 기반 타이머
  • 時刻を選択 :오전 10시~11시
    ※ Redash의 실행 타이밍과 덮이지 않도록 1 시간 늦은 실행 ​​시간으로 설정

  • 이상입니다.
    이제 Redash 데이터를 Google 스프레드시트에 자동으로 가져올 수 있습니다.

    끝까지 읽어 주셔서 감사합니다.

    신세를 낸 사이트


  • 데이터 변경사항을 확인하기 위해 Redash에서 수행한 SQL 결과를 Google 스프레드시트에 정기적으로 저장
  • GAS에서 redash의 최신 결과를 얻고 스프레드 시트에 반영
  • GAS×Redash로 월 18시간의 공수 삭감을 실현! ~API 조작은 어렵지만 편리했다~
  • 좋은 웹페이지 즐겨찾기