を使用して、複雑なネストされたelasticsearchドキュメントの更新のは、Oracleスキーマは、テーブルと列を次のようしていると仮定しよう:はlogstashおよびJDBC
Country country_id; (Primary Key) country_name; Department department_id; (Primary Key) department_name; country_id; (Foreign key to Country:country_id) Employee employee_id; (Primary Key) employee_name; department_id; (Foreign key to Department:department_id)
そして私は、ルート要素が国であり、それは すべての部門が含まれている私のElasticsearchの文書を持っていますその国には各部門のすべての従業員が含まれています。
だから、文書構造は次のようになります。
{ "mappings": { "country": { "properties": { "country_id": { "type": "string"}, "country_name": { "type": "string"}, "department": { "type": "nested", "properties": { "department_id": { "type": "string"}, "department_name": { "type": "string"}, "employee": { "type": "nested", "properties": { "employee_id": { "type": "string"}, "employee_name": { "type": "string"} } } } } } } } }
私は各テーブル上で実行している別の入力JDBCクエリを持ってできるようにしたいといつでも、彼らは/更新を作成する必要があります/ elasticsearch文書に データを削除基本テーブル内のデータが追加/更新/削除されます。
これは例示的な問題であり、実際のテーブルとデータ構造はより複雑です。だから私は解決策を探していません これに限られます。
これを達成する方法はありますか?
ありがとうございました。
私はしかし、あなたはすでにこれを解決したかもしれない推測しているを使用します必要なデータをドキュメント構造形式(国、部署、従業員)に結合し、単一のJDBCクエリとして、最も低い一意のレベルとしてelasticsearchドキュメントIDを作成できるようにするためのOracleビュー(この中のemployee_idケース)とそこに変更を管理する? –