tap-hellobaton
is a Singer tap for hellobaton.
Built with the Meltano Tap SDK for Singer Taps.
Install directly from the repo source using pip
pip install git+https://github.com/dluftspring/tap-hellobaton.git
Install the dev dependencies using poetry
~$ poetry install
Then make sure the tests are passing locally
~$ poetry run pytest
A full list of supported settings and capabilities for this tap is available by running:
tap-hellobaton --about
You'll need to supply three config parameters
Parameter | Description | Type | Env Variable Alias |
---|---|---|---|
company | Your company instance used in the api url | string (required) | TAP_HELLOBATON_COMPANY |
api_key | Api key for authentication | string (required) | TAP_HELLOBATON_API_KEY |
user_agent | User agent to appear in monitoring jobs | string (optional) | TAP_HELLOBATON_USER_AGENT |
You can set these parameters as environment variables or by specifying a json configuration file with the following info
{
"company": "<YOUR COMPANY>",
"api_key": "<YOUR API KEY>",
"user_agent": "<USER AGENT STRING>"
}
You can easily run tap-hellobaton
by itself or in a pipeline using Meltano.
To see a catalog of the available json schemas you can run the tap in discovery mode
tap-hellobaton --version
tap-hellobaton --help
tap-hellobaton --config CONFIG_FILE_PATH --discover > ./catalog.json
To execute the tap directly from the cli
tap-hellobaton --config CONFIG_FILE_PATH
Running ELT with Meltano
Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.
First install Meltano (if you haven't already) and any needed plugins. It's recommended that you do this in a virtual environment
# Install meltano
pip install meltano
# Initialize meltano within this directory
meltano init
This will create a new meltano project in your working directory. You can edit the meltano.yml
file with the following minimal configurations
version: 1
send_anonymous_usage_stats: true
project_id: c817018d-de7b-45fb-9fff-260fa84ddaf9
plugins:
extractors:
- name: tap-hellobaton
namespace: tap_hellobaton
pip_url: git+https://github.com/dluftspring/tap-hellobaton.git
executable: tap-hellobaton
capabilities:
- catalog
- state
- discover
settings:
- name: company
kind: string
- name: api_key
kind: password
- name: user_agent
kind: string
config:
company: YOUR_COMPANY
user_agent: Singer Tap for hellobaton
load_schema: YOUR_LOAD_SCHEMA
You can now install the tap with meltano using
meltano install
Lastly, you should add the api key to your configuration
meltano config tap-hellobaton set api_key YOUR_API_KEY
#now we can check if all the configs are properly set
meltano config tap-hellobaton list
company [env: TAP_HELLOBATON_COMPANY] current value: 'YOUR COMPANY' (from `meltano.yml`)
api_key [env: TAP_HELLOBATON_API_KEY] current value: 'YOUR API KEY' (from `.env`)
user_agent [env: TAP_HELLOBATON_USER_AGENT] current value: 'YOUR USER AGENT' (from `meltano.yml`)
Now you can test and orchestrate using Meltano:
# Test invocation:
meltano invoke tap-hellobaton --version
# OR run a test `elt` pipeline:
meltano elt tap-hellobaton target-jsonl
# Google bigquery example
meltano elt tap-hellobaton target-bigquery
Note that to use the target-jsonl with a new meltano project you'll have to add the configuration to your meltano.yml
project file and install the plugin. NOTE: make sure your destination path exists in the project directory or the command will throw an error
- name: target-jsonl
variant: andyh1203
pip_url: target-jsonl
config:
destination_path: load/jsonl_target_tests
To use the target-bigquery with a new meltano project you'll have to add the configuration to your meltano.yml
project file and install the plugin. Follow the instructions to configure the bigquery target.
# For bigquery
loaders:
- name: target-bigquery
variant: adswerve
pip_url: git+https://github.com/adswerve/target-bigquery.git@0.12.2
config:
project_id: {your gcp project}
dataset_id: {your gcp dataset id}
validate_records: true
settings:
- name: project_id
kind: string
- name: dataset_id
kind: password
- name: location
kind: string
- name: credentials_path
kind: string
- name: add_metadata_columns
kind: boolean