td-agent(fluentd)からテーブルを日付でパーティショニングしてBigQueryに投入します。
まずは、fluent-plugin-bigqueryというプラグインをtd-agentにインストールします。
td-agent-gem install fluent-plugin-bigquery
設定
BigQueryのjsonキーを使用した場合の設定です
その他の設定はこちら
/etc/td-agent/td-agent.conf
<match debug.**>
@type bigquery
method insert
<buffer time>
flush_interval 1
timekey 1d
</buffer>
auth_method json_key
json_key /path/to/API_key.json
auto_create_table true
project projectname
dataset datasetname
table states$%Y%m%d
schema_path /etc/td-agent/schema.json
</match>
<source>
@type http
port 8888
</source>
/etc/td-agent/schema.json
[
{
"name": "id",
"type": "INTEGER"
},
{
"name": "name",
"type": "STRING"
},
{
"name": "comment",
"type": "STRING"
}
]
確認
curlでこのようなコマンドを叩いてみるとBigQueryに値が入っているはずです
curl -X POST -d 'json={"id":1, "name":"tom", "comment": "hello"}' http://localhost:8888/debug.http