通过Python Flask应用程序以流模式发送大量数据的最佳方式?

问题描述 投票:0回答:1

我想创建返回大量数据的 Flask 应用程序,但问题是,当我请求 600 万条记录等庞大数据集时,我的 api 崩溃了。我想制作一个提供流数据的 Flask 应用程序,我一次只发送 100000 条记录。

我的应用程序是什么样的:

import clickhouse_connect
import orjson
from flask import Flask

app = Flask(__name__)


@app.route("/")
def send_data():
    client = clickhouse_connect.get_client(host='XXXX', port=XXXX, username='XXXX', password='XXXXX', database = 'XXXXX')
    df = client.query_df("SELECT * FROM Table_Name")
    #table_df.to_dict(orient='records')
    print(type(df.to_dict(orient='dict')))
    return df.to_dict(orient='dict')

欢迎提出建议,让我的申请更快。

python pandas flask clickhouse data-stream
1个回答
0
投票

听起来您正在使用客户端渲染,它试图立即将所有这些记录渲染给客户端。我建议在前端初始化服务器端渲染,例如使用 DataTables js 或类似的库来显示数据。然后,DataTables 会针对表格的每次绘制向您的服务器发出 Ajax 请求。虽然不一定对返回的记录数量具有有限的控制,但它通常只会返回屏幕上可见显示的记录。但是,您必须在服务器上处理分页、排序和搜索的逻辑,因为这些功能将不再由客户端管理。

© www.soinside.com 2019 - 2024. All rights reserved.