我已经读取数据的一些文件,并将数据插入不同的表格中的数据库。是Unix shell script强大到足以做的工作?

是很容易做的工作,在脚本,或者我应该去这样做在Java?

有帮助吗?

解决方案

如果数据你是在试图进口是合理的格式--逗号分隔,例如--和数据库服务器具有合理的命令行事业,这应该没有问题。MySQL有"mysqlimport"的命令行的工具,将接受的各种参数,描述了格式的文件:

mysqlimport \
    --fields-terminated-by=, \
    --ignore-lines=1 \
    --fields-optionally-enclosed-by='"' < datafile.txt

通过数据通过perl/sed/awk一套可帮助获得适当的格式,以及脚本可以很容易地处理促使用的文件,处理参数,等等。

使用的各种命令行工具提供Unix是整个点砸向脚本。Perl,mysql,等等。是的所有的一部分,工具包。

其他提示

它是可能的:使用unix壳脚本生成sql脚本,并使用cli的数据库,以执行sql脚本。

如果信息量很小,你能建立SQL在记忆中,我建议反对它,虽然因为你永远不知道未来会发生什么(这可能是非常大量的数据)。使用一个电话,每个请求并不能让你受益于散装行动有时可用。

你当然可以,假设你已经有了一个命令行SQL客户方便!我已经做了w/Sybase和isql命令行客户。你甚至可以获得聪明,发送的东西通过awk和发脚本生成的命令。它可能不是最有效的方式来做的一切,但还有很多的机会弯曲你的Unix黑客的魔力.

你可以的,但它可能有点丑陋的,例如如果你使用mysql和假设有一个SQL串存在$sql

echo $sql | mysql -u[user] -p[password] -h[host]

p.s.这可能是一个很好的想法告诉我们什么数据库使用,所以我们可以提供更具体的帮助。

编辑:改变例行使它的实际工作

管道是你的朋友。

例如,在MySQL:

echo 'load data infile /path/to/the/file into table table_name ...' | 
    mysql -u mysql_user_id -p 

应该做的工作。

提供的文件不知怎的,例如结构化逗/tab分离等。

详细情况,检查该手册的数据库。

这取决于你的数据库管理系统。他们中的大多数具有强大的外壳工具,用于进口数据,这样做甚至一些ETL功能。这些工具可能是,即使非常高,如果他们支持批装载-通常Java JDBC不能这么做那么容易。

不能测试它的权利,但是这样的:

echo "INSERT INTO foo (b,a,r) VALUES (1,2,3);" | 
    mysql -u user -psecret -h host database

在一个脚本应该工作.不知道关于获得数据,虽然它

壳scripting(庆典或类似的)的主要目的不是为了处理数据库。去Java或更好的是,骑这个机会,学习基础知识的一个脚本语言喜欢蟒蛇或红宝石。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top