是否有一种方法可以使用Node.js在BigQuery中将单个插入查询划分为多行?
我想使用node.js+BQ客户端API将多行同时插入到BigQuery中,它的工作方式很有魅力,但有一个问题,行被添加为“一体”,这意味着BigQuery中的一行包含来自实际两行(或更多)的数据。我试图构建一个自定义SQL查询,但是管理所有重复的字段非常糟糕。我正在从第三方REST API检索数据 有没有更好的办法把所有的行分成一行是否有一种方法可以使用Node.js在BigQuery中将单个插入查询划分为多行?,node.js,google-cloud-platform,google-bigquery,Node.js,Google Cloud Platform,Google Bigquery,我想使用node.js+BQ客户端API将多行同时插入到BigQuery中,它的工作方式很有魅力,但有一个问题,行被添加为“一体”,这意味着BigQuery中的一行包含来自实际两行(或更多)的数据。我试图构建一个自定义SQL查询,但是管理所有重复的字段非常糟糕。我正在从第三方REST API检索数据 有没有更好的办法把所有的行分成一行 await bigquery .dataset("datasetName") .table("tableName") .insert(te
await bigquery
.dataset("datasetName")
.table("tableName")
.insert(testRows,{'raw':false, 'ignoreUnknownValues':false}, (err, apiResponse) => {
serverRes.send(`${err} ; Response: ${JSON.stringify(apiResponse)}`);
});
是否使用Node.js创建表,然后插入数据?是否为插入指定了表架构?根据,在指定它的
insert()
方法中有一个属性schema。如何创建testRows
?@AlexandreMoraes表是先前使用从外部REST api检索的负载创建的。插入时我不包括模式@guillaumeblaquiere我对我的代码做了一些修改,它按预期工作,但我认为解决方案很糟糕。我的行只是使用fetch()
检索的外部api的纯有效负载,然后我使用.map()
迭代它们,然后使用BigQuery.insert({“交易”:[MaperationValue},{raw':false,'ignoreUnknownValues':true,'skipInvalidRows':true})
@MichalJ,我知道你在insert()中添加了一些标志
mehotd。但是,我想建议您将数据导出到一个文件,将其上载到BigQuery,并分析与您能够直接从rest API正确上载的数据的差异。因此,您可以确保不会跳过任何重要的有效负载数据。最重要的问题是,如果我将数据导出到一个文件,w是否将其划分为单独的行?@Alexandremoraes是否使用Node.js创建表,然后插入数据?是否为插入指定了表架构?根据,在insert()中有一个属性schema
方法。您是如何创建测试行的?@AlexandreMoraes表是早些时候使用从外部REST api检索的有效负载创建的。插入时我不包括架构。@guillaumeblaquiere我对代码做了一些更改,它按预期工作,但我认为解决方案很糟糕。我的行只是一个pu从使用fetch()
检索的外部api重新加载负载,然后我使用.map()
对它们进行迭代,然后使用BigQuery.insert({“deals”):[mapIterationValue},{'raw':false',ignoreUnknownValues':true,'skipInvalidRows':true})
@MichalJ,我知道您已经在为insert()添加了一些标志
mehotd。但是,我想建议您将数据导出到一个文件,将其上载到BigQuery,并分析与您能够直接从rest API正确上载的数据的差异。因此,您可以确保不会跳过任何重要的有效负载数据。最重要的问题是,如果我将数据导出到一个文件,w它能被分成几行吗?@AlexandreMoraes