What Pixeltable Replaces
Most multimodal AI stacks look like this: blob storage for media, a relational database for metadata, a vector database for embeddings, an orchestrator for scheduling, and custom glue code holding it all together.- Traditional Stack
- With Pixeltable
5+ services to deploy and maintain: blob storage, orchestrator, relational DB, vector DB, cache — plus custom retry logic, rate limiting, sync scripts, and error handling to wire them together.
Systems Pixeltable Replaces
You don’t install, configure, or manage these — Pixeltable handles them natively.Tools Pixeltable Abstracts
These tools run under the hood, but you interact through a cleaner interface. This is a sample — Pixeltable wraps 30+ AI providers, dozens of built-in functions for media and data processing, and supports any Python library via@pxt.udf.
What Pixeltable Doesn’t Replace
You still need these — Pixeltable is a data layer, not a full application framework.Deployment Decision Guide
Pixeltable supports three production deployment patterns. Choose based on your constraints:Technical Capabilities (Both)
Regardless of deployment mode, you get:- Multimodal Types: Native handling of Video, Document, Audio, Image, JSON.
- Computed Columns: Automatic incremental updates and dependency tracking.
- Views & Iterators: Built-in logic for chunking documents, extracting frames, etc.
- Model Orchestration: Rate-limited API calls to OpenAI, Anthropic, Gemini, local models.
- Data Interoperability: Import/export CSV, JSON, Parquet, PyTorch, LanceDB, pandas.
- Configurable Media Storage: Per-column destination (local or cloud bucket).
Use Case Comparison
Deployment Strategies
Approach 1: Batch Processing
Use Pixeltable as a batch processing engine: a Python script that ingests data, lets computed columns process it, exports results to your existing serving database viaexport_sql, and exits. No HTTP server, no FastAPI. Run it as a Cloud Run Job, ECS Task, Kubernetes Job, Lambda, or a cron container.
Use When
Use When
- Existing RDBMS (PostgreSQL, MySQL, Snowflake) and blob storage (S3, GCS, Azure Blob) must remain
- Long-running batch jobs (processing thousands of documents, hours of video)
- Background tasks triggered by a queue, cron, or webhook
- You don’t need an HTTP API at all
Architecture
Architecture
- Run Pixeltable in an ephemeral container (Cloud Run Job, ECS Fargate, K8s Job, Lambda)
- Define tables, views, computed columns in
schema.py(idempotent) - Insert data from queue, RDBMS, or cloud storage
- Computed columns process everything automatically (chunking, embeddings, LLM calls)
export_sqlpushes structured results to your serving databasedestinationparameter routes generated media to cloud buckets- Container exits when done
What This Provides
What This Provides
- Native multimodal type system (Video, Document, Audio, Image, JSON)
- Declarative computed columns eliminate orchestration boilerplate
- Incremental computation automatically handles new data
export_sqlfor any SQL database (PostgreSQL, MySQL, Snowflake, SQLite)destinationparameter for routing media to S3/GCS/Azure Blob- LLM call orchestration with automatic rate limiting
- Iterators for chunking documents, extracting frames, splitting audio
Approach 2: Pixeltable as Full Backend
Use Pixeltable for both orchestration and storage as your primary data backend.Use When
Use When
- Building new multimodal AI application
- Semantic search and vector similarity required
- Storage and ML pipeline need tight integration
- Stack consolidation preferred over separate storage/orchestration layers
Architecture
Architecture
- Deploy Pixeltable on persistent instance (EC2 with EBS, EKS with persistent volumes, VM)
- Build API endpoints (FastAPI, Flask, Django) that interact with Pixeltable tables
- Frontend calls endpoints to insert data and retrieve results
- Query using Pixeltable’s semantic search, filters, joins, and aggregations
- All data stored in Pixeltable: metadata, media references, computed column results
What This Provides
What This Provides
- Unified storage, computation, and retrieval in single system
- Native semantic search via embedding indexes (pgvector)
- No synchronization layer between storage and orchestration
- Automatic versioning and lineage tracking
- Incremental computation propagates through views
- LLM/agent orchestration
- Data export to PyTorch, Parquet, LanceDB
FastAPIRouter auto-generates request/response schemas from column types, handles file uploads via uploadfile_inputs, and supports background=True for long-running inserts. OpenAPI docs are available at /docs.
Approach 3: Declarative Serving (pxt serve)
Generate a complete REST API from a TOML config. No FastAPI code, no frontend, no hand-written endpoints. Define your schema in Python, declare routes in pyproject.toml, and run pxt serve.
Use When
Use When
- You need an API but not a frontend
- Endpoints are standard insert, query, delete, or
export_sqloperations - Prototyping an API before building a full application
- You want zero Python web framework code
Architecture
Architecture
- Define tables, views, computed columns, embedding indexes in
schema.py - Declare routes in
pyproject.tomlusing[[tool.pixeltable.service.routes]] - Run
pxt serve my-serviceto generate and start a FastAPI app - Supports insert, query, delete, and
export_sqlroute types - Auto-generates OpenAPI/Swagger docs
What This Provides
What This Provides
- Complete REST API from configuration alone
- Auto-generated request/response schemas
- Background job support for long-running inserts
export_sqlroutes for pushing data to external databases- OpenAPI documentation out of the box
- Same Pixeltable capabilities (computed columns, embedding indexes, etc.)
Get Started
Scaffold a project in one command, then customize:Next Steps
HTTP Serving
Expose tables and queries as HTTP endpoints with TOML or Python
Infrastructure Setup
Code organization and storage architecture
Production Operations
Concurrency, error handling, and schema evolution
Security & Backup
Backup strategies and security best practices