Search in sources :

Example 1 with SamzaSqlValidator

use of org.apache.samza.sql.planner.SamzaSqlValidator in project samza by apache.

the class TestSamzaSqlEndToEnd method testEndToEndStreamTableNestedJoinWithPrimaryKeys.

@Test
public void testEndToEndStreamTableNestedJoinWithPrimaryKeys() throws Exception {
    int numMessages = 20;
    TestAvroSystemFactory.messages.clear();
    Map<String, String> staticConfigs = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(numMessages);
    String sql = "Insert into testavro.enrichedPageViewTopic " + "select pv.pageKey as __key__, pv.pageKey as pageKey, c.name as companyName, p.name as profileName," + "       p.address as profileAddress " + "from testavro.PAGEVIEW as pv " + "join testavro.PROFILE.`$table` as p " + " on MyTest(p.__key__) = MyTest(pv.profileId) " + " join testavro.COMPANY.`$table` as c " + " on MyTest(p.companyId) = MyTest(c.__key__)";
    List<String> sqlStmts = Arrays.asList(sql);
    staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
    Config config = new MapConfig(staticConfigs);
    new SamzaSqlValidator(config).validate(sqlStmts);
    runApplication(config);
    List<String> outMessages = TestAvroSystemFactory.messages.stream().map(x -> ((GenericRecord) x.getMessage()).get("pageKey").toString() + "," + ((GenericRecord) x.getMessage()).get("profileName").toString() + "," + ((GenericRecord) x.getMessage()).get("companyName").toString()).collect(Collectors.toList());
    Assert.assertEquals(numMessages, outMessages.size());
    List<String> expectedOutMessages = TestAvroSystemFactory.getPageKeyProfileCompanyNameJoin(numMessages);
    Assert.assertEquals(expectedOutMessages, outMessages);
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) TestAvroSystemFactory(org.apache.samza.sql.system.TestAvroSystemFactory) SamzaSqlValidatorException(org.apache.samza.sql.planner.SamzaSqlValidatorException) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) MyTestUdf(org.apache.samza.sql.util.MyTestUdf) HashSet(java.util.HashSet) Map(java.util.Map) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Logger(org.slf4j.Logger) SampleRelConverterFactory(org.apache.samza.sql.util.SampleRelConverterFactory) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) Set(java.util.Set) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) Test(org.junit.Test) JsonUtil(org.apache.samza.sql.util.JsonUtil) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) Ignore(org.junit.Ignore) Optional(java.util.Optional) OutgoingMessageEnvelope(org.apache.samza.system.OutgoingMessageEnvelope) Config(org.apache.samza.config.Config) Assert(org.junit.Assert) Collections(java.util.Collections) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) MapConfig(org.apache.samza.config.MapConfig) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) Config(org.apache.samza.config.Config) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Test(org.junit.Test)

Example 2 with SamzaSqlValidator

use of org.apache.samza.sql.planner.SamzaSqlValidator in project samza by apache.

the class TestSamzaSqlEndToEnd method testEndToEndComplexRecord.

@Test
public void testEndToEndComplexRecord() throws SamzaSqlValidatorException {
    int numMessages = 10;
    TestAvroSystemFactory.messages.clear();
    Map<String, String> staticConfigs = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(numMessages);
    String sql1 = "Insert into testavro.outputTopic" + " select bool_value, map_values['key0'] as string_value, union_value, array_values, map_values, id, bytes_value," + " fixed_value, float_value0 from testavro.COMPLEX1";
    List<String> sqlStmts = Collections.singletonList(sql1);
    staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
    Config config = new MapConfig(staticConfigs);
    new SamzaSqlValidator(config).validate(sqlStmts);
    runApplication(config);
    List<OutgoingMessageEnvelope> outMessages = new ArrayList<>(TestAvroSystemFactory.messages);
    Assert.assertEquals(numMessages, outMessages.size());
}
Also used : SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) MapConfig(org.apache.samza.config.MapConfig) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) Config(org.apache.samza.config.Config) ArrayList(java.util.ArrayList) MapConfig(org.apache.samza.config.MapConfig) OutgoingMessageEnvelope(org.apache.samza.system.OutgoingMessageEnvelope) Test(org.junit.Test)

Example 3 with SamzaSqlValidator

