BigQueryまずは使ってみよう[1/3](テーブル作成編)

 BigQueryを、こんな風に使うことってできるのかなぁ、という状態からなかなか抜け出せず、心を入れ替えることにしました。これまではとにかく勉強すればいいかと思っていたのですけど、ぼくが間違っていました。いったん内容を想定して、まずは使ってみることにします。

 と、いうことで先日勉強会で話題になった、リソースの利用開始日、終了日について、かつてこんなことを話題にしたなぁ、という内容を説明するために以下のテーブルを作ってみます。データは、佐藤正美先生の著作一覧です。発売開始日は奥付の第1刷の発行日、終了日は、本が売られていないものは10年後の日付、売られているものはいったん9999年12月31日とします。

No商品名発売開始日終了日
CASEツール 1989-11-011999-11-01
2リポジトリ入門解説 1991-10-012001-10-01
3クライアント/サーバ データベース設計テクニック1993-11-012003-11-01
4RADによるデータベース構築技法1995-11-252005-11-25
5T字形ER データベース設計技法(黒本)1998-10-252008-10-25
6論理データベース論考2000-03-259999-12-31
7ITコンサルタントのスキル2003-04-159999-12-31
8データベース設計論-T字形ER(赤本)2005-09-252015-09-25
9SEのためのモデルへのいざない2009-02-119999-12-31

まずは、今回のお試し用にプロジェクト「BigQuery Challenge 2019」を作成。
そして、Navigationメニューからビッグデータの「BigQuery」を選択します。

中央の右寄りにある「データセットを作成」をクリックします。すると、以下のような「データセットを作成」のダイアログ(?)が現れますので、データセットIDを「BOOKS」として「データセットを作成」をクリックしてみます。ロケーションと、デフォルトのテーブルの有効期限が設定できるのですね。

キャプチャは取れませんでしたが「BOOKSが作成されました。」とポップアップして消滅しました。確かに、今までなかった三角形が左側に表示されるようになりました。

そして、開いてみたところ、、、どうやらぼくはテーブルを作ったと思っていたのですけど、できたのは「データセット」というものらしい。ああ、確かに「データセットを作成」でしたね。気を取り直して「テーブルを作成」してみましょう。

そして、今度こそテーブルの作成ですが、、、ソースとして「テーブルの作成元」を選択できるようですね。今は「空のテーブル」となっていますけど、選択肢は他に、「Google Cloud Storage」「アップロード」「ドライブ」「Google Cloud Bigtable」ですね。確か、CSVを指定すれば、100件でデータ型を自動判別してフィールドもつくってくれる、と、Google OnAirで、聞いたような気がします。

今回は、デフォルトに従って、「空のテーブル」で進めてみます。テーブル名を今度こそ「BOOKS」にして、おお、「スキーマ」の定義ですね。「テキストとして編集」もできるし、「+フィールドを追加」をクリックして、項目を追加していくこともできるのですね。テキストの編集方法がわからないので、ここは「+フィールドを追加」で地道に増やしていきます。今回は「No」「書籍名」「開始日」「終了日」にしてみますので、一気に4つ追加してみます。なるほどねぇ、こんな風になるのですね。

では、「名前」を入れて、型を選択します。型は「STRING」「BYTES」「INTEGER」「FLOAT」「NUMERIC」「BOOLEAN」「TIMESTAMP」「DATE」「TIME」「DATETIME」「GEOGRAPHY」「RECORD」がありました。前半は一般的なデータベースにも登場してきますので問題ありませんね。でも、GEOGRAPHYは地図情報でしょうか。あと、RECORDは不思議なワードですね。ネストして行データを格納できるのでしょうか。
モードは基本的にNOT NULLにするのがお好みなのですけど、選択肢は「NULLABLE」「REQUIRED」「REPEATED」でした。REPEATED、謎です。(笑)
順番に入れていこうとしたところ、いきなりエラーです。日本語、使えないのですね。「フィールド名の先頭は文字またはアンダースコアにしてください。含めることができるのは、文字、数字、アンダースコアのみです。」だって。むー、マジか~、今時マルチバイトが使えないとは、、、ざんねん。英語の苦手なユーザーに提供できなさそうですねぇ。あとで別名を付けたり、って、できないかなぁ。。。
 【追記:2019/05/04】
 最後の画像にある、「説明」項目は、「スキーマを編集」ボタンから編集可能で、そちらは日本語を記載することができました。

と、いうことでまたしても心を入れ替えて、英数字とアンダースコアのみで作成することにします。

