Google BigQueryは、大規模なデータセットに対するSQLクエリを高速に実行できるGoogle Cloudのサービスです。PythonからGoogle BigQueryを操作するためのクライアントライブラリが提供されており、これを利用することでPythonプログラムからBigQueryのデータを取得したり、データを挿入したりすることが可能です。
Pythonクライアントライブラリのインストール
PythonでGoogle BigQueryを操作するためには、まずPythonクライアントライブラリをインストールする必要があります。以下のコマンドでインストールできます。
pip install google-cloud-bigquery
クエリの実行
BigQueryに対するクエリの実行は、bigquery.Client()
を作成し、そのquery
メソッドを呼び出すことで行います。以下に具体的なコードを示します。
from google.cloud import bigquery
client = bigquery.Client()
QUERY = (
'SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` '
'WHERE state = "TX" '
'LIMIT 100'
)
query_job = client.query(QUERY) # API request
rows = query_job.result() # Waits for query to finish
for row in rows:
print(row.name)
このコードは、bigquery-public-data.usa_names.usa_1910_2013
テーブルから、state
がTX
であるレコードのname
を最大100件取得するクエリを実行しています。
データの挿入
データの挿入は、bigquery.Client()
のinsert_rows
メソッドを使用します。以下に具体的なコードを示します。
from google.cloud import bigquery
client = bigquery.Client()
table_id = "your-project.your_dataset.your_table_name"
table = client.get_table(table_id) # Make an API request.
rows_to_insert = [
{"full_name": "Phred Phlyntstone", "age": 32},
{"full_name": "Wylma Phlyntstone", "age": 29},
]
errors = client.insert_rows_json(table, rows_to_insert) # Make an API request.
if errors == []:
print("New rows have been added.")
else:
print("Encountered errors while inserting rows: {}".format(errors))
このコードは、指定したテーブルに対して新しい行を挿入しています。
以上、PythonからGoogle BigQueryを操作する基本的な方法について説明しました。これを活用することで、Pythonプログラムから大規模なデータ分析を行うことが可能になります。