public void StoresPersistentKeyValueStoreTest() { var builder = new StreamBuilder(); // Same like that : // builder.Table("table-topic", RocksDb<string, string>.As("table-topic-store")); builder.Table("table-topic", Materialized <string, string, IKeyValueStore <Bytes, byte[]> > .Create( Streamiz.Kafka.Net.State.Stores.PersistentKeyValueStore("table-topic-store"))); var config = new StreamConfig <StringSerDes, StringSerDes>(); config.ApplicationId = "test-map"; config.UseRandomRocksDbConfigForTest(); Topology t = builder.Build(); using (var driver = new TopologyTestDriver(t, config)) { var inputTopic = driver.CreateInputTopic <string, string>("table-topic"); inputTopic.PipeInput("key1", "1"); inputTopic.PipeInput("key2", "2"); var store = driver.GetKeyValueStore <string, string>("table-topic-store"); Assert.IsNotNull(store); var resultK1 = store.Get("key1"); var resultK2 = store.Get("key2"); Assert.AreEqual("1", resultK1); Assert.AreEqual("2", resultK2); } config.RemoveRocksDbFolderForTest(); }
public void KTableSource() { var builder = new StreamBuilder(); builder.Table("table-topic", RocksDb <string, string> .As <StringSerDes, StringSerDes>("table-topic-store")); var config = new StreamConfig <StringSerDes, StringSerDes>(); config.ApplicationId = "test-map"; config.UseRandomRocksDbConfigForTest(); Topology t = builder.Build(); using (var driver = new TopologyTestDriver(t, config)) { var inputTopic = driver.CreateInputTopic <string, string>("table-topic"); inputTopic.PipeInput("key1", "1"); inputTopic.PipeInput("key2", "2"); var store = driver.GetKeyValueStore <string, string>("table-topic-store"); Assert.IsNotNull(store); var resultK1 = store.Get("key1"); var resultK2 = store.Get("key2"); Assert.AreEqual("1", resultK1); Assert.AreEqual("2", resultK2); } config.RemoveRocksDbFolderForTest(); }
public void Windowing() { var builder = new StreamBuilder(); builder.Stream <string, string>("topic") .GroupByKey() .WindowedBy(TumblingWindowOptions.Of(1000)) .Count(RocksDbWindows <string, long> .As <StringSerDes, Int64SerDes>("rocksdb-w-store")); var config = new StreamConfig <StringSerDes, StringSerDes>(); config.ApplicationId = "test-rocksdb-window-store"; config.UseRandomRocksDbConfigForTest(); Topology t = builder.Build(); using (var driver = new TopologyTestDriver(t, config)) { DateTime dt = DateTime.Now; var inputTopic = driver.CreateInputTopic <string, string>("topic"); inputTopic.PipeInput("key1", "1", dt); inputTopic.PipeInput("key2", "2", dt); var store = driver.GetWindowStore <string, long>("rocksdb-w-store"); Assert.IsNotNull(store); var k1 = store.FetchAll(dt.AddMinutes(-10), dt.AddMinutes(10)).ToList(); Assert.AreEqual(2, k1.Count); Assert.AreEqual(1L, k1[0].Value); Assert.AreEqual(1L, k1[1].Value); } config.RemoveRocksDbFolderForTest(); }
public void End() { if (store != null) { store.Flush(); stateManager.Close(); } config.RemoveRocksDbFolderForTest(); }
public void GlobalTableWithStoreQueryableWithRocksDb() { var builder = new StreamBuilder(); var table = builder.GlobalTable("topic", RocksDb <string, string> .As("global-store")); var config = new StreamConfig <StringSerDes, StringSerDes>(); config.ApplicationId = "test-globaltable"; config.UseRandomRocksDbConfigForTest(); Topology t = builder.Build(); using (var driver = new TopologyTestDriver(t, config)) { var inputTopic = driver.CreateInputTopic <string, string>("topic"); inputTopic.PipeInput("test", "coucou"); var store = driver.GetKeyValueStore <string, string>("global-store"); var ele = store.Get("test"); Assert.IsNotNull(ele); Assert.AreEqual("coucou", ele); } config.RemoveRocksDbFolderForTest(); }
public void StoresPersistentKeyValueStoreTest() { var builder = new StreamBuilder(); builder.Stream <string, string>("topic") .GroupByKey() .WindowedBy(TumblingWindowOptions.Of(1000)) .Count( Materialized <string, long, IWindowStore <Bytes, byte[]> > .Create( Streamiz.Kafka.Net.State.Stores.PersistentWindowStore( "rocksdb-w-store", TimeSpan.FromDays(1), TimeSpan.FromSeconds(1)))); var config = new StreamConfig <StringSerDes, StringSerDes>(); config.ApplicationId = "test-rocksdb-window-store"; config.UseRandomRocksDbConfigForTest(); Topology t = builder.Build(); using (var driver = new TopologyTestDriver(t, config)) { DateTime dt = DateTime.Now; var inputTopic = driver.CreateInputTopic <string, string>("topic"); inputTopic.PipeInput("abc", "1", dt); inputTopic.PipeInput("key1", "1", dt); inputTopic.PipeInput("test", "1", dt); var store = driver.GetWindowStore <string, long>("rocksdb-w-store"); Assert.IsNotNull(store); var k1 = store.FetchAll(dt.AddMinutes(-10), dt.AddMinutes(10)).ToList(); Assert.AreEqual(3, k1.Count); } config.RemoveRocksDbFolderForTest(); }