【问题标题】:is bigquery the right choice?bigquery 是正确的选择吗?
【发布时间】:2014-01-27 05:47:13
【问题描述】:

我在谷歌电子表格上有一个表格,需要分析..

我查看了大查询,这似乎是我需要的......

我仍处于测试阶段,所以我的桌子非常小.. 因为我的桌子只有 40x10,我想知道它是否有点矫枉过正..

但我确实需要立即获得结果,它每分钟运行大约 7 到 8 小时,每天 .. 每周 5 天..

Google 还表示,前处理的 100gb 是免费的。

即使启用了计费,我也将保持在我的限制范围内,对吗?我不想像某些人所面临的那样被收取 4k$ 的费用......所以想了解这是如何运作的......

对于 40x10 的桌子.. 一个表最多 10 个查询(每分钟).. 一天7小时。。 每周 5 天..

我会保持在我的极限范围内,对吧?是的,我正在使用应用程序脚本(目前)来启动并运行它。

【问题讨论】:

    标签: google-apps-script google-bigquery


    【解决方案1】:

    我会使用ScriptDB,因为您的数据库非常小。

    其工作原理的简短示例(带有收件箱示例):

    function checkMessages(name) {
    var db = ScriptDb.getMyDb();
    var msgs = db.query({table: "messages", IDto: name, statusreceiving: db.not("read")});
    var infoMessages = [];
    var messagesCount = msgs.getSize();
    var stateMessages = false;
    var idMessages = [];
    
    while (msgs.hasNext()) {
    var me = msgs.next();
      idMessages.push(me.messageID);
      me.statusreceiving = "received";
      db.save(me);
      }
    if (messagesCount>0) {
    stateMessages = true;
    }
    infoMessages.push(stateMessages,messagesCount,idMessages);
    return infoMessages;
    }
    

    【讨论】:

    • 我意识到对于基本操作 scriptDb 绰绰有余,但我需要对行进行排序和过滤,可能最多 5 次,直到我得到我想要的结果。我非常怀疑 scriptDB 是否能够处理所有这些。另外,我需要非常快速的结果。
    • scriptDB 肯定很快。此外,对于排序,您可以使用类似: var team = db.query({table: "availableTeam"}).sortBy("teamID") 和过滤您有上面的 db.query 语法。对于您的需要,scriptDB 是正确的选择。
    • 如果它如您所说,它将帮助我获得一个最小版本并运行。一定会试一试,然后就该先生回复您。但就我所知,我会超出我的免费大查询配额吗?
    【解决方案2】:

    不,BigQuery 可能不适合您的用例。

    首先,BigQuery 无法直接查询 Google 电子表格中的数据。

    其次,BigQuery 经过优化,旨在查询海量数据,因此使用它查询 40x10 的表在速度或效率方面并不理想。

    第三,每个查询至少需要 1 MB 的数据,无论您的表有多小(请参阅定价详情 here)。以每分钟 10 次查询、每天 8 小时、每周 5 天计算,您将在 30 天的一个月内达到大约 100 GB 的数据,并且很可能不时超出您的免费配额。

    如果您只是运行一个不需要经常更改的查询,那么直接在 AppsScript 中对其进行编码似乎是一种合理的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2021-11-06
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多