从AdWords脚本(通过JDBC)将数据保存到Google SQL的过程非常缓慢

时间:2018-06-19 14:56:15

标签: google-apps-script

我编写了一个AdWords脚本,以通过JDBC将效果数据保存到Google Cloud。 不幸的是,该脚本超过了30分钟的最长运行时间,仅保存了大约20%的数据。有没有一种方法可以加快运行速度,并在30分钟的运行时间限制内完成所有产品的流程?

请参阅下面代码的主要部分。 第一段为每个产品ID提取所需的数据。 我相信这部分还可以。 第二段为每个产品ID写入一行。 这可能是问题所在,因为它必须为每种产品每次都建立连接,并且需要很长时间。

  while (productGroups.hasNext()) {    
    var productGroup = productGroups.next();
    var productItemId = productGroup.asItemId();
    var maxCpc = productItemId.getMaxCpc();
    var itemId = productItemId.getValue();
    var stats = productItemId.getStatsFor('YESTERDAY');
    var averageCpc = stats.getAverageCpc();
    var clicks = stats.getClicks();
    var impressions = stats.getImpressions();
    var conversions = stats.getConversions();
    var cost = stats.getCost();


    if (itemId || maxCpc) {   
 var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd); //SQL Connetion starts here
  var stmt = conn.prepareStatement('INSERT INTO table1 '
      + '(itemid, date, clicks, impressions, cpc, averageCpc, cost, conversions) values (?, ?, ?, ?, ?, ?, ?, ?)'); //End 
  stmt.setString(1, itemId);
  stmt.setString(2, now);
  stmt.setString(3, clicks);
  stmt.setString(4, impressions);
  stmt.setString(5, maxCpc);
  stmt.setString(6, averageCpc);
  stmt.setString(7, cost);
  stmt.setString(8, conversions);    
  stmt.execute();
    }    
  }

提前谢谢!

0 个答案:

没有答案