static String getSqoopDBStoreName(SqoopJobDataPublisher.Data data) { StringBuilder name = new StringBuilder(String.format("%s --url %s", data.getStoreType(), data.getUrl())); if (StringUtils.isNotEmpty(data.getHiveTable())) { name.append(" --table ").append(data.getStoreTable()); } else { name.append(" --database ").append(data.getHiveDB()); } if (StringUtils.isNotEmpty(data.getStoreQuery())) { name.append(" --query ").append(data.getStoreQuery()); } return name.toString(); }
static String getSqoopProcessName(Data data, String clusterName) { StringBuilder name = new StringBuilder(String.format("sqoop %s --connect %s", data.getOperation(), data.getUrl())); if (StringUtils.isNotEmpty(data.getHiveTable())) { name.append(" --table ").append(data.getStoreTable()); } else { name.append(" --database ").append(data.getHiveDB()); } if (StringUtils.isNotEmpty(data.getStoreQuery())) { name.append(" --query ").append(data.getStoreQuery()); } if (data.getHiveTable() != null) { name.append(String.format(" --hive-%s --hive-database %s --hive-table %s --hive-cluster %s", data.getOperation(), data.getHiveDB().toLowerCase(), data.getHiveTable().toLowerCase(), clusterName)); } else { name.append(String.format("--hive-%s --hive-database %s --hive-cluster %s", data.getOperation(), data.getHiveDB(), clusterName)); } return name.toString(); }
private AtlasEntity toSqoopDBStoreEntity(SqoopJobDataPublisher.Data data) throws ImportException { String table = data.getStoreTable(); String query = data.getStoreQuery(); if (StringUtils.isBlank(table) && StringUtils.isBlank(query)) { throw new ImportException("Both table and query cannot be empty for DBStoreInstance"); } String usage = table != null ? "TABLE" : "QUERY"; String source = table != null ? table : query; String name = getSqoopDBStoreName(data); AtlasEntity entDbStore = new AtlasEntity(SqoopDataTypes.SQOOP_DBDATASTORE.getName()); entDbStore.setAttribute(AtlasClient.NAME, name); entDbStore.setAttribute(AtlasClient.REFERENCEABLE_ATTRIBUTE_NAME, name); entDbStore.setAttribute(SqoopHook.DB_STORE_TYPE, data.getStoreType()); entDbStore.setAttribute(SqoopHook.DB_STORE_USAGE, usage); entDbStore.setAttribute(SqoopHook.STORE_URI, data.getUrl()); entDbStore.setAttribute(SqoopHook.SOURCE, source); entDbStore.setAttribute(SqoopHook.DESCRIPTION, ""); entDbStore.setAttribute(AtlasClient.OWNER, data.getUser()); return entDbStore; }
@Override public void publish(Data data) { hiveTable = data.getHiveTable(); storeTable = data.getStoreTable(); storeType = data.getStoreType(); operation = data.getOperation(); } }