読者です 読者をやめる 読者になる 読者になる

Google BigQuery と Elasticsearch に timestamp を入れる

BigQuery の TIMESTAMP 型は以下のフォーマットを受け付けます。
Data types

Elasticsearch の date は以下のフォーマットを受け付けます。
date format

う〜ん、タイムゾーンを絡めると Elasticsearch には BigQuery が要求する TIMESTAMP 型の組み込み型がないですね・・・というわけでカスタムフォーマットを使いましょう。
そのために、入力するタイムスタンプは

2015-01-03 00:40:35.220 +09:00

とします。で、

curl -XPUT http://localhost:9200/FIXME/ -d "`cat es_timestamp.json`"

es_timestamp.json

{
    "template": "*",
    "mappings": {
        "FIXME": {
            "_source": { "compress": true },
            "properties": {
                "timestamp": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss.SSS ZZ", "index": "not_analyzed" }
            }
        }
    }
}

timestamp フィールドの型をカスタムフォーマットで指定します。
FIXME はご利用の環境に応じて適切に変更してくださいませ。