BigQuery와 스프레드 시트의 연계로 자주 timeout하므로 GAS에서 어떻게 했는지
1976 단어 pmGoogleAppsScriptBigQuerygas
목적
스프레드시트와 BigQuery의 연계 은 편리하지만, 기간이 긴 등 무거운 Query는 타임 아웃 해 버리는 일이 있다
거친 흐름
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. 트리거 설정하기
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. 트리거 설정하기
// コピー開始位置は取得開始位置を指定。(1.1)=A1,(2,1)=A2となる。開始位置のみ指定しそれ以降を全て取得する。
var copyRange = sheet_copyFrom.getRange(1,1,lr,lc);
결론
Reference
이 문제에 관하여(BigQuery와 스프레드 시트의 연계로 자주 timeout하므로 GAS에서 어떻게 했는지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yskur/items/2e2c7f3269aec378434a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)