/** * Retrieves Lineage for a given dataset. * * @param datasetInstance the dataset for which to retrieve lineage * @param startTime start time for the query, in seconds, or in 'now - xs' format * @param endTime end time for the query, in seconds, or in 'now - xs' format * @param levels number of levels to compute lineage for, or {@code null} to use the LineageHandler's default value * @return {@link LineageRecord} for the specified dataset. */ public LineageRecord getLineage(DatasetId datasetInstance, String startTime, String endTime, @Nullable Integer levels) throws IOException, UnauthenticatedException, NotFoundException, BadRequestException, UnauthorizedException { return getLineage(datasetInstance, startTime, endTime, Collections.<CollapseType>emptySet(), levels); }
/** * Retrieves Lineage for a given dataset. * * @param datasetInstance the dataset for which to retrieve lineage * @param startTime start time for the query, in seconds * @param endTime end time for the query, in seconds * @param levels number of levels to compute lineage for, or {@code null} to use the LineageHandler's default value * @return {@link LineageRecord} for the specified dataset. */ public LineageRecord getLineage(DatasetId datasetInstance, long startTime, long endTime, @Nullable Integer levels) throws IOException, UnauthenticatedException, NotFoundException, BadRequestException, UnauthorizedException { return getLineage(datasetInstance, Long.toString(startTime), Long.toString(endTime), levels); }
/** * Retrieves Lineage for a given dataset. * * @param datasetInstance the dataset for which to retrieve lineage * @param startTime start time for the query, in seconds * @param endTime end time for the query, in seconds * @param collapseTypes fields on which lineage relations can be collapsed on * @param levels number of levels to compute lineage for, or {@code null} to use the LineageHandler's default value * @return {@link LineageRecord} for the specified dataset. */ public LineageRecord getLineage(DatasetId datasetInstance, long startTime, long endTime, Set<CollapseType> collapseTypes, @Nullable Integer levels) throws IOException, UnauthenticatedException, NotFoundException, BadRequestException, UnauthorizedException { return getLineage(datasetInstance, Long.toString(startTime), Long.toString(endTime), collapseTypes, levels); }
/** * Retrieves Lineage for a given dataset. * * @param datasetInstance the dataset for which to retrieve lineage * @param startTime start time for the query, in seconds, or in 'now - xs' format * @param endTime end time for the query, in seconds, or in 'now - xs' format * @param collapseTypes fields on which lineage relations can be collapsed on * @param levels number of levels to compute lineage for, or {@code null} to use the LineageHandler's default value * @return {@link LineageRecord} for the specified dataset. */ public LineageRecord getLineage(DatasetId datasetInstance, String startTime, String endTime, Set<CollapseType> collapseTypes, @Nullable Integer levels) throws IOException, UnauthenticatedException, NotFoundException, BadRequestException, UnauthorizedException { String path = String.format("datasets/%s/lineage?start=%s&end=%s", datasetInstance.getDataset(), URLEncoder.encode(startTime, "UTF-8"), URLEncoder.encode(endTime, "UTF-8")); for (CollapseType collapseType : collapseTypes) { path = String.format("%s&collapse=%s", path, collapseType); } if (levels != null) { path = String.format("%s&levels=%d", path, levels); } return getLineage(datasetInstance, path); }
@Override public void perform(Arguments arguments, PrintStream output) throws Exception { long currentTime = System.currentTimeMillis(); DatasetId dataset = cliConfig.getCurrentNamespace().dataset(arguments.get(ArgumentName.DATASET.toString())); long start = getTimestamp(arguments.getOptional("start", "min"), currentTime); long end = getTimestamp(arguments.getOptional("end", "max"), currentTime); Integer levels = arguments.getIntOptional("levels", null); LineageRecord lineage = client.getLineage(dataset, start, end, levels); Table table = Table.builder() .setHeader("start", "end", "relations", "programs", "data") .setRows( Collections.<List<String>>singletonList( Lists.newArrayList( Long.toString(lineage.getStart()), Long.toString(lineage.getEnd()), GSON.toJson(lineage.getRelations()), GSON.toJson(lineage.getPrograms()), GSON.toJson(lineage.getData())) ) ).build(); cliConfig.getTableRenderer().render(cliConfig, output, table); }
@Override public void perform(Arguments arguments, PrintStream output) throws Exception { long currentTime = System.currentTimeMillis(); DatasetId dataset = cliConfig.getCurrentNamespace().dataset(arguments.get(ArgumentName.DATASET.toString())); long start = getTimestamp(arguments.getOptional("start", "min"), currentTime); long end = getTimestamp(arguments.getOptional("end", "max"), currentTime); Integer levels = arguments.getIntOptional("levels", null); LineageRecord lineage = client.getLineage(dataset, start, end, levels); Table table = Table.builder() .setHeader("start", "end", "relations", "programs", "data") .setRows( Collections.<List<String>>singletonList( Lists.newArrayList( Long.toString(lineage.getStart()), Long.toString(lineage.getEnd()), GSON.toJson(lineage.getRelations()), GSON.toJson(lineage.getPrograms()), GSON.toJson(lineage.getData())) ) ).build(); cliConfig.getTableRenderer().render(cliConfig, output, table); }
@Override public void perform(Arguments arguments, PrintStream output) throws Exception { long currentTime = System.currentTimeMillis(); StreamId stream = cliConfig.getCurrentNamespace().stream(arguments.get(ArgumentName.STREAM.toString())); long start = getTimestamp(arguments.getOptional("start", "min"), currentTime); long end = getTimestamp(arguments.getOptional("end", "max"), currentTime); Integer levels = arguments.getIntOptional("levels", null); LineageRecord lineage = client.getLineage(stream, start, end, levels); Table table = Table.builder() .setHeader("start", "end", "relations", "programs", "data") .setRows( Collections.<List<String>>singletonList( Lists.newArrayList( Long.toString(lineage.getStart()), Long.toString(lineage.getEnd()), GSON.toJson(lineage.getRelations()), GSON.toJson(lineage.getPrograms()), GSON.toJson(lineage.getData())) ) ).build(); cliConfig.getTableRenderer().render(cliConfig, output, table); }