今回は、BigQueryのテーブルの作成とスキーマの定義について説明します。
前回の記事では、BigQueryの基本的な使い方として、プロジェクト~データセットの作成まで説明しました。
今回の記事では、BigQueryのテーブルの作成について、スキーマの定義を含めた実践的な内容を実画像を使って説明します。
BigQueryのテーブルは、MySQL等のRDBMSと同じく、実データの格納先です。つまり、BigQueryを使ってデータ分析を行う際の分析元になるデータテーブルです。
BigQueryは、下記のような階層構造になっており、各テーブルはデータセット上に作成されます。
この記事では、簡略的な説明に留めますが、BigQueryやMySQL等のRDBMSでは、テーブルに格納するデータのデータ型等を予め定義しておく必要があります。
Excel等の表計算ソフトでは、日付型、数値型、文字列型、基本的にいかなるデータ型の情報でも入力することができますが、BigQueryでは、テーブル作成時点で定義しておく必要があるのです。
このように、カラム名とデータ型、NULL許容を定義することを、『スキーマの定義』といいます。
スキーマの定義では、カラムごとに[NULL許容]の設定も行います。NULL許容とは、そのカラムのセルに空白を許可するかどうかの設定です。BigQueryの設定値は下記の通りです。
許可する・・・NULLABLE
許可しない・・REQUIRED
配列形式・・REPEATED
では、当記事のテーマであるBigQueryのテーブル作成とスキーマの定義について、実際の画像を使って説明します。なお、BigQueryでは各設定項目について、次のような用語で表記されます。
汎用用語 | BigQuery |
---|---|
カラム名 | フィールド名 |
データ型 | タイプ |
NOT NULL 制約 | モード |
実際にBigQUeryにテーブルを作成するために、当サイトで準備した下記のcsvを使います。(ダウンロードフリーで準備していますので、ご希望であればお使いください)
BigQueryにアップロードするcsvは、UTF-8でエンコードされている必要があります。
従業員マスタです。スキーマの定義は下記の通りにします。
フィールド名 | タイプ | モード |
---|---|---|
id | INTEGER | REQUIRED |
name | STRING | REQUIRED |
birthday | DATE | REQUIRED |
gender | INTEGER | REQUIRED |
prefecture | STRING | REQUIRED |
hire_date | DATE | REQUIRED |
department | INTEGER | REQUIRED |
wage | INTEGER | REQUIRED |
position | INTEGER | REQUIRED |
部門マスタです。スキーマの定義は下記の通りにします。
フィールド名 | タイプ | モード |
---|---|---|
id | INTEGER | REQUIRED |
name | STRING | REQUIRED |
boss | STRING | NULLABLE |
役職マスタです。スキーマの定義は下記の通りにします。
フィールド名 | タイプ | モード |
---|---|---|
id | INTEGER | REQUIRED |
name | STRING | REQUIRED |
executive | INTEGER | REQUIRED |
給与テーブルマスタです。スキーマの定義は下記の通りにします。
フィールド名 | タイプ | モード |
---|---|---|
rank | INTEGER | REQUIRED |
wage | INTEGER | REQUIRED |
4つのcsvとスキーマの定義も確立しましたので、いよいよBigQueryでテーブルを作成します。ご認識いただいている通り、csvと同じ4つのテーブルを作成します。
プロジェクトとデータセットを選択したうえで進めてください。
スキーマはアップロードしたcsvからBigQueryが自動検出(判別)する機能もありますが、テーブルはデータ分析の最重要項目です。誤りがないように、手動設定するほうが望ましいでしょう。
以上、BigQueryのテーブル作成とスキーマ定義の実際の手順です。同様に他の3つのcsvでもテーブルを作成します。以降、部分抜粋で説明します。
今回は、BigQueryのテーブルの作成とスキーマの定義について、実際の手順を掲載したうえで記事にしました。
まだ、BigQueryに慣れていない方でも、当記事のサンプルcsvを使って記事通りに進めれば、テーブル作成とスキーマの定義の感覚が身につくと思います。
今回は、画像も文字量も多くなっていますので、テーブル作成時に発生するエラー対策等は、次回以降の記事で説明します。