UNPKG

hana-cli

Version:
462 lines (297 loc) 10.1 kB
# FAQ - Frequently Asked Questions Answers for common questions from users and contributors. ## Installation & Setup ### Q: Do I need SAP HANA installed locally? **A:** No. You only need network access to a SAP HANA database instance. This can be: - Remote SAP HANA server - SAP HANA Express Edition (local or remote) - SAP BTP HANA service - SAP HANA Cloud ### Q: What's the minimum Node.js version required? **A:** Node.js 20.19.0 or higher. ```bash node --version ``` ### Q: Can I use HANA CLI in the cloud? **A:** Yes! HANA CLI works great in cloud environments: - SAP Business Application Studio - Google Cloud Shell - AWS Cloud9 - GitHub Codespaces - Azure Cloud Shell ### Q: How do I specify my database connection? **A:** Three methods (in order of preference): 1. **default-env.json** (recommended for local development) 2. **Environment variables** (recommended for cloud/CI-CD) 3. **Command-line arguments** (for one-off commands) See [Configuration Guide](../01-getting-started/configuration.md) --- ## Command Usage ### Q: What's the difference between `export` and `querySimple`? **A:** They are two different commands: - **`export`**: Exports table data to a file (CSV, Excel, or JSON). Use WHERE clauses to filter rows. ```bash hana-cli export -s SCHEMA -t TABLE -o output.csv ``` - **`querySimple`**: Executes SQL queries and displays results in various formats. ```bash hana-cli querySimple --query "SELECT * FROM SCHEMA.TABLE" --output csv ``` ### Q: How do I import data from JSON? **A:** Currently CSV and Excel formats are supported. To import JSON: ```bash # Convert JSON to CSV first # Or request enhancement: https://github.com/SAP-samples/hana-developer-cli-tool-example/issues ``` ### Q: Can I import without creating the table first? **A:** No, the table must exist. You can create it using SAP HANA Web IDE or SQL: ```sql CREATE TABLE HR.EMPLOYEES ( ID INT, NAME VARCHAR(255), SALARY DECIMAL(10,2) ); ``` ### Q: How do I handle large CSV files? **A:** HANA CLI processes files line-by-line, so size isn't an issue. For optimal performance: ```bash # Monitor import hana-cli import -n large-file.csv -t TABLE --verbose # Or batch into smaller files and import separately ``` ### Q: Can I update existing records during import? **A:** No, `import` inserts only. For updates, use `dataSync`: ```bash hana-cli dataSync -s1 STAGING -t1 DATA -s2 PROD -t2 DATA --mode upsert ``` --- ## Data Operations ### Q: How do I compare schemas between two systems? **A:** Use the `compareSchema` command: ```bash hana-cli compareSchema -s1 DEV_SCHEMA -s2 PROD_SCHEMA ``` ### Q: Can I clone a table with data to another schema? **A:** Yes, use `tableCopy` with --data flag: ```bash hana-cli tableCopy -s1 PROD -t1 CUSTOMERS -s2 DEV -t2 CUSTOMERS --data ``` ### Q: How do I find duplicate records? **A:** Use `duplicateDetection`: ```bash hana-cli duplicateDetection -s SCHEMA -t TABLE -c "FIRST_NAME,LAST_NAME" ``` ### Q: What's the difference between `dataProfile` and `dataValidator`? **A:** - **dataProfile**: Shows statistics (counts, nulls, distinct values) - **dataValidator**: Checks data quality (constraints, types, rules) ### Q: How do I export only rows that match a condition? **A:** Use the WHERE clause: ```bash hana-cli export -s SCHEMA -t TABLE -w "STATUS='ACTIVE'" -o active.csv ``` ### Q: Can I import different file formats? **A:** Currently supported: - CSV (comma-separated values) - Excel (.xlsx files) Use `-o excel` for Excel files when importing from Excel format. ### Q: What if my data types don't match? **A:** The import command has improved data type handling: - Auto-detects common types - Reports mismatches with clear errors - Suggests corrections - Use `--debug` flag for detailed type information --- ## Performance & Troubleshooting ### Q: Why did startup time improve so much? **A:** The 60-77% improvement comes from: - Lazy-loading command modules (only load what's needed) - Ultra-fast path for `--version` flag - Deferred yargs loading - Conditional debug module loading - Eliminated completion overhead Startup went from ~2,200ms to ~700ms for most commands. ### Q: Why are my queries slow? **A:** Common causes: 1. Large table - use `--limit` to test first 2. Network latency - check connection quality 3. Database load - check with DBA 4. Missing indexes - HANA optimizer issue Solutions: ```bash # Test with limit hana-cli export -s SCHEMA -t TABLE --limit 100 # Enable debug to see execution time hana-cli export -s SCHEMA -t TABLE --debug ``` ### Q: How do I fix "connection refused" error? **A:** Check: 1. Host and port are correct 2. HANA service is running 3. Network/firewall allows connection 4. Credentials are valid ```bash # Verify configuration cat default-env.json | jq . # Test connection explicitly echo "" | nc -zv your-hana-host 30013 ``` ### Q: Can I use HANA CLI with proxy? **A:** Yes, via environment variables: ```bash export http_proxy=http://proxy.company.com:8080 export https_proxy=https://proxy.company.com:8080 export no_proxy=localhost,internalhosts hana-cli dbInfo ``` ### Q: How do I enable verbose logging? **A:** Use `--debug` flag to enable detailed logging: ```bash # Debug mode shows execution details hana-cli import -n data.csv -t TABLE --debug hana-cli dataProfile -s SCHEMA -t TABLE --debug # Or set logging level via environment variable export HANA_LOG_LEVEL=debug hana-cli dbInfo ``` --- ## API & Integration ### Q: How do I use HANA CLI as a REST API server? **A:** Start the server: ```bash hana-cli server --port 3000 ``` Then access via HTTP: ```bash curl http://localhost:3000/api/v1/dbInfo ``` Swagger UI available at: `http://localhost:3000/api-docs` See [API Server Guide](../03-features/api-server.md) ### Q: Can I integrate with my CI/CD pipeline? **A:** Yes! Works with GitHub Actions, GitLab CI, Jenkins, etc. ```bash # Install in CI environment npm install -g hana-cli # Use in your pipeline hana-cli export -s SCHEMA -t TABLE -o backup.csv ``` --- ## MCP & AI ### Q: What is the MCP Server for? **A:** Model Context Protocol enables AI assistants to interact with HANA CLI. It allows: - AI-assisted database queries - Automated schema analysis - Code generation for data operations - Integration with Claude, ChatGPT, etc. ### Q: How do I use HANA CLI with AI coding assistants? **A:** Set up MCP (Model Context Protocol): ```bash cd mcp-server npm install npm run build ``` See [MCP Integration Guide](../03-features/mcp-integration.md) ### Q: Where is MCP Server documentation? **A:** See [Development Guide - MCP Server](../05-development/mcp-server/) --- ## Languages & Localization ### Q: In what languages is HANA CLI available? **A:** English, German, Spanish, French, Japanese, Korean, Portuguese, Simplified Chinese, Hindi, and Polish are fully supported. ### Q: How do I use localization? **Examples:** ```bash # German export LANG=de hana-cli dbInfo # Simplified Chinese export LANG=zh_CN.UTF-8 hana-cli dbInfo # Hindi export LANG=hi_IN.UTF-8 hana-cli dbInfo # Polish export LANG=pl_PL.UTF-8 hana-cli dbInfo # Japanese export LANG=ja hana-cli dbInfo # Korean export LANG=ko hana-cli dbInfo ``` Alternatively, use standard locale variables: `LC_ALL`, `LC_MESSAGES`, or `LANGUAGE`. ### Q: How do I contribute translations? **A:** See [Internationalization](../03-features/internationalization.md) guide. --- ## Development & Architecture ### Q: How is the project structure organized? **A:** The project is organized as: ```text ├── bin/ # CLI entry points ├── app/ # Command implementations ├── utils/ # Utility functions ├── routes/ # API routes (REST server) ├── tests/ # Test files ├── types/ # TypeScript type definitions ├── docs/ # This documentation (VitePress) ├── mcp-server/ # Model Context Protocol implementation └── _i18n/ # Internationalization files ``` ### Q: Where do I add a new command? **A:** 1. Create implementation in `app/[command-name].js` 2. Add builder and handler functions 3. Export from `app/index.js` 4. Add tests in `tests/` 5. Document in `docs/02-commands/` ### Q: How is testing organized? **A:** Test coverage has expanded from ~40% to ~85% with: - 317+ new test cases - 6 dedicated test files - Focus on critical paths - Run with: `npm test` --- ## Upgrades & Compatibility ### Q: How do I upgrade HANA CLI? ```bash npm install -g hana-cli@latest ``` Or from source: ```bash git clone https://github.com/SAP-samples/hana-developer-cli-tool-example cd hana-developer-cli-tool-example npm install npm link ``` ### Q: Is version 4.x backward compatible? **A:** Mostly yes. Main breaking change: - Express upgraded from 4.x to 5.x - May affect REST API integration See [Changelog](./changelog.md) for details. --- ## Custom Builds ### Q: Can I customize HANA CLI? **A:** Yes, you can: 1. Fork the repository 2. Modify source code in `app/`, `utils/`, `routes/` 3. Run tests: `npm test` 4. Build: `npm run build` 5. Install locally: `npm link` --- ## Licensing & Community ### Q: Is HANA CLI free? **A:** Yes! It's open-source under Apache License 2.0. ### Q: Can I modify and redistribute? **A:** Yes, following Apache License 2.0 terms. See [LICENSE](../../LICENSE) ### Q: Where can I report bugs? **A:** [GitHub Issues](https://github.com/SAP-samples/hana-developer-cli-tool-example/issues) ### Q: How can I contribute? **A:** Via pull requests! See CONTRIBUTING.md in the repository. --- ## Getting More Help - **Documentation**: [Full Docs](/) - **Troubleshooting**: [Troubleshooting Guide](../troubleshooting/) - **Development Guide**: [Development Guide](../05-development/) - **GitHub**: [Repository](https://github.com/SAP-samples/hana-developer-cli-tool-example) - **Issues**: [Report Problems](https://github.com/SAP-samples/hana-developer-cli-tool-example/issues) - **Knowledge Base**: Run `hana-cli kb search "topic"`