Динамическая таблица и набор данных в запланированном задании BigQuery - PullRequest
0 голосов
/ 15 октября 2018

Интересно, может ли кто-нибудь помочь мне, пожалуйста?

Я искал следующий учебник: https://shinesolutions.com/2017/11/01/scheduling-bigquery-jobs-using-google-apps-script/

Я понимаю принципы сценария, но мне хотелось бычтобы сделать два элемента скрипта динамическими.

function runQuery() {
  var configuration = {
    "query": {
    "useQueryCache": false,
    "destinationTable": {
          "projectId": "project",
          "datasetId": "dataset",
          "tableId": "ga_sessions_20181014"
        },
    "writeDisposition": "WRITE_TRUNCATE",
    "createDisposition": "CREATE_IF_NEEDED",
    "allowLargeResults": true,
    "useLegacySql": false,
    "query": "SELECT * FROM `project.dataset.ga_sessions_20181014`"
    }
  };

  var job = {
    "configuration": configuration
  };

  var jobResult = BigQuery.Jobs.insert(job, "grey-sort-challenge");
  Logger.log(jobResult);
}

Это даты в идентификаторах таблицы источника и назначения, чтобы они отображали текущий день-1.т.е. ga_sessions_20181014, затем ga_sessions_20181015 и т. д. и т. п.

Может кто-нибудь сказать мне, пожалуйста, возможно ли это?

Большое спасибо и добрые пожелания

Крис

1 Ответ

0 голосов
/ 15 октября 2018

Вам просто нужно определить переменную, которая содержит вчерашнюю дату, и отформатировать ее соответствующим образом, а затем объединить ее в своей конфигурации.

Есть много способов сделать это, и, как указано в комментарии, наиболеепрямолинейно, вероятно, использует Utilities.formatDate.Вот пример:

var timeZone = 'America/Chicago';
var yesterday = Utilities.formatDate(new Date(Date.now() - 24*60*60*1000), timeZone, 'yyyyMMdd');

var configuration = {
  "query": {
  "useQueryCache": false,
  "destinationTable": {
        "projectId": "project",
        "datasetId": "dataset",
        "tableId": "ga_sessions_" + yesterday
      },
  "writeDisposition": "WRITE_TRUNCATE",
  "createDisposition": "CREATE_IF_NEEDED",
  "allowLargeResults": true,
  "useLegacySql": false,
  "query": "SELECT * FROM `project.dataset.ga_sessions_" + yesterday + "`"
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...