Skip to main content

Query Console

CLOUD

Translate natural language questions into SQL queries and execute them safely using glossary definitions, asset schemas, and metric SQL definitions.

Overview​

The Query Console translates natural language questions into SQL queries using:

  • Glossary definitions (terms, metrics, dimensions)
  • Asset schemas and metadata
  • Metric SQL definitions
  • Context from project metadata

Executing a Query​

Endpoint​

POST /api/msh/ai/query

Translate NL to SQL and execute query.

Request:

curl -X POST \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Show revenue by region for the last 3 months",
"project_id": 1,
"warehouse_connection_id": 1,
"limit": 100
}' \
https://api.msh.io/api/msh/ai/query

Response:

{
"success": true,
"sql": "SELECT region, SUM(amount) as revenue FROM {{ ref('revenue') }} WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 3 MONTH) GROUP BY region",
"explanation": "This query calculates total revenue grouped by region for the last 3 months using the revenue asset",
"assets_used": ["revenue"],
"metrics_used": ["metric.revenue"],
"results": [
{"region": "North", "revenue": 150000},
{"region": "South", "revenue": 120000}
],
"row_count": 2,
"execution_time_ms": 245
}

Query History​

Get Query History​

Endpoint: GET /api/msh/ai/projects/{project_id}/queries

Retrieve query history for a project.

Request:

curl -X GET \
-H "Authorization: Bearer $API_TOKEN" \
https://api.msh.io/api/msh/ai/projects/1/queries

Response:

{
"success": true,
"queries": [
{
"id": 1,
"sql": "SELECT region, SUM(amount)...",
"executed_at": "2024-01-15T10:30:00Z",
"execution_time_ms": 245,
"row_count": 2
}
],
"count": 1
}

Example Queries​

Revenue Queries​

# "Show total revenue for last month"
# "What is the revenue by region?"
# "Calculate monthly recurring revenue"

Customer Queries​

# "How many customers do we have?"
# "Show customer lifetime value"
# "What is the customer retention rate?"

Time-Based Queries​

# "Show revenue trends over the last 6 months"
# "What was revenue last quarter?"
# "Compare this month to last month"

Safety Features​

The Query Console includes multiple safety features:

Read-Only Execution​

  • Blocks DROP, DELETE, TRUNCATE operations
  • Only allows SELECT queries
  • Validates queries before execution

Query Validation​

  • Validates SQL syntax
  • Checks for dangerous operations
  • Verifies asset references

Result Limits​

  • Limits result size (default: 1000 rows)
  • Limits execution time (default: 30 seconds)
  • Prevents resource exhaustion

Execution Limits​

  • Row count limits
  • Execution time limits
  • Memory limits

Best Practices​

  1. Use Business Terms: Use glossary terms in queries
  2. Be Specific: Provide clear, specific queries
  3. Review SQL: Always review generated SQL before execution
  4. Check History: Review query history for patterns
  5. Use Limits: Specify result limits for large queries