You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过DORIS REST API用HTTP协议实现流式查询?PyMysql连9030可行吗?

Doris 流式查询与PyMysql连接问题解答

一、HTTP协议(8030端口)实现流式查询

8030是Doris FE的HTTP端口,默认的/api/sql接口会一次性返回全量结果,大数据量下易出现内存溢出或超时。要实现流式查询,需调整请求参数:

  • 发送POST请求到http://<FE_HOST>:8030/api/sql时,添加请求头 X-Stream-Result: true,开启流式返回模式。
  • 在请求体的JSON参数中设置fetch_size(例如{"sql": "SELECT * FROM large_table", "fetch_size": 10000}),控制每次返回的数据行数。
  • 客户端需支持解析分块响应(Transfer-Encoding: chunked),逐块读取并处理数据,避免一次性加载全量结果到内存。

二、PyMysql连接Doris 9030端口的可行性

完全可行,9030是Doris FE的MySQL协议兼容端口,Doris实现了标准MySQL协议,可直接用PyMysql连接:

  • 核心是使用**服务器端游标(SSCursor)**实现流式查询,避免客户端内存过载,示例代码:
import pymysql

# 建立连接
conn = pymysql.connect(
    host="<FE_HOST>",
    port=9030,
    user="your_username",
    password="your_password",
    db="your_database"
)

# 使用服务器端游标,逐行获取数据
with conn.cursor(pymysql.cursors.SSCursor) as cursor:
    cursor.execute("SELECT * FROM large_table")
    # 逐行处理数据
    for row in cursor:
        # 替换为你的数据处理逻辑
        print(row)

conn.close()
  • 注意:Doris对MySQL语法的兼容并非100%,部分MySQL特有语法(如存储过程)暂不支持,需根据Doris官方文档调整SQL语句。

内容的提问来源于stack exchange,提问作者MEGALO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:22:38