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:
dltpipelines offer robust governance through pipeline metadata, schema enforcement, and schema change alerts. Learn more - Scalability:
dltleverages 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
dltpipelines. Learn more - Data Types:
dltsupports 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-openapi0. 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/