使用Ruby生成SQL查询

时间:2011-05-03 17:40:03

标签: sql ruby hive

我想要一种在Ruby中生成SQL查询的简单方法。我对ActiveRecord,Sequel和DataMapper都了如指掌。我不是在寻找ORM,而只是一种生成SQL语句字符串的简单方法。

我正在使用RBHive来运行Hive查询,并且想要一种简单的方法来生成Hive查询语句。

肯定存在(AR等),我看了Arel,看起来很有希望。但无法弄清楚如何从流行的ORM库中剥离SQL语句生成片段。一切都需要连接到数据库服务器。

目前我只使用原始SQL字符串,但我希望摆脱它,因为查询变得越来越复杂且容易出错。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

你说

  

所有内容都需要连接到数据库服务器。

我认为,至少在Sequel中你可以使用虚拟数据库:

require 'sequel'
DB = Sequel::Database.new() #-> <Sequel::Database: >
puts DB[:test].sql          #-> SELECT * FROM "TEST"

答案 1 :(得分:2)

你是对的,你正在寻找Arel,它用于为SQL语句构建AST,不需要数据库连接。

但语法与您以前看到的完全不同。所以要注意。

在这里阅读README,看看它是否有意义:

https://github.com/rails/arel