流集数据收集器管道概念和设计:动态数据

动态数据

数据分批通过管道。这是它的工作原理:

当源从源系统读取数据或数据从源系统到达时,源会创建一个批处理,并记录偏移量。偏移量是原点停止读取的位置。

当批处理已满或批处理等待时间限制过时,源发送批处理。批处理在管道中从一个处理器移动到另一个处理器,直到到达管道目标。

目标将批处理写入目标系统,数据收集器在内部提交偏移量。根据管道传递保证,数据收集器要么在写入任何目标系统后立即提交偏移量,要么在收到来自所有目标系统的写入确认后提交偏移量。偏移量提交后,源阶段将创建一个新批次。

请注意,这描述了常规管道行为。行为可能因特定管道配置而异。例如,对于卡夫卡使用者,偏移量存储在卡夫卡或动物园守护者中。对于不存储数据的源系统(如 Omniture 和 HTTP 客户端),不会存储偏移量,因为它们不相关。

单线程和多线程管道

上面的信息描述了一个标准的单线程管道 - 原点创建一个批处理并通过管道传递它,只有在处理上一个批处理后才创建新批处理。

某些源可以生成多个线程,以便在多线程管道中启用并行处理。在多线程管道中,配置源以创建要使用的线程数或并发量。数据收集器基于管道 Max Runners 属性创建多个管道运行程序,以执行管道处理。每个线程连接到源系统,创建一批数据,并将该批传递给可用的管道运行程序。

每个管道运行程序一次处理一个批处理,就像在单个线程上运行的管道一样。当数据流变慢时,管道运行器会闲置等待,直到需要它们,并定期生成一个空批处理。可以配置“运行器空闲时间”管道属性以指定间隔或选择退出空批处理生成。

本指南中对管道的所有常规引用都介绍了单线程管道,但此信息通常适用于多线程管道。有关特定于多线程管道的更多详细信息,请参阅多线程管道概述。

交货保证

配置管道时,可以定义如何处理数据:是否要防止数据丢失或重复数据?

“传递保证”管道属性提供以下选项:

至少一次

确保管道处理所有数据。

如果故障导致数据收集器在处理一批数据时停止,则当它重新启动时,它将重新处理该批数据。此选项可确保不会丢失任何数据。

使用此选项,数据收集器在收到来自目标系统的写入确认后提交偏移量。如果在数据收集器将数据传递到目标系统之后但在接收确认并提交偏移之前发生故障,则目标系统中最多可能会复制一个批处理数据。

最多一次

确保不会多次处理数据。

如果故障导致数据收集器在处理一批数据时停止,则当它启动时,它将开始处理下一批数据。此选项可避免由于重新处理而导致目标中的数据重复。

使用此选项,数据收集器在写入后提交偏移量,而无需等待目标系统的确认。如果在数据收集器将数据传递到目标并提交偏移量后发生故障,则最多一批数据可能不会写入目标系统。

数据收集器数据类型

在管道中,数据收集器使用以下数据类型,在读取或写入外部系统时根据需要转换数据:
数据类型 描述: __________
布尔 真或假。对应于布尔 Java 数据类型。
字节 8 位有符号整数。范围从 -128 到 127。对应于字节 Java 数据类型。
BYTE_ARRAY 字节值数组。对应于字节 [] Java 数据类型。
存储单个 Unicode 字符。对应于字符 Java 数据类型。
日期 包括日、月和四位数年份的时间对象。不包括时区。
日期时间 包括日、月、四位数年、小时、分钟和秒的时间对象。精确到毫秒。不包括时区。
十进制 任意精度的有符号十进制数。对应于十进制 Java 类。
64 位双精度 IEEE 754 浮点。对应于双 Java 数据类型。
FILE_REF 整个文件格式的内部类型。
32 位单精度 IEEE 754 浮点。对应于浮点型 Java 数据类型。
整数 32 位有符号整数。对应于初始化的 Java 数据类型。
列表 嵌套类型。包含枚举的值列表。值可以是任何类型,列表中的每个值可以是不同的类型。
LIST_MAP 嵌套类型。包含按特定顺序保存的键值对的列表。键始终是字符串。值可以是任何类型,每个值可以是不同的类型。
64 位有符号整数。范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。对应于长爪哇数据类型。
地图 嵌套类型。包含键值对的列表。键始终是字符串。值可以是任何类型,每个值可以是不同的类型。
16 位有符号整数。范围从 -32,768 到 32767。对应于短 Java 数据类型。
字符串 发短信。对应于字符串 Java 类。
时间 包含小时、分钟和秒的时间对象。精确到毫秒。不包括时区。
ZONED_DATETIME 包括日、月、四位数字年、小时、分钟、秒和时区的时间对象。精确到纳秒。对应于“区域日期时间 Java”类。

你可能感兴趣的:(大数据,流集数据收集器,数据集,大数据,java)