我试图看看我是否可以将KDB用于我当前的一些工作。我在遗留SQL中有相当多的代码,重用的前景似乎令人兴奋。
当我遇到时:http://code.kx.com/q/interfaces/q-client-for-odbc/
此链接仅提及SQL选择 - 是否可以将其用于插入和删除?性能怎么样?
答案 0 :(得分:3)
根据你的问题,我不确定这会做你所希望的。您似乎希望在非SQL 数据库上重用SQL 代码。
此驱动程序不针对当前数据库运行SQL,它允许您连接到外部数据库,并使用该其他数据库的SQL功能撤回数据。 (ODBC是用于连接各种数据库,发送查询和返回数据的标准化驱动程序系统。)
如果您打算让两个不同的数据库并排运行,并且需要它们在数据库级别进行交互(而不是像@millimoose上面提到的那样,从您的应用程序单独连接它们),这将非常有用。
答案 1 :(得分:3)
很少使用,但有一种方法可以将ANSI SQL与KDB一起使用。只需在查询前加上s)
q)t:([]col1:1 1 2 2;col2:10 10 20 20; col3:5.0 2.0 2.3 2.4; grp:
为a
B c)
q)t
col1 col2 col3 grp`
------------------
1 10 5 a
1 10 2 a
2 20 2.3 b
2 20 2.4 c
q) /standard select
q)select from t
col1 col2 col3 grp
------------------`
1 10 5 a
1 10 2 a
2 20 2.3 b
2 20 2.4 c
q)/SQL type select with select *
q)select * from t
'rank
q) /Prefix the query with s)
q)s)select * from t
col1 col2 col3 grp
------------------
1 10 5 a
1 10 2 a
2 20 2.3 b
2 20 2.4 c
现在 - 很少使用此功能,并且解析器未针对此类使用进行优化,并且资源很少。您可能花费更多时间来调试问题,而不是将代码转换为Q.希望这会有所帮助。
另一种选择是使用qodbc服务器 - http://code.kx.com/q/interfaces/q-server-for-odbc/