Singer tap for StackExchange,使用Meltano SDK为Singer Taps构建。
项目描述
tap-stackexchange
Singer tap for StackExchange API。
使用Meltano SDK为Singer Taps和目标构建。
功能
同步
目录
状态
发现
设置
设置 | 必需 | 默认 | 描述 |
---|---|---|---|
key | False | None | 传递此信息以获得更高的请求配额 |
site | False | stackoverflow.com | StackExchange网站 |
tags | False | None | 问题标签 |
start_date | False | None | 同步的最早期记录日期 |
有关支持的设置和功能的完整列表,请运行:tap-stackexchange --about
自定义过滤器
StackExchange API支持许多自定义过滤器,可用于包含或排除响应对象中的某些字段。此应用程序具有以下参数的内置过滤器
-
include
参数 描述 question.comment_count
问题上的评论数量 tag.last_activity_date
标签的最后活动日期 -
unsafe=false
更新内置过滤器
要更新内置过滤器,请编辑tap_stackexchange/tap.py
中的FILTER_ID
常量。
要生成新的过滤器,请使用 尝试它 按钮,访问 StackExchange API 文档,将内置过滤器作为 base
参数。
使用自定义过滤器
要使用自定义过滤器,将 filter
设置为过滤器 ID。请注意,如果您使用自定义过滤器,则需要使用包含您要同步的字段的自定义目录。也就是说,您需要
- 将默认目录写入文件:
tap-stackexchange --discover > catalog.json
- 编辑目录文件以包含默认 API 过滤器未包含的字段
- 使用自定义目录运行 tap:
tap-stackexchange --config config.json --catalog catalog.json
安装
pipx install git+https://github.com/edgarrmondragon/tap-stackexchange.git
源身份验证和授权
在 Stack Apps 上注册一个 新应用 并复制生成的 key
。
用法
您可以通过单独运行或通过 Meltano 的管道来轻松运行 tap-stackexchange
。
直接执行 Tap
tap-stackexchange --version
tap-stackexchange --help
tap-stackexchange --config CONFIG --discover > ./catalog.json
初始化您的开发环境
pipx install poetry
poetry install
使用 Meltano 进行测试
注意:此 Tap 适用于任何 Singer 环境,无需 Meltano。这里提供示例仅为了方便和简化端到端编排场景。
您的项目已包含一个自定义的 meltano.yml
项目文件。打开 meltano.yml
并按照文件中列出的任何 "待办事项" 进行操作。
接下来,安装 Meltano(如果您尚未安装)和任何所需的插件
# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-stackexchange
meltano install
现在您可以使用 Meltano 进行测试和编排
# Test invocation:
meltano invoke tap-stackexchange --version
# OR run a test `elt` pipeline:
meltano elt tap-stackexchange target-sqlite --job_id=stackexchange-sqlite
# Runtime configuration
TAP_STACKEXCHANGE__LOAD_SCHEMA=dragon_ball_gt \
TAP_STACKEXCHANGE_SITE=anime \
TAP_STACKEXCHANGE_TAGS='["dragon-ball-gt"]' \
meltano elt tap-stackexchange target-sqlite
SDK 开发指南
有关如何使用 SDK 开发您自己的 taps 和 targets 的更多信息,请参阅 开发指南。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。