GCPのBigQueryへテーブルデータを書きこむ


datastoreへデータを書きこむと同時に、書きこんだ内容を分析用にBigQueryにも書きこみたかったのですが、
一行ずつ書きこんだり、はすぐに見つかったものの、やりたいことどんぴしゃな情報をみつけるまで時間がかかったので、ちょこっとメモ。

ローカルのpandas.DataFrameをBigQueryへ書きこむ方法になります

clientの取得

本記事の対象外です。

from google.cloud import bigquery

bq_client = bigquery.Client() # 必要に応じてproject_id等渡して下さい

書き込み

insert_rows_from_dataframeを使います。

write_table_data = pd.DataFrame({"x": [1,2,3]})
target_table_id = "example_project.example_dataset.example_table"
bq_client.insert_rows_from_dataframe(
    bq_client.get_table(target_table_id ), 
    write_table_data )

こんな感じです。
書き込み先テーブルについてget_tableを使うか、selected_fields 引数でスキーマの指定を行わないとエラーを吐きます。

参考

公式:https://googleapis.dev/python/bigquery/latest/generated/google.cloud.bigquery.client.Client.html#google.cloud.bigquery.client.Client.insert_rows_from_dataframe