如何使用 PyQ 和 Python 连接到 KDB 服务器?
How to connect to KDB server using PyQ and Python?
我正在使用 Python 2.7,我已经在 Debian 10 下安装了 PyQ,q(x64 版本)设置正确。
问题是如何连接到 KDB 服务器(我有凭据(IP、端口、用户和密码))?
启动一个 pyq 会话,切换到 q 解释器然后使用 hopen
Using the q interpreter in PyQ:
>>> q()
q)h:hopen `:localhost:1234 // `:host:port:user:pass
q)h"2+2"
q)4
编辑 - 来自 Python 和创建 A Pandas.DataFrame 的更多示例:
I have the following table defined on my q server process:
q)tbl:([]col1:`a`b`c;col2:til 3)
q)tbl
col1 col2
---------
a 0
b 1
c 2
Then from my client PyQ interpreter:
from pyq import q
import numpy as np # Numpy is needed as a middle man for interpreting kdb objects to python.
import pandas as pd
import datetime # if your kdb table has dates and times
q("h:hopen `:localhost:1234")
tbl2 = q("h\"tbl\"") # need to escape the quotes around tbl
tblNP = np.array(tbl2)
df = pd.DataFrame(tblNP)
df
col1 col2
0 a 0
1 b 1
2 c 2
使用 qPython:
from qpython import qconnection
import pandas as pd
if __name__ == '__main__':
# create connection object
q = qconnection.QConnection(host='localhost', port=1234, pandas=True)
# initialize connection
q.open()
# simple query execution via: QConnection.sendSync
df = q.sendSync('tbl')
# close connection
q.close()
请参阅 qSQL 了解如何 select 表格中的特定数据。 kdb 中的表可能非常大,并且 select 整个事情可能是不明智的。 e.q。
PyQ:
tbl2 = q("h\"select from trades where date = 2020.02.14\"")
qPython:
df = q.sendSync('select from trades where date = 2020.02.14')
您是否打算在 q 中进行任何数据处理客户端?如果只想从 kdb 服务器获取数据以用于 python,qPython 可能是更好的选择。
我正在使用 Python 2.7,我已经在 Debian 10 下安装了 PyQ,q(x64 版本)设置正确。
问题是如何连接到 KDB 服务器(我有凭据(IP、端口、用户和密码))?
启动一个 pyq 会话,切换到 q 解释器然后使用 hopen
Using the q interpreter in PyQ:
>>> q()
q)h:hopen `:localhost:1234 // `:host:port:user:pass
q)h"2+2"
q)4
编辑 - 来自 Python 和创建 A Pandas.DataFrame 的更多示例:
I have the following table defined on my q server process:
q)tbl:([]col1:`a`b`c;col2:til 3)
q)tbl
col1 col2
---------
a 0
b 1
c 2
Then from my client PyQ interpreter:
from pyq import q
import numpy as np # Numpy is needed as a middle man for interpreting kdb objects to python.
import pandas as pd
import datetime # if your kdb table has dates and times
q("h:hopen `:localhost:1234")
tbl2 = q("h\"tbl\"") # need to escape the quotes around tbl
tblNP = np.array(tbl2)
df = pd.DataFrame(tblNP)
df
col1 col2
0 a 0
1 b 1
2 c 2
使用 qPython:
from qpython import qconnection
import pandas as pd
if __name__ == '__main__':
# create connection object
q = qconnection.QConnection(host='localhost', port=1234, pandas=True)
# initialize connection
q.open()
# simple query execution via: QConnection.sendSync
df = q.sendSync('tbl')
# close connection
q.close()
请参阅 qSQL 了解如何 select 表格中的特定数据。 kdb 中的表可能非常大,并且 select 整个事情可能是不明智的。 e.q。
PyQ:
tbl2 = q("h\"select from trades where date = 2020.02.14\"")
qPython:
df = q.sendSync('select from trades where date = 2020.02.14')
您是否打算在 q 中进行任何数据处理客户端?如果只想从 kdb 服务器获取数据以用于 python,qPython 可能是更好的选择。