city_code STRING, county_code STRING, card BIGINT, camera_id STRING, orientation STRING, road_id BIGINT, `time` BIGINT, speed DOUBLE, ts_ltz AS TO_TIMESTAMP_LTZ(`time`, 3), WATERMARK FOR ts_ltz AS ts_ltz - INTERVAL '5' SECOND -- 指定时间字段和水位线 ) WITH ( 'connector' = '...
tableEnv.executeSql(createSourceTableDdl);// // 编写 SQL 查询// String query = "SELECT user_id, SUM(order_amount) AS total_amount FROM csv_source GROUP BY user_id";// // 执行查询并打印// tableEnv.executeSql(query).print();// env.execute("Flink SQL Demo");// 定义输出数据源String...
在了解了Table\SQLAPI的使用方法以及作业运行机制之后,接下来分析SQL实现流处理的核心技术。 为什么要分析这个问题呢? 因为传统的关系代数以及SQL最开始是为了批处理设计的,在传统关系型数据库以及批处理中,数据都是有界的,因此SQL语句的执行过程比较好理解,但是在流处理中,数据是无界的,那么将SQL应用于流处理的理解成...
import org.apache.flink.streaming.api.functions.source.SourceFunction; import com.ververica.cdc.debezium.JsonDebeziumDeserializationSchema; import com.ververica.cdc.connectors.sqlserver.SqlServerSource; public class mssqlSinkToKafka { public static void main(String[] args) throws Exception { // 1: ...
public class FlinkSql04 { public static void main(String[] args) throws Exception { DataStream<Row> source = env.addSource(new RichSourceFunction<Row>() { @Override public void run(SourceContext<Row> ctx) throws Exception { Row row = new Row(3); ...
public class FlinkSqlDemo { public static void main(String[] args) throws Exception { // 设置环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(1); //为了方便测试看效果,这里并行度设置为1 ...
("id",DataTypes.STRING()).field("name",DataTypes.STRING())).createTemporaryTable("kafkaInputTable")// 创建临时表//定义要查询的sql语句val result=tableEnv.sqlQuery("select * from kafkaInputTable ")//打印数据result.toAppendStream[(String,String)].print()// 开启执行env.execute("source kafka...
SQL:DATE string TIMESTAMP string CURRENT_TIME INTERVAL string range Table API:STRING.toDate STRING.toTimestamp currentTime()NUMERIC.days NUMERIC.minutes 6. 聚合函数 SQL:COUNT(*)SUM([ ALL | DISTINCT ] expression)RANK()ROW_NUMBER()Table API:FIELD.count FIELD.sum0 二、UDF 用户定义函数(User...
INTERVAL YEAR TO MONTH、 INTERVAL DAY TO SECOND:interval 的涉及到的种类比较多。INTERVAL 主要是用于给 TIMESTAMP、TIMESTAMP_LTZ 添加偏移量的。举例,比如给 TIMESTAMP 加、减几天、几个月、几年。INTERVAL 子句总共涉及到的语法种类如下 Flink SQL 案例所示。
region STRING ) WITH ( 'connector'='print' ); 4.3 测试用例 详细测试用例可查看源码中的单测,下面只描述部分测试点。 4.3.1 简单SELECT 4.3.1.1 行级权限条件 4.3.1.2 输入SQL SELECT * FROM orders; 4.3.1.3 输出SQL SELECT * FROM orders WHERE region = 'beijing'; ...