use of org.apache.samza.sql.planner.SamzaSqlValidator in project samza by apache.

the class TestSamzaSqlEndToEnd method testEndToEndStreamTableInnerJoinWithUdf.

@Test
public void testEndToEndStreamTableInnerJoinWithUdf() throws Exception {
    int numMessages = 20;
    TestAvroSystemFactory.messages.clear();
    Map<String, String> staticConfigs = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(numMessages);
    String sql = "Insert into testavro.enrichedPageViewTopic " + "select pv.pageKey as __key__, pv.pageKey as pageKey, coalesce(null, 'N/A') as companyName," + "       p.name as profileName, p.address as profileAddress " + "from testavro.PROFILE.`$table` as p " + "join testavro.PAGEVIEW as pv " + " on MyTest(p.id) = MyTest(pv.profileId)";
    List<String> sqlStmts = Arrays.asList(sql);
    staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
    Config config = new MapConfig(staticConfigs);
    new SamzaSqlValidator(config).validate(sqlStmts);
    runApplication(config);
    List<String> outMessages = TestAvroSystemFactory.messages.stream().map(x -> ((GenericRecord) x.getMessage()).get("pageKey").toString() + "," + (((GenericRecord) x.getMessage()).get("profileName") == null ? "null" : ((GenericRecord) x.getMessage()).get("profileName").toString())).collect(Collectors.toList());
    Assert.assertEquals(numMessages, outMessages.size());
    List<String> expectedOutMessages = TestAvroSystemFactory.getPageKeyProfileNameJoin(numMessages);
    Assert.assertEquals(expectedOutMessages, outMessages);
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) TestAvroSystemFactory(org.apache.samza.sql.system.TestAvroSystemFactory) SamzaSqlValidatorException(org.apache.samza.sql.planner.SamzaSqlValidatorException) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) MyTestUdf(org.apache.samza.sql.util.MyTestUdf) HashSet(java.util.HashSet) Map(java.util.Map) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Logger(org.slf4j.Logger) SampleRelConverterFactory(org.apache.samza.sql.util.SampleRelConverterFactory) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) Set(java.util.Set) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) Test(org.junit.Test) JsonUtil(org.apache.samza.sql.util.JsonUtil) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) Ignore(org.junit.Ignore) Optional(java.util.Optional) OutgoingMessageEnvelope(org.apache.samza.system.OutgoingMessageEnvelope) Config(org.apache.samza.config.Config) Assert(org.junit.Assert) Collections(java.util.Collections) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) MapConfig(org.apache.samza.config.MapConfig) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) Config(org.apache.samza.config.Config) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Test(org.junit.Test)

Example 4 with SamzaSqlValidator

use of org.apache.samza.sql.planner.SamzaSqlValidator in project samza by apache.

the class TestSamzaSqlEndToEnd method testEndToEndCompoundBooleanCheck.

@Test
public void testEndToEndCompoundBooleanCheck() throws SamzaSqlValidatorException {
    int numMessages = 20;
    TestAvroSystemFactory.messages.clear();
    Map<String, String> staticConfigs = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(numMessages);
    String sql1 = "Insert into testavro.outputTopic" + " select * from testavro.COMPLEX1 where id >= 0 and bool_value IS TRUE";
    List<String> sqlStmts = Arrays.asList(sql1);
    staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
    Config config = new MapConfig(staticConfigs);
    new SamzaSqlValidator(config).validate(sqlStmts);
    runApplication(config);
    List<OutgoingMessageEnvelope> outMessages = new ArrayList<>(TestAvroSystemFactory.messages);
    Assert.assertEquals(numMessages / 2, outMessages.size());
}
Also used : SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) MapConfig(org.apache.samza.config.MapConfig) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) Config(org.apache.samza.config.Config) ArrayList(java.util.ArrayList) MapConfig(org.apache.samza.config.MapConfig) OutgoingMessageEnvelope(org.apache.samza.system.OutgoingMessageEnvelope) Test(org.junit.Test)

Example 5 with SamzaSqlValidator

use of org.apache.samza.sql.planner.SamzaSqlValidator in project samza by apache.

the class TestSamzaSqlEndToEnd method testEndToEndStreamTableNestedJoinWithSubQuery.

