2015-04-19 86 views
1

我不熟悉SQLite。所以我想知道我是否可以從遠程服務器獲取SQLite數據?如何連接到遠程sqlite數據庫中r

我知道我可以與MySQL數據做到這一點很容易,

# Load package. 
library("RMySQL") 

# MySQL connection. 
DB <- dbConnect(MySQL(), user="root", password="xxx", host="127.0.0.1", db="xxxx") 

# Select data from a table. 
data = dbGetQuery(DB, "SELECT * FROM article") 

但對於SQLite的,它似乎需要一個路徑,

# Load package. 
library("RSQLite") 

# Connect to the sqlite file. 
DB <- dbConnect(SQLite(), dbname = "C:/SQLite/xxxx.sqlite") 

我怎麼能知道並獲得路徑遠程服務器呢?我可以在下面做這個嗎?

http://mywebsite-name.com/sqlite/xxxx.sqlite 
+1

除非'mywebsite-name.com'提供文件的隨機存取,否則我認爲你不能。 SQLite的單一性質將需要基於HTTP的文件的隨機訪問(我不知道是否/如何做到這一點)。也許先下載到臨時目錄並在本地查詢它? – r2evans

+0

@ r2evans感謝提示。我怎樣才能'將它下載到臨時目錄中?用什麼語法下載.sqlite數據庫? – laukok

回答

1

我不認爲你可以(不過我希望有人能幫助我,如果我錯了,或者你可以提高對包github siteissue)。

當我開始發表評論時,先下載它並以本地文件的形式對其進行操作。有幾種下載文件的方法,但最直接的可能是download.file

如果你想下載並保留它,請將dbfile設置爲已知位置(可能是當前的工作目錄)。但是,如果保留它並不重要,並且/或者你想概括它而不是有各種各樣的sqlite的文件坐在那裏,你可以將它們下載到臨時位置:

dbfile <- tempfile(fileext=".sqlite") # not created yet, just a string 

下載,簡單地說:

download.file("http://mywebsite-name.com/xxxx.sqlite", dbfile) 

然後SQL了......

library(RSQLite) 
DB <- dbConnect(SQLite(), dbname=dbfile) 
## ... 
+0

感謝您的回答。所以我必須知道.sqlite文件的位置,以便我可以使用這一行'download.file(「http://mywebsite-name.com/xxxx.sqlite」,dbfile)',對不對? – laukok

+1

不一定,但您需要做一些拼寫和/或其他技術來確定真實的URL。也許像'rvest'軟件包可以幫助你挖掘。 – r2evans