楽しんで学習するITエンジニアの備忘録ブログ

~日常生活の中にも楽しみを見出したい~

自分が興味を持てることに集中しよう【GoogleクラウドのBigQuery編】

興味があることより、誰かに言われたことを優先させていませんか。

私の人生も親の言う通りに、親の期待に応えるために、中学、高校、大学、大学院と進みました。これは今でも変わっていませんが、少しずつでも変えていきたいと考えています。

私はIT業界に勤めていて、めちゃくちゃ有名なクラウド(イメージ:インターネットに繋がっているパソコン)として、AWS、Azure及びGCPなどがあります。

私もご多分に漏れず、世の中に流されるままに、AWSとAzureのスキル向上をしていくことになります。

並行して、機械学習・AIの学習も進めていましたが、元々慣れないIT技術だったせいか、勉強への飽きが来てしまっていました。機械学習・AIがあまり好きではなかったんですね。

また、三日坊主的になるのかなと考えていた頃に、クラウドGCPと出会いました。

データベースに興味があった私ですが、クラウドGCPのサービス『Google BigQuery』に対する高まる探求心が抑えられませんでした。

その際にまとめたGoogle BigQueryを操作するためのbqコマンドの実行例を示していきたいと思います。

f:id:takanarukodou2:20210523000009p:plain

RRiceさん 作品「青のテクノロジービジネスネットワーク地球」

 

名称 コマンド例
データセット一覧 bq ls
テーブル一覧 bq ls dataset
データセット作成 bq mk --data_location=US dataset
テーブル作成(器) bq mk dataset.table
テーブル列追加 bq update -t dataset.table fname:string,lname:string,age:integer
GCS上のCSVをロード bq load dataset.table gs://backet/data1.csv
GSC上にデータ出力 bq extract dataset.table gs://backet/data2.csv
レコード一覧表示 bq head dataset.table
検索 bq query "select fname,age from dataset.table where age > 37"
SELECTクエリ結果を新テーブルに保存 bq query --destination_table dataset.table2 --allow_large_results
  "select * from dataset.table where age > 37"

パーティション

テーブルの作成

bq mk --time_partitioning_type=DAY --schema time:timestamp, user:string -t dataset.table3

テーブル構成の

設定表示

bq show --format=prettyjson dataset.table3

パーティション

テーブルに対する検索

bq query "SELECT time, user FROM dataset.table3 WHERE _PARTITIONTIME >= TIMESTAMP('2019-12-01')"
パーティションテーブルでは、_PARTITIONTIMEと呼ばれるパーティショニング日付の疑似列が生成される
リストア bq cp dataset.table@-86400000 new_dataset.table3Backup
※過去7日分(デフォルト)のスナップショットを保持。
テーブル削除 bq rm dataset.table
データセット削除 bq rm dataset
 ※認証として、gcloud auth loginコマンドが実行されていることが前提

 

謝辞

最後まで読んでいただき、誠にありがとうございました。

心より感謝を申し上げます。

どんなに流行っていたとしても興味がない、好きでないものに対して勉強し続けていくことは正直億劫になると思います。あえて逆張りをして、自分の好きな技術を追いかけていくのも良いのかなと思います。毎日楽しく過ごして参りましょう。