JDBC Driver for Elasticsearch

Build 24.0.9062

トップレベルのドキュメントモデル

Elasticsearch データのトップレベルドキュメントビューを使用すると、トップレベルの要素にすぐにアクセスできます。本製品 は、集計にネストされた要素を単一のカラムとして返します。

考慮すべき一つの側面はパフォーマンスです。ネストされたエレメントを処理してパースする時間とリソースを控えます。本製品 は、JSON データを読み込むためにストリーミングを使用して、返されたデータを一度パースします。もう一つ考慮すべきは、ネストされた親エレメントに格納されているデータにアクセスする必要があることと、ツールやアプリケーションがJSON を処理する能力です。

トップレベルドキュメントビューのモデリング

DataModel が"Document"(デフォルト)に設定されている場合、本製品 はデフォルトでトップレベルのオブジェクトのみをスキャンします。デフォルトのオブジェクトフラット化により、トップレベルのオブジェクトエレメントはカラムとして利用可能です。ネストされたオブジェクトは、集計されたJSON として返されます。

以下は、Raw データ のサンプルドキュメントに基づいたサンプルクエリとその結果です。クエリの結果、単一の"insured" テーブルが作成されます。

クエリ

次のクエリは、トップレベルのオブジェクトエレメントと車両配列を結果にプルします。

SELECT
  [_id],
  [name],
  [address.street] AS address_street,
  [address.city] AS address_city,
  [address.state] AS address_state,
  [insured_ages],
  [vehicles]
FROM
  [insured]
  

結果

データのドキュメントビューでは、(FlattenObjects をtrue に設定するとき)address オブジェクトが3カラムにフラット化され、_id, name、insured_ages 、およびvehicles エレメントが個別のカラムとして返され、結果として7カラムのテーブルが作成されます。

_idnameaddress_streetaddress_cityaddress_stateinsured_agesvehicles
1John SmithMain StreetChapel HillNC[ 17, 43, 45 ]
[{"year":2015,"make":"Dodge","model":"RAM 1500","body_style":"TK"},{"year":2015,"make":"Suzuki","model":"V-Strom 650 XT","body_style":"MC"},{"year":1992,"make":"Harley Davidson","model":"FXR","body_style":"MC"}]
2Joseph NewmanOak StreetRaleighNC[ 23, 25 ]
[{"year":2010,"make":"Honda","model":"Accord","body_style":"SD"},{"year":2008,"make":"Honda","model":"Civic","body_style":"CP"}]

関連項目

  • 自動スキーマ検出:水平フラット化を使用してカラム検出を設定します。
  • FreeForm;:ドット表記を使用して、ネストされたデータを選択します。
  • VerticalFlattening;:ネストされたオブジェクト配列に別々のテーブルとしてアクセスします。
  • JSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062