自動處理.csv的最佳方法 --> MySQL

自動處理.csv的最佳方法 --> MySQL

如有必要,請將其移至正確的位置。不確定在哪裡可以得到最好的答案。

我需要創建一個報告應用程序,如果可能的話,我想使用 Ubuntu 來完成它。原始資料來自基於裝置的應用程序,該應用程式可以定期將分隔日誌檔案透過 FTP 傳輸到指定位置。我想開發一種機制來使用該數據來更新 MySQL 資料庫(待創建),該資料庫將用於建立計劃報告,最終透過電子郵件發送給各個分發組(以 Excel 格式的 PDF 形式)。我們有內部智慧來建立各種 MySQL 查詢(並設計資料庫),但 Linux/Ubuntu 不知道如何確定最佳方法。我們正在使用 Crystal Reports 對 Windows 端的另一個應用程式執行類似的操作,但考慮到需要分發此應用程序,我們希望不必處理 Windows 許可成本等...

我需要有關正確工具/方法的建議,還需要建議我在哪裡可以找到合格的資源,這些資源可以在不花費大量成本的情況下有效地完成此任務。

答案1

您可以使用以下語法從命令列解析命令:

mysql -u {user} -p{password} {database} <{text.file}

這將解析從 {text.file} 到 {database} 的所有行。該文字檔案需要包含有效的 MySQL 指令,並且密碼以純文字形式顯示,ps因此您可能需要將其保留下來my.cnf(安全性第一)。

2種方法...

  • 您可以使用MySQL命令載入數據(有關更多選項,請參閱連結):

    載入資料[LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE {text2.file} INTO TABLE {表}

    在 text.file 內將文字檔案插入表中。這可能會覆蓋現有的行,因此您每次都需要建立新檔案。載入資料非常非常快。較短的方法(來自 Caesium 評論的一行):

    mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
    
  • 您可以將很多INSERT INTO' 放入 text.file 中。這比 LOAD DATA 慢,但更容易實現。

相關內容