GCP/Apps Script

Apps Script로 BigQuery 연결

whistory 2022. 9. 6. 07:58
반응형

 

 

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

 

BigQuery 서비스  |  Apps Script  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 BigQuery 서비스 BigQuery 서비스를 사용하면 Apps Script에서 Google BigQuery API를 사용할 수 있습니다. 이 API를 통해 사용

developers.google.com

 

 

반응형