Categories: BigQuery

BigQuery│テーブルの作成とスキーマの定義を実画像で説明

今回は、BigQueryのテーブルの作成とスキーマの定義について説明します。

前回の記事では、BigQueryの基本的な使い方として、プロジェクト~データセットの作成まで説明しました。

今回の記事では、BigQueryのテーブルの作成について、スキーマの定義を含めた実践的な内容を実画像を使って説明します。

BigQueryのテーブルについて

BigQueryのテーブルは、MySQL等のRDBMSと同じく、実データの格納先です。つまり、BigQueryを使ってデータ分析を行う際の分析元になるデータテーブルです。

BigQueryは、下記のような階層構造になっており、各テーブルはデータセット上に作成されます。

テーブルはデータセット上に作成される

スキーマの定義について

この記事では、簡略的な説明に留めますが、BigQueryやMySQL等のRDBMSでは、テーブルに格納するデータのデータ型等を予め定義しておく必要があります。

Excel等の表計算ソフトでは、日付型、数値型、文字列型、基本的にいかなるデータ型の情報でも入力することができますが、BigQueryでは、テーブル作成時点で定義しておく必要があるのです。

このように、カラム名とデータ型、NULL許容を定義することを、『スキーマの定義』といいます。

BigQueryのスキーマの定義
NULLの許容について

スキーマの定義では、カラムごとに[NULL許容]の設定も行います。NULL許容とは、そのカラムのセルに空白を許可するかどうかの設定です。BigQueryの設定値は下記の通りです。

許可する・・・NULLABLE
許可しない・・REQUIRED
配列形式・・REPEATED

実画像_BigQueryのテーブル作成

では、当記事のテーマであるBigQueryのテーブル作成とスキーマの定義について、実際の画像を使って説明します。なお、BigQueryでは各設定項目について、次のような用語で表記されます。

汎用用語BigQuery
カラム名フィールド名
データ型タイプ
NOT NULL 制約モード
BigQueryのスキーマの定義で使う用語

サンプルデータ

実際にBigQUeryにテーブルを作成するために、当サイトで準備した下記のcsvを使います。(ダウンロードフリーで準備していますので、ご希望であればお使いください)

  • employee.csv
  • department.csv
  • position.csv
  • wage.csv
エンコードについて

BigQueryにアップロードするcsvは、UTF-8でエンコードされている必要があります。

UTF-8

employee.csv

従業員マスタです。スキーマの定義は下記の通りにします。

フィールド名タイプモード
idINTEGERREQUIRED
nameSTRINGREQUIRED
birthdayDATEREQUIRED
genderINTEGERREQUIRED
prefectureSTRINGREQUIRED
hire_dateDATEREQUIRED
departmentINTEGERREQUIRED
wageINTEGERREQUIRED
positionINTEGERREQUIRED
employee.csvのスキーマの定義

department.csv

部門マスタです。スキーマの定義は下記の通りにします。

フィールド名タイプモード
idINTEGERREQUIRED
nameSTRINGREQUIRED
bossSTRINGNULLABLE
department.csvのスキーマの定義

position.csv

役職マスタです。スキーマの定義は下記の通りにします。

フィールド名タイプモード
idINTEGERREQUIRED
nameSTRINGREQUIRED
executiveINTEGERREQUIRED
Position.csvのスキーマの定義

wage.csv

給与テーブルマスタです。スキーマの定義は下記の通りにします。

フィールド名タイプモード
rankINTEGERREQUIRED
wageINTEGERREQUIRED

実践:BigQueryのテーブル作成

4つのcsvとスキーマの定義も確立しましたので、いよいよBigQueryでテーブルを作成します。ご認識いただいている通り、csvと同じ4つのテーブルを作成します。

プロジェクトとデータセットを選択したうえで進めてください。

社員マスタテーブル

テーブルを作成をクリック
②テーブルの作成元の項目で、アップロードを選択
③アップロードするcsvを選択し、テーブル名を設定
④スキーマの+記号をクリック
スキーマの設定について

スキーマはアップロードしたcsvからBigQueryが自動検出(判別)する機能もありますが、テーブルはデータ分析の最重要項目です。誤りがないように、手動設定するほうが望ましいでしょう。

⑤カラム毎にスキーマを設定(前節参照)
詳細オプションをクリック
⑦csvにヘッダー行が含まれている場合は、スキップする行数を指定し、テーブルを作成をクリック
※当記事のcsvはすべて1行目がヘッダーになっている
⑧正常にcsvが取り込まれ、テーブルが作成された

以上、BigQueryのテーブル作成とスキーマ定義の実際の手順です。同様に他の3つのcsvでもテーブルを作成します。以降、部分抜粋で説明します。

部門マスタテーブル

①アップロードファイルを選択し、テーブル名を設定
②カラム毎にスキーマの定義
※詳細オプションでスキップ行の設定も必要
③テーブルが作成された

役職マスタテーブル

①アップロードファイルを選択し、テーブル名を設定
②カラム毎にスキーマの定義
※詳細オプションでスキップ行の設定も必要
③テーブルが作成された

賃金テーブルマスタ

①アップロードファイルを選択し、テーブル名を設定
②カラム毎にスキーマの定義
※詳細オプションでスキップ行の設定も必要
③テーブルが作成された

あとがき

今回は、BigQueryのテーブルの作成とスキーマの定義について、実際の手順を掲載したうえで記事にしました。

まだ、BigQueryに慣れていない方でも、当記事のサンプルcsvを使って記事通りに進めれば、テーブル作成とスキーマの定義の感覚が身につくと思います。

今回は、画像も文字量も多くなっていますので、テーブル作成時に発生するエラー対策等は、次回以降の記事で説明します。

Analytics沖縄

データサイエンス・機械学習・ディープラーニングを本格的に研究するフリーランスエンジニア。 「Google データアナリティクス プロフェッショナル」の認定証を取得済み。 この分野は専門知識がなければ理解し辛い情報が多いのですが、当サイトでは初学者も意識して発信していきますので、ご関心があればぜひご覧ください。

Share
Published by
Analytics沖縄
Tags: Ch

Recent Posts

SQLの種類|DDL、DML、DCL(命令言語の分類)

今回は、データベースに対する命…

4か月 ago

SQL|FROM句の使い方。基本構文とテーブル指定の実例

今回は、SQLの基本かつ使用頻…

4か月 ago

MySQLの日付型や時刻型で使う関数のフォーマット指定子

今回は、MySQLの日付型や時…

8か月 ago

SQL│文字列を日付型に変換するTo_Date・Convert

今回は、SQLで文字列を日付型…

9か月 ago