私はbigquery内に異なるデータセットとテーブルのフィールドを含むビューを持っていますが、今私はこのビューをGoogleスクリプトを通して照会したいと思います。それを行う正しい方法は何か。bigquery APIからbigqueryビューを照会する方法
実際には私はbigqueryで別のテーブルを作成し、ビューではなくテーブルを照会しましたが、依存関係テーブルが更新されるとビューが更新されるためビューが必要です。
私はテーブルを使用していた場合、それは正常に動作しているが、ビューの場合には、私はエラーの下に取得しています:
Exception: Response Code: 404. Message: Not Found.
のBigQuery APIのクエリの結果を返すこと。
try {
var job = BigQuery.newJob();
var config = BigQuery.newJobConfiguration();
var queryConfig = BigQuery.newJobConfigurationQuery();
queryConfig.setQuery(sql);
queryConfig.setMaximumBillingTier(5);
config.setQuery(queryConfig);
job.setConfiguration(config);
var jobid = BigQuery.Jobs.insert(job, projectNumber).jobReference;
queryResults = BigQuery.Jobs.getQueryResults(projectNumber, jobid.jobId);
}
catch (err) {
Logger.log(err);
Browser.msgBox(err);
return;
}
// Check on status of the Query Job : MONTHLY
while (queryResults.getJobComplete() == false) {
try {
queryResults = BigQuery.Jobs.getQueryResults(projectNumber, queryResults.jobId);
//queryResults = BigQuery.Jobs.getQueryResults(projectNumber, job.id);
}
catch (err) {
Logger.log(err);
Browser.msgBox(err);
return;
}
}
return queryResults;
「configuration.query.maximumBillingTier」プロパティを取得していないように私は私の最初のtry節をコメントアウトし、1
try {
var queryRequest = BigQuery.newQueryRequest();
queryRequest.setQuery(sql).setTimeoutMs(100000);
queryResults = BigQuery.Jobs.query(queryRequest, projectNumber);
//Browser.msgBox(queryResults);
}
catch (err) {
Logger.log(err);
Browser.msgBox(err);
return;
}
の下に使用している場合、それは私に
Exception: Query exceeded resource limits for tier 1. Tier 3 or higher required.
ビューとテーブルのような違いはありません。すべてのクエリが有効なSQLクエリである必要があります。多分あなたのエラーは他の場所から来ているでしょう。 – Pentium10
@ Pentium10、私は同意しますが、テーブル名を表示名に変更するときにのみこのエラーが発生しています – ashishk
SQLに問題がある可能性があります。 – Pentium10