查询加速MCQA 1.0 关闭指南

更新时间:
复制 MD 格式

本文介绍如何关闭查询加速 MCQA 1.0(交互模式),使后续 SQL 使用普通离线模式。请按实际使用的客户端完成修改,并重新创建连接或重启客户端。

PyODPS

使用原生 SQL API

将交互式 API 替换为普通 SQL API:

  • execute_sql_interactive(sql) 改为 execute_sql(sql)。

  • run_sql_interactive(sql) 改为 run_sql(sql)。

instance = odps.execute_sql(sql)

修改后,后续 SQL 调用使用普通离线提交入口。

使用 SQLAlchemy

将连接 URL 中的 interactive_mode=true 改为:

interactive_mode=false

也可以删除该参数,默认值为 false。如果在 connect_args 中另外设置了 use_sqa=True,也应移除或改为 False。修改后释放已有连接,并重新创建 Engine 或连接池。

使用 DBAPI

将连接参数 use_sqa 改为 Python 布尔值 False:

from odps import dbapi

conn = dbapi.connect(odps=odps, use_sqa=False)

也可以删除 use_sqa=True,默认值为 False。请使用布尔值 False,不要使用字符串 "false"。修改后重新建立 Connection。

Java SDK

使用 SQLExecutor

显式设置执行模式为 ExecuteMode.OFFLINE:

SQLExecutor executor = new SQLExecutorBuilder()
    .odps(odps)
    .executeMode(ExecuteMode.OFFLINE)
    .build();

使用 SQLExecutorPool

创建连接池时,同样显式设置 OFFLINE:

SQLExecutorPool pool = new SQLExecutorPoolBuilder()
    .odps(odps)
    .executeMode(ExecuteMode.OFFLINE)
    .build();

这两类 Builder 默认使用 INTERACTIVE,不能只删除 executeMode 配置。

修改后重新创建 Executor 或 ExecutorPool。

如果应用已经通过 SQLTask.run(odps, sql) 提交普通 SQL,则无需额外关闭 MCQA 1.0。

JDBC

根据应用使用的配置方式,关闭交互模式。

使用连接 URL

将 interactiveMode=true 改为 interactiveMode=false:

jdbc:odps:<endpoint>?project=<project>&interactiveMode=false

使用 Properties

在已有连接 Properties 中设置:

props.setProperty("interactive_mode", "false");

也可以删除对应的开启参数,默认关闭交互模式。若同时使用 URL、Properties 或 odps_config 引用的配置文件,应一并检查其中的交互模式设置,避免旧值覆盖。

修改后关闭已有 Connection,并重新建立连接;使用连接池的应用应重建连接池。

odpscmd

修改客户端安装目录下的 conf/odps_config.ini,将交互模式配置设为:

enable_interactive_mode=false

也可以删除 enable_interactive_mode=true,默认不开启交互模式。

保存配置后,退出并重新启动 odpscmd。如果启动脚本或 SQL 脚本中还包含开启交互模式的 SET 或 ATTACH 命令,也应同步移除。