\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Unnamed: 0 | \n",
" id | \n",
" from | \n",
" at | \n",
" to | \n",
" open | \n",
" close | \n",
" min | \n",
" max | \n",
" volume | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" 7730801 | \n",
" 2023-01-02 15:58:45 | \n",
" 1672675140000000000 | \n",
" 2023-01-02 15:59:00 | \n",
" 1.065995 | \n",
" 1.066035 | \n",
" 1.065930 | \n",
" 1.066070 | \n",
" 57 | \n",
"
\n",
" \n",
" | 1 | \n",
" 1 | \n",
" 7730802 | \n",
" 2023-01-02 15:59:00 | \n",
" 1672675155000000000 | \n",
" 2023-01-02 15:59:15 | \n",
" 1.066055 | \n",
" 1.066085 | \n",
" 1.066005 | \n",
" 1.066115 | \n",
" 52 | \n",
"
\n",
" \n",
" | 2 | \n",
" 2 | \n",
" 7730803 | \n",
" 2023-01-02 15:59:15 | \n",
" 1672675170000000000 | \n",
" 2023-01-02 15:59:30 | \n",
" 1.066080 | \n",
" 1.066025 | \n",
" 1.066025 | \n",
" 1.066110 | \n",
" 57 | \n",
"
\n",
" \n",
" | 3 | \n",
" 3 | \n",
" 7730804 | \n",
" 2023-01-02 15:59:30 | \n",
" 1672675185000000000 | \n",
" 2023-01-02 15:59:45 | \n",
" 1.065980 | \n",
" 1.065985 | \n",
" 1.065885 | \n",
" 1.066045 | \n",
" 64 | \n",
"
\n",
" \n",
" | 4 | \n",
" 4 | \n",
" 7730805 | \n",
" 2023-01-02 15:59:45 | \n",
" 1672675200000000000 | \n",
" 2023-01-02 16:00:00 | \n",
" 1.065975 | \n",
" 1.066055 | \n",
" 1.065830 | \n",
" 1.066055 | \n",
" 50 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 999995 | \n",
" 999995 | \n",
" 7984748 | \n",
" 2023-03-03 18:13:30 | \n",
" 1677867225000000000 | \n",
" 2023-03-03 18:13:45 | \n",
" 1.062695 | \n",
" 1.062635 | \n",
" 1.062630 | \n",
" 1.062700 | \n",
" 64 | \n",
"
\n",
" \n",
" | 999996 | \n",
" 999996 | \n",
" 7984749 | \n",
" 2023-03-03 18:13:45 | \n",
" 1677867240000000000 | \n",
" 2023-03-03 18:14:00 | \n",
" 1.062645 | \n",
" 1.062650 | \n",
" 1.062625 | \n",
" 1.062650 | \n",
" 43 | \n",
"
\n",
" \n",
" | 999997 | \n",
" 999997 | \n",
" 7984750 | \n",
" 2023-03-03 18:14:00 | \n",
" 1677867255000000000 | \n",
" 2023-03-03 18:14:15 | \n",
" 1.062640 | \n",
" 1.062625 | \n",
" 1.062620 | \n",
" 1.062665 | \n",
" 47 | \n",
"
\n",
" \n",
" | 999998 | \n",
" 999998 | \n",
" 7984751 | \n",
" 2023-03-03 18:14:15 | \n",
" 1677867270000000000 | \n",
" 2023-03-03 18:14:30 | \n",
" 1.062625 | \n",
" 1.062535 | \n",
" 1.062535 | \n",
" 1.062645 | \n",
" 43 | \n",
"
\n",
" \n",
" | 999999 | \n",
" 999999 | \n",
" 7984752 | \n",
" 2023-03-03 18:14:30 | \n",
" 1677867285000000000 | \n",
" 2023-03-03 18:14:45 | \n",
" 1.062535 | \n",
" 1.062520 | \n",
" 1.062520 | \n",
" 1.062580 | \n",
" 59 | \n",
"
\n",
" \n",
"
\n",
"
1000000 rows × 10 columns
\n",
"
"
],
"text/plain": [
" Unnamed: 0 id from at \n",
"0 0 7730801 2023-01-02 15:58:45 1672675140000000000 \\\n",
"1 1 7730802 2023-01-02 15:59:00 1672675155000000000 \n",
"2 2 7730803 2023-01-02 15:59:15 1672675170000000000 \n",
"3 3 7730804 2023-01-02 15:59:30 1672675185000000000 \n",
"4 4 7730805 2023-01-02 15:59:45 1672675200000000000 \n",
"... ... ... ... ... \n",
"999995 999995 7984748 2023-03-03 18:13:30 1677867225000000000 \n",
"999996 999996 7984749 2023-03-03 18:13:45 1677867240000000000 \n",
"999997 999997 7984750 2023-03-03 18:14:00 1677867255000000000 \n",
"999998 999998 7984751 2023-03-03 18:14:15 1677867270000000000 \n",
"999999 999999 7984752 2023-03-03 18:14:30 1677867285000000000 \n",
"\n",
" to open close min max volume \n",
"0 2023-01-02 15:59:00 1.065995 1.066035 1.065930 1.066070 57 \n",
"1 2023-01-02 15:59:15 1.066055 1.066085 1.066005 1.066115 52 \n",
"2 2023-01-02 15:59:30 1.066080 1.066025 1.066025 1.066110 57 \n",
"3 2023-01-02 15:59:45 1.065980 1.065985 1.065885 1.066045 64 \n",
"4 2023-01-02 16:00:00 1.065975 1.066055 1.065830 1.066055 50 \n",
"... ... ... ... ... ... ... \n",
"999995 2023-03-03 18:13:45 1.062695 1.062635 1.062630 1.062700 64 \n",
"999996 2023-03-03 18:14:00 1.062645 1.062650 1.062625 1.062650 43 \n",
"999997 2023-03-03 18:14:15 1.062640 1.062625 1.062620 1.062665 47 \n",
"999998 2023-03-03 18:14:30 1.062625 1.062535 1.062535 1.062645 43 \n",
"999999 2023-03-03 18:14:45 1.062535 1.062520 1.062520 1.062580 59 \n",
"\n",
"[1000000 rows x 10 columns]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"df = conn.execute(\"SELECT * FROM EURUSDtest\").df()\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "4409cc89-ed14-4313-ac89-65b826038533",
"metadata": {},
"source": [
"### Kdb+"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "14f63810-1943-4e28-9bce-2148be6be02d",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"np.bool = np.bool_\n",
"from qpython import qconnection"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "8ff6c090-7e02-435a-a179-f2aab81da972",
"metadata": {},
"outputs": [],
"source": [
"# read csv\n",
"data = pd.read_csv(\"out.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "b4eb8ab9-81e8-4732-8cf7-51f0981d3d57",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# open connection\n",
"q = qconnection.QConnection(host=\"localhost\", port=5001)\n",
"q.open()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "97cb6b5b-65a5-46a0-a4ee-e5c535a716ab",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 837 ms, sys: 40 ms, total: 877 ms\n",
"Wall time: 1.16 s\n"
]
}
],
"source": [
"# send df to kd+ in memory bank\n",
"%%time\n",
"q.sendSync(\"{t::x}\", data)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "c2ed2d51-bc8e-4207-892a-35fc55d43570",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"b':/home/sandman/q/tab1'"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# write to on disk table\n",
"q.sendSync(\"`:/home/sandman/q/tab1 set t\")"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "9c055a95-f73f-43a3-8fbd-61e42235117e",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.78 ms, sys: 2 µs, total: 1.79 ms\n",
"Wall time: 329 ms\n"
]
}
],
"source": [
"%%time\n",
"# read from on disk table\n",
"df2 = q.sendSync(\"tab2: get `:/home/sandman/q/tab1\")"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "9760de38-9f04-4322-bfff-c7ee12d5dee5",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# print(df2)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "c06c9222-c69d-4872-9d21-052281a013e2",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 957 ms, sys: 87.9 ms, total: 1.05 s\n",
"Wall time: 1.13 s\n"
]
}
],
"source": [
"%%time\n",
"# load to variable df2\n",
"df2 = q.sendSync(\"tab2\")"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "8815f01c-fd0a-4f94-ab7f-f8ede84ba4e7",
"metadata": {
"tags": []
},
"outputs": [
{
"ename": "TypeError",
"evalue": "'QTable' object is not callable",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[58], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdf2\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m)\u001b[49m\n",
"\u001b[0;31mTypeError\u001b[0m: 'QTable' object is not callable"
]
}
],
"source": [
"# df2(type)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "e6ed3927-4395-45cd-9a28-88c5db01f2e5",
"metadata": {
"tags": []
},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'bool' object has no attribute 'to_numpy'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"File \u001b[0;32m