use of org.apache.samza.sql.runner.SamzaSqlApplicationConfig in project samza by apache.
the class TestQueryTranslator method testTranslateStreamTableJoinWithThetaCondition.
@Test(expected = SamzaException.class)
public void testTranslateStreamTableJoinWithThetaCondition() {
Map<String, String> config = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(configs, 1);
String sql = "Insert into testavro.enrichedPageViewTopic(profileName, pageKey)" + " select p.name as profileName, pv.pageKey" + " from testavro.PAGEVIEW as pv" + " join testavro.PROFILE.`$table` as p" + " on p.id <> pv.profileId";
config.put(SamzaSqlApplicationConfig.CFG_SQL_STMT, sql);
Config samzaConfig = SamzaSqlApplicationRunner.computeSamzaConfigs(true, new MapConfig(config));
List<String> sqlStmts = fetchSqlFromConfig(config);
List<SamzaSqlQueryParser.QueryInfo> queryInfo = fetchQueryInfo(sqlStmts);
SamzaSqlApplicationConfig samzaSqlApplicationConfig = new SamzaSqlApplicationConfig(new MapConfig(config), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSources).flatMap(Collection::stream).collect(Collectors.toList()), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSink).collect(Collectors.toList()));
StreamApplicationDescriptorImpl streamAppDesc = new StreamApplicationDescriptorImpl(streamApp -> {
}, samzaConfig);
QueryTranslator translator = new QueryTranslator(streamAppDesc, samzaSqlApplicationConfig);
translator.translate(queryInfo.get(0), streamAppDesc, 0);
}
use of org.apache.samza.sql.runner.SamzaSqlApplicationConfig in project samza by apache.
the class TestQueryTranslator method testTranslateMultiSql.
@Test
public void testTranslateMultiSql() {
Map<String, String> config = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(10);
String sql1 = "Insert into testavro.simpleOutputTopic select * from testavro.SIMPLE1";
String sql2 = "Insert into testavro.SIMPLE3 select * from testavro.SIMPLE2";
List<String> sqlStmts = Arrays.asList(sql1, sql2);
config.put(SamzaSqlApplicationConfig.CFG_SQL_STMTS_JSON, JsonUtil.toJson(sqlStmts));
Config samzaConfig = SamzaSqlApplicationRunner.computeSamzaConfigs(true, new MapConfig(config));
List<SamzaSqlQueryParser.QueryInfo> queryInfo = fetchQueryInfo(sqlStmts);
SamzaSqlApplicationConfig samzaSqlApplicationConfig = new SamzaSqlApplicationConfig(new MapConfig(config), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSources).flatMap(Collection::stream).collect(Collectors.toList()), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSink).collect(Collectors.toList()));
StreamApplicationDescriptorImpl appDesc = new StreamApplicationDescriptorImpl(streamApp -> {
}, samzaConfig);
QueryTranslator translator = new QueryTranslator(appDesc, samzaSqlApplicationConfig);
translator.translate(queryInfo.get(0), appDesc, 0);
translator.translate(queryInfo.get(1), appDesc, 1);
OperatorSpecGraph specGraph = appDesc.getOperatorSpecGraph();
StreamConfig streamConfig = new StreamConfig(samzaConfig);
String inputStreamId1 = specGraph.getInputOperators().keySet().stream().findFirst().get();
String inputSystem1 = streamConfig.getSystem(inputStreamId1);
String inputPhysicalName1 = streamConfig.getPhysicalName(inputStreamId1);
String inputStreamId2 = specGraph.getInputOperators().keySet().stream().skip(1).findFirst().get();
String inputSystem2 = streamConfig.getSystem(inputStreamId2);
String inputPhysicalName2 = streamConfig.getPhysicalName(inputStreamId2);
String outputStreamId1 = specGraph.getOutputStreams().keySet().stream().findFirst().get();
String outputSystem1 = streamConfig.getSystem(outputStreamId1);
String outputPhysicalName1 = streamConfig.getPhysicalName(outputStreamId1);
String outputStreamId2 = specGraph.getOutputStreams().keySet().stream().skip(1).findFirst().get();
String outputSystem2 = streamConfig.getSystem(outputStreamId2);
String outputPhysicalName2 = streamConfig.getPhysicalName(outputStreamId2);
Assert.assertEquals(2, specGraph.getOutputStreams().size());
Assert.assertEquals("testavro", outputSystem1);
Assert.assertEquals("simpleOutputTopic", outputPhysicalName1);
Assert.assertEquals("testavro", outputSystem2);
Assert.assertEquals("SIMPLE3", outputPhysicalName2);
Assert.assertEquals(2, specGraph.getInputOperators().size());
Assert.assertEquals("testavro", inputSystem1);
Assert.assertEquals("SIMPLE1", inputPhysicalName1);
Assert.assertEquals("testavro", inputSystem2);
Assert.assertEquals("SIMPLE2", inputPhysicalName2);
}
use of org.apache.samza.sql.runner.SamzaSqlApplicationConfig in project samza by apache.
the class TestQueryTranslator method testTranslateStreamTableJoinWithAndLiteralCondition.
@Test(expected = SamzaException.class)
public void testTranslateStreamTableJoinWithAndLiteralCondition() {
Map<String, String> config = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(configs, 1);
String sql = "Insert into testavro.enrichedPageViewTopic(profileName, pageKey)" + " select p.name as profileName, pv.pageKey" + " from testavro.PAGEVIEW as pv" + " join testavro.PROFILE.`$table` as p" + " on p.id = pv.profileId and p.name = 'John'";
config.put(SamzaSqlApplicationConfig.CFG_SQL_STMT, sql);
Config samzaConfig = SamzaSqlApplicationRunner.computeSamzaConfigs(true, new MapConfig(config));
List<String> sqlStmts = fetchSqlFromConfig(config);
List<SamzaSqlQueryParser.QueryInfo> queryInfo = fetchQueryInfo(sqlStmts);
SamzaSqlApplicationConfig samzaSqlApplicationConfig = new SamzaSqlApplicationConfig(new MapConfig(config), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSources).flatMap(Collection::stream).collect(Collectors.toList()), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSink).collect(Collectors.toList()));
StreamApplicationDescriptorImpl streamAppDesc = new StreamApplicationDescriptorImpl(streamApp -> {
}, samzaConfig);
QueryTranslator translator = new QueryTranslator(streamAppDesc, samzaSqlApplicationConfig);
translator.translate(queryInfo.get(0), streamAppDesc, 0);
}
use of org.apache.samza.sql.runner.SamzaSqlApplicationConfig in project samza by apache.
the class TestQueryTranslator method testTranslateGroupByWithSumAggregator.
@Test(expected = SamzaException.class)
public void testTranslateGroupByWithSumAggregator() {
Map<String, String> config = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(configs, 10);
String sql = "Insert into testavro.pageViewCountTopic(jobName, pageKey, `sum`)" + " select 'SampleJob' as jobName, pv.pageKey, sum(pv.profileId) as `sum`" + " from testavro.PAGEVIEW as pv" + " where pv.pageKey = 'job' or pv.pageKey = 'inbox'" + " group by (pv.pageKey)";
config.put(SamzaSqlApplicationConfig.CFG_SQL_STMT, sql);
Config samzaConfig = SamzaSqlApplicationRunner.computeSamzaConfigs(true, new MapConfig(config));
List<String> sqlStmts = fetchSqlFromConfig(config);
List<SamzaSqlQueryParser.QueryInfo> queryInfo = fetchQueryInfo(sqlStmts);
SamzaSqlApplicationConfig samzaSqlApplicationConfig = new SamzaSqlApplicationConfig(new MapConfig(config), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSources).flatMap(Collection::stream).collect(Collectors.toList()), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSink).collect(Collectors.toList()));
StreamApplicationDescriptorImpl streamAppDesc = new StreamApplicationDescriptorImpl(streamApp -> {
}, samzaConfig);
QueryTranslator translator = new QueryTranslator(streamAppDesc, samzaSqlApplicationConfig);
translator.translate(queryInfo.get(0), streamAppDesc, 0);
}
use of org.apache.samza.sql.runner.SamzaSqlApplicationConfig in project samza by apache.
the class TestQueryTranslator method testTranslateGroupBy.
@Test
public void testTranslateGroupBy() {
Map<String, String> config = SamzaSqlTestConfig.fetchStaticConfigsWithFactories(configs, 10);
String sql = "Insert into testavro.pageViewCountTopic(jobName, pageKey, `count`)" + " select 'SampleJob' as jobName, pv.pageKey, count(*) as `count`" + " from testavro.PAGEVIEW as pv" + " where pv.pageKey = 'job' or pv.pageKey = 'inbox'" + " group by (pv.pageKey)";
config.put(SamzaSqlApplicationConfig.CFG_SQL_STMT, sql);
Config samzaConfig = SamzaSqlApplicationRunner.computeSamzaConfigs(true, new MapConfig(config));
List<String> sqlStmts = fetchSqlFromConfig(config);
List<SamzaSqlQueryParser.QueryInfo> queryInfo = fetchQueryInfo(sqlStmts);
SamzaSqlApplicationConfig samzaSqlApplicationConfig = new SamzaSqlApplicationConfig(new MapConfig(config), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSources).flatMap(Collection::stream).collect(Collectors.toList()), queryInfo.stream().map(SamzaSqlQueryParser.QueryInfo::getSink).collect(Collectors.toList()));
StreamApplicationDescriptorImpl streamAppDesc = new StreamApplicationDescriptorImpl(streamApp -> {
}, samzaConfig);
QueryTranslator translator = new QueryTranslator(streamAppDesc, samzaSqlApplicationConfig);
translator.translate(queryInfo.get(0), streamAppDesc, 0);
OperatorSpecGraph specGraph = streamAppDesc.getOperatorSpecGraph();
Assert.assertEquals(1, specGraph.getInputOperators().size());
Assert.assertEquals(1, specGraph.getOutputStreams().size());
assertTrue(specGraph.hasWindowOrJoins());
Collection<OperatorSpec> operatorSpecs = specGraph.getAllOperatorSpecs();
}
Aggregations