반응형
Apps Script로 BigQuery 의 데이터를 읽고 쓰기를 한다.
Services 에서 [+] 버튼을 누르고, BigQuery API를 선택한다.
BigQuery 의 쿼리문 실행 샘플
/**
* Query 실행 및 결과반환
* select / insert / update
* @param {string} queryString = Query
*/
function queryExcute(queryString) {
queryString = 'SELECT BillingDocument, BillingQuantityUnit, NetAmount, TaxAmount, BillingDocumentItemText FROM `project_id.dataset_id.standard_long` WHERE TransactionCurrency = "KRW" AND BillingDocumentItem = "82"'
var request = {
query: queryString,
useLegacySql: false
};
var queryResults = BigQuery.Jobs.query(request, GLOBAL_PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Check on status of the Query Job.
var sleepTimeMs = 50;
while ( !queryResults.jobComplete ) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(GLOBAL_PROJECT_ID, jobId);
}
// Get all the rows of results.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(GLOBAL_PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
var resultObj;
if (rows) {
if ( rows.length < 2 ) {
resultObj = rows[0];
} else {
resultObj = rows;
}
} else {
if ( queryResults.jobComplete ) {
resultObj = queryResults.jobComplete;
} else {
return null;
}
}
for ( i in resultObj ) {
console.log(`${resultObj[i].f[0].v} / ${resultObj[i].f[1].v} / ${resultObj[i].f[2].v} / ${resultObj[i].f[3].v} / ${resultObj[i].f[4].v}`);
}
return resultObj;
}
해당 gmail 계정의 접근권한을 할당한다.
데이터 조회 결과를 확인할 수 있다.
BigQuery Service | Apps Script | Google Developers
반응형
'GCP > Apps Script' 카테고리의 다른 글
Apps Script로 Google Sheets의 Dropdown 생성하기 (0) | 2022.09.06 |
---|---|
Apps Script로 BigQuery 데이터를 Google Sheets에 뿌려주기 (0) | 2022.09.06 |
Apps Script에서 로그인한 사용자 정보 가져오기 (0) | 2022.08.26 |
Apps Script 개발을 위한 구조 설계 (0) | 2022.08.26 |
Apps Script 시작, 그리고 Google Sheets 데이터 가져오기 (0) | 2022.08.26 |