JDBC Driver for Elasticsearch

Build 24.0.9062

リレーショナルモデル

CData JDBC Driver for Elasticsearch は、ネストされたドキュメントを主キーと親文書にリンクする外部キーを含む個別のテーブルとして扱うことで、データのリレーショナルモデルを作成するように設定できます。これは、リレーショナルデータモデルを想定している既存のBI、帳票、およびETL ツールでElasticsearch のデータを処理する必要がある場合に特に役立ちます。

ネストされた配列をテーブルとして結合

DataModel を"Relational" に設定すると、どの結合もクエリによって制御されます。JOIN クエリを実行するときはいつでも、Elasticsearch のインデックスはクエリに含まれる各テーブル(ネストされたドキュメント)に対して一度クエリされます。

以下は、リレーショナルモデルを使用したRaw データ のサンプルドキュメントに対するサンプルクエリです。

クエリ

次のクエリは、insured およびvehicles テーブルを明示的に結合します。

SELECT 
  [insured].[_id], 
  [insured].[name], 
  [insured].[address.street] AS address_street, 
  [insured].[address.city.first] AS address_city, 
  [insured].[address.state.last] AS address_state, 
  [insured].[insured_ages], 
  [vehicles].[year], 
  [vehicles].[make], 
  [vehicles].[model], 
  [vehicles].[body_style],
  [vehicles].[_insured_id],
  [vehicles].[_c_id]
FROM 
  [insured]
JOIN 
  [vehicles] 
ON 
  [insured].[_id] = [vehicles].[_insured_id]

結果

サンプルクエリでは、各vehicle ドキュメントがその親insured オブジェクトに結合され、5行のテーブルを作成します。

_idnameaddress_streetaddress_cityaddress_stateinsured_agesyearmakemodelbody_style_insured_id_vehicles_c_id
1John SmithMain StreetChapel HillNC[ 17, 43, 45 ]2015DodgeRAM 1500TK11
1John SmithMain StreetChapel HillNC[ 17, 43, 45 ]2015SuzukiV-Strom 650 XTMC12
1John SmithMain StreetChapel HillNC[ 17, 43, 45 ]1992Harley DavidsonFXRMC13
2Joseph NewmanOak StreetRaleighNC[ 23, 25 ]2010HondaAccordSD24
2Joseph NewmanOak StreetRaleighNC[ 23, 25 ]2008HondaCivicCP25

関連項目

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

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