在KDB中的SQL还是我疯了?

时间:2013-09-11 18:26:58

标签: sql kdb

我试图看看我是否可以将KDB用于我当前的一些工作。我在遗留SQL中有相当多的代码,重用的前景似乎令人兴奋。

当我遇到时:http://code.kx.com/q/interfaces/q-client-for-odbc/

此链接仅提及SQL选择 - 是否可以将其用于插入和删除?性能怎么样?

2 个答案:

答案 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/