【发布时间】:2020-11-27 13:22:10
【问题描述】:
我正在寻找将以下数组上传到大查询表的有效方法 采用这种格式:
大查询列(示例)
event_type: video_screen
event_label: click_on_screen
is_ready:false
time:202011231958
long:1
high:43
lenght:0
**
数组对象
**
[["video_screen","click_on_screen","false","202011231958","1","43","0"],["buy","error","2","202011231807","1","6","0"],["sign_in","enter","user_details","202011231220","2","4","0"]]
我想了几个选项,但似乎都不是最佳做法。
选项 A:将以下文件上传到 Google 存储,然后创建与此存储桶相关的表 - 由于文件格式问题,Google Bigquery 无法解析来自 Google 存储桶的数组。
选项 B:后端 (node.js) 使用将文件结构更改为 CSV 并将其直接上传到 Bigquery - 由于延迟而失败(数组很长,比我的示例多)。
选项 C:使用 Google Appcript 获取数组对象并将其插入 Bigquery - 我没有找到简单的代码,Google 存储没有连接到 Appscript 的 API。
有人处理过这种情况并可以分享他的解决方案吗?这种情况下的最佳做法是什么?如果你有这方面的代码,那就太好了。
【问题讨论】:
-
选项 D,直接将文件写入 csv 或其他支持的格式。然后您可以轻松地将行插入 BQ
-
文件中最长的行是多少?
-
每个文件 100K 行,但我每 5 分钟处理多个文件。
-
每个文件的行数没有问题。您的文件中最长的行是什么? 1单行多长?
-
6 列,最多 10 个。
标签: node.js google-apps-script google-bigquery google-cloud-storage