首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用node js客户端在BigQuery中存储数值类型以进行流式插入?

如何使用node js客户端在BigQuery中存储数值类型以进行流式插入?
EN

Stack Overflow用户
提问于 2019-01-24 12:38:41
回答 1查看 528关注 0票数 1

假设BigQuery中的数值类型支持的限制远远超出了Javascript的数值类型,那么如何使用node js客户端Table.insert(rows, options, callback)方法来存储数值类型呢?对于使用字符串类型处理大数字,我考虑使用https://github.com/MikeMcl/big.js。如果我为我的BigQuery表中的数字字段发送一个字符串值(包含一个超出javascript数量限制的有效数字),它会工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-24 15:11:35

您需要将对于JavaScript来说太大的数字视为字符串。

例如,JS不知道如何处理-99999999999999999999999999999.999999999

同时,下面的代码在NodeJS中将这个巨大的数字插入到BigQuery中:

代码语言:javascript
复制
BigQuery = require('@google-cloud/bigquery');
bigquery = BigQuery({projectId: 'my-project'});
dataset = bigquery.dataset('tt');
table = dataset.table('testfun_numeric');

rows = [{
  name:"whatever",
  numi: "-99999999999999999999999999999.999999999"
}];
table.insert(rows);

在BigQuery中:

代码语言:javascript
复制
SELECT name, numi 
  , numi=numi+1000 better_comparison
FROM `fh-bigquery.tt.testfun_numeric` 

我之前在BigQuery中用以下命令创建表

代码语言:javascript
复制
CREATE TABLE `tt.testfun_numeric`
AS
SELECT '' name, CAST(0 AS NUMERIC) numi 
LIMIT 0

顺便说一句,我也尝试了在NodeJS中使用BigInt(Number.MAX_SAFE_INTEGER),但库不能将其正确地发送到BigQuery -除非我先将其转换为字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54339458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档