UNPKG

hana-cli

Version:
538 lines (398 loc) 12.1 kB
# Advanced Features Sophisticated capabilities for complex workflows and understanding results. ## Workflow Templates Pre-built sequences of commands that work together to accomplish a goal. The AI agent orchestrates execution — workflow templates provide the sequence and recommended parameters, while the LLM handles execution and decision-making between steps. ### What Are Workflows? **Example Workflow - Data Quality Check:** ```bash 1. Profile data (dataProfile) ↓ 2. Find duplicates (duplicateDetection) ↓ 3. Validate data (dataValidator) ↓ 4. Get interpretation (interpret_result) ↓ 5. Generate report ``` ### Browsing Workflows **MCP Tool:** `hana_workflows` Returns a list of all available workflow templates with descriptions and step counts. **MCP Tool:** `hana_workflow_by_id` ```json { "id": "data-quality-check" } ``` **Returns:** - All steps in order with commands and parameters - Parameter templates using `<parameter-name>` substitution - Expected outcomes per step - Tips and best practices **MCP Tool:** `hana_search_workflows` ```json { "tag": "performance" } ``` Search workflows by tag (e.g., `data-quality`, `performance`, `security`, `backup`, `migration`). ### Built-In Workflows The MCP Server includes 20+ professional workflows: #### 1. Data Validation Workflows **data-quality-check** (5 steps) - Profile → Duplicates → Validation → Interpretation → Report **data-integrity-audit** (6 steps) - Inspect → Compare → Validate → Referential check → Analysis → Report **data-cleansing** (7 steps) - Profile → Identify issues → Mask sensitive → Clean → Transform → Validate → Report #### 2. Schema Management Workflows **schema-comparison** (4 steps) - Inspect source → Inspect target → Compare → Generate DDL **schema-migration** (6 steps) - Validate source → Compare → Generate DDL → Test → Migrate → Verify **schema-clone** (5 steps) - Inspect source → Clone → Verify structures → Build indexes → Validate #### 3. Performance Analysis Workflows **performance-baseline** (5 steps) - Health check → Memory analysis → Expensive statements → Index review → Report **performance-optimization** (7 steps) - Baseline → Hotspot analysis → Index test → Recommendations → Implement → Test → Verify **resource-optimization** (4 steps) - Memory analysis → Identify large tables → Reclaim space → Verify #### 4. Data Operations Workflows **safe-import** (5 steps) - Dry run → Review errors → Validate → Import → Verify **safe-export** (4 steps) - Verify source → Configure format → Export → Validate **data-migration** (6 steps) - Export → Prepare target → Import → Validate → Compare → Report #### 5. Troubleshooting Workflows **connection-diagnosis** (4 steps) - Test connection → Check permissions → Verify network → Get info **performance-diagnosis** (5 steps) - Health check → Memory → Expensive queries → Hotspots → Recommendations ### Parameter Substitution Workflow templates use parameter placeholders with `<parameter-name>` syntax. When the AI agent executes each step, it substitutes the actual values: ```json { "workflow": { "steps": [ { "command": "hana_inspectTable", "parameters": { "table": "<table>", "schema": "<schema>" } }, { "command": "hana_dataProfile", "parameters": { "table": "<table>", "schema": "<schema>" } } ] } } ``` When executing, provide actual values: ```json { "workflowId": "my-workflow", "parameters": { "table": "CUSTOMERS", "schema": "SALES" } } ``` The AI agent substitutes actual values when calling each tool in sequence. ### Error Handling in Workflows The AI agent decides how to handle errors between steps — it can skip failed steps, retry with different parameters, or stop and report issues. Workflow templates include guidance on which steps are critical vs. optional. ## Result Interpretation (`hana_interpret_result`) Transform raw command results into AI-friendly insights and recommendations. ### What It Does Analyzes command output and provides: 1. **Summary** - High-level interpretation 2. **Insights** - Key findings and patterns 3. **Recommendations** - Actionable suggestions 4. **Concerns** - Issues requiring attention 5. **Key Metrics** - Important numbers ### How to Use **Input:** ```json { "command": "dataProfile", "result": "command output text or object" } ``` **Output:** ```json { "command": "dataProfile", "summary": "4,250 rows analyzed; moderate data quality issues", "insights": [ "15% NULL values in CUSTOMER_NAME", "127 duplicate EMAIL entries (2.9%)", "43 invalid DATE_OF_BIRTH values (1.0%)" ], "recommendations": [ { "priority": "high", "action": "Clean NULL values in CUSTOMER_NAME", "impact": "Improves data quality by 15%", "nextCommand": "hana_dataValidator" } ], "concerns": [ { "level": "critical", "issue": "High duplicate rate in EMAIL column", "action": "Run duplicateDetection to clean" } ], "metrics": { "totalRows": 4250, "nullPercentage": 1.5, "duplicateCount": 127, "validationErrors": 43 } } ``` ### Command-Specific Interpretation #### Data Profile Results - Data quality issues detected - NULL value percentages - Duplicate identification - Data type mismatches - Range and distribution analysis **Provides:** - Data quality score - Issues ranked by severity - Cleaning recommendations - Next validation steps #### Memory Analysis Results - Memory usage concentration - Largest tables and indexes - Memory growth trends - Fragmentation issues **Provides:** - Resource optimization suggestions - Partitioning recommendations - Compression opportunities - Reclaim recommendations #### Health Check Results - System status and alerts - Critical warnings - Performance issues - Resource constraints **Provides:** - Problem diagnosis - Immediate actions - Investigations needed - Prevention tips #### Expensive Statements Results - Long-running queries - Resource-intensive operations - Query patterns - Performance bottlenecks **Provides:** - Optimization suggestions - Index recommendations - Query rewrite options - Monitoring next steps ### Interpretation Examples #### Example 1: Data Profile ```bash Raw Output: " Rows: 10000 Columns: 8 NULL values: 1500 (15%) Duplicates: 250 Errors: 45" Interpreted: Summary: "Data quality is moderate with significant issues" Insights: - "High NULL value percentage (15%) in some columns" - "Duplicate records found (2.5% of dataset)" - "45 validation errors detected" Recommendations: - Priority: high → "Clean NULL values first" - Priority: high → "Remove duplicate records" - Priority: medium → "Fix validation errors" ``` #### Example 2: Memory Analysis ```bash Raw Output: "TOP MEMORY ALLOCATIONS 1. TABLE CUSTOMERS - 800 MB (45%) 2. INDEX ON_CUSTOMERS_ID - 300 MB (17%) 3. TABLE ORDERS - 600 MB (34%)" Interpreted: Summary: "Memory concentrated in two large tables" Insights: - "CUSTOMERS table using 45% of total memory" - "Combined table memory: 79% of total" Recommendations: - Priority: high → "Consider partitioning CUSTOMERS table" - Priority: medium → "Review index on CUSTOMERS" - Priority: medium → "Analyze ORDERS table growth" Concerns: - Memory concentration risk if tables grow - Limited headroom for other operations ``` ### Using Interpreted Results 1. **Get recommendations** - Understand what to do next 2. **Prioritize actions** - High priority first 3. **Chain commands** - Use suggested next commands 4. **Track metrics** - Monitor key numbers 5. **Plan tuning** - Use insights for optimization ## Documentation Search Integration Access all 279 project documentation pages directly from MCP. ### Searching Documentation **MCP Tool:** `hana_search` ```json { "query": "import CSV data", "scope": "docs", "category": "commands", "docType": "command", "limit": 5 } ``` **Returns:** ```json { "results": [ { "title": "Import Command Guide", "path": "02-commands/data-tools/import.md", "category": "commands", "docType": "command", "relevance": 99, "excerpt": "Import data from CSV, Excel, or TSV files...", "url": "https://sap-samples.github.io/hana-developer-cli-tool-example/..." } ] } ``` ### Getting Full Documentation **MCP Tool:** `hana_get_doc` ```json { "path": "02-commands/data-tools/import.md" } ``` **Returns:** - Complete markdown content - Document metadata - Table of contents (headings) - Related links - Full website URL ### Finding Documentation by Category **MCP Resource:** `hana://docs/categories` Documentation categories are available as an MCP resource (not a tool), keeping the tool list concise while still providing browsable metadata. **Categories:** - Getting Started (5 docs) - Commands (80+ docs) - Features (15 docs) - API Reference (10 docs) - Development (20 docs) - Troubleshooting (8 docs) - Examples (50+ docs) ### Documentation Search Workflow ```bash 1. User: "How do I import a CSV file?" ↓ 2. System: Calls hana_search ↓ 3. Returns: Top 5 import-related docs ↓ 4. User: Selects most relevant result ↓ 5. System: Calls hana_get_doc with path ↓ 6. Returns: Full import command documentation ↓ 7. Shows: Examples, parameters, troubleshooting ``` ## Advanced Scenarios ### Scenario 1: Complete Data Migration ```bash 1. Browse: hana_workflow_by_id("schema-migration") ↓ 2. Execute steps guided by the workflow template: - Validate source schema - Generate DDL - Test migration - Compare schemas ↓ 3. Interpret: hana_interpret_result("dataValidator", results) ↓ 4. Report: Generate migration report with metrics ``` ### Scenario 2: Performance Optimization ```bash 1. Get workflow: hana_workflow_by_id("performance-baseline") ↓ 2. Execute baseline steps: hana_healthCheck, hana_memoryAnalysis, etc. ↓ 3. Analyze: hana_interpret_result("memoryAnalysis", baseline) ↓ 4. Get diagnosis workflow: hana_workflow_by_id("performance-diagnosis") ↓ 5. Execute diagnosis steps and get recommendations ↓ 6. Implement optimizations ↓ 7. Re-run baseline steps and compare before vs. after ``` ### Scenario 3: Data Quality Assurance ```bash 1. Profile data: hana_dataProfile(table) ↓ 2. Interpret: hana_interpret_result("dataProfile", results) ↓ 3. Find issues: recommendations and concerns ↓ 4. Get workflow: hana_workflow_by_id("data-cleansing") ↓ 5. Execute cleansing steps: - Identify issues - Clean data - Validate ↓ 6. Verify: hana_dataValidator(table) ↓ 7. Report: Quality metrics and changes ``` ## Best Practices ### 1. Review Workflow Templates First ```bash # Step 1: Browse the workflow hana_workflow_by_id("data-migration") # Step 2: Review the steps and parameters # Step 3: Execute each step, adapting as needed ``` ### 2. Handle Errors Between Steps The AI agent should check results between workflow steps and decide whether to continue, retry, or stop based on the outcome. ### 3. Interpret All Results Every command result should be interpreted: ```json hana_interpret_result(command, result) ``` Gets insights, recommendations, and next steps. ### 4. Chain Workflows Logically ```bash Diagnosis → Analysis → Action → Verification → Report ``` Each step builds on previous results. ### 5. Track Metrics Over Time Use key metrics to measure success: - Before/after comparisons - Performance improvements - Data quality scores - Resource utilization ## Next Steps - **[Discovery Tools](./discovery-tools.md)** - Finding the right commands - **[Prompts and Resources](./prompts-and-resources.md)** - MCP resources and guides - **[Implementation Phases](./implementation-phases.md)** - Technical details