lht: Lakehouse Tools¶
Bring Your Own Data Warehouse.
lht is an open-source Python library and CLI for moving Salesforce data into your warehouse and back, on your own infrastructure. It uses the Salesforce Bulk API 2.0 for every read and write.
pip install "lht[snowflake]" # or "lht[databricks]"
What you can do¶
- Sync Salesforce → Snowflake: a full load first, then incremental
MERGEs onLastModifiedDate. Tables and types are created for you. See Getting started. - Reverse ETL, warehouse → Salesforce: upsert, insert, update or delete records from any Snowflake or Databricks
SELECT. See Reverse ETL. - Reverse ETL from Databricks: the direction Databricks has no connector for, running on your own compute from a notebook or a Job. See Databricks.
- Merge duplicate records in Salesforce from
MasterId/LoserIdpairs computed in the warehouse. See Merging records. - Manage Bulk API 2.0 jobs: list, inspect, delete and download results. See CLI reference.
Where to go next¶
| I want to… | Read |
|---|---|
| Install lht and run my first sync | Getting started |
| Set up the Salesforce app and Snowflake key pair | Authentication |
| Look up a command or flag | CLI reference |
| Call lht from Python, Airflow or a notebook | Python API |
| Push data into Salesforce from Databricks | Databricks |
| Understand how incremental sync decides what to load | Intelligent sync internals |
| Find answers to common questions | FAQ |
Support¶
- Questions and setup help: GitHub Discussions → Q&A
- Bugs and feature requests: GitHub Issues
- Security vulnerabilities: report privately; see SECURITY.md