Singer.io tap 用于从 Dayforce REST API v1 中提取数据
项目描述
自来水天力
用于从Dayforce REST API v1中提取数据的Singer Tap 。
安装
由于包依赖项往往会在各种分接头和目标之间发生冲突,因此 Singer建议将分接头和目标安装到它们自己的隔离虚拟环境中:
安装 Dayforce Tap
$ python3 -m venv ~/.venvs/tap-dayforce
$ source ~/.venvs/tap-dayforce/bin/activate
$ pip3 install tap-dayforce
$ deactivate
安装缝合目标(可选)
$ python3 -m venv ~/.venvs/target-stitch
$ source ~/.venvs/target-stitch/bin/activate
$ pip3 install target-stitch
$ deactivate
配置
Tap 接受 JSON 格式的配置文件作为参数。此配置文件有四个必填字段:
username:有效的 Dayforce Web 服务用户帐户用户名。password:有效的 Dayforce Web 服务用户帐户密码。client_namespace:将插入到请求 URL 中的有效客户端名称(例如公司名称)。start_date: 没有提供时可依赖的日期state.json。这决定了点击在 Dayforce 平台中查找数据的时间。
需要注意的是,附加到配置文件中使用的用户帐户的角色必须至少具有“Web 服务”功能,以及启用“读取数据”子功能。
一个基本的 Dayforce 配置文件可能如下所示:
{
"username": "foo",
"password": "bar",
"client_namespace": "foo_bar",
"start_date": "2019-01-01T00:00:00Z"
}
流
当前版本的 Tap 同步了四个不同的Streams:
发现
Singer tap 描述流通过发现过程支持的数据。--discover您可以通过在运行时传递标志来在发现模式下运行 Dayforce Tap :
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --discover
点击会生成一个目录到标准输出。要将目录传递给文件,只需将其重定向到文件:
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --discover > catalog.json
默认情况下,发现模式不会选择所有流进行复制。要指示发现模式选择所有流进行复制,请使用以下--select-all标志:
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --discover --select-all > catalog.json
同步到标准输出
在同步模式下运行一个水龙头将从各种选定的流中提取数据。为了在同步模式下运行 tap 并将消息发送到 stdout,请传递有效的配置文件和目录文件:
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --catalog=catalog.json
Tap 会偶尔发出Metric、Schema、Record和State 消息。您可以通过将消息重定向到文件来在运行之间保持状态:
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --catalog=catalog.json >> state.json
$ tail -1 state.json > state.json.tmp
$ mv state.json.tmp state.json
同步到针迹
您还可以将点击的输出发送到Stitch Data以加载到数据仓库中。为此,首先为 Stitch 创建 JSON 格式的配置。此配置文件有两个必填字段:
client_id:与您将向其发送数据的 Stitch Data 帐户关联的 ID。token:与Stitch Data 帐户中的特定Import API 集成关联的令牌。small_batch_url:默认为“ https://api.stitchdata.com/v2/import/batch ”big_batch_url:默认为“ https://api.stitchdata.com/v2/import/batch ”batch_size_preferences:默认为{}
示例配置文件如下所示:
{
"token": "foobar",
"client_id": 12345,
"small_batch_url": "https://api.stitchdata.com/v2/import/batch",
"big_batch_url": "https://api.stitchdata.com/v2/import/batch",
"batch_size_preferences": {}
}
创建配置文件后,只需将 tap 的输出通过管道传输到 Stitch Data 目标,并为目标提供新创建的配置文件:
$ ~/.venvs/tap-dayforce/bin/tap-dayforce --config=config/dayforce.config.json --catalog=catalog.json --state=state.json | ~/.venvs/target-stitch/bin/target-stitch --config=config/stitch.config.json >> state.json
$ tail -1 state.json > state.json.tmp
$ mv state.json.tmp state.json
贡献
- 贡献的第一步是获取源代码的副本。首先,在 GitHub 上分叉
tap-dayforce。然后,cd进入您希望源代码副本存在的目录并克隆源代码:
$ cd repos
$ git clone git@github.com:YourGitHubName/tap-dayforce.git
- 现在您的机器上有源代码的副本,创建并激活虚拟环境
tap-dayforce:
$ python3 -mvenv ~/.venvs/tap-dayforce
$ source ~/.venvs/tap-dayforce/bin/activate
- 进入虚拟环境后,
make dev_install在存储库的根目录下运行:
$ (tap-dayforce) make dev_install
- 在适当的 python 环境中运行tox测试套件以确保一切正常:
$ (tap-dayforce) tox -e py37
要在提交更改之前使用isort和flake8格式化您的代码,请运行以下命令:
$ (tap-dayforce) make isort
$ (tap-dayforce) make flake8
一旦您确认您的更改有效并且测试套件通过,请随时发布 PR!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
tap_dayforce -0.3.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c0edef95bc0f193003aec3bf4401f39c3d3f745428b72169eb602bd381ac2168 |
|
| MD5 | 371a9cb5b29aa23d939a5d0e232cbe12 |
|
| 布莱克2-256 | 3c88883fc36130a2cffc1e7f22585b1c4db7af472974229c9b4a4be8ef93acf1 |
tap_dayforce -0.3.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4adfb8f1f6c33b6f494627307ac03dfc463939bcb3a8c5f96ef83da7a07cdf38 |
|
| MD5 | 2affa74cf551a0787cbd118e6b4d1a09 |
|
| 布莱克2-256 | 4f874315d91b1bf12b1a1f2ef62dfbcadcd114529ed5e24b376cd95b846686ab |