在开始进行 flink 开发时,我想知道每个人都是如何组织他们的 SQL 代码的。
大多数示例看起来都很基础,只是将 SQL 代码保存在以下形式的变量中
final Table result =
tableEnv.sqlQuery(
"SELECT * FROM "
+ tableA
+ " WHERE amount > 2 UNION ALL "
+ "SELECT * FROM TableB WHERE amount < 2");
虽然这显然有效,但由于各种原因,它感觉很麻烦——特别是当查询变得更大时。 它不适用于语法突出显示,使复制和粘贴变得困难,并且不适合代码审查。
我正在考虑将它们放入 java 资源中,但想确保我没有错过任何最佳实践。
您可以使用更多的 Table API,例如,
Table someFromA = tableEnv.from("tableA").where($("amount").isGreater(2));
Table someFromB = tableEnv.from("tableB").where($("amount").isLess(2));
Table result = someFromA.unionAll(someFromB);