1

私は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. 
+0

ビューとテーブルのような違いはありません。すべてのクエリが有効なSQLクエリである必要があります。多分あなたのエラーは他の場所から来ているでしょう。 – Pentium10

+0

@ Pentium10、私は同意しますが、テーブル名を表示名に変更するときにのみこのエラーが発生しています – ashishk

+0

SQLに問題がある可能性があります。 – Pentium10

答えて

0

を与えて起動するに見えますジョブを挿入するときに設定します。 'JobConfigurationQuery'と他のクラスを使用する方法は現在のドキュメントには言及されていないので放棄されているようですが、Wayback Machineをfind themに使用する必要がありました。

2012年11月12日からの最新のdocumentは、いくつかの設定プロパティのgetterとsetterを定義するだけで、 'maximumBillingTier'はその1つではありません。

"old"オブジェクトコンストラクタに頼るのではなく、使用例で行われているように、手動でリクエストプロパティを設定することをお勧めします。これは、互換性のために残されているように見え、不完全です。

ビューがlogical tableのみであり、ビュー自体を照会するときにビューを定義するクエリを再実行する必要があるため、ビューに対してより高い請求階層を必要とする理由があります。

関連する問題