簡體   English   中英

例外。 不重試 {:exception=># <java::orgpostgresqlutil::psqlexception: error: syntax error at or near "%"< div><div id="text_translate"><p> 我想將我的 CSV 文件添加到 postgreSQL。但每當我嘗試連接它時顯示錯誤:</p><blockquote><p> [錯誤][logstash.outputs.jdbc<br> ][main][a4f714a30e2d2cae8e83b3c2d215c3537fe40dca0495ca92cc2f50a93ba8088a] JDBC - 異常。 不重試 {:exception=>#<Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "%"</p></blockquote><p> 這是我的 Config.conf 文件:</p><pre> 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})" } }</pre></div></java::orgpostgresqlutil::psqlexception:>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM