superset連接es中的日期格式問題及解決


問題:

使用superset連接es時,由於es的默認時間格式為iso 8601格式的,superset不能直接識別。在創建的chart中如果用到時間過濾,則會出現以下錯誤:

base error: Error (search_phase_execution_exception): all shards failed

 

原因分析:

查看superset發送給服務器的sql語句,可以發現這樣的語句:where create_time >='2020-04-14 00:00:00' and  create_time <='2020-04-15 00:00:00'

但此時es的日期格式為yyyy-MM-ddTHH:mm:ss.000Z

兩邊日期格式不匹配,可能是導致以上錯誤的原因

 

解決:

查了一整天的資料也沒有找到答案,在煩悶中逐個瀏覽superset關於字段中的屬性的說明,突然看到這樣一段話:

 

 再聯想到es的日期字段也可以輸入時間戳,心想有沒有可能是es輸出的實際也是時間戳呢。於是一咬牙一跺腳,把Datatime Format的值設置成epoch_ms。然后再試時間過濾條件,居然成了!

 

具體原因不明,還待研究。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM