地理空間分析

Elasticsearchには地理空間機能があることをご存知ですか? Elasticsearchとgeoは2010年にさかのぼります。それ以来、多くのことが起こり、今日のElasticsearchは自動的にスケールするスタックを使用して、高速で堅牢な地理空間機能を提供しています。

Elasticsearchとgeoの使い方がわからないですか?それなら、あなたは正しい場所に来ました。

地理空間マッピング

Elasticsearchは2種類の地理データをサポートしています:geo_pointフィールドは緯度/経度のペアをサポートし、geo_shapeフィールドは点、線、円、多角形、複数の多角形などをサポートします。明示的マッピングを使用して地理データフィールドをインデックスします。

緯度/経度のペアを持つインデックスがあるが、geo_pointマッピングがない場合は、ランタイムフィールドを使用して再インデックスせずにgeo_pointフィールドを作成します。

データ取り込み

データはしばしば混乱していて不完全です。取り込みパイプラインを使用すると、インデックスする前にデータをクリーンアップ、変換、拡張できます。

  • CSV明示的マッピングと組み合わせて、地理データを含むCSVファイルをインデックスします。KibanaのCSVインポート機能が役立ちます。
  • GeoIPを使用して、IPv4またはIPv6アドレスの地理的位置を追加します。
  • geo-gridプロセッサを使用して、グリッドタイルまたは六角形のセルIDをバウンディングボックスまたはその形状を説明する多角形に変換します。
  • geo_matchエンリッチポリシーを使用して逆ジオコーディングを行います。たとえば、逆ジオコーディングを使用して、ウェブトラフィックによる都市圏を視覚化します。

クエリ

地理クエリは、位置に基づく質問に答えます。クエリのジオメトリと交差する、内部にある、含まれる、または交差しないドキュメントを見つけます。地理空間クエリを全文検索クエリと組み合わせて、比類のない検索体験を提供します。たとえば、「私たちの新しいジムの場所から5マイル以内に住んでいて、昨年加入し、プロフィールにランニングが言及されているすべての加入者を表示してください。」

ES|QL

ES|QLは、地理空間検索機能をサポートしており、クエリのジオメトリと交差する、内部にある、含まれる、または離れたドキュメントの効率的なインデックス検索を可能にします。さらに、ST_DISTANCE関数は2点間の距離を計算します。

  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 ST_INTERSECTS
  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 ST_DISJOINT
  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 ST_CONTAINS
  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 ST_WITHIN
  • [プレビュー] この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elasticは問題を修正するために取り組みますが、技術プレビューの機能は公式GA機能のサポートSLAの対象ではありません。 ST_DISTANCE

集約

集約は、データをメトリック、統計、またはその他の分析として要約します。バケット集約を使用して、フィールド値、範囲、またはその他の基準に基づいてドキュメントをバケット(ビンとも呼ばれる)にグループ化します。次に、メトリック集約を使用して、各バケット内のフィールド値から合計や平均などのメトリックを計算します。バケット間でメトリックを比較して、データから洞察を得ます。

地理空間バケット集約:

  • Geo-distance集約は、各geo_pointの位置が原点からの距離を評価し、距離範囲に基づいて属するバケットを決定します(ドキュメントと原点の間の距離がバケットの距離範囲内にある場合、ドキュメントはそのバケットに属します)。
  • Geohashグリッド集約は、geo_pointおよびgeo_shapeの値をグリッドを表すバケットにグループ化します。
  • Geohexグリッド集約は、geo_pointおよびgeo_shapeの値をH3六角形セルを表すバケットにグループ化します。
  • Geotileグリッド集約は、geo_pointおよびgeo_shapeの値をグリッドを表すバケットにグループ化します。各セルは、多くのオンライン地図サイトで使用されるマップタイルに対応します。

地理空間メトリック集約:

  • Geo-bounds集約は、GeopointまたはGeoshapeフィールドのすべての値を含む地理的バウンディングボックスを計算します。
  • Geo-centroid集約は、地理フィールドのすべての座標値から加重重心を計算します。
  • Geo-line集約は、バケット内のすべてのgeo_point値を選択したソートフィールドで順序付けられたLineStringに集約します。geo_line集約を使用して車両トラックを作成します。

集約を組み合わせて、複雑な地理空間分析を実行します。たとえば、各フライトの最新のGPSトラックを計算するには、terms集約を使用してドキュメントを航空機ごとにバケットにグループ化します。次に、geo-line集約を使用して各航空機のトラックを計算します。別の例として、geotileグリッド集約を使用してドキュメントをグリッドにグループ化します。次に、geo-centroid集約を使用して各グリッドセルの加重重心を見つけます。

統合

ベクタタイル検索APIを使用して、既存のGISインフラストラクチャ内でElasticsearchの地理データを利用します。

視覚化

Kibanaを使用して地理データを視覚化します。マップをダッシュボードに追加して、すべての角度からデータを表示します。

このダッシュボードは、クンブレ・ビエハの噴火の影響を示しています。

2021年8月31日から2021年12月14日までのクンブレ・ビエハの噴火を示すKibanaダッシュボード

機械学習

機械学習を活用して、異常検出で目立つべきデータを見つけます。異常な場所で発生するクレジットカード取引や、異常なソース位置を持つウェブリクエストを見つけます。位置ベースの異常検出を使用すると、異常を見つけて探索し、通常の位置と比較するのが簡単になります。

アラート

地理的アラートを使用して、位置データが洞察とアクションを促進します。一般にジオフェンシングと呼ばれ、移動するオブジェクトが境界に入ったり出たりする際に追跡し、一般的なビジネスシステム(メール、Slack、Teams、PagerDutyなど)を通じて通知を受け取ります。

詳細を学びたいですか?移動する車両を監視するための追跡コンテインメントアラートの設定に関するステップバイステップの指示に従ってください。