前回、BigQueryの基本設定が完了しましたので、今回は、実際にBigQueryにデータを入れていく方法をご紹介いたします。

BigQueryのアカウント構造

BigQueryのアカウント構造は、プロジェクト、データセット、テーブルという階層になっています。

データセットは、複数のテーブルを格納しており、テーブルにはデータを格納することになります。

BigQueryのアカウント構造

プロジェクトの作成

では、早速プロジェクトの作成の作成方法を進めていきます。
前回、設定が完了した「BigQuery」のアカウント画面を開いてください。

画面上部にある「プロジェクトの選択」の項目をクリックしてください。

すると、新たなウィンドウが開きますので、ウィンドウの右上にある「新しいプロジェクト」をクリックしてください。

BigQuery:新しいプロジェクトの作成

プロジェクト名を決める画面に移行しますので、プロジェクト名を記入してください。
その下に小さくプロジェクトIDを編集できる項目があります。

BigQuery:新しいプロジェクトの作成

プロジェクトIDは、後から変更することはできません。
管理画面に表示される名前となりますので、名前にこだわりたい方は編集を押して入力をしてください。

プロジェクト ID に使用できるのは小文字・数字・ハイフンのみで、かつ、先頭は小文字に、末尾は文字または数字にする必要があります。

BigQuery:新しいプロジェクトの作成

①の箇所に、今作成したプロジェクト名が表示されます。
②の箇所に、プロジェクトIDで設定した名前が表示されます。

BigQuery:新しいプロジェクトの作成

データセットの作成

次に、キャンペーンの下の階層のデータセットの作成を行っていきます。
画面右上にある「データセットを作成」をクリックしてください。

BigQuery:データセットの作成

データセット作成のためのウィンドウが開きます。

BigQuery:データセットの作成

「データセットID」に、データセットの名前を入力してください。
こちらの名前には、英数字とアンダースコアのみ使用することができます。
「データのロケーション」の項目は、今回は、「デフォルト」で設定しています。
デフォルトは「USマルチリージョン」となっています。
同一プロジェクト内のデータセットのリージョンが異なる場合、相互に参照できないことがあるため統一してください。
「デフォルトテーブルの有効期限」は、今回「無期限」を選択してください。
「テーブル作成後の日数」を選択すると、テーブルの期限を設定することができます。
「暗号化」の項目は、ご自身に最適な項目を選択してください。
今回は「Googleが管理する鍵」を選択します。

すべて入力が完了しましたら、「データセットを作成」をクリックすることでデータセットの作成が完了します。

BigQuery:データセットの作成

これで、データセットの作成が完了いたしました。
赤枠のように、ご自身で作成されたデータセットをご確認できましたでしょうか?

BigQuery:データセットの作成

テーブルの作成

次は、データセットの下の階層のテーブルの作成を行っていきます。

画面の右上にある「プラスマーク」をクリックしてください。

BigQuery:テーブルの作成

すると、テーブル作成のウィンドウが開きます。
「ソース」の項目から、アップロードしたいデータの種類を選んでください。

BigQuery:テーブルの作成

ソースとして選ぶことができるソースの種類は、「空のテーブル」「Google Cloud Storage」「アップロード」「ドライブ」「Google Cloud Bigtable」の5種類があります。

BigQuery:テーブルの作成

CSVファイルのアップロード

今回は、CSVファイルのアップロードの方法をご紹介します。

アップロードするためのCSVファイルですが、BigQueryのテーブルの項目名(以下、スキーマ)が、英数文字とアンダースコアにしか対応していないため、項目名はローマ字で作成してください。
CSVの文字コードは、「UTF-8」にしてください。
※アップロードの上限は10MBとなっています。

「送信先」は、先程作成した「プロジェクト名」「データセット名」に設定してください。
※「テーブルタイプ」はデフォルト(「ネイティブテーブル」)のままで大丈夫です。
「テーブル名」に、登録したい名前を入力してください。
※テーブル名は、英数字とアンダースコアのみ使用することができます。
「スキーマ」は自分でフィールドを編集することができますが、今回は「自動検出」を選択してください。
「パーティションとクラスタの設定」は「パーティショニングなし」に設定してください。

