從 Logstash 到 TDengine 資料接入功能,原來有這些“不一樣”

TDengine發表於2023-12-05

利用 TDengine Enterprise 和 TDengine Cloud 的資料接入功能,我們現在能夠將 MQTT、InfluxDB 中的資料透過規則無縫轉換至 TDengine 中,在降低成本的同時,也為使用者的資料轉換工作提供了極大的便捷性。由於該功能在實現及使用上與 Logstash 類似,本文將結合 Logstash 為大家進行解讀。

偏向於日誌收集整理的 Logstash

Logstash 是一個開源的實時資料收集處理引擎,通常作為 ETL 工具使用,它可以根據轉換規則將資料從多種資料來源中採集並轉換資料,然後傳送到指定的儲存中。其通常與 ElasticSearch(ES)、Kibana、Beats 共同使用,形成免費開源工具組合 Elastic Stack(又稱 ELK Stack),適用於資料的採集、擴充、儲存、分析和視覺化等工作。

Logstash 可以由 Beats、Kafka、DataSource 等資料來源將資料轉換寫入 ES、MySQL 等資料庫中進行儲存:

資料流轉總體分為三部分:Input、Filter、Output,這三部分的定義覆蓋了資料整個的生命週期。Input 和 Output 支援編解碼器,使用編解碼器,可以在資料進入或退出管道時進行編碼或解碼,而不必使用單獨的過濾器。原始資料在 Input 中被轉換為 Event,在 Output 中 Event 被轉換為目標式資料,在配置檔案中可以對 Event 中的屬性進行增刪改查。

其中,Filter 是 Logstash 功能強大的主要原因,它可以對 Logstash Event 進行豐富的處理,比如解析資料、刪除欄位、型別轉換等等,常見的有如以下幾個:

  • date 日期解析
  • grok 正則匹配解析
    • 正規表示式:
      • Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
      • RegExr: Learn, Build, & Test RegEx
    • Grok
      • kibana – grokdebugger

  • dissect 分割符解析
  • mutate 可以對事件中的資料進行修改,包括 rename、update、replace、convert、split、gsub、uppercase、lowercase、strip、remove_field、join、merge 等功能。
  • json 按照 json 解析欄位內容到指定欄位中
  • geoip 增加地理位置資料
  • ruby 利用 ruby 程式碼來動態修改 Logstash Event
filter {
    grok => {
        match => {
            "message" => "%{SERVICE:service}"
        }
        pattern_definitions => {
            "SERVICE" => "[a-z0-9]{10,11}"
        }
    }
}

Logstash 在實時資料處理方面有一定的能力,也有一定的流行性,但並不是所有場景下都適用 Logstash。針對多種資料來源的收集,TDengine 打造了自己的資料接入功能。

TDengine:針對多種資料來源的收集

如果你使用 Elasticsearch 和 Kibana 來構建日誌管理、資料分析和視覺化解決方案,Logstash 可能是一個不錯的選擇,因為它與 Elasticsearch 的整合非常緊密。但 Logstash 並不適用於處理大規模時序資料,它在處理大量資料時會消耗大量的系統資源,包括記憶體和 CPU,在資料量很大的情況下甚至會導致出現效能問題,它的可擴充套件性在處理大規模資料時也可能受到限制。而且如果你最初接觸 Logstash,那你會需要付出較高的學習成本,因為 Logstash 在處理資料的各個階段(輸入、過濾、輸出)需要正確配置,錯誤的配置可能會導致資料丟失或格式錯誤。

這也是 TDengine 打造自己的資料接入功能的一些主要原因,如果你正在使用 TDengine,那這一功能一定能幫助你更便捷、更低成本地進行資料轉換工作。

目前利用 TDengine 資料接入功能,你可以輕鬆從 MQTT、InfluxDB 等伺服器獲取資料,並高效地寫入 TDengine 資料庫中,實現資料的順暢整合和分析。這一功能負責整個過程的自動化資料接入,最大限度地減少了手動操作的工作量。同時它還具備以下特點:

  • 支援  JSON  格式:充分利用 JSON 的靈活性,使使用者能夠以 JSON 格式進行資料攝取和儲存。機構可以有效地構建和管理資料,從複雜資料結構中挖掘有價值的見解。
  • 支援  JSON  path 提取欄位:TDengine 支援 JSON path 提取,在處理 JSON 資料時更加輕鬆。透過精確選擇和捕獲所需的資料元素,使用者可以專注於資料集的核心內容,最大化分析效率。
  • 簡單配置:提供了易於使用的配置檔案,您可以在其中指定 TDengine 的超級表、子表、列和標籤,輕鬆定製資料接入流程以滿足特定需求。

另外 TDengine 的資料接入後還可以進行資料清洗和轉換,使用者可以根據業務需要設計相應的資料清洗和轉換規則,實現完整的資料 ETL 流程。藉助上述創新功能,實時資料可以實現與高效能的 TDengine 資料庫的無縫結合,實時分析、預防性維護和資料驅動決策也擁有了無限可能。

配置方法很簡單,你只需要登入到 TDengine 企業版或 TDengine Cloud 的 Web 管理介面,選擇 Data in 並新增 MQTT 作為資料來源,簡單配置一下 InfluxDB/MQTT 資料對應到 TDengine 庫、超級表、子表的解析規則即可。具體配置方案可見《TDengine 推出重磅功能,讓 MQTT 無縫資料接入更加簡單》《TDengine 資料接入功能支援 InfluxDB 啦!》

TDengine 3.0 企業版和 TDengine Cloud 憑藉簡潔易用的命令列操作,為使用者提供了高效、可靠的資料接入方法。無論你是想要從 InfluxDB/MQTT 遷移資料,還是想將多個資料來源的資料集中到 TDengine 中,TDengine 3.0 企業版和 TDengine Cloud 都能夠滿足你的需求。

如果你對這一資料接入功能感興趣或正面臨資料接入難題,可以新增 小T vx:tdengine,和 TDengine 的資/深研發直接進行溝通。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014783/viewspace-2998819/,如需轉載,請註明出處,否則將追究法律責任。

相關文章