Skip to main content

Singer.io tap 用于从 Dayforce REST API v1 中提取数据

项目描述

自来水天力

PyPI 版本 许可证:GPL v3 Python 版本 构建状态 可维护性

用于从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 格式的配置文件作为参数。此配置文件有四个必填字段:

  1. username:有效的 Dayforce Web 服务用户帐户用户名。
  2. password:有效的 Dayforce Web 服务用户帐户密码。
  3. client_namespace:将插入到请求 URL 中的有效客户端名称(例如公司名称)。
  4. start_date: 没有提供时可依赖的日期state.json。这决定了点击在 Dayforce 平台中查找数据的时间。

需要注意的是,附加到配置文件中使用的用户帐户的角色必须至少具有“Web 服务”功能,以及启用“读取数据”子功能。

一个基本的 Dayforce 配置文件可能如下所示:

{
  "username": "foo",
  "password": "bar",
  "client_namespace": "foo_bar",
  "start_date": "2019-01-01T00:00:00Z"
}

当前版本的 Tap 同步了四个不同的Streams

  1. Employees:端点文档
  2. EmployeePunches:端点文档
  3. EmployeeRawPunches 端点文档
  4. PaySummaryReport 端点文档

发现

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 会偶尔发出MetricSchemaRecordState 消息。您可以通过将消息重定向到文件来在运行之间保持状态:

$ ~/.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 格式的配置。此配置文件有两个必填字段:

  1. client_id:与您将向其发送数据的 Stitch Data 帐户关联的 ID。
  2. token:与Stitch Data 帐户中的特定Import API 集成关联的令牌。
  3. small_batch_url:默认为“ https://api.stitchdata.com/v2/import/batch
  4. big_batch_url:默认为“ https://api.stitchdata.com/v2/import/batch
  5. 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

贡献

  1. 贡献的第一步是获取源代码的副本。首先,在 GitHub 上分叉tap-dayforce。然后,cd进入您希望源代码副本存在的目录并克隆源代码:
$ cd repos
$ git clone git@github.com:YourGitHubName/tap-dayforce.git
  1. 现在您的机器上有源代码的副本,创建并激活虚拟环境tap-dayforce
$ python3 -mvenv ~/.venvs/tap-dayforce
$ source ~/.venvs/tap-dayforce/bin/activate
  1. 进入虚拟环境后,make dev_install在存储库的根目录下运行:
$ (tap-dayforce) make dev_install
  1. 在适当的 python 环境中运行tox测试套件以确保一切正常:
$ (tap-dayforce) tox -e py37

要在提交更改之前使用isortflake8格式化您的代码,请运行以下命令:

$ (tap-dayforce) make isort
$ (tap-dayforce) make flake8

一旦您确认您的更改有效并且测试套件通过,请随时发布 PR!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

tap_dayforce-0.3.2.tar.gz (17.3 kB 查看哈希

已上传 source

内置分布

tap_dayforce-0.3.2-py3-none-any.whl (28.1 kB 查看哈希

已上传 py3