import com.xxxx.model.SQLParserResult;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.parse.*;
import java.util.*;
/**
* @author yangxin-ryan
* HiveParse工具类
* 根据解析SQL语句,解析出其中的数据库名,表名,具体操作。
* 处理:获取SELECT操作中的表和列的相关操作。其他操作这判断到表级别。
* 实现思路:对AST深度优先遍历,遇到操作的token则判断当前的操作,
* 遇到TOK_TAB或TOK_TABREF则判断出当前操作的表,遇到子句则压栈当前处理,处理子句。
* 子句处理完,栈弹出。
*/
public class HiveParseUtil {
private static Log LOG = LogFactory.getLog(HiveParseUtil.class);
private static final String UNKNOWN = "UNKNOWN";
private Map<String, String> tableAlias = new HashMap<>();
private Map<String, String> cols &
Java实现HiveSQL Parser
最新推荐文章于 2024-04-05 09:40:35 发布
本文详细介绍了如何利用Java编程实现一个Hive SQL解析器,重点探讨了HQL语句的解析过程,包括从SQL字符串到抽象语法树AST的转换,并讨论了相关的关键技术和挑战。
摘要由CSDN通过智能技术生成