BigQuery와 스프레드 시트의 연계로 자주 timeout하므로 GAS에서 어떻게 했는지

목적



  • 스프레드시트와 BigQuery의 연계 은 편리하지만, 기간이 긴 등 무거운 Query는 타임 아웃 해 버리는 일이 있다
  • 따라서 BigQuery는 최신 1 일분 만의 데이터를 취득하고 취득한 데이터를 스프레드 시트에 축적하는 형태로 실현한다

  • 거친 흐름



    1. BigQuery에서 전일 분만 데이터 얻기
    2. 획득한 데이터 복사
    3. 복사한 데이터를 다른 시트의 기존 숫자 아래에 붙여넣기
    4. 위의 흐름을 트리거로 매일 업데이트하도록 설정

    GAS 상세


    function copy(){
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet_copyFrom = ss.getSheetByName('シート1'); //コピー元のシートを指定
    
     // コピー範囲取得
      var lr = sheet_copyFrom.getLastRow();
      var lc = sheet_copyFrom.getLastColumn();
      var copyRange = sheet_copyFrom.getRange(1,1,lr,lc); //取得開始位置を指定(1.1)=A1,(2,1)=A2となる。開始位置のみ指定したら、それ以降を全て自動で取得する。
    
      var sheet_copyTo = ss.getSheetByName('シート2'); //コピー先のシートを指定
      var lastRow = sheet_copyTo.getLastRow();
      var lastRow1 = lastRow + 1;
    
     // コピー範囲の値を取得し、対象範囲へ転記
     var copyValues = copyRange.getValues();
      sheet_copyTo.getRange(lastRow1,1,lr,lc).setValues(copyValues);
    
    }
    
    

    흐름



    1. BigQuery와 연계하여 전일 분만의 데이터를 취득





    2.GAS를 기재한다



    아래 3점 변경
    - 복사 원본 시트 이름
    - 복사 시작 위치
    - 붙여 넣을 시트 이름
    // コピー開始位置は取得開始位置を指定。(1.1)=A1,(2,1)=A2となる。開始位置のみ指定しそれ以降を全て取得する。
    var copyRange = sheet_copyFrom.getRange(1,1,lr,lc);
    

    3. 이 값이 시트 2 하단에 복사되어 있는지 확인





    4. 트리거 설정하기


  • 할애

  • 결론


  • GAS를 사용할 수 있다면 비용을 절감 할 수 있습니다
  • 좋은 웹페이지 즐겨찾기