gpt4 book ai didi

node.js - 使用 Node api 重新启动表并在 bigquery 中插入数据时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:10 25 4
gpt4 key购买 nike

创建架构后将数据加载到 BigQuery 时出现意外行为。
我正在使用 Node API 通过 BigQuery 流 API 插入数据。
为了重置数据,我在加载任何数据之前删除并创建表。

我的问题:第一次运行正常,但如果再次执行就会失败。

该过程总是删除并创建表模式,但不会插入数据,直到我等待一段时间再次执行它。

这是重现该案例的代码:

async function loadDataIntoBigquery() {
const {BigQuery} = require('@google-cloud/bigquery')
const tableName = "users"
const dataset = "data_analisis"
const schemaUsers = "name:string,date:string,type:string"
const userData = [{name: "John", date: "20/08/93", type: "reader"}, {
name: "Marie",
date: "20/08/90",
type: "owner"
}]

try {
const bigquery = new BigQuery()
await bigquery.createDataset(dataset).then(err => console.log("dataset created successfully")).catch(err => {
console.log("warn: maybe the dataset already exists")
})
await bigquery.dataset(dataset).table(tableName).delete().then(err => console.log("table deleted successfully")).catch((err) => {
console.log("Error: maybe the table does not exist")
})
await bigquery.dataset(dataset).createTable(tableName, {schema: schemaUsers}).then(() => console.log("table created successfully")).catch(err => console.log("Error: maybe the table already exists"))
await bigquery.dataset(dataset).table(tableName).insert(userData).then((data) => console.log("Ok inserted ", data)).catch(err => console.log("Error: can't insert "))
} catch (err) {
console.log("err", err)
}

}

为了验证数据是否已插入,我正在使用此查询

select * from `data_analisis.users` 

最佳答案

我也有同样的问题。作为解决方法,我使用查询插入数据:

const query = "INSERT INTO `"+dataset+"."+tableName"` (name, date, type ) VALUES  ("+name+",'"+date+"','"+type+"')";
await bigQuery.query({
query: query,
useLegacySql: false,
location: 'EU'
}, (err) => {
console.log("Insertion error : ",err);
})

关于node.js - 使用 Node api 重新启动表并在 bigquery 中插入数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799674/

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