National Weather Service's Climate Prediction Center维护了美国各地约1400个气象站的近期天气数据。前一天的数据总是可以在以下地址找到:
http://www.cpc.ncep.noaa.gov/products/analysis_monitoring/cdus/prcp_temp_tables/dly_glob1.txt
在雄心勃勃的尝试存储天气数据以供将来参考时,我希望使用SQL Server 2012按行存储此数据。五年前,我们提出了类似的问题,this answer提到了BULK INSERT
命令。我无法访问此选项。
是否有一个选项允许直接导入不使用BULK
语句的Web托管文本文件?我不打算保存文件,因为我计划自动执行此过程并让它每天直接运行到服务器。
更新:我在Ad Hoc Distributed Queries找到了另一个选项。根据相关数据库的性质,我也无法使用此选项。
答案 0 :(得分:1)
为什么您无法访问批量插入?我想不出你的SQL Server版本会被禁用的原因。
我可以想到几种方法来完成这项工作。
#1)使用excel记录宏,从数据导入到解析数据集,然后保存为CSV文件。我刚刚做完;很容易。然后,使用BULK INSERT将数据从CSV获取到SQL Server。
#2)使用excel记录宏,以执行从数据导入到数据集解析的所有操作。然后使用VBA脚本将数据发送到SQL Server。您可以从以下链接中找到几个想法。
#3)您实际上可以使用Python或R从Web获取数据。两者都有优秀的HTML解析包。然后,如上面第1点所述,将数据保存为CSV(使用Python或R)并将BULK INSERT保存到SQL Server中。
R在这里可能有点偏离主题,但仍然是一个可行的选择。我只是做了它来测试我的想法,一切都只用两行代码完成! !!效率如何!!
X <- read.csv(url("http://www.cpc.ncep.noaa.gov/products/analysis_monitoring/cdus/prcp_temp_tables/dly_glob1.txt"))
write.csv(X, file = "C:\\Users\\rshuell001\\Desktop\\foo.csv")