LoginSignup
0
0

More than 1 year has passed since last update.

GCP触ってみた⑥

Posted at

BigQuery

AWSでいうとRedshiftに近い?
サーバレス、フルマネージドのエンタープライズデータウェアハウス

※前提条件

SQLについて詳しくないので、とりあえず触ってみた要素が強いです

データセットの作成

# bq mk <データセットID>
bq mk gcpstudybq01
Dataset 'gcpstudybq:gcpstudybq01' successfully created.

データセットの確認

# bq ls
bq ls
   datasetId
 --------------
  gcpstudybq01

作成したデータセットが表示されている

データセットの詳細表示

# bq show <データセットID>
bq show gcpstudybq01
Dataset gcpstudybq:gcpstudybq01

   Last modified             ACLs             Labels    Type     Max time travel (Hours)
 ----------------- ------------------------- -------- --------- -------------------------
  14 Feb 16:43:30   Owners:                            DEFAULT   168
                      projectOwners,
                      mail@gmail.com
                    Writers:
                      projectWriters
                    Readers:
                      projectReaders

テーブルの作成、およびスキーマの定義

# bq mk -t <データセットID>.<テーブルID> <スキーマ>
bq mk -t gcpstudybq01.table2 firstname:string,lastname:string,age:integer
Table 'gcpstudybq:gcpstudybq01.table2' successfully created.

作成したテーブルの確認

# bq ls <データセットID>
bq ls gcpstudybq01
  tableId   Type    Labels   Time Partitioning   Clustered Fields
 --------- ------- -------- ------------------- ------------------
  table1    TABLE
  table2    TABLE

table2の詳細確認

# bq show <データセットID>.<テーブルID>
bq show gcpstudybq01.table2
Table gcpstudybq:gcpstudybq01.table2

   Last modified           Schema          Total Rows   Total Bytes     Expiration      Time Partitioning   Clustered Fields   Total Logical Bytes   Total Physical Bytes   Labels
 ----------------- ---------------------- ------------ ------------- ----------------- ------------------- ------------------ --------------------- ---------------------- --------
  17 Feb 07:56:49   |- firstname: string   0            0             18 Apr 07:56:49                                          0
                    |- lastname: string
                    |- age: integer

データのインポート

# bq load <データセットID>.<テーブルID> <ローカルファイルのパス> [<スキーマ>]
# 今回はスキーマ定義済みのため<スキーマ>は入力しない
bq load gcpstudybq01.table2 nohara_family.csv
Upload complete.
Waiting on bqjob_r2c54640de50a3229_000001865c7554bc_1 ... (1s) Current status: DONE
nohara_family.csv
hiroshi,nohara,35
misae,nohara,29
shinnosuke,nohara,5
himawari,nohara,0

インポートしたデータの確認

# bq head <データセットID>.<テーブルID>
bq head gcpstudybq01.table2
+------------+----------+-----+
| firstname  | lastname | age |
+------------+----------+-----+
| hiroshi    | nohara   |  35 |
| misae      | nohara   |  29 |
| shinnosuke | nohara   |   5 |
| himawari   | nohara   |   0 |
+------------+----------+-----+

クエリの実行

# bq query <SQL文>
bq query "select * from gcpstudybq01.table2"
+------------+----------+-----+
| firstname  | lastname | age |
+------------+----------+-----+
| hiroshi    | nohara   |  35 |
| misae      | nohara   |  29 |
| shinnosuke | nohara   |   5 |
| himawari   | nohara   |   0 |
+------------+----------+-----+

後片付け

テーブルの削除

# bq rm <データセットID>.<テーブルID>
bq rm gcpstudybq01.table2
rm: remove table 'gcpstudybq:gcpstudybq01.table2'? (y/N) y

# テーブルの削除確認
# bq ls <データセットID>
bq ls gcpstudybq01
  tableId   Type    Labels   Time Partitioning   Clustered Fields
 --------- ------- -------- ------------------- ------------------
  table1    TABLE
# table2が削除されているのでOK

データセットの削除

# bq rm <データセットID>
bq rm gcpstudybq01
rm: remove dataset 'gcpstudybq:gcpstudybq01'? (y/N) y
BigQuery error in rm operation: Dataset gcpstudybq:gcpstudybq01 is still in use

# まだ使用中です とのエラーが出たのでtable1も削除する
bq rm gcpstudybq01.table1
rm: remove table 'gcpstudybq:gcpstudybq01.table1'? (y/N) y

bq rm gcpstudybq01
rm: remove dataset 'gcpstudybq:gcpstudybq01'? (y/N) y
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0