

BigqueryでGoogle
Driveなどの日々更新される外部ソースのデータと、CSVアップロードなどの通常のデータを統合させた1つのテーブルを作る方法はございますでしょうか？

詳細としては、  
数年分の顧客データの蓄積と解析をBigqueryで実施しようとしています。BigqueryデータのビジュアライズツールとしてGoogle
Datastudioを利用予定です。

Datastudioで過去数年分の顧客データを読み込むには、Bigqueryに単一のテーブルとして顧客データを用意しなければならないはずですが、現状は複数のExcelファイルとして顧客データが保存されており、そのデータが日々更新されている状況です。このデータを週次で分析していきたいと考えており、下記の方法で実現できるのではないかと考えました。

  1. 2016年より前のデータはBigqueryにそのままCSVデータとしてインポート（input1）
  2. 2017年今年のデータは Google Drive（実際はGoogle sheet）で日々更新しているものを外部ソースデータとしてBigqueryのテーブルとしてインポート（input2）
  3. 1と2のテーブルを連結させたビューを作成（output）★
  4. Datastudioに3を連携させてビジュアライズ

ただ、この★3の部分でGoogle Driveと連携させているデータでは複数テーブルに対するクエリが動きません。

例えば、2つのテーブルを下記のように、

[code]

    SELECT
      *
    FROM
     `hogehoge.hogehoge.input*`
    
[/code]

と指定しますと、

[code]

    Error: External tables cannot be queried through prefix.
    
[/code]

といようなエラーが出ます。Google
Driveなどの外部ソースのテーブルではワイルドカードが動かないということでしょうか。外部ソースデータをビューに切り替えてもエラーが出てしまいます。

[code]

    Error: Views cannot be queried through prefix. 
    
[/code]

このような場合にエラーを出さず解決させる方法が何かございますでしょうか？いずれにしても、日々更新されるGoogle
DriveのデータをBigqueryに取り込みつつ過去のデータとともに単一のテーブルを作れる方法であれば問題ないです。


CC BY-SA 3.0
2017-07-22T08:21:43.610
36581
2022-07-22T17:02:50.393
2017-07-22T08:46:29.447
24527
24527
question
google-bigquery
BigqueryでGoogle Drive（スプレッドシート）とCSVデータを統合したテーブルを用意する方法


Legacy SQLのTABLE_DATE_RANGEでは、federated tableに対してもクエリを実行することができました。  
StandardSQLもしばらくしたら対応されるのではないかと思いますが、とりあえず今すぐ実行したいなら、Legacy SQLで書いちゃうのが早そうです。

[code]

    SELECT
      *
    FROM
      TABLE_DATE_RANGE(federated.t, TIMESTAMP('2017-01-01'),TIMESTAMP('2017-01-02'))
    LIMIT
      1000
    
[/code]


CC BY-SA 3.0
2017-07-25T02:52:17.960
36646
2017-07-25T02:52:17.960
4361
36581
answer