Loading Data from Crypt API
to AWS S3
with dlt
in Python
Join our Slack community or book a call with our support engineer Violetta.
Crypt API
is a versatile cryptocurrency payments API that allows businesses to accept payments in various cryptocurrencies with ease. It provides a secure and simple interface for integrating cryptocurrency transactions into your platform. This documentation explains how to load data from Crypt API
to AWS S3
using the open-source Python library dlt
. The AWS S3
destination stores data in AWS S3
, enabling the creation of data lakes. You can upload data as JSONL, Parquet, or CSV. With dlt
, you can streamline the process of transferring cryptocurrency payment data to AWS S3
, leveraging features like real-time exchange rates and automated payment processing. For more information on Crypt API
, visit cryptapi.io.
dlt
Key Features
- Initialise the dlt project: Start by initializing a new dlt project with a specific source and destination. Learn more
- Governance Support: Leverage pipeline metadata, schema enforcement, and schema change alerts for robust governance. Learn more
- AWS S3 Setup: Configure AWS S3 bucket storage and credentials for your dlt pipeline. Learn more
- Google Storage: Use Google cloud credentials for setting up Google Storage as a destination. Learn more
- Authentication Types: Snowflake destination supports password, key pair, and external authentication types. Learn more
Getting started with your pipeline locally
dlt-init-openapi
0. Prerequisites
dlt
and dlt-init-openapi
requires Python 3.9 or higher. Additionally, you need to have the pip
package manager installed, and we recommend using a virtual environment to manage your dependencies. You can learn more about preparing your computer for dlt in our installation reference.
1. Install dlt and dlt-init-openapi
First you need to install the dlt-init-openapi
cli tool.
pip install dlt-init-openapi
The dlt-init-openapi
cli is a powerful generator which you can use to turn any OpenAPI spec into a dlt
source to ingest data from that api. The quality of the generator source is dependent on how well the API is designed and how accurate the OpenAPI spec you are using is. You may need to make tweaks to the generated code, you can learn more about this here.
# generate pipeline
# NOTE: add_limit adds a global limit, you can remove this later
# NOTE: you will need to select which endpoints to render, you
# can just hit Enter and all will be rendered.
dlt-init-openapi crypt_api --url https://raw.githubusercontent.com/dlt-hub/openapi-specs/main/open_api_specs/Business/crypt_api.yaml --global-limit 2
cd crypt_api_pipeline
# install generated requirements
pip install -r requirements.txt
The last command will install the required dependencies for your pipeline. The dependencies are listed in the requirements.txt
:
dlt>=0.4.12
You now have the following folder structure in your project:
crypt_api_pipeline/
├── .dlt/
│ ├── config.toml # configs for your pipeline
│ └── secrets.toml # secrets for your pipeline
├── rest_api/ # The rest api verified source
│ └── ...