AR1/docs/workers/create_view.md

1.7 KiB

Create View Worker

Processes view creation jobs to create database views from queries.

Overview

The create view worker creates database views based on SQL queries, allowing dynamic datasets that update when source data changes.

Job Type

create_view

Input Parameters

{
  "source_dataset_id": 123,
  "query": "SELECT * FROM spatial_data_123 WHERE properties->>'category' = 'A'",
  "output_dataset_id": 124
}

Parameters

  • source_dataset_id (required): Source dataset ID
  • query (required): SQL query to create view from
  • output_dataset_id (required): Output dataset ID

Output

Creates a new dataset backed by a database view:

  • View created in spatial_data schema
  • Dataset metadata in spatial_files table
  • View updates automatically when source data changes

Use Cases

  • Filtered datasets
  • Joined datasets
  • Aggregated datasets
  • Computed datasets

Example

# Enqueue a create view job via API
curl -X POST "https://example.com/api/create_view_run.php" \
  -H "Content-Type: application/json" \
  -d '{
    "source_dataset_id": 123,
    "query": "SELECT * FROM spatial_data_123 WHERE properties->>'\''category'\'' = '\''A'\''",
    "output_dataset_id": 124
  }'

Background Jobs

This analysis runs as a background job. The worker:

  1. Fetches queued create_view jobs
  2. Validates input parameters
  3. Validates SQL query
  4. Creates database view
  5. Creates dataset metadata
  6. Marks job as completed

Performance Considerations

  • Views don't store data, so creation is fast
  • Query performance depends on underlying data
  • Complex queries may slow view access
  • Consider materialized views for expensive queries