将 DataStream 或 DataSet 转换成表
//前面章节已经完整演示了代码
Table table1 = tableEnv.fromDataStream(stream);
将 DataStream 或 DataSet 转换临时视图
//前面章节已经完整演示了代码
tableEnv.createTemporaryView(“myTable”, stream);
将Table转换为 DataStream 或 DataSet
有2种模式 append mode、retract mode
append mode:仅当动态table仅当insert更改进行修改时
retract mode:任何情形都可以使用此模式,使用booleam值对insert 和 delete 操作进行标记
// append:
DataStream<Row> dsRow = tableEnv.toAppendStream(table, Row.class);
// append Tuple:
TupleTypeInfo<Tuple2<String, Integer>> tupleType = new TupleTypeInfo<>( Types.STRING(), Types.INT());
DataStream<Tuple2<String, Integer>> dsTuple = tableEnv.toAppendStream(table, tupleType);
// retract:
DataStream<Tuple2<Boolean, Row>> retractStream = tableEnv.toRetractStream(table, Row.class);
总结
1,将dataStream 和 dataset 转换为 表,
fromDatastream(stream), 对于schema会用默认的 f0, f1…的方式默认定义datastream的字段,字段类型按照stream的定义
2,将dataStream 和 dataset 转换为 视图 tableenv.createTemporaryView(“”, stream)
3, 将表转换为datastream 和 dataset , 有2种模式 append mode 、 retract mode
append mode:仅当动态table仅当insert更改进行修改时
retract mode:任何情形都可以使用此模式,使用booleam值对insert 和 delete 操作进行标记
4,将表转换为datastream -》 datastream dsrow = tableEnv.toAppendStream(table, row.class)
datastream> dsrow = tableEnv.toRetractStream(table, row.class) —true insert , false delete
5, 数据类型和table schema的映射 — 2种方式 基于位置的映射,基于字段名称映射
6,基于位置进行映射—基于位置 $(“myLong”), $(“myInt”)
7,基于名称的映射— 默认的字段 f0, f1…