gpt4 book ai didi

google-cloud-platform - 通过 Cloud Function 插入 BigQuery 无效

转载 作者:行者123 更新时间:2023-12-03 19:44:49 24 4
gpt4 key购买 nike

我正在将以下 json 插入到预先创建的 BigQuery 表中。

{
"Member_ID": 881230,
"First_Name": "Dave2",
"Last_Name": "Manin2",
"Gender": "M",
"Age": 53,
"Height": "5,2",
"Weight": 145,
"Hours_Sleep": 4,
"Calories_Consumed": 2497,
"Exercise_Calories_Burned": 876,
"Date": "2018-10-17"
}

当我将上面的行直接插入到表中时,它工作正常但通过函数出错(请参阅下面的完整错误消息)。我缺少什么?感谢您的帮助。

这是我的node.js(代码后的错误信息)

exports.subscribe = function (event, callback) {
const BigQuery = require('@google-cloud/bigquery');
const projectId = "mydemo-221920"; //Enter your project ID here
const datasetId = "mydemodata"; //Enter your BigQuery dataset name here
const tableId = "memid"; //Enter your BigQuery table name here -- make sure it is setup correctly
const PubSubMessage = event.data;
// Incoming data is in JSON format
const incomingData = PubSubMessage.data ? Buffer.from(PubSubMessage.data, 'base64').toString() : "{'Member_ID':'na','First_Name':'na','Last_Name':'na','Gender':'na','Age':'na','Height':'na','Weight':'na','Hours_Sleep':'na','Calories_Consumed':'na','Exercise_Calories_Burned':'na','Date':'na'}";
console.log(`My log PubSub en String est: ${incomingData}`);
const jsonData = JSON.parse(incomingData);
var rows = [jsonData];

console.log(`Uploading data: ${JSON.stringify(rows)}`);

// Instantiates a client
const bigquery = BigQuery({
projectId: projectId
});

// Inserts data into memeid table
bigquery
.dataset(datasetId)
.table(tableId)
.insert(rows)
.then((foundErrors) => {
rows.forEach((row) => console.log('Inserted: ', row));

if (foundErrors && foundErrors.insertErrors != undefined) {
foundErrors.forEach((err) => {
console.log('Error: ', err);
})
}
})
.catch((err) => {
console.error('ERROR:', err);
});
// [END bigquery_insert_stream]


callback();
}

当函数尝试插入时出现此错误

ERROR: { PartialFailureError: A failure occurred during this request. 
at /user_code/node_modules/@google-cloud/bigquery/src/table.js:1213:13
at Object.handleResp (/user_code/node_modules/@google-cloud/bigquery/node_modules/@google-cloud/common/src/util.js:135:3)
at /user_code/node_modules/@google-cloud/bigquery/node_modules/@google-cloud/common/src/util.js:465:12
at Request.onResponse [as _callback] (/user_code/node_modules/@google-cloud/bigquery/node_modules/retry-request/index.js:198:7)
at Request.self.callback (/user_code/node_modules/@google-cloud/bigquery/node_modules/request/request.js:185:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/user_code/node_modules/@google-cloud/bigquery/node_modules/request/request.js:1161:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7) errors: [ { errors: [Object], row: [Object] } ], response: { kind: 'bigquery#tableDataInsertAllResponse', insertErrors: [ [Object] ] }, message: 'A failure occurred during this request.' }

函数正在读取这个json

{
insertId: "000000-6dbc4c0f-fe15-4260-95c6-10afe7d0960b"
labels: {…}
logName: "projects/mydemo-221920/logs/cloudfunctions.googleapis.com%2Fcloud-functions"
receiveTimestamp: "2018-11-13T17:27:48.429240186Z"
resource: {…}
severity: "INFO"
textPayload: "My log PubSub en String est: {"Member_ID":881230,"First_Name":"Dave2","Last_Name":"Manin2","Gender":"M","Age":53,"Height":"5,2","Weight":145,"Hours_Sleep":4,"Calories_Consumed":2497,"Exercise_Calories_Burned":876,"Date":"2018-10-17"}"
timestamp: "2018-11-13T17:27:42.143Z"
trace: "projects/mydemo-221920/traces/cef3531fe182bf1d6da6e47aae3bbff3"
}

最佳答案

我在您的代码或 json 中看不到任何错误。我尝试了您提供的代码,并且能够将数据流式传输到 BigQuery 而不会出现任何错误:

logs ok

BQ data

我试图修改我的 BigQuery 表的架构以重现您的问题,但我得到了与您完全相同的错误:

Log error

这是架构应该可以解决您的问题:

BQ schema

关于google-cloud-platform - 通过 Cloud Function 插入 BigQuery 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53286761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com