Elasticsearchランタイムフィールド
ランタイムフィールドで時間を大幅に節約
ElasticのSchema on readの実装であるランタイムフィールドを使用して、高速かつ柔軟な方法でデータをElasticsearchに取り込み、変更に容易に対応できます。高速なSchema on writeと利便性に優れたSchema on readの両方を提供しているのは、Elasticだけです。
データの柔軟性を最大限に高める
ランタイムフィールドを使用すると、データを瞬時にインジェストできます。その仕組みをご覧ください。
スピーディにデータを活用
新しいデータをインジェストするときは、それがどのように検索されるかがまだわからない場合があります。でも問題ありません。ランタイムフィールドを使用すれば、フィールドを前もって定義する必要がなく、瞬時にフィールドを作成して時間を節約できます。さらに、ランタイムフィールドをインデックス済みフィールドとして次のインデックスに適用して検索を高速化することもできます。
データフローを妨げない
バックグラウンドでクラスターが静かに稼働しているときに、ログメッセージによってインデックスマッピングが変更されたり破損したりする場合があります。ランタイムフィールドなら、最初からやり直す必要はありません。適用しているフィールドを維持しながら、データの変更に対応する新しいフィールドが動的に作成されます。
フィールドを刷新する
ランタイムフィールドを使用すると、すでにインデックスされているデータを分析する新しい方法を定義することもできます。既存のフィールドを組み合わせて新しいランタイムフィールドを作成して、クエリや可視化で使用できます。これらの変更は自分の作業にのみ適用されるため、他の人の作業に影響を与えることなくデータを操作できます。
ダウンタイムを短縮して障害を防ぐ
誰でも間違えることはあります。ランタイムフィールドが登場する前は、インデックスマッピングを修正してデータを_reindexする必要があったため、障害が長引いていました。今なら、ランタイムフィールドを使用して、誤ったフィールドをシャドーイングし、_reindexせずにすぐにエラーを修正できます。これにより、俊敏性が向上し、QA時間が短縮され、コスト削減にもつながります。
中を詳しく覗いてみる
ランタイムフィールドを使用すると俊敏性が高まり、インデックスしているデータの変更に迅速に対応できます。Kibana開発ツールで下記のコードを確認して、どれほど簡単にランタイムフィールドを動的に作成できるかをぜひご確認ください。各ステップの詳細を説明するコメントも追加しています。
#In this index template, we've defined two fields,
#timestamp and response_code, which will be created
#when we ingest the data. We've also defined a
#dynamic runtime field mapping. Any other fields
#will be runtime fields.
PUT _index_template/my_dynamic_index
{
"index_patterns": [
"my_dynamic_index-*"
],
"template": {
"mappings":{
"dynamic": "runtime",
"properties": {
"timestamp": {
"type": "date",
"format": "yyyy-MM-dd"
},
"response_code": {
"type": "integer"
}
}
}
}
}
豊富なリソース
時間が限られているという方もご安心ください。ランタイムフィールドでできることについてまとめた短い動画をご用意しました。
ランタイムフィールドを動的に作成する方法
この7分間のデモでは、動的マッピングを使用してランタイムフィールドを作成する方法について説明します。
再インデックスを行わずにエラーを修正する方法
この8分間のデモでは、ランタイムフィールドを使用してシャドーイングすることにより、インデックスされたデータのエラーを修正する方法について説明します。
ランタイムの曜日を定義する方法
この9分間のデモでは、曜日を計算してKibanaで使用できるランタイムフィールドを作成する方法について説明します。
エフェメラルなランタイムフィールドを作成する方法
この7分間のデモでは、クエリのコンテクスト内にのみ存在するランタイムフィールドを作成する方法について説明します。