BigQuery에서 스프레드 시트로 가져 오는 과정을 자동화하기 위해 Google 앱 스크립트를 사용하고 있습니다. 그러나 응용 프로그램 스크립트는이 내 코드의 샘플입니다 나를App 스크립트 : bigquery에 너무 큰 응답
Error 413: Message: response too large
에게 반환하고, 오류가
1 var projectId = projectid;
2 var request = {
3 query: 'My Query'
4 };
5 var queryResults = BigQuery.Jobs.query(request, projectId);
몇 가지 가능한 해결책은 무엇인가 라인 (5)에? BigQuery 비용을 증가시키지 않는 솔루션이 있습니까?
PS : 결과는 약 16MB의 데이터입니다. 즉 약 300,000 행.
검색어 : 여기
SELECT
ORDER.addedon AS date,
ORDER.display_order_id AS order_id,
OrderSkuDetails.pid AS pid,
OrderSkuDetails.price AS price,
OrderSkuDetails.saleprice AS saleprice,
OrderSkuDetails.subtotal AS subtotal,
OrderSkuDetails.shippingcharge AS shippingcharge,
OrderSkuDetails.codcharge AS codcharge,
User.email AS email,
ORDER.order_id AS payment_id,
ORDER.payment_mode AS payment_mode,
ORDER.source AS source,
ORDER.user_id AS user_id,
Payments.payment_status AS payment_status,
User.profileJson.text,
OrderStatus.sub_status_id AS sub_status_id,
NProduct.featured AS featured
FROM
FLATTEN([Mixpanel_Import.Order],payment_mode) AS ORDER
INNER JOIN
[Mixpanel_Import.OrderSkuDetails] AS OrderSkuDetails
ON
ORDER.order_id=OrderSkuDetails.order_id
INNER JOIN
[Mixpanel_Import.OrderStatus] AS OrderStatus
ON
ORDER.order_id=OrderStatus.order_id
INNER JOIN
[Mixpanel_Import.User] AS User
ON
ORDER.user_id=User.__key__.id
INNER JOIN
[Mixpanel_Import.Payments] AS Payments
ON
ORDER.order_id=Payments.order_id
INNER JOIN
[Mixpanel_Import.NProduct] AS NProduct
ON
OrderSkuDetails.pid=NProduct.pid
코드
function bigQuery(tableName) {
var projectId = 'project';
var request = {
query: The Query
};
var queryResults = BigQuery.Jobs.query(request, projectId); //Error on this line
var jobId = queryResults.jobReference.jobId;
Logger.log(jobId);
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);
}
while (queryResults.pageToken) {
queryResults.concat(BigQuery.Jobs.getQueryResults(projectId, jobId, {pageToken: queryResults.pageToken}));
}
return queryResults;
}
아마 와이어 위로 300K 행을 가져 와서 솔루션에 표시하려고하면 안됩니다. 웹 프론트 엔드를 구축하고 있다고 가정하고 있습니까? –
@polleyg 기본적으로 데이터 분석을위한 것입니다. 너무 많은 데이터를 가져와야 할 것입니다.이를 수행 할 수있는 방법이 있습니까 –
결과를 10000으로 제한하더라도 오류는 동일하게 유지됩니다. –