AWS Lambda handler and S3 transport for parqcast.
Runs the parqcast export pipeline as a Lambda function, connecting directly to an Odoo PostgreSQL database and uploading Parquet files to S3.
| Package | Description |
|---|---|
parqcast-lambda |
Lambda entry point, direct psycopg2 adapter |
parqcast-transport-s3 |
S3/MinIO/LocalStack upload transport |
parqcast-collectors and parqcast-core (transitively) are not published to PyPI. Install from the latest main of datastructsro/parqcast:
pip install "parqcast-collectors @ git+https://github.com/datastructsro/parqcast.git@main#subdirectory=packages/parqcast-collectors"Or pin it via [tool.uv.sources] in your own pyproject.toml:
[tool.uv.sources]
parqcast-collectors = { git = "https://github.com/datastructsro/parqcast.git", subdirectory = "packages/parqcast-collectors", branch = "main" }-
Set environment variables on the Lambda function:
Variable Required Description DATABASE_URLyes PostgreSQL connection string COMPANYyes Odoo company name COMPANY_IDyes Odoo company ID S3_BUCKETyes Target S3 bucket S3_PREFIXno Key prefix (default: parqcast)S3_ENDPOINT_URLno For S3-compatible stores TIME_BUDGETno Seconds per tick (default: 270) -
Set the handler to
parqcast.lambda_handler.handler.
cd demo-lambda
sam build && sam local invoke -e event.jsonfrom parqcast.transport_s3 import S3Transport
transport = S3Transport(
bucket="my-bucket",
prefix="parqcast",
endpoint_url="http://localhost:9000", # MinIO
)
transport.upload_file("run-uuid", "products.parquet", file_obj)Built and maintained by DataStruct s.r.o. — an Odoo Official Partner based in the Czech Republic, specialising in demand forecasting and ERP implementation for manufacturing, retail, and logistics in the Czech–German–Polish triangle.
- See it in production: SAP→Odoo migration, 84% cost reduction
- Book a 30-min technical diagnostic: cal.com/oleg-popov-sjwko9/30min
- Questions / partnership: info@datastruct.tech
- Companion: parqcast (the exporter this runs) · foreqcast · parqcast-server
Apache-2.0