BigQueryでは複数の方法でテーブルを作成できます。
今回はCSVデータからテーブルを作成する方法をご紹介します。
CSVデータを準備する
ここにトレーニングメニューに関するCSVデータがあります。
これをBigQueryに取り込んでいきましょう!
menu,repetition maximum,count,set,rest
ベンチプレス,10,10,3,1
ダンベルベンチプレス,12,12,3,1
インクラインダンベルベンチプレス,15,15,3,1
ベックフライ,20,20,3,1
ケーブルクロスオーバー,20,20,3,1
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-1.21.33.png)
ちなみにこの日は胸の日メニューでした。
CSVファイルをアップロード
BigQueryのトップ画面からエクスプローラーの横にある追加を選択しましょう!
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-1.11.33.png)
サイドバーが表示されました。
CSVファイルはデスクトップに置いてあるので、ローカルファイルをクリックします。
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-1.13.24-1024x503.png)
テーブルを作成する
上から順に記入していきましょう。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-68-1024x366.png)
ソース
今回はCSVファイルなのでファイル形式をCSVに変更します。
そして参照からアップロードしたいCSVファイルを選びましょう。
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-1.43.00.png)
送信先
ここではテーブルを作成する「プロジェクト」と「データセット」、新規作成する「テーブルの名前」を決めます。
今回はプロジェクトはデフォルトのまま(sql-book-384011)で、データセットはすでに作成されていたsampleを使いました。データセットはこの段階でも新規作成できます。
テーブル名はCSVファイルと一緒にしました。
テーブルタイプの変更はありません。
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-1.54.02.png)
スキーマ
カラムの定義を決めましょう。私はこのように決めました。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-71.png)
- フィールド名は小文字のスネークケース
- 計算する可能性があるタイプはINTEGER型
- NULLが入る可能性もあるためモードはすべてNULLABLE
- 説明は日本語で詳しく記入
自動検出をクリックすると、CSVの情報から自動でフィールド名やタイプが入力できるのですが、意図しない名前や型が入る可能性があります。めんどうですが、自分で入力するのがおすすめです!
パーティションとクラスタの設定
パーティションに設定するカラムはないのでここは編集ありません。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-69.png)
詳細オプション
CSVファイルでは1行目がカラム情報でした。このままではカラム情報もテーブルに入ってしまうため、スキップするヘッダー行を「1」としました。
それ以外の変更は必要ありません。
![](https://tellingbook.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-30-2.06.47.png)
すべての入力が終わったのでテーブル作成をクリックしましょう。
テーブルの確認
「作成されました」のメッセージが出たらテーブルの確認をしていきます。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-72.png)
スキーマは入力した情報と一致していますね。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-73.png)
データもCSVと同じで問題なさそうです。
![](https://tellingbook.com/wp-content/uploads/2023/07/image-74.png)
SELECT
menu,
repetition_maximum,
`count`,
`set`,
rest
FROM
`sql-book-384011.sample.20230730_training_menu`
まとめ
業務でもCSVデータからテーブルを作成することはよくあるので覚えておくと便利でしょう。
今回躓くポイントがあるとすればCSVデータがスキーマのタイプと一致しない場合です。インポートする前に設定した型で本当にCSVデータが取り込めそうか確認すると良いでしょう。
これでいくらでもCSVデータからテーブルを作成できますね!