QueryAirtableTable Processor
描述
从 Airtable 表查询记录。 根据记录的最后修改时间增量检索记录。 还可以通过设置“自定义过滤器”属性来进一步过滤记录,该属性支持 Airtable API 提供的公式。 该处理器仅在主节点上运行。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| API URL | https://api.airtable.com/v0 | Airtable REST API 的 URL,包括 API 的域和路径(例如 https://api.airtable.com/v0)。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Personal Access Token | | 在查询中使用的个人访问令牌 (PAT)。 应在 Airtable 的帐户页面上生成。 敏感属性:是 | |
| Base ID | | 需要查询的Airtable底座ID。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Table ID | | 要查询的Airtable表的名称或ID。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Fields | | 要从表中查询的字段的逗号分隔列表。 字段的名称和 ID 都可以使用。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Custom Filter | | 按 Airtable 的公式过滤记录。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Query Time Window Lag | 3 s | 应用于查询时间窗口终点的滞后量。设置此属性以避免在本地机器和 Airtable 服务器的时钟不同步时遗漏记录。必须大于或等于 1 秒。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Web Client Service Provider | | 控制器服务 API:WebClientServiceProvidercn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于 Airtable REST API 请求的 Web 客户端服务提供商 |
| Query Page Size | | 页面中要获取的记录数。 应介于 1 到 100 之间(含 1 和 100)。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Max Records Per FlowFile | | 单个 FlowFile 中包含的最大结果记录数。这将允许您将非常大的结果集拆分为多个 FlowFile。如果未指定值,则所有记录都在单个 FlowFile 中返回。 支持表达式语言:是(仅使用环境/系统变量求值) |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
success | 对于因成功查询而创建的 FlowFiles。 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
record.count | 设置 FlowFile 中的记录数。 |
fragment.identifier | 如果设置了'每个 FlowFile 的最大记录数',则来自同一查询结果集的所有 FlowFile 的 fragment.identifier 属性将具有相同的值。然后可以使用此值来关联结果。 |
fragment.count | 如果设置了'每个 FlowFile 的最大记录数',则这是单个结果集产生的 FlowFile 总数。可以与 fragment.identifier 属性结合使用,以了解有多少 FlowFile 属于同一传入结果集。 |
fragment.index | 如果设置了'每个 FlowFile 的最大记录数',则此 FlowFile 在从同一结果集 FlowFile 派生的传出 FlowFile 列表中的位置。可以与 fragment.identifier 属性结合使用,以了解哪些 FlowFile 来自同一查询结果集以及 FlowFile 的产生顺序 |
状态管理
| 作用域 | 描述 |
|---|---|
| CLUSTER | 存储上次成功查询的时间以启用增量加载。初始查询返回表中的所有记录,每个后续查询按最后修改时间过滤记录。换句话说,如果在上次成功查询后更新了记录,则下次查询仅返回更新后的记录。状态跨集群存储,因此此处理器只能运行在主节点上,如果选择了新的主节点,新节点可以从上一个节点停止的地方继续,而不会重复数据。 |
受限 (Restricted)
该组件不受限。
输入要求
该组件不允许有传入连接。
详细说明
QueryAirtableTable
说明
Airtable 是一种电子表格与数据库的混合体。在 Airtable 中, 应用称为 base,每个 base 可以有多个表。表由记录(行)组成, 每条记录可以有多个字段(列)。QueryAirtableTable Processor 可以通过 Airtable 的 REST API 从单个 base 和表中 查询记录。该 Processor 利用流(stream)来处理大量记录。它也 能像数据库 Processor 一样,把大的记录集拆分为多个 FlowFile。
Personal Access Token
请注意,API Key 已被弃用,Airtable 现在提供 Personal Access Token(PAT)。Airtable REST API 调用需要在 请求中传递 PAT。生成 PAT 需要一个 Airtable 账号。
API 速率限制
为避免瓶颈,Airtable REST API 对每个 base 可发送的请求数 有限制。目前该限制为每个 base 每秒 5 个请求。如果超过该 限制,30 秒内不能再发起请求。你需要通过合理配置 Yield Duration 和 Run Schedule 来处理该速率限制。建议从 默认设置开始,出现速率限制问题时再同时调大这两个参数。
Metadata API
目前 Airtable 的 Metadata API 不稳定,我们暂不提供使用方式。 在它稳定之前,你可以用带 JsonTreeReader 的 ConvertRecord 或 MergeRecord Processor 读取内容,并将其转换为带 schema 的 Record。