2017-04-06 8 views
1

bigquery 테이블에 데이터를 삽입하는 간단한 nodejs 스크립트가 있습니다. 데이터 입력이 정확할 때 매력처럼 작동합니다. 데이터 입력이 올바르지 않으면 오류 응답을받지 못합니다.BigQuery로 스트리밍 데이터에 대한 오류 응답이 없습니다.

어떻게 오류 응답을 처리 할 수 ​​있습니까?

'use strict' 

// Imports the Google Cloud client library 
const BigQuery = require('@google-cloud/bigquery'); 

//Instantiates a client 
const bigquery = BigQuery({ 
    projectId: 'projectid', 
    keyFilename: './credentials/cloudkey.json' 
}); 

const datasetId = 'datasetId' 
const tableId = 'test' 

const rows = [ 
    {"data": "data"}, //correct row 
    {"dtaa": "test"} // incorrect row 
] 

insertRowsAsStream(datasetId, tableId, rows) 
.then(insertErrors => { 
    console.log(insertErrors) 
}) 

function insertRowsAsStream (datasetId, tableId, rows) { 

    // References an existing dataset, e.g. "my_dataset" 
    const dataset = bigquery.dataset(datasetId); 
    // References an existing dataset, e.g. "my_dataset" 
    const table = dataset.table(tableId); 
    //console.log(table) 
    // Inserts data into a table 
    return table.insert(rows) 
    .then((insertErrors) => { 
     console.log('Inserted:'); 
     rows.forEach((row) => console.log(row)); 
     return insertErrors; 
    }); 
} 
+0

요청 당 얼마나 많은 행을 삽입하려고합니까? https://cloud.google.com/bigquery/quota-policy#streaminginserts에 나열된 제한값은 사용자에게 표시되는 동작의 원인 일 수 있습니다. –

답변

1

어리석은 실수! insertRowAsStream 다음에 catch 함수를 사용해야합니다!

insertRowsAsStream(datasetId, tableId, rows) 
.catch(insertErrors => { 
    console.log(insertErrors) 
}) 
관련 문제