Java Code Examples for org.apache.kafka.streams.kstream.KStream#print()
The following examples show how to use
org.apache.kafka.streams.kstream.KStream#print() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CountingWindowingAndKtableJoinExample.java From kafka-streams-in-action with Apache License 2.0 | 4 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); Serde<String> stringSerde = Serdes.String(); Serde<StockTransaction> transactionSerde = StreamsSerdes.StockTransactionSerde(); Serde<TransactionSummary> transactionKeySerde = StreamsSerdes.TransactionSummarySerde(); StreamsBuilder builder = new StreamsBuilder(); long twentySeconds = 1000 * 20; long fifteenMinutes = 1000 * 60 * 15; long fiveSeconds = 1000 * 5; KTable<Windowed<TransactionSummary>, Long> customerTransactionCounts = builder.stream(STOCK_TRANSACTIONS_TOPIC, Consumed.with(stringSerde, transactionSerde).withOffsetResetPolicy(LATEST)) .groupBy((noKey, transaction) -> TransactionSummary.from(transaction), Serialized.with(transactionKeySerde, transactionSerde)) // session window comment line below and uncomment another line below for a different window example .windowedBy(SessionWindows.with(twentySeconds).until(fifteenMinutes)).count(); //The following are examples of different windows examples //Tumbling window with timeout 15 minutes //.windowedBy(TimeWindows.of(twentySeconds).until(fifteenMinutes)).count(); //Tumbling window with default timeout 24 hours //.windowedBy(TimeWindows.of(twentySeconds)).count(); //Hopping window //.windowedBy(TimeWindows.of(twentySeconds).advanceBy(fiveSeconds).until(fifteenMinutes)).count(); customerTransactionCounts.toStream().print(Printed.<Windowed<TransactionSummary>, Long>toSysOut().withLabel("Customer Transactions Counts")); KStream<String, TransactionSummary> countStream = customerTransactionCounts.toStream().map((window, count) -> { TransactionSummary transactionSummary = window.key(); String newKey = transactionSummary.getIndustry(); transactionSummary.setSummaryCount(count); return KeyValue.pair(newKey, transactionSummary); }); KTable<String, String> financialNews = builder.table( "financial-news", Consumed.with(EARLIEST)); ValueJoiner<TransactionSummary, String, String> valueJoiner = (txnct, news) -> String.format("%d shares purchased %s related news [%s]", txnct.getSummaryCount(), txnct.getStockTicker(), news); KStream<String,String> joined = countStream.leftJoin(financialNews, valueJoiner, Joined.with(stringSerde, transactionKeySerde, stringSerde)); joined.print(Printed.<String, String>toSysOut().withLabel("Transactions and News")); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(), streamsConfig); kafkaStreams.cleanUp(); kafkaStreams.setUncaughtExceptionHandler((t, e) -> { LOG.error("had exception ", e); }); CustomDateGenerator dateGenerator = CustomDateGenerator.withTimestampsIncreasingBy(Duration.ofMillis(750)); DataGenerator.setTimestampGenerator(dateGenerator::get); MockDataProducer.produceStockTransactions(2, 5, 3, false); LOG.info("Starting CountingWindowing and KTableJoins Example"); kafkaStreams.cleanUp(); kafkaStreams.start(); Thread.sleep(65000); LOG.info("Shutting down the CountingWindowing and KTableJoins Example Application now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 2
Source File: KafkaStreamsJoinsApp.java From kafka-streams-in-action with Apache License 2.0 | 4 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); StreamsBuilder builder = new StreamsBuilder(); Serde<Purchase> purchaseSerde = StreamsSerdes.PurchaseSerde(); Serde<String> stringSerde = Serdes.String(); KeyValueMapper<String, Purchase, KeyValue<String,Purchase>> custIdCCMasking = (k, v) -> { Purchase masked = Purchase.builder(v).maskCreditCard().build(); return new KeyValue<>(masked.getCustomerId(), masked); }; Predicate<String, Purchase> coffeePurchase = (key, purchase) -> purchase.getDepartment().equalsIgnoreCase("coffee"); Predicate<String, Purchase> electronicPurchase = (key, purchase) -> purchase.getDepartment().equalsIgnoreCase("electronics"); int COFFEE_PURCHASE = 0; int ELECTRONICS_PURCHASE = 1; KStream<String, Purchase> transactionStream = builder.stream( "transactions", Consumed.with(Serdes.String(), purchaseSerde)).map(custIdCCMasking); KStream<String, Purchase>[] branchesStream = transactionStream.selectKey((k,v)-> v.getCustomerId()).branch(coffeePurchase, electronicPurchase); KStream<String, Purchase> coffeeStream = branchesStream[COFFEE_PURCHASE]; KStream<String, Purchase> electronicsStream = branchesStream[ELECTRONICS_PURCHASE]; ValueJoiner<Purchase, Purchase, CorrelatedPurchase> purchaseJoiner = new PurchaseJoiner(); JoinWindows twentyMinuteWindow = JoinWindows.of(60 * 1000 * 20); KStream<String, CorrelatedPurchase> joinedKStream = coffeeStream.join(electronicsStream, purchaseJoiner, twentyMinuteWindow, Joined.with(stringSerde, purchaseSerde, purchaseSerde)); joinedKStream.print(Printed.<String, CorrelatedPurchase>toSysOut().withLabel("joined KStream")); // used only to produce data for this application, not typical usage MockDataProducer.producePurchaseData(); LOG.info("Starting Join Examples"); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(), streamsConfig); kafkaStreams.start(); Thread.sleep(65000); LOG.info("Shutting down the Join Examples now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 3
Source File: RegexTest.java From kafka-streams with Apache License 2.0 | 4 votes |
public static void main(String[] args) { StreamsConfig streamingConfig = new StreamsConfig(getProperties()); KStreamBuilder kStreamBuilder = new KStreamBuilder(); KStream<String, String> patternStreamI = kStreamBuilder.stream(Serdes.String(), Serdes.String(), Pattern.compile("topic-\\d")); KStream<String, String> namedTopicKStream = kStreamBuilder.stream(Serdes.String(), Serdes.String(), "topic-Z"); KStream<String, String> patternStreamII = kStreamBuilder.stream(Serdes.String(), Serdes.String(), Pattern.compile("topic-[A-Y]+")); patternStreamI.print("pattern-\\d"); namedTopicKStream.print("topic-Z"); patternStreamII.print("topic-[A-Y]+"); System.out.println("Starting stream regex consumer Example"); KafkaStreams kafkaStreams = new KafkaStreams(kStreamBuilder, streamingConfig); kafkaStreams.start(); }
Example 4
Source File: KafkaStreamsYellingApp.java From kafka-streams-in-action with Apache License 2.0 | 3 votes |
public static void main(String[] args) throws Exception { //Used only to produce data for this application, not typical usage MockDataProducer.produceRandomTextData(); Properties props = new Properties(); props.put(StreamsConfig.APPLICATION_ID_CONFIG, "yelling_app_id"); props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); StreamsConfig streamsConfig = new StreamsConfig(props); Serde<String> stringSerde = Serdes.String(); StreamsBuilder builder = new StreamsBuilder(); KStream<String, String> simpleFirstStream = builder.stream("src-topic", Consumed.with(stringSerde, stringSerde)); KStream<String, String> upperCasedStream = simpleFirstStream.mapValues(String::toUpperCase); upperCasedStream.to( "out-topic", Produced.with(stringSerde, stringSerde)); upperCasedStream.print(Printed.<String, String>toSysOut().withLabel("Yelling App")); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(),streamsConfig); LOG.info("Hello World Yelling App Started"); kafkaStreams.start(); Thread.sleep(35000); LOG.info("Shutting down the Yelling APP now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 5
Source File: KStreamVsKTableExample.java From kafka-streams-in-action with Apache License 2.0 | 3 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); StreamsBuilder builder = new StreamsBuilder(); KTable<String, StockTickerData> stockTickerTable = builder.table(STOCK_TICKER_TABLE_TOPIC); KStream<String, StockTickerData> stockTickerStream = builder.stream(STOCK_TICKER_STREAM_TOPIC); stockTickerTable.toStream().print(Printed.<String, StockTickerData>toSysOut().withLabel("Stocks-KTable")); stockTickerStream.print(Printed.<String, StockTickerData>toSysOut().withLabel( "Stocks-KStream")); int numberCompanies = 3; int iterations = 3; MockDataProducer.produceStockTickerData(numberCompanies, iterations); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(), streamsConfig); LOG.info("KTable vs KStream output started"); kafkaStreams.cleanUp(); kafkaStreams.start(); Thread.sleep(15000); LOG.info("Shutting down KTable vs KStream Application now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 6
Source File: ZMartKafkaStreamsApp.java From kafka-streams-in-action with Apache License 2.0 | 2 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); Serde<Purchase> purchaseSerde = StreamsSerdes.PurchaseSerde(); Serde<PurchasePattern> purchasePatternSerde = StreamsSerdes.PurchasePatternSerde(); Serde<RewardAccumulator> rewardAccumulatorSerde = StreamsSerdes.RewardAccumulatorSerde(); Serde<String> stringSerde = Serdes.String(); StreamsBuilder streamsBuilder = new StreamsBuilder(); KStream<String,Purchase> purchaseKStream = streamsBuilder.stream("transactions", Consumed.with(stringSerde, purchaseSerde)) .mapValues(p -> Purchase.builder(p).maskCreditCard().build()); KStream<String, PurchasePattern> patternKStream = purchaseKStream.mapValues(purchase -> PurchasePattern.builder(purchase).build()); patternKStream.print(Printed.<String, PurchasePattern>toSysOut().withLabel("patterns")); patternKStream.to("patterns", Produced.with(stringSerde,purchasePatternSerde)); KStream<String, RewardAccumulator> rewardsKStream = purchaseKStream.mapValues(purchase -> RewardAccumulator.builder(purchase).build()); rewardsKStream.print(Printed.<String, RewardAccumulator>toSysOut().withLabel("rewards")); rewardsKStream.to("rewards", Produced.with(stringSerde,rewardAccumulatorSerde)); purchaseKStream.print(Printed.<String, Purchase>toSysOut().withLabel("purchases")); purchaseKStream.to("purchases", Produced.with(stringSerde,purchaseSerde)); // used only to produce data for this application, not typical usage MockDataProducer.producePurchaseData(); KafkaStreams kafkaStreams = new KafkaStreams(streamsBuilder.build(),streamsConfig); LOG.info("ZMart First Kafka Streams Application Started"); kafkaStreams.start(); Thread.sleep(65000); LOG.info("Shutting down the Kafka Streams Application now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 7
Source File: ZMartKafkaStreamsAdvancedReqsApp.java From kafka-streams-in-action with Apache License 2.0 | 2 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); Serde<Purchase> purchaseSerde = StreamsSerdes.PurchaseSerde(); Serde<PurchasePattern> purchasePatternSerde = StreamsSerdes.PurchasePatternSerde(); Serde<RewardAccumulator> rewardAccumulatorSerde = StreamsSerdes.RewardAccumulatorSerde(); Serde<String> stringSerde = Serdes.String(); StreamsBuilder builder = new StreamsBuilder(); // previous requirements KStream<String,Purchase> purchaseKStream = builder.stream( "transactions", Consumed.with(stringSerde, purchaseSerde)) .mapValues(p -> Purchase.builder(p).maskCreditCard().build()); KStream<String, PurchasePattern> patternKStream = purchaseKStream.mapValues(purchase -> PurchasePattern.builder(purchase).build()); patternKStream.print( Printed.<String, PurchasePattern>toSysOut().withLabel("patterns")); patternKStream.to("patterns", Produced.with(stringSerde,purchasePatternSerde)); KStream<String, RewardAccumulator> rewardsKStream = purchaseKStream.mapValues(purchase -> RewardAccumulator.builder(purchase).build()); rewardsKStream.print(Printed.<String, RewardAccumulator>toSysOut().withLabel("rewards")); rewardsKStream.to("rewards", Produced.with(stringSerde,rewardAccumulatorSerde)); // selecting a key for storage and filtering out low dollar purchases KeyValueMapper<String, Purchase, Long> purchaseDateAsKey = (key, purchase) -> purchase.getPurchaseDate().getTime(); KStream<Long, Purchase> filteredKStream = purchaseKStream.filter((key, purchase) -> purchase.getPrice() > 5.00).selectKey(purchaseDateAsKey); filteredKStream.print(Printed.<Long, Purchase>toSysOut().withLabel("purchases")); filteredKStream.to("purchases", Produced.with(Serdes.Long(),purchaseSerde)); // branching stream for separating out purchases in new departments to their own topics Predicate<String, Purchase> isCoffee = (key, purchase) -> purchase.getDepartment().equalsIgnoreCase("coffee"); Predicate<String, Purchase> isElectronics = (key, purchase) -> purchase.getDepartment().equalsIgnoreCase("electronics"); int coffee = 0; int electronics = 1; KStream<String, Purchase>[] kstreamByDept = purchaseKStream.branch(isCoffee, isElectronics); kstreamByDept[coffee].to( "coffee", Produced.with(stringSerde, purchaseSerde)); kstreamByDept[coffee].print(Printed.<String, Purchase>toSysOut().withLabel( "coffee")); kstreamByDept[electronics].to("electronics", Produced.with(stringSerde, purchaseSerde)); kstreamByDept[electronics].print(Printed.<String, Purchase>toSysOut().withLabel("electronics")); // security Requirements to record transactions for certain employee ForeachAction<String, Purchase> purchaseForeachAction = (key, purchase) -> SecurityDBService.saveRecord(purchase.getPurchaseDate(), purchase.getEmployeeId(), purchase.getItemPurchased()); purchaseKStream.filter((key, purchase) -> purchase.getEmployeeId().equals("000000")).foreach(purchaseForeachAction); // used only to produce data for this application, not typical usage MockDataProducer.producePurchaseData(); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(),streamsConfig); LOG.info("ZMart Advanced Requirements Kafka Streams Application Started"); kafkaStreams.start(); Thread.sleep(65000); LOG.info("Shutting down the Kafka Streams Application now"); kafkaStreams.close(); MockDataProducer.shutdown(); }
Example 8
Source File: ZMartKafkaStreamsAddStateApp.java From kafka-streams-in-action with Apache License 2.0 | 2 votes |
public static void main(String[] args) throws Exception { StreamsConfig streamsConfig = new StreamsConfig(getProperties()); Serde<Purchase> purchaseSerde = StreamsSerdes.PurchaseSerde(); Serde<PurchasePattern> purchasePatternSerde = StreamsSerdes.PurchasePatternSerde(); Serde<RewardAccumulator> rewardAccumulatorSerde = StreamsSerdes.RewardAccumulatorSerde(); Serde<String> stringSerde = Serdes.String(); StreamsBuilder builder = new StreamsBuilder(); KStream<String,Purchase> purchaseKStream = builder.stream( "transactions", Consumed.with(stringSerde, purchaseSerde)) .mapValues(p -> Purchase.builder(p).maskCreditCard().build()); KStream<String, PurchasePattern> patternKStream = purchaseKStream.mapValues(purchase -> PurchasePattern.builder(purchase).build()); patternKStream.print(Printed.<String, PurchasePattern>toSysOut().withLabel("patterns")); patternKStream.to("patterns", Produced.with(stringSerde, purchasePatternSerde)); // adding State to processor String rewardsStateStoreName = "rewardsPointsStore"; RewardsStreamPartitioner streamPartitioner = new RewardsStreamPartitioner(); KeyValueBytesStoreSupplier storeSupplier = Stores.inMemoryKeyValueStore(rewardsStateStoreName); StoreBuilder<KeyValueStore<String, Integer>> storeBuilder = Stores.keyValueStoreBuilder(storeSupplier, Serdes.String(), Serdes.Integer()); builder.addStateStore(storeBuilder); KStream<String, Purchase> transByCustomerStream = purchaseKStream.through( "customer_transactions", Produced.with(stringSerde, purchaseSerde, streamPartitioner)); KStream<String, RewardAccumulator> statefulRewardAccumulator = transByCustomerStream.transformValues(() -> new PurchaseRewardTransformer(rewardsStateStoreName), rewardsStateStoreName); statefulRewardAccumulator.print(Printed.<String, RewardAccumulator>toSysOut().withLabel("rewards")); statefulRewardAccumulator.to("rewards", Produced.with(stringSerde, rewardAccumulatorSerde)); // used only to produce data for this application, not typical usage MockDataProducer.producePurchaseData(); LOG.info("Starting Adding State Example"); KafkaStreams kafkaStreams = new KafkaStreams(builder.build(),streamsConfig); LOG.info("ZMart Adding State Application Started"); kafkaStreams.cleanUp(); kafkaStreams.start(); Thread.sleep(65000); LOG.info("Shutting down the Add State Application now"); kafkaStreams.close(); MockDataProducer.shutdown(); }