private void configureTables(Map<String, String> generatedConfig, Config originalConfig, Map<String, TableDescriptor> tables, Set<String> inputs) { generatedConfig.putAll( TableConfigGenerator.generate( new MapConfig(generatedConfig), new ArrayList<>(tables.values()))); // Add side inputs to the inputs and mark the stream as bootstrap tables.values().forEach(tableDescriptor -> { if (tableDescriptor instanceof LocalTableDescriptor) { LocalTableDescriptor localTableDescriptor = (LocalTableDescriptor) tableDescriptor; List<String> sideInputs = localTableDescriptor.getSideInputs(); if (sideInputs != null && !sideInputs.isEmpty()) { sideInputs.stream() .map(sideInput -> StreamUtil.getSystemStreamFromNameOrId(originalConfig, sideInput)) .forEach(systemStream -> { inputs.add(StreamUtil.getNameFromSystemStream(systemStream)); generatedConfig.put(String.format(StreamConfig.STREAM_PREFIX() + StreamConfig.BOOTSTRAP(), systemStream.getSystem(), systemStream.getStream()), "true"); }); } } }); }
if (tableDescriptor instanceof LocalTableDescriptor) { LocalTableDescriptor localTableDescriptor = (LocalTableDescriptor) tableDescriptor; Collection<String> sideInputs = ListUtils.emptyIfNull(localTableDescriptor.getSideInputs()); Iterable<StreamEdge> sideInputStreams = sideInputs.stream().map(jobGraph::getStreamEdge)::iterator; Iterable<StreamEdge> streams = streamSet.getStreamEdges();
Iterable<String> sideInputs = ListUtils.emptyIfNull(localTable.getSideInputs()); for (String sideInput : sideInputs) { jobGraph.addSideInputStream(getStreamSpec(sideInput, streamConfig));