1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cloud Data FusionでGoogle Cloud StrageのCSVをBigQueryに格納

Last updated at Posted at 2021-08-28

あまりQiita記事執筆は慣れてないのでご愛嬌ということで、、

Cloud Data Fusionとは

Googleの公式リファレンスによると、

Cloud Data Fusionは、データパイプラインを素早く構築、管理できる、クラウドネイティブのフルマネージド エンタープライズ データ統合サービスです。
(引用:https://cloud.google.com/blog/ja/products/data-analytics/set-up-a-secure-data-pipeline-easily-in-the-cloud)

一言で言うと、下図のようにGUIベースでパイプライン構築ができる非常に便利なサービスです。
Cloud Data fusion image.png
(2021/08 現在、正直バグが多い気がする。今後の発展に期待です)

今回はGoogle Cloud Strage(以下:GCS)などに格納されているCSVを、BigQuery(以下:BQ)にデータを格納するパイプラインをノーコードで構築します。

前提

  • GCPアカウント作成
  • Cloud Data Fusionのインスタンス作成
  • BQに格納したいcsvデータをGCSにアップロード

未作成の方はこちら→https://cloud.google.com/data-fusion/?hl=ja

パイプラインの作成

①データクレンジング

持ってきたデータからBQでの解析に必要なカラムだけに抽出します。

TOP画面で「Wrangle」を選択
cloud data fusion TOP.png

GCSにアップロードしておいたCSVを選択すると、以下のようなテーブルが現れます。
(今回はWordpressで構築したサイトのログデータを持ってきました。1行目はヘッダー)
スクリーンショット 2021-08-27 11.18.19.png

CSVにパースします(元データはCSVのはずですが、なぜかテキスト扱いになっている??)
スクリーンショット 2021-08-27 11.23.17.png

「comma」を選択し、1行目がヘッダーの場合は「Set first row as header」をチェックし、Applyをクリック(ファイルに合わせて適宜変換かけてください)
スクリーンショット 2021-08-27 11.30.08.png

すると綺麗にカラムごとに分かれてくれます。
スクリーンショット 2021-08-27 11.33.07.png

1列目のbody列はもう不要なので削除します。
スクリーンショット 2021-08-27 11.34.19.png

パースした直後はID列など、数値しか入っていないカラムもString型になっているのでInteger型にキャストします。
スクリーンショット 2021-08-27 11.37.00.png

他にも、大文字変換や空文字変換などが可能です(ここでは説明を割愛)

②パイプライン作成

①が完成したら、「Create a Pipeline」を選択。
スクリーンショット 2021-08-27 11.40.03.png

Batch Pipelineを選択
スクリーンショット 2021-08-27 11.43.18.png

すると、GCSからCSV変換までのパイプラインを自動的に構築してくれます。
スクリーンショット 2021-08-27 11.44.32.png

※「Wrangler」>「Properties」を選択し、「Output Schema」で出力するカラムの指定ができます。
スクリーンショット 2021-08-27 11.51.45.png

③BQへの接続設定

サイドメニュー>Sinkから「BigQuery」を選択。
スクリーンショット 2021-08-27 11.45.44.png

「Wrangler」から「BigQuery」まで矢印を伸ばし、Propertiesを選択します。
スクリーンショット 2021-08-27 11.47.54.png
スクリーンショット 2021-08-27 11.49.08.png

必須項目の「Label」「Reference Name」「Dataset」「Table」を埋め、Validateを選択し、「No error found.」と出ればOK。
(※Tableは小文字じゃないと怒られます、怒られた後修正しても怒られた時のデータが消えないバグあり 2021/08/27現在)
スクリーンショット 2021-08-27 11.51.11.png

④パイプライン実行

ヘッダーメニュー>Previewから「Run」を選択。Succeedと出ればOK
スクリーンショット 2021-08-27 11.58.22.png

※エラーを吐いた場合は、「Wrangler」>Error Handlingで「Skip error」にして、半強制的にエラーを潰せます(エラー潰してデプロイ実行した後、BQ上の完成品を見ても、ぶっちゃけ問題なさそうだった)
スクリーンショット 2021-08-27 12.02.54.png

Previewをパスしたら、Deployを選択し、
スクリーンショット 2021-08-27 12.05.44.png

Runを選択します。10分以上は大体かかるので、成功をお祈りします
スクリーンショット 2021-08-27 12.06.24.png

StatusがSucceededとなれば成功です。BQの中身を覗きにいきましょう。
図のようにcsvの内容がBQに反映されていれば完成です。
スクリーンショット 2021-08-27 12.37.09.png

まとめ

ノーコードで、わかりやすくGCP内の各サービスにデータの受け渡しができるのは魅力的ですね。
今後はオンプレDBやCloud SQL上のDB、AWSのS3からのデータ取り込みしようかなと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?