「テーブルを作成」をクリックしテーブルの作成をしてください。

BigQuery:テーブルの作成

「プレビュー」でアップロードしたデータの確認を行うことができます。

BigQuery:テーブルの作成

BigQueryに連携できるデータのご紹介

先程は、CSVデータのアップロードの方法をご紹介しましたが、ほかにも様々なデータをBigQueryに連携することができます。

今回は、「ドライブ(スプレッドシート)」と「Google Cloud Storage」との連携方法をご紹介いたします。

ドライブ(スプレッドシート)

Googleアカウントをお持ちの方なら、スプレッドシートをよく使うことがあるのではないでしょうか?
BigQueryでは、スプレッドシートのデータを取り込むことが可能です。

「ソース」は「ドライブ」に設定してください。
「ドライブのURLを選択」には、スプレッドシートのURLを入力してください。
「ファイル形式」は、「Googleスプレッドシート」を選択してください。

「テーブルを作成」をクリックしテーブルの作成をしてください。

BigQuery:スプレッドシートのデータの取り込み

Google Cloud Storage

BigQueryでは、Google Cloud Storageのデータを取り込むことが可能です。
その方法は、下記となります。

「ソース」は「Google Cloud Storage」に設定してください。
「GCSパケットからファイルを選択」の「参照」ボタンをクリックしてください。

BigQuery:Google Cloud Storageのデータの取り込み

読み込みたいファイルを格納している、「Google Cloud Storage」のファイルをクリックしてください。

BigQuery:Google Cloud Storageのデータの取り込み

読み込みたいファイルをクリックしてください。

BigQuery:Google Cloud Storageのデータの取り込み

「GCSパケットからファイルを選択」に、読み込みたいデータのURLが表示されたかと思います。
「ファイル形式」は、自動で設定されます。

「テーブルを作成」をクリックしテーブルの作成をしてください。

BigQuery:Google Cloud Storageのデータの取り込み

スキーマタイプ

先程、テーブルの作成でCSVのアップロードを行った際、BigQueryのテーブルの項目名(スキーマ)は自動検出にしていました。

自動ではなく、手動で入力することも可能です。

BigQuery:スキーマの手動設定

その際に、入力するデータの形式「データ型」と「モード」を設定する必要があります。

ここからは、「データ型」と「モード」についてご紹介していきます。

データ型

「データ型」は、テーブルのスキーマにどのような形式のデータが入るのかを指定しています。

データ型 名前 説明
INTEGER 整数 小数部分のない数値
BYTES バイト 可変長バイナリデータ
FLOAT 浮動小数点 小数部分のある近似数値
NUMERIC 数値 小数部分のある正確な数値
STRING 文字列 可変長文字(Unicode)データ
DATE 日付 論理カレンダー日
TIME 時間 特定の日付に依存しない時刻
DATETIME 日付時刻 年、月、日、時、分、秒、およびサブ秒
TIMESTAMP タイムスタンプ マイクロ秒精度の絶対的な時点
BOOLEAN ブール値  「true」または「false」(大文字と小文字は区別されない)
GEOGRAPHY 地理 地表上のポイントセット(測地線エッジを持つ WGS84 基準回転楕円体の点、線、ポリゴンのセット)
STRUCT 構造体(レコード) データ型(必須)とフィールド名(オプション)が記載された順序付きフィールドのコンテナ
BIGNUMERIC BigNumeric (プレビュー) 小数部分のある正確な数値

引用元: スキーマの指定

モード

「モード」は、どのようなデータを読み込むのかを指定しています。
モードは省略可能です。

データ型 モード 説明
NULLABLE Nullable 列で NULL 値が許可されます(デフォルト)。
REQUIRED 列で NULL 値が許可されます。 NULL 値は許可されません。
REPEATED 反復 列に指定された型の値の配列が含まれます

引用元: スキーマの指定

まとめ

今回は、BigQueryにデータを格納するための方法をご紹介いたしました。
みなさんが分析したいデータを、今回ご紹介した方法でデータを取り込んでくださいね。

次回は、BigQueryで分析を行うための基本的なSQLについてご紹介していきます。