sap-hana-cli について
データベース構造の確認、クエリ実行、HDI コンテナ管理、クラウド操作に対応する開発者向け SAP HANA コマンドラインツールです。対話的なデータベース探索に使う hana-mcp-server 連携も説明しています。
主な機能
- 01データベースオブジェクトの確認とクエリ実行
- 02HDI コンテナのライフサイクル管理
- 0317 種類以上の形式へのエクスポート
- 04HANA Cloud と BTP リソースの操作
- 05対話形式の接続設定
活用シーン
- 01スキーマとテーブルメタデータの確認
- 02クエリ結果を JSON や Excel に出力
- 03データベース構造を CDS または OpenAPI に変換
- 04開発環境での HDI コンテナ管理
MCP 対応
README では、hana-mcp-server を介し、Claude などの MCP クライアントから自然言語でデータベースを探索する連携を説明しています。スキーマ・テーブル検索、メタデータ確認、クエリ、サンプルデータ、システム情報のツールが挙げられています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ secondsky/ sap-skills --skill sap-hana-cliインストール後、Claude Code で/sap-hana-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdagents/openai.yamlreferences/abap-programming.mdcloud-operations.mdcommand-reference.mdconnection-security.mddb-inspection.mddevelopment-environment.mdhdi-management.mdmass-operations.mdoutput-formats.mdsystem-admin.mdtroubleshooting.mdweb-ui.mdtemplates/cdsrc-private.jsondefault-env.json詳細
SAP HANA 開発者向け CLI(hana-cli)
関連スキル
- sap-cap-capire:CAP データベース開発、HDI コンテナー管理、CDS 構文の比較に使用します
- sap-btp-cloud-platform:HANA Cloud の操作、BTP との統合、クラウドインスタンスの管理に使用します
- sap-abap-cds:CAP と ABAP 間の CDS 構文の比較や、HANA CDS の機能の理解に使用します
- sap-datasphere:SAP Datasphere との統合やデータウェアハウスのシナリオで使用します
- sap-dependency-security:プロジェクトに hana-cli の依存関係が含まれる場合の、安全な依存関係のアップグレード、MCP サーバーの正確なバージョン指定、npm パッケージの強化、ロックファイルの lint、クールダウンポリシーに使用します
SAP 以外のツール環境(特に VS Code)での利用に適した、SAP HANA データベース開発者向けのコマンドラインインターフェースです。
リポジトリ:https://github.com/SAP-samples/hana-developer-cli-tool-example npm パッケージ:https://www.npmjs.com/package/hana-cli 現在のバージョン:3.202405.1(2024年4月) Node.js の要件:≥20.19.0
目次
クイックスタート
インストール
# Install globally via npm (recommended)
npm install -g hana-cli
# Verify installation
hana-cli version
最初の接続
# Interactive connection setup
hana-cli connect
# Or specify connection directly
hana-cli connect -n "hostname:port" -u DBUSER -p PASSWORD --save
# Using service key (HANA Cloud)
hana-cli connectViaServiceKey
MCP 統合(AI によるデータベース操作)
概要
hana-mcp-server との統合により、Claude の Model Context Protocol を通じて自然言語でデータベースを操作できます。従来の CLI コマンドと会話形式のクエリを組み合わせ、開発ワークフロー全体を実現します。
セットアップ
同梱の MCP 設定では [email protected] にバージョンを固定しています。このサーバーは HANA テナントの接続環境変数を受け取るため、このバージョン指定を変更する前に sap-dependency-security を使用してください。
1. 環境変数
必須の設定(/.zshrc、/.bashrc、またはプロジェクトの .env に追加):
export HANA_HOST="your-hana-host.hanacloud.ondemand.com"
export HANA_PORT="443"
export HANA_USER="DBADMIN"
export HANA_PASSWORD="your-password"
export HANA_ENCRYPT="true" # Optional, defaults to true
export HANA_DATABASE="" # Optional, for MDC tenant
export HANA_CONNECTION_TYPE="single-container" # Optional
2. 接続タイプ
- single-container(デフォルト):標準的な HANA データベース
- mdc-system:マルチテナントシステムのデータベース
- mdc-tenant:マルチテナント環境の特定のテナント
使い分け:CLI と MCP
| シナリオ | 推奨ツール | 理由 |
|---|---|---|
| 探索的なクエリ、アドホック分析 | MCP | 自然言語で利用でき、構文を覚える必要がありません |
| 自動化スクリプト、CI/CD パイプライン | CLI | スクリプトで利用でき、一貫した出力が得られます |
| データベース構造の学習 | MCP | 会話形式で調査できます |
| CDS/EDMX/OpenAPI 出力の生成 | CLI | 17 以上の形式に対応しています |
| 複雑な複数ステップのワークフロー | CLI | 細かく制御できます |
| 手早いデータのサンプリングと検査 | MCP | 1 回限りのクエリを素早く実行できます |
自然言語クエリの例
スキーマとテーブルの検出
- 「この HANA データベースのすべてのスキーマを表示して」
- 「SYSTEM スキーマのすべてのテーブルを一覧表示して」
- 「MY_APP スキーマにはどのようなテーブルがある?」
- 「PUBLIC スキーマのすべてのビューを表示して」
テーブル構造とメタデータ
- 「USERS テーブルの構造を説明して」
- 「ORDERS テーブルにはどのような列がある?」
- 「MY_TABLE のデータ型を表示して」
- 「CUSTOMERS テーブルの主キーは何?」
データのサンプリングと検査
- 「PRODUCTS テーブルから 5 行サンプリングして」
- 「SALES_DATA の先頭 10 件のレコードを表示して」
- 「ORDER_ITEMS テーブルのサンプルデータを取得して」
- 「MY_TABLE の数行を表示して」
クエリの実行
- 「CUSTOMERS テーブルには何行ある?」
- 「ORDERS の STATUS 列にある一意の値を表示して」
- 「PRODUCTS の PRICE 列の最大値は?」
- 「USERS から country が 'USA' のレコードをすべて検索して」
システムのパフォーマンスと監視
- 「HANA データベースのステータスを確認して」
- 「システムのパフォーマンス指標を表示して」
- 「現在のデータベースのバージョンは?」
MCP ツール一覧
hana-mcp-server は、次の MCP ツールを提供します。
list_schemas:すべてのスキーマを列挙しますlist_tables:スキーマ内のテーブルを表示しますdescribe_table:テーブルの構造とメタデータを取得しますquery:自然言語から SQL クエリを実行しますsample_data:サンプル行を取得しますsystem_info:データベースの状態とパフォーマンスを表示します
例:MCP + CLI ワークフロー
# 1. Use MCP to explore (natural language)
"Show me all tables in the PRODUCTS schema"
# 2. Use MCP to understand structure
"Describe the PRODUCTS.INVENTORY table"
# 3. Use CLI for format conversion (precise output)
hana-cli inspectTable -t INVENTORY -s PRODUCTS -o cds
# 4. Use CLI for HDI operations
hana-cli createContainer -c MY_CONTAINER
主なコマンドカテゴリ
データベースオブジェクトの調査
| コマンド | エイリアス | 用途 |
|---|---|---|
inspectTable | it, table | テーブル構造を調査 |
inspectView | - | ビュー定義を調査 |
inspectProcedure | - | ストアドプロシージャを調査 |
inspectFunction | - | 関数定義を調査 |
tables | - | スキーマ内のすべてのテーブルを一覧表示 |
views | - | スキーマ内のすべてのビューを一覧表示 |
procedures | - | ストアドプロシージャを一覧表示 |
functions | - | 関数を一覧表示 |
クエリの実行
| コマンド | エイリアス | 用途 |
|---|---|---|
querySimple | qs | SQL クエリを実行 |
callProcedure | cp | ストアドプロシージャを実行 |
hdbsql | - | SQL を直接実行 |
HDI コンテナの管理
| コマンド | エイリアス | 用途 |
|---|---|---|
containers | cont | HDI コンテナを一覧表示 |
createContainer | - | コンテナを新規作成 |
dropContainer | - | コンテナを削除 |
activateHDI | - | HDI サービスを有効化 |
adminHDI | - | HDI 権限を管理 |
クラウドと BTP の操作
| コマンド | エイリアス | 用途 |
|---|---|---|
hanaCloudInstances | - | HANA Cloud インスタンスを一覧表示 |
hanaCloudStart | - | クラウドインスタンスを起動 |
hanaCloudStop | - | クラウドインスタンスを停止 |
btp | - | BTP CLI を設定 |
btpInfo | - | BTP のターゲット情報を表示 |
出力形式
--output / -o オプションは、17 種類以上の形式に対応しています。
| 形式 | 用途 |
|---|---|
tbl | 人が読みやすいテーブル(デフォルト) |
json | JSON データ |
yaml | YAML 形式 |
csv | CSV エクスポート |
excel | Excel ファイル |
cds | CAP CDS 定義 |
hdbcds | HANA CDS 形式 |
hdbtable | HDB Table 定義 |
sql | SQL DDL 文 |
edmx | OData EDMX メタデータ |
openapi | OpenAPI/Swagger 仕様 |
graphql | GraphQL スキーマ |
接続設定
接続資格情報は、次の優先順位で検索されます。
default-env-admin.json(--adminフラグ指定時).cdsrc-private.json(cds bind経由)- VCAP_SERVICES を含む
.envファイル --connパラメーターで指定したファイル- 現在のディレクトリまたは親ディレクトリにある
default-env.json ~/.hana-cli/default.json
接続テンプレートについては、templates/default-env.json を参照してください。
一般的なワークフロー
テーブルを調査して CDS に変換
# Inspect table structure
hana-cli inspectTable -s MYSCHEMA -t MYTABLE
# Convert to CDS format
hana-cli inspectTable -s MYSCHEMA -t MYTABLE -o cds
スキーマオブジェクトを一括変換
# Convert all objects in schema to CDS
hana-cli massConvert -s MYSCHEMA
クエリを実行してエクスポート
# Run query and export to JSON
hana-cli querySimple -q "SELECT * FROM MYTABLE" -o json
# Export to Excel file
hana-cli querySimple -q "SELECT * FROM MYTABLE" -o excel -f ./output -n report
HDI コンテナを管理
# List all containers
hana-cli containers
# Create new container
hana-cli createContainer -c MY_CONTAINER -g MY_GROUP
# Create container users
hana-cli createContainerUsers -c MY_CONTAINER
UI コマンド
多くのコマンドには、ブラウザベースの UI 版(末尾に UI を付加)があります。
tablesUI- テーブルを視覚的に閲覧containersUI- ブラウザーでコンテナを管理massConvertUI- 視覚的な一括変換querySimpleUI- クエリビルダーインターフェースsystemInfoUI- システムダッシュボード
主な機能
- マルチデータベース対応:HANA、PostgreSQL、SQLite のバックエンド
- 形式変換:CDS、EDMX、OpenAPI を含む 17 種類以上の出力形式
- HDI 管理:コンテナのライフサイクル全体を管理
- クラウド連携:SAP BTP CLI および HANA Cloud に対応
- 対話型プロンプト:不足しているパラメーターを自動的に確認
- サービスキー認証:安全なクラウド認証
詳細リファレンス
詳細なドキュメントについては、以下を参照してください。
- 全91コマンド:
references/command-reference.mdを参照 - 接続とセキュリティ:
references/connection-security.mdを参照 - HDI 管理:
references/hdi-management.mdを参照 - 出力形式:
references/output-formats.mdを参照 - クラウド運用:
references/cloud-operations.mdを参照 - データベースの検査:
references/db-inspection.mdを参照 - 一括操作:
references/mass-operations.mdを参照 - システム管理:
references/system-admin.mdを参照 - Web UI インターフェース:
references/web-ui.mdを参照 - トラブルシューティングガイド:
references/troubleshooting.mdを参照 - 開発環境:
references/development-environment.mdを参照 - ABAP プログラミングパターン:
references/abap-programming.mdを参照
トラブルシューティング
接続の問題
# Check current connection status
hana-cli status
# Test with explicit credentials
hana-cli connect -n "host:443" -u USER -p PASS --encrypt true
# Use SSL trust store
hana-cli connect --trustStore /path/to/certificate.pem
権限エラー
# Diagnose privilege errors
hana-cli privilegeError
# View current user info
hana-cli inspectUser
バージョンの互換性
- Node.js:≥20.19.0 が必要です
- @sap/cds:9.4.4 を使用します
- @sap/cds-dk:cds bind には ≥8.9 が必要です
同梱リソース
リファレンスドキュメント
references/command-reference.md- すべてのオプションを含む完全なコマンドリファレンスreferences/abap-programming.md- ABAP 固有のプログラミングパターンreferences/development-environment.md- 開発環境のセットアップとガイダンスreferences/connection-security.md- セキュアな接続と認証情報の取り扱いreferences/troubleshooting.md- よくあるエラーと復旧手順
テンプレート
templates/default-env.json- CAP スタイルのバインディング用ローカル接続テンプレートtemplates/cdsrc-private.json- CAP のプライベート設定テンプレート
リソース
- GitHub:https://github.com/SAP-samples/hana-developer-cli-tool-example
- 紹介動画:https://youtu.be/dvVQfi9Qgog
- Cloud Shell のデモ:https://youtu.be/L7QyVLvAIIQ
- SAP HANA Cloud:https://help.sap.com/docs/hana-cloud
- SAP CAP:https://cap.cloud.sap/docs/
最終更新:2025-11-26 | バージョン:1.1.0