GCPのCloud Dataprep by TrifactaでExcelデータをBQに取り込む試行錯誤をあれやこれやした時のメモ。
結局やりたかったことは実現できなかった。。。
実現したいこと:GCSに置かれたExcelを定期的にBQにAppend
これ、結局できなかった。
要は、「hogehoge_202004.xlsx」「hogehoge_202003.xlsx」みたいな年月サフィックス付きのExcelファイルをCSVやらスプレッドシートに変換せずにそのままBQに取り込みたくて、「Dataprepなら行けるのでは!?」と思い立ち色々試行錯誤したんですが、結局無理そう。
理由は、DataprepではExcel形式を確かにサポートしているけどGCSに置かれているExcelファイルはbinaryとして認識してしまうっぽい。
ローカルからのアップロードなら正しくExcel形式として認識してくれる。
以下試してみた手順。
新規フローを作成。
データセットを指定。ここでGCSに格納された今月のExcelを読み込むようにしたっかったので「import dataset」を指定。
パラメタ(Parameterized path)を使ってサフィックスを指定する。
ここまではいい感じだったが、、、
文字化けとるがや。。。
「Edit Setting」を押して詳細を見てみても、1 columnしか認識されてないし。。。
でダメ元で試しにrunさせてみたところ、、、
当然のようにダメでした。。。そりゃそうでしょうね。
他に試したこと:手動でのインポート
で、結論ダメだったけど手動アップロードならExcel取り込めるのでそれもやってみたが、、、めちゃくちゃクセがある!
というか未完成品!?と思うぐらい挙動が不安定でわかりづらかったのでメモ。まだ実運用に耐えうる代物ではないかも。
と、ここまでやって正しく読み込めれば右側にpreviewが出てくるはずだが、ローディング中、もしくは「preview not available」でいつまで経ってもpreviewが出てこないケースがある。
この状態のまま無理やり進めると、後続のflow作成でrecipe編集ができず詰む。
読み込みが終わらない時は「command + R」でブラウザリロードするという、なんとも言えない荒技で解決するときがある。
ダメなら何回かインポートをやり直すとうまくいく。
ちなみにファイルサイズがでかいとかは、(発生頻度には関係するかもだけど)本質的に当該事象の発生有無には関係ない。テスト用に作った数KBのファイルでも1回発生したのでフロントサイドの処理の問題くさい。
正しく読み込めるとこんな感じ。