KDB中的SQL还是我疯了



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

就在这时,我遇到了:http://code.kx.com/q/interfaces/q-client-for-odbc/

此链接仅涉及SQL选择 - 也可以将其用于插入和删除吗?性能如何?

根据您的问题,我不确定这会达到您所希望的效果。您似乎希望在非 SQL 数据库上重用 SQL 代码

此驱动程序不会针对当前数据库运行 SQL,它允许您连接到外部数据库,并使用其他数据库的 SQL 功能拉回数据。(ODBC 是一个标准化的驱动程序系统,用于连接到各种数据库、发送查询和返回数据)。

仅当您打算让两个不同的数据库并行运行,并且需要它们在数据库级别进行交互(而不是@millimoose如上面提到的,从应用程序单独连接到它们)时,这才有用。

它很少使用,但有一种方法可以将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 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/

最新更新