// 包含了 insert @Override public Object visitInsertClause(HiveParser.InsertClauseContext ctx) { System.out.println("\n"); HiveParser.TableOrPartitionContexttableOrPartition= ctx.destination().tableOrPartition(); StringtableName= tableOrPartition.tableName().getText(); log.info("in visitInsertClause, the tableName is ---> {} " , tableName); returnsuper.visitInsertClause(ctx); }
// alter 语句 @Override public Object visitAlterStatement(HiveParser.AlterStatementContext ctx) { System.out.println("\n"); log.info(" enter visitAlterStatement func "); StringtableName= ctx.tableName().getText(); log.info("the tableName is {} " , tableName);
// tableName 可能会带上catalog的名称;如果需要的话,需要进行catalog的切割 // ALTER TABLE HIVE_PROD.XIAOBAO_BIGSCREENT.T_ICCE_ENTERPRISE ADD COLUMNS ( SINK_TIME STRING COMMENT 'WRITE DATA TIME') returnsuper.visitAlterStatement(ctx); }
// create 建表 @Override public Object visitCreateTableStatement(HiveParser.CreateTableStatementContext ctx) {
StringtableName= ctx.tableName().getText(); log.info("in visitCreateTableStatement, the tableName is {} " , tableName); returnsuper.visitCreateTableStatement(ctx); }
// 修改语句 @Override public Object visitUpdateStatement(HiveParser.UpdateStatementContext ctx) { StringtableName= ctx.tableName().getText(); log.info("in visitUpdateStatement, the tableName value is {} ", tableName); // where 中可能保存查询库或者表的条件 setActionToMapByDbTableName(tableName, HiveActionEnum.UPDATE.getAction()); returnsuper.visitUpdateStatement(ctx); }
// delete 删除语句 @Override public Object visitDeleteStatement(HiveParser.DeleteStatementContext ctx) { StringtableName= ctx.tableName().getText(); log.info("in visitDeleteStatement, the tableName value is {} " , tableName); // where 中可能保存查询库或者表的条件
returnsuper.visitDeleteStatement(ctx); }
// drop 删除表数据 @Override public Object visitDropTableStatement(HiveParser.DropTableStatementContext ctx) { StringtableName= ctx.tableName().getText(); log.info(" in visitDropTableStatement , the tableName is {} " , tableName); returnsuper.visitDropTableStatement(ctx); }
// drop删除库的数据 @Override public Object visitDropDatabaseStatement(HiveParser.DropDatabaseStatementContext ctx) { StringdbName= ctx.db_schema().getText(); log.info(" in visitDropDatabaseStatement, the dbName is {} " , dbName); returnsuper.visitDropDatabaseStatement(ctx); }
privatestaticfinalStringALERT_SQL="ALTER TABLE HIVE_PROD.XIAOBAO_BIGSCREENT.T_ICCE_ENTERPRISE ADD COLUMNS ( SINK_TIME STRING COMMENT 'WRITE DATA TIME')"; privatestaticfinalStringSIMPLE_QUERY_SQL="SELECT * FROM AAA.CCC"; privatestaticfinalStringMANY_TABLE_SQL="SELECT \n" + " NULL AS ID,\n" + " CAST(TEMP_A.CREATE_DATE AS TIMESTAMP) AS TIMEC,\n" + " TEMP_A.ENTERPRISE_NUM AS ENTERPRISE_NUM,\n" + " TEMP_B.USER_NUM AS USER_NUM,\n" + " TEMP_A.VIRTUAL_TENANT AS VTENANT,\n" + " CAST(NOW() AS TIMESTAMP) AS ETL_LOAD_TS\n" + "FROM (\n" + " SELECT \n" + " COUNT(DISTINCT A.ENTERPRISE_ID) AS ENTERPRISE_NUM,\n" + " A.PLATFORM_VIRTUAL_TENANT AS VIRTUAL_TENANT,\n" + " A.CREATE_DATE AS CREATE_DATE\n" + " FROM (SELECT ENTERPRISE_ID,PLATFORM_VIRTUAL_TENANT,SUBSTRING(CREATE_DATE,1,10) AS CREATE_DATE FROM DIM_BIGSCREENT.DIM_ECENTERPRISE_LIST_DI) A GROUP BY PLATFORM_VIRTUAL_TENANT,CREATE_DATE\n" + ") TEMP_A LEFT JOIN\n" + "(\n" + " SELECT\n" + " COUNT(DISTINCT A.USER_ID) AS USER_NUM,\n" + " A.PLATFORM_VIRTUAL_TENANT AS VIRTUAL_TENANT,\n" + " A.CREATE_DATE\n" + " FROM (SELECT USER_ID,PLATFORM_VIRTUAL_TENANT,SUBSTRING(CREATE_DATE,1,10) AS CREATE_DATE FROM DIM_BIGSCREENT.DIM_ECUSERENTERPRISE_RELATION_LIST_DI) A GROUP BY PLATFORM_VIRTUAL_TENANT,CREATE_DATE\n" + ") TEMP_B ON TEMP_A.VIRTUAL_TENANT = TEMP_B.VIRTUAL_TENANT AND TEMP_A.CREATE_DATE = TEMP_B.CREATE_DATE";
privatestaticfinalStringJOIN_SQL="select * from aaa.aa as a left join ccc.cc as c on a.id = c.id left join ddd.dd as d on a.id = d.id";
privatestaticfinalStringINSERT_QUERY_SQL="INSERT OVERWRITE TABLE aaa.cc\n" + "select * from aaa.aa";
privatestaticfinalStringUPDATE_QUERY_SQL="update ads_bigscreent.ads_cloud_info_sum_df set name = '123' where id in (select id from aaaa.aa) and " + " name in (select name from ads_bigscreent.ads_cloud_info_sum_df)";
privatestaticfinalStringDELETE_QUERT_SQl="delete from ads_bigscreent.ads_cloud_info_sum_df where id in (select id from aaaa.cc)";