Apache NiFi 2.x处理器:ListDatabaseTables 2.3.0

Apache NiFi 2.x处理器:ListDatabaseTables 2.3.0

经验文章nimo972025-03-25 13:12:329A+A-

org.apache.nifi | nifi-standard-nar

描述

生成一组流文件(flow files),每个流文件包含与数据库连接中表的元数据相对应的属性。获取表的元数据后,在刷新间隔(若已设置)过去或手动清除状态之前,不会再次获取该表的元数据。

标签

database、jdbc、list、sql、table

输入要求

不允许

是否支持敏感动态属性

属性

  • Include Count:是否将表的行数作为流文件属性包含在内。这会影响性能,因为会为检索列表中的每个表生成一个数据库查询。
    • 显示名称:Include Count
    • 描述:是否将表的行数作为流文件属性包含在内。这会影响性能,因为会为检索列表中的每个表生成一个数据库查询。
    • API名称:list-db-include-count
    • 默认值:false
    • 允许值:true、false
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:是
  • Refresh Interval:在重置处理器状态之前要经过的时间,这会导致列出所有当前的表。在此时间间隔内,处理器可能会继续运行,但已经列出的表不会重新列出。不过,在处理器运行时,新添加的表会被列出。值为零意味着状态永远不会自动重置,用户必须手动清除状态。
    • 显示名称:Refresh Interval
    • 描述:在重置处理器状态之前要经过的时间,这会导致列出所有当前的表。在此时间间隔内,处理器可能会继续运行,但已经列出的表不会重新列出。不过,在处理器运行时,新添加的表会被列出。值为零意味着状态永远不会自动重置,用户必须手动清除状态。
    • API名称:list-db-refresh-interval
    • 默认值:0秒
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:是
  • Catalog:从中列出数据库表的目录名称。该名称必须与数据库中存储的目录名称匹配。如果未设置此属性,则目录名称不会用于缩小表的搜索范围。如果该属性设置为空字符串,则会列出没有目录的表。
    • 显示名称:Catalog
    • 描述:从中列出数据库表的目录名称。该名称必须与数据库中存储的目录名称匹配。如果未设置此属性,则目录名称不会用于缩小表的搜索范围。如果该属性设置为空字符串,则会列出没有目录的表。
    • API名称:listdb-tables-catalog
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:否
  • Database Connection Pooling Service:用于获取数据库连接的控制器服务。
    • 显示名称:Database Connection Pooling Service
    • 描述:用于获取数据库连接的控制器服务。
    • API名称:list-db-tables-db-connection
    • 服务接口:org.apache.nifi.dbcp.DBCPService
    • 实现类:org.apache.nifi.dbcp.DBCPConnectionPool、org.apache.nifi.dbcp.DBCPConnectionPoolLookup、org.apache.nifi.dbcp.HikariCPConnectionPool
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:是
  • Table Name Pattern:用于匹配数据库中表的模式。在模式中,“%” 表示匹配0个或多个字符的任意子字符串,“_” 表示匹配任意一个字符。该模式必须与数据库中存储的表名匹配。如果未设置此属性,则会检索所有表。
    • 显示名称:Table Name Pattern
    • 描述:用于匹配数据库中表的模式。在模式中,“%” 表示匹配0个或多个字符的任意子字符串,“_” 表示匹配任意一个字符。该模式必须与数据库中存储的表名匹配。如果未设置此属性,则会检索所有表。
    • API名称:list-db-tables-namepattern
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:否
  • Schema Pattern:用于匹配数据库中模式(schema)的模式。在模式中,“%” 表示匹配0个或多个字符的任意子字符串,“_” 表示匹配任意一个字符。该模式必须与数据库中存储的模式名称匹配。如果未设置此属性,则模式名称不会用于缩小表的搜索范围。如果该属性设置为空字符串,则会列出没有模式的表。
    • 显示名称:Schema Pattern
    • 描述:用于匹配数据库中模式(schema)的模式。在模式中,“%” 表示匹配0个或多个字符的任意子字符串,“_” 表示匹配任意一个字符。该模式必须与数据库中存储的模式名称匹配。如果未设置此属性,则模式名称不会用于缩小表的搜索范围。如果该属性设置为空字符串,则会列出没有模式的表。
    • API名称:list-db-tables-schema-pattern
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:否
  • Table Types:要包含的表类型的逗号分隔列表。例如,某些数据库支持TABLE和VIEW类型。如果未设置此属性,则会返回所有类型的表。
    • 显示名称:Table Types
    • 描述:要包含的表类型的逗号分隔列表。例如,某些数据库支持TABLE和VIEW类型。如果未设置此属性,则会返回所有类型的表。
    • API名称:list-db-tablestypes
    • 默认值:TABLE
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:否
  • Record Writer:指定用于创建列表的记录写入器。如果未指定,将为列出的每个实体创建一个流文件。如果指定了记录写入器,所有实体将被写入单个流文件,而不是为单个流文件添加属性。
    • 显示名称:Record Writer
    • 描述:指定用于创建列表的记录写入器。如果未指定,将为列出的每个实体创建一个流文件。如果指定了记录写入器,所有实体将被写入单个流文件,而不是为单个流文件添加属性。
    • API名称:recordwriter
    • 服务接口:org.apache.nifi.serialization.RecordSetWriterFactory
    • 实现类:org.apache.nifi.avro.AvroRecordSetWriter、org.apache.nifi.csv.CSVRecordSetWriter、org.apache.nifi.text.FreeFormTextRecordSetWriter、org.apache.nifi.json.JsonRecordSetWriter、org.apache.nifi.lookup.RecordSetWriterLookup、org.apache.nifi.record.script.ScriptedRecordSetWriter、org.apache.nifi.xml.XMLRecordSetWriter
    • 表达式语言作用域:不支持
    • 是否敏感:否
    • 是否必需:否

