首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取位于Linux服务器上的CSV文件并更新server数据库中的表

读取位于Linux服务器上的CSV文件并更新server数据库中的表
EN

Software Engineering用户
提问于 2013-08-05 09:41:04
回答 1查看 2K关注 0票数 1

我想知道如何将位于Red服务器上的CSV文件吞入server数据库表中。

我知道我们可以编写一个存储过程/大容量插入来读取与SQL server相同的Windows服务器上的文件,并更新数据库,但不确定如何在Linux服务器上显示这些文件。

任何帮助都将不胜感激。

EN

回答 1

Software Engineering用户

发布于 2013-08-05 12:40:43

从任意位置连接到MS的关键是ODBC

您正在寻找一种能够轻松读取csv并将数据插入ODBC的语言。

ODBC有几种选择。如果您是Java,您可以通过这种方式获取用于服务器的jdbc并连接到数据库。让.jar成为类路径的一部分并连接起来。如果您的用户使用高要求的技术(java是相当安全的,而且您总是可以找到或雇用java程序员),这可能是一种选择。

我?从本质上说,我是一个perl的人。处理一个数据文件并将其导出到另一个数据文件是一个经典的perl解决方案域。

WIth perl,可以得到DBI (文档)作为数据库层的接口,然后DBD::CSV (教程)将数据从csv文件中读取,就好像它是数据库本身一样,然后DBD::ODBC将数据写入ODBC。通过CPAN安装perl模块是相当容易 (尽管我承认,在做了很多次之后,我说过)。

这可以用案文:CSV代替。但是,DBD方法有一种优雅之处,即编写程序从一个任意数据库读取(对数据进行任何适当的转换)并写入另一个任意数据库。如果操作正确,您会发现自己希望在某个时候从另一个数据库复制数据,这将对代码进行相当小的更改(为数据库安装适当的DBD驱动程序并读取数据)。

与程序员领域相比,采用一种完全不同的方法,将数据从linux机器转移到windows机器上。

  • 您可以将这些文件放在桑巴股份上并从窗口挂载它们。
  • 类似于上面的选项,您可以使文件在web服务器上可用,然后在windows上获取并处理该文件。
  • 有了适当的包,就可以在linux上挂载一个windows共享(类似于/etc/fstab中的mount -t cifs -o guest,uid=client_user,gid=users //192.168.1.100/share /path_to/mount//192.168.44.100/share /path_to/mount cifs guest,_netdev 0 0 )。
  • NAS (网络附加存储)不是将linux共享到windows,也不是将windows共享到linux,而是一种简单的方法,可以让单个服务器(而不是linux或windows)为每个服务器提供文件服务。
  • linux上的设置ftp服务器,并有一个计划好的作业从windows中提取文件。
  • 在linux (cron) ftp上有一个自动作业,将文件转到windows (假设您已经在某些windows机器上设置了ftp服务器)。
  • 在windows上创建一个web应用程序,它可以将csv文件插入数据库,通过卷曲从windows调用这个web应用程序。

这些选项在机器之间需要更大程度的同步。要使文件可用,这两台机器都可以相互访问。这可能是困难的,如果一个是说,在非军事区和另一个不是。要在不同的机器(复制文件、进程文件)上完成工作,需要两组程序对时钟进行合理的同步,并且多组调度的进程能够运行。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/207219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档