/** * 单纯插入 * * @param tablename * @param mid * @param fieldsValue */ private void insert(String tablename, String mid, String[] fieldsValue) { checkSession(); KuduTable table; if (Constants.UPUSERS_ATTR_TABLE.equals(tablename)) { table = table_attr; } else { table = table_days; } try { Insert insert = table.newInsert(); PartialRow row = insert.getRow(); setInsertValue(mid, Constants.DAYS_FIELDS, fieldsValue, row); OperationResponse rsInsert = session.apply(insert); if (rsInsert.hasRowError()) { System.out.println( "=======================================INSERT DATA:" + mid + "---------------" + Arrays.toString(fieldsValue) + rsInsert.getRowError().getMessage()); } } catch (Exception e) { collector.reportError(e); } }
@Override public Table getTable(String name) { KuduScanSpec scanSpec = new KuduScanSpec(name); try { KuduTable table = plugin.getClient().openTable(name); Schema schema = table.getSchema(); return new DrillKuduTable(schemaName, plugin, schema, scanSpec); } catch (Exception e) { logger.warn("Failure while retrieving kudu table {}", name, e); return null; } }
/** * 执行插入更新操作 * * @param tablename * @param mid * @param fieldsValue */ private void insertUpdate(String tablename, String mid, String[] fieldsValue) { checkSession(); KuduTable table; if (Constants.UPUSERS_ATTR_TABLE.equals(tablename)) { table = table_attr; } else { table = table_days; } try { Insert insert = table.newInsert(); PartialRow row = insert.getRow(); setInsertValue(mid, Constants.ATTR_INSERT_FIELDS, fieldsValue, row); OperationResponse rsInsert = session.apply(insert); if (rsInsert.hasRowError()) { if ("key already present".equals(rsInsert.getRowError().getMessage())) { Update update = table.newUpdate(); PartialRow urow = update.getRow(); setUpdateValue(mid, Constants.ATTR_UPDATE_FIELDS, fieldsValue, urow); OperationResponse rsUpdate = session.apply(update); if (rsUpdate.hasRowError()) { System.out.println( "=======================================ERROR UPDATE :" + rsUpdate.getRowError()); } else { System.out.println( "=======================================UPDATE DATA:" + mid + ":" + Arrays.toString(fieldsValue)); } } else { System.out.println( "=======================================ERROR INSERT :" + rsInsert.getRowError()); } } else { System.out.println( "=======================================INSERT DATA:" + mid + ":" + Arrays.toString(fieldsValue)); } } catch (Exception e) { collector.reportError(e); } }