首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理mysql结果查询发送到大查询表

问如何处理mysql结果查询发送到大查询表
EN

Stack Overflow用户
提问于 2019-06-14 20:53:53
回答 1查看 135关注 0票数 0

我正在编写一个Google Apps脚本,将数据从Mysql数据库发送到大型查询表。

我知道如何查询mysql数据库。我知道如何将csv文件或Google sheets中的数据写入Big query。但是,我希望能够将mysql查询结果直接发送到BigQuery。我该怎么做呢?

基本上,我的SQL结果存储在一个变量中:

var results = stmt.executeQuery('select * from table');

该表非常基础:

代码语言:javascript
复制
Col1        Col2     Col3
String 1    foo1     1
String 2    foo2     2
String 3    foo3     3
etc...      etc...   etc...

在大型查询端脚本中,我有以下内容:

var data = results.getBlob().setContentType('application/octet-stream');

显然,在运行我的脚本时,我有以下错误:

Cannot find function getBlob in object

我真的不知道如何访问results变量中的数据,也不知道如何将它们格式化为可读格式以执行下面的.getBlob().setContentType('application/octet-stream')

到目前为止,我已经尝试通过使用以下循环的push方法在名为rawdata的新变量中传递results值:

代码语言:javascript
复制
  while (results.next()) {
    var rowString = '';
    for (var col = 0; col < numCols; col++) {
      rowString += results.getString(col + 1) + '\t';
    }

    Logger.log(rowString);
    rawdata.push(rowString)
  }

然而,rawdata.getBlob().setContentType('application/octet-stream');返回给我同样的错误。

我不知道如何格式化我的原始数据或结果变量。

EN

回答 1

Stack Overflow用户

发布于 2019-06-14 22:17:08

问题:

  • 正在尝试使用getBlob从字符串/数组中获取blob,而这两种类型都没有可用的方法。
  • 使用\t创建csv。

解决方案:

代码片段:

代码语言:javascript
复制
  var rawdata = [];
  while (results.next()) {
    var rowString = '';
    for (var col = 0; col < numCols; col++) {
      rowString += '"' + results.getString(col + 1) + '",';//quotes " if present in results data, must be replaced with double quotes ""
    }
    rawdata.push(rowString.slice(0, -1))
  }
 var data = Utilities.newBlob(rawdata.join('\n'),'application/octet-stream');

参考文献:

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

https://stackoverflow.com/questions/56598628

复制
相关文章

相似问题

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