Integrations Overview
Olytix Core is designed as a headless analytics platform, enabling seamless integration with your existing data infrastructure and tools. This section covers how to connect Olytix Core to data warehouses, visualization platforms, and AI/ML workflows.
Integration Architecture
┌─────────────────────────────────────────────────────────────────────────┐
│ Olytix Core │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Semantic Layer │ │
│ │ (Cubes, Measures, Dimensions, Metrics) │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────┬───────── ──┼───────────┬─────────────┐ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ REST │ │ GraphQL │ │ DAX/ │ │ LookML │ │ ODBC │ │
│ │ API │ │ API │ │ XMLA │ │ Publish │ │ Driver │ │
│ └─────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │ │
└──────┼─────────────┼───────────┼───────────┼─────────────┼─────────────┘
▼ ▼ ▼ ▼ ▼
┌─────────┐ ┌──────── ─┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Python │ │ Custom │ │Power BI │ │ Looker │ │ Tableau │
│ Scripts │ │ Apps │ │ │ │ │ │ │
│ & ML │ │ │ │ │ │ │ │ │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
Supported Integrations
Data Warehouses
Connect Olytix Core to your data warehouse to query and transform data:
| Warehouse | Status | Connection Type |
|---|---|---|
| PostgreSQL | Production | Native (asyncpg) |
| Snowflake | Production | Native |
| BigQuery | Production | Native |
| Redshift | Beta | Native |
| Databricks | Beta | Native |
| DuckDB | Experimental | Embedded |
Visualization Tools
Expose your semantic layer to business intelligence platforms:
| Tool | Integration Method | Features |
|---|---|---|
| Tableau | REST API / JDBC | Live queries, extracts |
| Power BI | DAX/XMLA | Native measures, DirectQuery |
| Looker | LookML Publishing | Native views, explores, time intelligence |
| Metabase | REST API | Custom driver |
| Superset | SQL Lab | SQL interface |
AI/ML Platforms
Access consistent metrics and features for machine learning:
| Platform | Integration | Use Case |
|---|---|---|
| Python SDK | Native library | Feature engineering, model training |
| Jupyter | Python SDK | Interactive analysis |
| MLflow | REST API | Feature logging |
| Feast | Export | Feature store sync |
Choosing an Integration Method
REST API
Best for: Custom applications, scripts, automated pipelines
import requests
response = requests.post(
"http://localhost:8000/api/v1/query",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"metrics": ["total_revenue"],
"dimensions": ["region", "product_category"],
}
)
GraphQL API
Best for: Complex queries with custom response shapes
query GetRevenueTrends {
query(
metrics: ["total_revenue", "order_count"]
dimensions: ["order_date.month"]
order: [{ field: "order_date.month", direction: ASC }]
) {
data
query { sql, duration_ms }
}
}
DAX/XMLA
Best for: Power BI, Excel, and other Microsoft tools
EVALUATE
SUMMARIZECOLUMNS(
'orders'[region],
"Total Revenue", [total_revenue],
"Order Count", [order_count]
)
Quick Setup
1. Configure Your Warehouse
Add your warehouse connection to olytix-core_project.yml:
warehouse:
type: postgresql # or snowflake, bigquery
host: ${OLYTIX_WAREHOUSE_HOST}
port: 5432
database: analytics
user: ${OLYTIX_WAREHOUSE_USER}
password: ${OLYTIX_WAREHOUSE_PASSWORD}
2. Start the API Server
olytix-core serve --host 0.0.0.0 --port 8000
3. Connect Your Tools
Use the appropriate endpoint for your tool:
| Interface | Endpoint |
|---|---|
| REST API | http://localhost:8000/api/v1 |
| GraphQL | http://localhost:8000/graphql |
| DAX/XMLA | http://localhost:8000/xmla |
Security Considerations
All integrations support Olytix Core's security features:
- Authentication: API keys, JWT tokens, OAuth 2.0
- Row-Level Security: User context passed to queries
- Column Masking: Sensitive data protection
- Audit Logging: Track all access
See Security Configuration for details.
Performance Optimization
For high-performance integrations:
- Enable Pre-aggregations: Reduce query latency
- Use Connection Pooling: Configure appropriate pool sizes
- Implement Caching: Use Redis or Memcached
- Enable Query Queuing: Prevent resource exhaustion
# Performance settings in olytix-core_project.yml
performance:
preaggregations:
enabled: true
refresh_interval: "1 hour"
cache:
type: redis
ttl: 300
connection_pool:
min_size: 2
max_size: 20