@Test
public void testEndToEndStreamTableNestedJoinWithSubQuery() throws Exception {
    int numMessages = 20;
    TestAvroSystemFactory.messages.clear();
    Map<String, String> staticConfigs = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(numMessages);
    String sql = "Insert into testavro.enrichedPageViewTopic " + "select t.pageKey as __key__, t.pageKey as pageKey, c.name as companyName, t.profileName as profileName," + "       address as profileAddress " + "from (select p.companyId as companyId, p.name as profileName, p.address as address, pv.pageKey as pageKey" + "      from testavro.PAGEVIEW as pv " + "      join testavro.PROFILE.`$table` as p " + "      on MyTest(p.__key__) = MyTest(pv.profileId)) as t " + "join testavro.COMPANY.`$table` as c " + "on MyTest(t.companyId) = MyTest(c.__key__)";
    List<String> sqlStmts = Arrays.asList(sql);
    staticConfigs.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
    Config config = new MapConfig(staticConfigs);
    new SamzaSqlValidator(config).validate(sqlStmts);
    runApplication(config);
    List<String> outMessages = TestAvroSystemFactory.messages.stream().map(x -> ((GenericRecord) x.getMessage()).get("pageKey").toString() + "," + ((GenericRecord) x.getMessage()).get("profileName").toString() + "," + ((GenericRecord) x.getMessage()).get("companyName").toString()).collect(Collectors.toList());
    Assert.assertEquals(numMessages, outMessages.size());
    List<String> expectedOutMessages = TestAvroSystemFactory.getPageKeyProfileCompanyNameJoin(numMessages);
    Assert.assertEquals(expectedOutMessages, outMessages);
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) TestAvroSystemFactory(org.apache.samza.sql.system.TestAvroSystemFactory) SamzaSqlValidatorException(org.apache.samza.sql.planner.SamzaSqlValidatorException) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) MyTestUdf(org.apache.samza.sql.util.MyTestUdf) HashSet(java.util.HashSet) Map(java.util.Map) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Logger(org.slf4j.Logger) SampleRelConverterFactory(org.apache.samza.sql.util.SampleRelConverterFactory) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) Set(java.util.Set) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) Test(org.junit.Test) JsonUtil(org.apache.samza.sql.util.JsonUtil) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) Ignore(org.junit.Ignore) Optional(java.util.Optional) OutgoingMessageEnvelope(org.apache.samza.system.OutgoingMessageEnvelope) Config(org.apache.samza.config.Config) Assert(org.junit.Assert) Collections(java.util.Collections) SamzaSqlValidator(org.apache.samza.sql.planner.SamzaSqlValidator) MapConfig(org.apache.samza.config.MapConfig) SamzaSqlTestConfig(org.apache.samza.sql.util.SamzaSqlTestConfig) SamzaSqlApplicationConfig(org.apache.samza.sql.runner.SamzaSqlApplicationConfig) Config(org.apache.samza.config.Config) MapConfig(org.apache.samza.config.MapConfig) GenericRecord(org.apache.avro.generic.GenericRecord) Test(org.junit.Test)

Aggregations

Config (org.apache.samza.config.Config)55 MapConfig (org.apache.samza.config.MapConfig)55 SamzaSqlValidator (org.apache.samza.sql.planner.SamzaSqlValidator)55 SamzaSqlApplicationConfig (org.apache.samza.sql.runner.SamzaSqlApplicationConfig)55 SamzaSqlTestConfig (org.apache.samza.sql.util.SamzaSqlTestConfig)55 Test (org.junit.Test)55 Ignore (org.junit.Ignore)28 ArrayList (java.util.ArrayList)27 HashMap (java.util.HashMap)25 Arrays (java.util.Arrays)24 List (java.util.List)24 Map (java.util.Map)24 Collectors (java.util.stream.Collectors)24 GenericRecord (org.apache.avro.generic.GenericRecord)24 SamzaSqlValidatorException (org.apache.samza.sql.planner.SamzaSqlValidatorException)24 TestAvroSystemFactory (org.apache.samza.sql.system.TestAvroSystemFactory)24 JsonUtil (org.apache.samza.sql.util.JsonUtil)24 Assert (org.junit.Assert)24 OutgoingMessageEnvelope (org.apache.samza.system.OutgoingMessageEnvelope)23 HashSet (java.util.HashSet)22