次は、パーティションとクラスタの設定ですが、今回は少量データでちょっと作ってみるだけなので、パーティションは「パーティショニングなし」のままです。ほかの選択肢は「取り込み時間により分割」「Partition by field」「StartDate」「EndDate」ですね。なるほど、日付項目を作るとパーティションの候補に出てくるのですね。クラスタリングはパーティショニングを利用しないと選べないようです。いずれにせよ、パフォーマンス目的で必要になってくる設定ですので、今回はとりあえず放置、パフォーマンスが必要な時に検討する余地がある、ということですね。詳細オプションは暗号化の話でしたので、そのままにしておきます。さあ、「テーブルを作成」をポチリとしてみます。

またしてもキャプチャは取れませんでした。。。「BOOKSを作成しました。」というポップアップがでていましたが、、、確かにできていました!

ええと、テーブルができましたが、データはどうやって入れればいいのでしょうか。。。それらしいボタンやメニューはありません。クエリーを使うのかな?
長くなったので、いったんこれにて終了します。続きはまた次のエントリーとします。

Google Cloud Platform(GCP)の始め方

 GCPの始め方は、GMailのアカウントを持っていればとっても簡単。持っていない場合は作りましょう。

  1. Chromeにてログインした状態で「https://cloud.google.com」へアクセス。
  2. 「無料トライアルを試す」をクリック
  3. 必要事項を入力すれば、新規プロジェクトが作成されて使える状態になります。

1.https://cloud.google.comへアクセスします。

2.「無料トライアル」をクリックすると必要事項を入力する画面へ遷移します。
 利用規約(英文)を読んで、内容確認して、「同意して続行」をクリック。次の画面でも必要な情報を入力して「無料トライアルを開始」ボタンをクリックすれば、自動的に最初のプロジェクトが作成された状態で「ようこそ」の画面が表示されます。あ、無料トライアルの2/2画面はスクリーンショットを取り忘れました。すみません。

3.「ようこそ」画面。

これで、Google Cloud Platformが使える状態になりました。

そして、みなさんはこのあとGCPを何に使う予定でしょうか。
 ぼくは、このあとMarketplaceからWordPress(Google Click oo Deploy)を探し出してデプロイしました。MarketplaceとはGoogleのテクノロジーパートナーが提供している有料のソリューションサービスを検索することができて、すぐにデプロイ(展開)して利用できるサービスです。ちょうどこのページはそのサービスが利用されています。月々およそ3000円ほどかかっていますがその他は今のところ無料です。WordPressは最新版に更新するのも簡単で、セキュリティ面も安心です。
 GCPが提供しているクラウドサービスの中でも、WordPress用の仮想マシン(VM)をクラウド上に作るという、一番イメージしやすい使い方ではないでしょうか。

 そして、GCPについては、ただいまQwicklabsにて学習中です。先日GCP入門編トレーニングセミナーに参加したら、1か月分のサブスクリプションを提供していただけました。あ、Qwicklabsというのはオンラインのハンズオントレーニングサービスです。つまり1か月は、タダでWeb上のトレーニングサービスを自由に使えるということです。Googleさま、さすが太っ腹です。あと、Cloud OnAirという木曜日の18時から放送されるGoogleの新製品の機能説明番組があって、それを見て勉強しています。そちらも視聴してしばらくしたらQwicklabsのサブスクリプションをプレゼントしてくれました。
 今のところ、ひとりでもくもくと勉強しておりますが、新しい概念を自分のものにするのはなかなか難しいものですね。誰か一緒に勉強してくれる人、いませんかねぇ♪

Googleさまからお電話が!

Google Cloud Platformを始めてちょうど2か月ほど経ったところ、Google Cloudさまからお電話をいただきました。ぼくはちょうど不在だったということで、「 【GCP無料トライアル】ご登録ありがとうございました 」というタイトルでメールをいただきました。クレジットカードによる決済方法も登録してあったので、無料トライアル中だとは思っていなかったのですけど、そうなのですね。

その後、電話がつながったので、「こんなところに問題があって、こんな風に利用したいと思っています。」と、お伝えしたところ、提案させてほしい、ということに。ま、営業活動でやっていることでしょうから、当然の流れですよね。本来はGCPを学んで検証の終わったぼくが、こんな風に構築したいと思っています、と、お客様に提案しようと思っていたので、これからどんな流れで仕事が進むのか、ちょっと不安な気持ちになりました。でも、いろいろとより早く、より便利になるならそこには目をつぶりましょう。

ぼくは競合に負けないように、GCPの使い方についていろいろと検証しないといけませんね。ということで、先日入門トレーニングで教えてもらった、QWIKLABSのクエストにチャレンジしてみます。QWIKLABSはGCPを学べるオンライン学習プラットフォームです。最初のクエストはなぜか英語ですが「GCP Essentials」です。
さあ、がんばるぞ~!