2017-10-06 11 views
0

Google App Scriptを使用してGoogleシートからBigQueryにデータをアップロードしています。重複行をアップロードすることなく、これらのデータをアップロードするためにそこに道が...あるGoogle App Scriptを使用してBigQueryテーブルに重複行をアップロードしないようにする方法

ここJOBSPECは、私が現在使用しています:

var jobSpec = { 
    configuration: { 
     load: { 
     destinationTable: { 
      projectId: projectId, 
      datasetId: 'ClientAccount', 
      tableId: tableId 
     }, 
     allowJaggedRows: true, 
     writeDisposition: 'WRITE_APPEND', 
     schema: { 
      fields: [ 
     {name: 'date', type: 'STRING'}, 
     {name: 'Impressions', type: 'INTEGER'}, 
     {name: 'Clicks', type: 'INTEGER'}, 
      ] 
     } 
     } 
    } 
    }; 

をだから私はallowDuplicates: trueのようなものを探しています...私は思いますあなたはアイデアを得る...私はこれを行うことができます...

答えて

1

BigQueryのロードは重複排除の概念を持っていませんが、効果的にこれを行うには、すべてのデータを初期テーブルにロードしてから、別のテーブルへの重複排除クエリ

with t as (SELECT 1 as field, [1,3,4, 4] as dupe) 
SELECT ANY_VALUE(field), dupe FROM t, t.dupe group by dupe; 
0

BQに読み込む前に、Googleスプレッドシートで直接Apps Scriptでデータの重複排除を行うことができます。

Victor氏によると、データをBQに重複排除することができます。スムースのように:

SELECT 
    * 
FROM (
    SELECT 
    *, 
    ROW_NUMBER() OVER (PARTITION BY Field_to_deduplicate ORDER BY key) AS RowNr 
    FROM 
    YourDataset.YourTable) AS X 
WHERE 
    X.RowNr = 1 
関連する問題