#概要
全ての人間は2種類に分けることができる。
Google Cloud Platformでバケット作成とかわちゃわちゃいじれる者と、そうでない者。
@74kenshiro(1988~2130年)
名もなき初心者エンジニアがGoogle Cloud Platform でバケット作成してBigQueryで読み込んだりするだけの記事だお。
目次
1.バケットを作成する
2.バケットにデータをアップロードする
3.アップロードしたデータをBigQueryで読み込む(テーブルの作成)
4.SQL実行した出力結果をテーブルとして保存する
#この記事で分かること##
・バケットの作成方法
・バケットへのアップロード方法
・バケットのデータをBigQueryで読み込む方法
・出力結果をテーブルに保存する方法とその際の注意点
#データ概要
元データ:とある会社の社員データ「staff_list.csv」
#1.バケットを作成する
###①Google Cloud Platform(以下GCP)の画面左のメニューで「Storage」➡「ブラウザ」➡「バケットを作成」を選択。
###2.バケットの名前を入力し、各項目を選択、作成をクリック。
##2.バケットにデータをアップロードする。
###1.バケットを選択して対象をクリックする。 ドラッグでもいける!
#3.アップロードしたデータをBigQueryで読み込む(テーブルの作成)
今回は新たにデータセットを作成します。
##1.データセットの作成
###①.プロジェクトを選択し、「データセットを作成」をクリック
###②データセット名を入力、ロケーション、有効期限を指定し、「データセットを作成をクリック」
###③プロジェクトに内蔵されているか確認。あればおk。
##2.CSVデータを読込み、テーブルを作成する
###①データセットを選択し、「テーブルを作成」をクリック
###②「テーブルの作成元」をクリックし、「Google Cloud Storage」を選択、「参照」をクリック
###③対象のバケットをダブルクリック、ファイルを選択し、「選択」をクリック
###④ファイル形式(今回はCSV)を選択、テーブル名を入力しテーブルを作成
スキーマ自動検出とは、カラムとデータ型を自動で検出してくれる機能。
カラムが英字でデータ型に指定が無い場合はチェック。
元データにカラム(ヘッダー)がある場合は、「詳細オプション」をクリックし、「スキップするヘッダー行」を指定する
ちなみに、CSVの文字エンコードはUTF-8でないと日本語が文字化けする。
UTF-8だとしても、BigQueryはカラム日本語非対応なので、修正しないといけない。アッチャー!!
元データのカラム名(ヘッダー)が修正出来るなら、英字に変換しておく。
そしてUTF8で保存する。
同じように読込してみた!!
きれいに出来たとみせかけて、「id」の列が文字型から整数型に変換されてしまった。
自動検出あるある。
こうした場合、また、元データの変更が出来ない場合は、テーブルを作成する際に自動検出ではなく、手動でカラム名とデータ型を指定する!!
###⑤カラム名とデータ型を自分で指定したい場合
元データが触れなかったり、数値が文字型でないといけないときなどは、テーブルを作成する際に自動検出ではなく「フィールドを追加」でカラム名を入力し、各データ型を選択する
###⑥プレビューで確認する。
できた。
元データのカラム名が日本語だったり、データ型を指定する場合は、手動でやるべし。
#4.SQL実行した出力結果をテーブルとして保存する
###①SQLを実行
例:攻撃力の高い順に出力したランキングをテーブルに残したい
SELECT
RANK()OVER(ORDER BY attack DESC) AS attack_rank,
id,
division,
attribute,
attack,
defense
FROM
`company.staff_list_utf8_manual`
ORDER BY
1;
###②クエリ上でCREATE TABLE
するのが一番オヌヌメ。
テーブル名「staff_attack_rank_c」
CREATE TABLE
company.staff_attack_rank_c AS
SELECT
RANK()OVER(ORDER BY attack DESC) AS attack_rank,
id,
division,
attribute,
attack,
defense
FROM
`company.staff_list_utf8_manual`
ORDER BY
1;
###③確認。そしてでけた。
##え、でもクエリ打たずに画面上でテーブル作成出来そうじゃん?って思うじゃん?
###①クエリ結果右手の「結果を保存する」をクリックし、「BigQueryテーブル」を選択
###②保存先のプロジェクト、データセットを選択し、テーブル名を入力。そして保存。
###③確認。順番がめちゃくちゃで草不可避
テーブル出来たけどORDER BY句が無効になってるー!!
ふざけんなー!!う〇こー!!!!
###結論 クエリでCREATE TABLEすればよろし。
#オワタ。