状态管理

作用域

描述

CLUSTER

在执行表的列出操作后,查询的时间戳会被存储。这使得处理器在下次运行时无需重新列出表。在处理器属性中指定刷新间隔意味着,当处理器检测到间隔已过,状态将被重置,从而重新列出表。此处理器仅适用于在主节点上运行。

关系

名称

描述

success

所有接收到的流文件都被路由到success

写入属性

名称

描述

db.table.name

包含来自连接的数据库表的名称

db.table.catalog

包含表所属目录的名称(可能为null)

db.table.schema

包含表所属模式的名称(可能为null)

db.table.fullname

包含完全限定的表名(可能包括目录、模式等)

db.table.type

包含来自连接的数据库表的类型。常见类型有 “TABLE”、“VIEW”、“SYSTEM TABLE”、“GLOBAL TEMPORARY”、“LOCAL TEMPORARY”、“ALIAS”、“SYNONYM”

db.table.remarks

包含来自连接的数据库表的名称

db.table.count

包含表中的行数

涉及其他组件的用例

对数据库进行全量加载,从所有表或特定表集中检索所有行

  • 描述:对数据库进行全量加载,从所有表或特定表集中检索所有行。
  • 关键词:full load、rdbms、jdbc、database
  • 处理器配置:org.apache.nifi.processors.standard.ListDatabaseTables

步骤

纯文本描述

1

配置 “Database Connection Pooling Service” 属性,指定适用于与你的数据库进行交互的连接池。

2

不设置RecordWriter属性。

3


4

将 “Catalog” 属性设置为数据库目录的名称;留空则包含所有目录。

5

将 “Schema Pattern” 属性设置为与所有应包含的数据库模式匹配的Java正则表达式;留空则包含所有模式。

6

将 “Table Name Pattern” 属性设置为与所有应包含的表名匹配的Java正则表达式;留空则包含所有表。

7


8

将 “success” 关系连接到GenerateTableFetch。

org.apache.nifi.processors.standard.GenerateTableFetch

步骤

纯文本描述

1

配置 “Database Connection Pooling Service” 属性,指定与在ListDatabaseTables中使用的相同连接池。

2

设置 “Database Type” 属性,使其与你的RDBMS供应商的相应值匹配。

3

设置 “Table Name” 为 ${db.table.fullname}。

4

不设置RecordWriter属性。

org.apache.nifi.processors.standard.ExecuteSQLRecord

步骤

纯文本描述

1

将 “success” 关系连接到ExecuteSQLRecord。

2

配置 “Database Connection Pooling Service” 属性,指定与在ListDatabaseTables中使用的相同连接池。

3

配置 “Record Writer” 属性,指定适合所需输出数据类型的记录写入器。

4

不设置 “SQL select query”。

5

将 “success” 关系连接到流中的下一个处理器。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7