QueryRecord
描述:
根据输入数据流的内容匹配一个或多个SQL查询。SQL查询的结果将作为输出数据流的内容。这可用于诸如特定字段的过滤,转换和行级过滤。可以重命名列,执行简单的计算和聚合等。组件配置有读取服务和写入服务,以便允许更加灵活的控制输入输出的数据格式。必须为组件配置至少一个用户自定义的属性。 自定义属性名将作为输出数据流的连线名,而自定义属性的值是一个SQL SELECT语句,用于指定如何转换/过滤输入数据。 SQL语句必须是有效的ANSI SQL规范(Apache Calcite)。如果转换失败,则原始数据流将路由到“failure”连线。否则,所有数据将被路由到关联的连线。如果写入服务选择使用继承模式(Schema),请务必注意,继承的模式将来自ResultSet,而不是输入的记录。还允许QueryRecord组件的单个实例具有多个SQL查询,每个查询返回一组不同的列和聚合。因此,派生的模式将没有模式名称,因此,如果从记录继承模式,则配置的写入服务不会尝试将模式名称作为属性编写,这一点很重要。有关更多信息,请参阅组件使用文档。
标签:
sql, query, calcite, route, record, transform, select, update, modify, etl, filter, record, csv, json, logs, text, avro, aggregate, 查询, 记录
参数:
如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置.
名字 | 默认值 | 允许值列表 | 描述 |
---|---|---|---|
读取服务 | 控制器服务API: RecordReaderFactory 实现: ParquetReader GrokReader SyslogReader Syslog5424Reader CSVReader AvroReader JsonPathReader JsonTreeReader ScriptedReader XMLReader | 指定用于解析传入数据和确定数据结构的服务 | |
写入服务 | 控制器服务API: RecordSetWriterFactory 实现: CSVRecordSetWriter FreeFormTextRecordSetWriter AvroRecordSetWriter JsonRecordSetWriter XMLRecordSetWriter ParquetRecordSetWriter ScriptedRecordSetWriter | 指定用于将结果写入数据流的服务 | |
包括零记录数据流 | 包含 | - 包含 - 不包含 | 对传入的数据流运行SQL语句时,如果结果没有数据,则此属性决定是否仍旧输出数据流 |
缓存模式(Schema) | 缓存 | - 缓存 - 不缓存 | 解析SQL查询并派生数据流的模式代价相对高昂。 如果设置缓存,则组件将缓存这些值,以便组件更高效,更快。 但是,如果这样做,则第一个数据流派生的模式必须能应用于所有后继的数据流。 如果所有数据流都没有完全相同的模式,或者SQL SELECT语句使用表达式语言,则此值应设置为false。 |
动态参数:
名字 | 值 | 描述 |
---|---|---|
The name of the relationship to route data to | A SQL SELECT statement that is used to determine what data should be routed to this relationship. | 每个用户自定义的属性都需要指定要在数据上执行的SQL SELECT语句,所选的数据将路由到名称为属性名称的连线 支持表达式语言 (支持流属性和变量) |
连线:
名字 | 描述 |
---|---|
failure | 如果数据流因任何原因处理失败(例如,SQL语句包含输入数据中不存在的列),则原始输入数据流将路由到此连线 |
original | 原始输入数据流被输出到该连线 |
动态连线:
根据用户设置可创建动态连线。
名字 | 描述 |
---|---|
<Property Name> | Each user-defined property defines a new Relationship for this Processor. |
读取属性:
未提供。
写入属性:
名字 | 描述 |
---|---|
mime.type | 将mime.type属性设置为写入服务指定的MIME类型 |
record.count | 选中查询的记录数 |
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。