目录
- 概述
- [Data Sinks](#Data Sinks)
概述
此篇是 Flink数据流API编程指南-上
的补充,链接。
Data Sinks
Data sinks消费数据流并向文件、sockets、外部存储系统或打印它们, Flink 提供了几种内置的写入的方式:
-
writeAsText() / TextOutputFormat -将元素逐行写入字符串。通过调用每个元素的toString()方法获得string。
-
writeAsCsv(...) / CsvOutputFormat - 将元组写入以逗号分隔的值文件。行和字段分隔符是可配置的。每个字段的值来自对象的toString()方法。
-
print() / printToErr() - 打印标准输出/标准错误流中每个元素的toString()值。可选地,可以提供一个前缀(msg),它被附加到输出。这可以帮助区分不同的打印调用。如果并行度大于1,输出也将加上产生输出的任务的标识符。
-
writeUsingOutputFormat() / FileOutputFormat - 支持方法和基类用于自定义文件输出。支持自定义对象到字节的转换。
-
writeToSocket - 根据SerializationSchema将元素写入socket
-
addSink -调用自定义接收函数。Flink与其他系统(如Apache Kafka)的连接器捆绑在一起,这些系统被实现为接收函数。
注意,数据流上的 write*()
方法主要用于调试目的。它们不参与Flink的检查点,这意味着这些函数通常具有至少一次的语义。将数据刷新到目标系统取决于OutputFormat的实现。这意味着并非发送到OutputFormat的所有元素都会立即显示在目标系统中。此外,在失败的情况下,这些记录可能会丢失。