Loading Data from Coinbase
to Timescale
Using dlt
in Python
We will be using the dlt PostgreSQL destination to connect to Timescale. You can get the connection string for your timescale database as described in the Timescale Docs.
Join our Slack community or book a call with our support engineer Violetta.
Coinbase
is a leading cryptocurrency exchange platform that enables users to buy, sell, and manage various digital assets. It offers a secure and user-friendly interface with features like real-time price tracking, secure wallets, and advanced trading options. Timescale
is built on PostgreSQL and is designed to handle demanding workloads such as time series, vector, events, and analytics data. This documentation covers how to load data from Coinbase
into Timescale
using the open-source python library dlt
. The integration allows seamless management of digital currency portfolios with the robust capabilities of Timescale
. Further information about Coinbase
can be found at Coinbase.
dlt
Key Features
- Governance Support:
dlt
pipelines offer robust governance through pipeline metadata, schema enforcement, and schema change alerts. Learn more - Scalability:
dlt
leverages iterators, chunking, and parallelization techniques for efficient processing of large datasets. Learn more - Schema Enforcement and Curation: Ensure data consistency and quality by enforcing and curating schemas in
dlt
pipelines. Learn more - Data Types:
dlt
supports various data types including text, double, bool, timestamp, date, time, bigint, binary, complex, decimal, and wei. Learn more - Advanced Deployment Options: Deploy from branches, local folders, or git repos using
dlt init
. 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 coinbase --url https://raw.githubusercontent.com/dlt-hub/openapi-specs/main/open_api_specs/Business/coinbase.yaml --global-limit 2
cd coinbase_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:
coinbase_pipeline/