BigqueryでGoogle Drive(スプレッドシート)とCSVデータを統合したテーブルを用意する方法
BigqueryでGoogle Driveなどの日々更新される外部ソースのデータと、CSVアップロードなどの通常のデータを統合させた1つのテーブルを作る方法はございますでしょうか?
詳細としては、
数年分の顧客データの蓄積と解析をBigqueryで実施しようとしています。BigqueryデータのビジュアライズツールとしてGoogle Datastudioを利用予定です。
Datastudioで過去数年分の顧客データを読み込むには、Bigqueryに単一のテーブルとして顧客データを用意しなければならないはずですが、現状は複数のExcelファイルとして顧客データが保存されており、そのデータが日々更新されている状況です。このデータを週次で分析していきたいと考えており、下記の方法で実現できるのではないかと考えました。
- 2016年より前のデータはBigqueryにそのままCSVデータとしてインポート(input1)
- 2017年今年のデータは Google Drive(実際はGoogle sheet)で日々更新しているものを外部ソースデータとしてBigqueryのテーブルとしてインポート(input2)
- 1と2のテーブルを連結させたビューを作成(output)★
- Datastudioに3を連携させてビジュアライズ
ただ、この★3の部分でGoogle Driveと連携させているデータでは複数テーブルに対するクエリが動きません。
例えば、2つのテーブルを下記のように、
SELECT
*
FROM
`hogehoge.hogehoge.input*`
と指定しますと、
Error: External tables cannot be queried through prefix.
といようなエラーが出ます。Google Driveなどの外部ソースのテーブルではワイルドカードが動かないということでしょうか。外部ソースデータをビューに切り替えてもエラーが出てしまいます。
Error: Views cannot be queried through prefix.
このような場合にエラーを出さず解決させる方法が何かございますでしょうか?いずれにしても、日々更新されるGoogle DriveのデータをBigqueryに取り込みつつ過去のデータとともに単一のテーブルを作れる方法であれば問題ないです。