2016-09-14 3 views
0

Googleの大規模なクエリで2つのテーブルを結合し、Googleのアプリケーションスクリプトを使用してその結果を同じプロジェクトの既存のテーブルに保存する簡単な方法Googleの大きな質問のフォルダ。App Scriptで2つのテーブルを結合して大きなクエリの既存のテーブルにデータを取り込む方法

function saveQueryToTable1() { 
    var projectId = 'instagram-1314'; 
    var datasetId = 'Divya_Test'; 
    var tableId = 'Join'; 
    var job = { 
    configuration: { 
     query: { 
     query: '((SELECT * FROM [instagram-1314:Divya_Test.Join1_Test]) UNION (SELECT * FROM [instagram-1314:Divya_Test.Join2_Test]))' , 
     destinationTable: { 
      projectId: projectId, 
      datasetId: datasetId, 
      tableId: tableId 
     } 
     } 
    } 
}; 

var queryResults = BigQuery.Jobs.insert(job, projectId); 
Logger.log(queryResults.status); 
} 

私は上記のコードを試しましたが、機能しませんでした。誰でもこれで私を助けてください、またはこれが可能なら何か考えがありますか? おかげ

BigQueryのレガシーSQLで
+0

を持っているとして、あなたの代わりにconfiguration.queryconfiguration.copyを使用することができますJobs: insertのためのより多くを参照してください、あなたは投票の下に、投稿の回答の左にチェックマークを使用して受け入れ答えをマークすることができます。重要な理由については、http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235を参照してください。答えに投票することも重要です。役に立った答えを投票してください。もっとたくさんあります...誰かがあなたの質問に答えるときに何をすべきかを確認することができます - http://stackoverflow.com/help/someone-answers。 –

答えて

0

(あなたはあなたの例で使用していること)はUNIONキーワードがありません - むしろあなたはこのについての詳細はFROM clauseを参照してください

((SELECT * FROM [instagram-1314:Divya_Test.Join1_Test], [instagram-1314:Divya_Test.Join2_Test])) 

以下の例のように、このためにカンマを使用する必要があります

上記のアプローチでは、2つのスキャン(両方のテーブル)にTB当たり5ドルがかかります。小さいテーブルがある場合は、ほとんど心配しないでください

テーブルが大きく、スキーマが同じ場合(例のように聞こえる場合)、コピー対クエリの使用を検討できます。コピーは$無料です。

はあなたの例では、今SO上重要

関連する問題