[英]Exception. Not retrying {:exception=>#<Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "%"
我想將我的 CSV 文件添加到 postgreSQL。但每當我嘗試連接它時顯示錯誤:
[錯誤][logstash.outputs.jdbc
][main][a4f714a30e2d2cae8e83b3c2d215c3537fe40dca0495ca92cc2f50a93ba8088a] JDBC - 異常。 不重試 {:exception=>#<Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "%"
這是我的 Config.conf 文件:
input {
file {
path => "C:/Users/Desktop/InputData12.csv"
start_position => "beginning"
codec => plain
}
}
filter {
csv {
separator => ","
columns => ["inputdata","metric","source_table","output_column_alias","method"]
}
}
output {
jdbc {
connection_string => "jdbc:postgresql://hostname:5432/database"
username => "username"
password => "password"
driver_jar_path => "C:/Users/Downloads/lib/postgresql-42.5.1.jar"
driver_class => "org.postgresql.Driver"
statement => "INSERT INTO csv_to_postgresql (inputdata,metric,source_table,output_column_alias,method) VALUES (%{inputdata},%{metric},%{source_table},%{output_column_alias},%{method})"
}
}
我希望得到不同的錯誤(JDBC - 語句沒有參數)。 有兩種類型的聲明。 如果設置“unsafe_statement => true”,則 output 將sprintf SQL 語句。 如果你沒有設置,那么你應該使用
statement => [
"INSERT INTO csv_to_postgresql (inputdata,metric,source_table,output_column_alias,method) VALUES (?, ?, ?, ?, ?)",
"%{inputdata}",
"%{metric}",
"%{source_table}",
"%{output_column_alias}",
"%{method})"
]
在這種情況下,output 將sprintf 語句的所有參數。 設置 unsafe_statement 可能比第二種方法更昂貴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.