2017-07-06 177 views
1

因此,我正在與一位教授合作,他希望我創建一個包含csv文件(來自紐約市交通局)的信息的SQL數據庫。我已經編寫了一個採用csv文件並將其轉換爲適當的sql命令的程序。所以我的問題是,我如何自動化數據庫,以便每隔5分鐘左右一個程序下載新的csv文件,通過我的csv-to-SQL命令程序運行它,然後從我的csv-to-SQL輸入輸出命令程序進入終端(我用什麼接口與我的SQL數據庫)?有沒有特定的語言我應該看看,我見過人們談論cron?如何自動更新SQL數據庫

+0

你的腳本在哪種語言中?這取決於你使用的是什麼。 –

+0

我的腳本在C++ – Will

回答

2

cron是在Unix下制定計劃任務的參考;與Windows相同的是設置任務以使用任務計劃程序運行。

我不知道你的問題有一個純粹的SQL答案 - 可能我的方法是通過用你選擇的語言編寫一個簡單的導入程序,將其編譯爲一個.EXE,然後設置一個Task Scheduler命令,每5分鐘運行一次該程序。 (或者,您可以始終離開應用程序,只需讓計時器每5分鐘執行一次即可觸發導入)。

+0

我正在使用一個mac。會知道改變你的建議嗎? – Will

+0

@是的,你會想看看'cron' /'crontab'。 –

0

你可以做的最簡單的事情就是循環你的腳本。

如果你正在運行PHP,你可以這樣做:

$running = true; 
while ($running) 
{ 
    // Your code that gets and converts CSV 
    // and then saves it in SQL. 

    $running = $some_error ? false : true; 
    sleep(5000); 
} 

我不知道你使用的是什麼,但心裏的邏輯,而不是語言。

0

你可以做的是使用Sql Server Integration Services(SSIS)。它基本上是一個內置於Sql中的工作流程包,可以讓你處理這樣的任務。您應該能夠將CSV導入臨時表,然後針對它執行適當的查詢。

這是Azure特有的,但針對託管SQL應該是類似的。 https://docs.microsoft.com/en-us/sql/integration-services/import-export-data/import-data-from-excel-to-sql

+0

我不認爲這會奏效。首先是因爲海報中提到他正在運行OS X,其次是因爲問題被標記爲SQLite。當然,SQL Server確實可以在OS X上運行,並且您可以使用ODBC鏈接服務器將SQLite數據庫附加到SQL Server實例上,但這似乎很多工作。 –