103. 1.1 Google Cloud Storage
• GCSとは:
• GCPにおけるハードディスクの役割
• Free tierが無い=使用には課金有効化が必須
3
4. <<メモ>> 課金システム
• 4 criteria
!
!
!
!
• (出典) https://developers.google.com/storage/pricing
課金対象 課金基準
Storage 使用サイズ(GB) 使用時間(日)に比例
Network 出力量に比例、入力は無料。出力先地域によって差
Custom metadata MetadataサイズもStorage/Network課金に加算
Operations 操作回数に比例。操作によって差(Class A/B/Free)
4
5. 1.2 使い方
• Enabling (in project)
• Developers console -> APIS&AUTH -> APIs
• Creating buckets
• Must choose globally unique IDs for buckets
• Reliable option = To use a project ID as a bucket ID
• Managing data
• Storage browser : web-based tool
• gsutil : command-line tool
5
13. 2. 開発環境
• サンプルコード
• http://storage.googleapis.com/bigquery-e2e/downloads/bigquery_e2e_samples.zip
• ツール
• Pythonライブラリ
https://developers.google.com/api-client-library/python/start/installation
または bigquery_e2e_samples/lib
• Javaライブラリ
https://developers.google.com/api-client-library/java/apis/bigquery/v2
サンプルに含まれていない気がする・・・(本書では扱わない?)
• AppEngine
https://developers.google.com/appengine/download#Google_App_Engine_SDK_for_Python
サンプルプロジェクト: bigquery_e2e_samples/ch08/sensors/cloud
• Android
http://www.android.com
サンプルプロジェクト: bigquery_e2e_samples/ch08/sensors/client
• 「全てのツールを一度にインストールするよりも、必要になった時に本節に戻ってくる方が良い」
13
14. <<Python例>>認証
# bq_cred.dat : 初回起動時にOAuth2認証プロセスを経て作成される!
# client_secret.json : Developer Consoleで作成!
!
storage = Storage(‘bq_cred.dat’)!
cred = storage.get()!
!
if cred is None or cred.invalid:!
from oauth2client.client import flow_from_clientsecrets!
from oauth2client import tools!
flow = flow_from_clientsecrets('client_secret.json',!
scope=‘https://www.googleapis.com/auth/'!
+ ‘bigquery’)!
cred = tools.run_flow(flow, storage,!
tools.argparser.parse_args([]))!
!
http = httplib2.Http()!
http = cred.authorize(http)
14
15. <<Python例>>クエリ発行
service = build('bigquery', 'v2', http=http)!
!
query_stmt = {'query':!
'SELECT primary_city, COUNT(primary_city) '!
+ 'FROM [reference.zip_codes] '!
+ 'GROUP BY 1 '!
+ 'LIMIT 10'}!
!
query = service.jobs().query(!
projectId=PROJECT_ID, body=query_stmt)!
!
query_response = query.execute()
15
16. <<Python例>>結果の使用
for row in query_response['rows']:!
result_row = []!
for field in row['f']:!
result_row.append(field['v'])!
print (‘t').join(result_row)!
!
!
# rowsとかfとかvとかは、JSON API formatに由来(詳しくは以下)!
# https://developers.google.com/bigquery/docs/reference/v2/
16
17. 3. 3章のまとめ
• 本章では以下を扱った。
• Google Cloud Platformセットアップ
• アカウントとプロジェクト
• 対話ツール
• BigQuery Webクライアント
• bq : BigQueryコマンドラインクライアント
• gsutil : GCSコマンドラインクライアント
• 開発環境へのポインタ
• Pythonライブラリ, Javaライブラリ, AppEngine, Android
• 本章の内容は時間と共に変わる。
オンラインリソースへのポインタを充実させたので、説明通りにいかなければそちらへ
17