質問: Logstash JDBC + Sequel は、角かっこを含む列名で窒息する可能性がありますか?
もしそうなら、彼らがうまくプレイできるようにするために何かできることはありますか?
Logstash 7.3.0 とそのバンドルされた Sequel を JDBC 入力プラグインで使用して、Oracle をojdbc6.jar
ドライバーとして Oracle ビューからデータを取得しています。
ビューには、角かっこを含む列名があります (例: ) alternative[company_name]
。
取り込み時に Logstash がクラッシュし、次の例外が発生します。
[2019-08-07T11:13:37,899][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2019-08-07T11:47:30,325][INFO ][logstash.inputs.jdbc ] (....) select * from (
select "_id"
,"company_name"
,"address"
,"city"
,"zip"
,"state"
... and some similar columns ...
,"alternative[company_name]"
,"alternative[address]"
,"alternative[city]"
,"alternative[zip]"
,"alternative[state]"
,"alternative[is_main_sos]"
... then some other columns ...
from <my view>
order by "_id"
)
where ROWNUM < 100
[2019-08-07T11:47:30,417][WARN ][logstash.inputs.jdbc ] Exception when executing JDBC query {:exception=>#<Sequel::DatabaseError: Java::OrgLogstash::FieldReference::IllegalSyntaxException: Invalid FieldReference: `alternative[company_name]`>}
[2019-08-07T11:47:31,326][INFO ][logstash.runner ] Logstash shut down.
同じクエリが DBeaver 経由で JDBC を使用して正常に動作するので、Logstash や Sequel に特有のものがあるのだろうかと思います。
感謝して受け取った助け。