Python 对于一组DBA,我们应该采用哪种跨平台脚本语言?
我想得到社区对我们团队希望在不久的将来做出的语言选择的反馈。我们是一名软件开发人员,我在Oracle和SQL Server DBA团队中工作,支持在Oracle application Server上运行的跨平台Java应用程序。我们有SQL Server和Oracle代码库,并支持Windows、Solaris和Linux服务器上的客户 我们经常执行的许多任务都没有足够的自动化,而且在自动化程度上,往往通过shell脚本实现更高的自动化,在Windows上几乎没有等效的功能。不幸的是,我们现在遇到了在两个平台上重新开发脚本等问题。因此,我希望我们选择一种跨平台的语言来编写脚本,而不是使用Bash,在必要时笨拙地翻译成Cygwin或批处理文件 这需要:Python 对于一组DBA,我们应该采用哪种跨平台脚本语言?,python,scala,groovy,shell,jython,Python,Scala,Groovy,Shell,Jython,我想得到社区对我们团队希望在不久的将来做出的语言选择的反馈。我们是一名软件开发人员,我在Oracle和SQL Server DBA团队中工作,支持在Oracle application Server上运行的跨平台Java应用程序。我们有SQL Server和Oracle代码库,并支持Windows、Solaris和Linux服务器上的客户 我们经常执行的许多任务都没有足够的自动化,而且在自动化程度上,往往通过shell脚本实现更高的自动化,在Windows上几乎没有等效的功能。不幸的是,我们现在
Chris尽管我更喜欢在JVM上工作,但有一件事让我感到厌烦,那就是必须启动JVM才能运行脚本。如果您可以在REPL中工作,这并不是什么大问题,但在执行编辑-运行-调试脚本时,它确实会减慢您的速度 当然,Oracle有很多需要交互的Java东西,但只有您可以估计它的重要性。对于普通的oracledb工作,我只看到很少的Java和大量的PLSQL/SQL 如果您的dba现在在bash中完成他们的工作,那么他们很可能会在很短的时间内学习perl,因为有一个很好的、合乎逻辑的渐进路径 由于ruby被设计为perl的改进版本,因此它可能也属于这一类。实际上python也是 Scala是静态类型的,就像Java一样,尽管有更好的类型推断
我的建议是走Perl路线。CPAN是它的王牌,您不必处理可能关闭某些DBA的OO(尽管它是为高级用户准备的) 我也遇到过类似的情况,虽然规模不大。以前的情况是,SQLServerDBS上的任何自动化都是使用VBScript完成的,我一开始确实使用了VBScript。因为我想要一些跨平台的东西(并且比VBScript更不烦人),所以我选择了Python 我学到的是:
- 显然,您需要一种随库提供的语言来轻松访问数据库。我不太关心如何将差异抽象出来(即,我仍然使用相关方言编写SQL查询,并带有参数)。然而,我对PHP就不太满意了,例如,它只有针对特定数据库的特定于供应商的库和函数。我知道这不在你的名单上
- 主要障碍是认证。如果您的SQL Server使用Windows域身份验证,则您必须努力才能进入。另一个系统也有特定的需求,因为它需要支持RSA令牌李>
从您的其他选择中,我希望Perl中存在各种身份验证和DB驱动程序的方法,从理论上讲,对于使用shell脚本的DBA来说,这会更容易。Ruby——没有经验,但它往往对一些更奇怪的身份验证方法和连接器缺乏支持。Scala我希望成为一种“程序员的编程语言”——OOO和FP?这是一种非常有趣的语言,但可能不是我最初选择的语言。至于其他基于Java的选项,我没有意见,但是请检查您想要建立的所有连接类型是否都得到了可靠的支持。您可以选择Python。它的动态(解释)在Windows/Linux/Solaris上可用,具有易于阅读的语法,因此代码维护很容易。还有用于Oracle交互和各种其他数据库服务器的模块/库。还有对XML的库支持。所有7点都包括在内。如果您想要一种动态语言,并且您的公司中已经有很多Java开发人员,那么Groovy似乎是一个明显的选择,因为Java开发人员很容易掌握它(另外,您说您自己也有一些Groovy经验) Groovy在JVM上运行,并且具有出色的性能。它还提供了一个非常简单的语法 它附带了一个控制台和一个shell(尽管我从来没有使用shell),这使它变得更加简单