2017-04-06 91 views
1

我有一个简单的nodejs脚本,它将数据插入到bigquery表中。当数据输入正确时,它就像一个魅力一样。当数据输入不正确时,我不会收到错误响应。没有将数据流式传输到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) 
}) 
相关问题