本文为您介绍如何使用MaxCompute Java SDK设置SQL的Flag。

使用DataWorks或MaxCompute客户端提交SQL时,通常需要设置SQL的Flag。例如,Session级别使用MaxCompute新数据类型时,需要在涉及新数据类型的SQL前加设置Flag的语句set odps.sql.type.system.odps2=true;

使用Java SDK提交SQL时,不能简单地把Set Flag语句直接放到SQL查询中执行。设置Flag的正确方式如下。
String sql ="SELECT...";
HashMap<String, String> hints = new LinkedHashMap<String, String>();
hints.put("SQL flag name, e.g. odps.sql.type.system.odps2", "SQL flag value");
hints.put("SQL flag name, e.g. odps.sql.type.system.odps2", "SQL flag value");
hints.put("SQL flag name, e.g. odps.sql.type.system.odps2", "SQL flag value");
Instance i = SQLTask.run(odps, odps.getDefaultProject(), sql, hints, null);
i.waitForSuccess();