Skip to content
Development
Skill

/sap-hana-ml

SAP HANA Machine Learning Python Client (hana-ml) development skill. Use when: Building ML solutions with SAP HANA's in-database machine learning using Python hana-ml library for PAL/APL algorithms, DataFrame operations, AutoML, model persistence, and visualization. Keywords:

From plugin
sap-skills
48540 skills31 agents69 commands8 MCP

Claude Code

$ npx -y skills add secondsky/sap-skills --skill sap-hana-ml --agent claude-code

SKILL.md

sap-hana-ml.SKILL.md
name: sap-hana-ml
description: |
  SAP HANA Machine Learning Python Client (hana-ml) development skill.
  
  Use when: Building ML solutions with SAP HANA's in-database machine learning
  using Python hana-ml library for PAL/APL algorithms, DataFrame operations,
  AutoML, model persistence, and visualization.
  
  Keywords: hana-ml, SAP HANA, machine learning, PAL, APL, predictive analytics,
  HANA DataFrame, ConnectionContext, classification, regression, clustering,
  time series, ARIMA, gradient boosting, AutoML, SHAP, model storage
license: GPL-3.0
metadata:
  maintainer: "Eduard Jiglau"
  maintainer_email: "hello@sap-ai-skills.com"
  website: "https://sap-ai-skills.com"
  version: "2.4.1"
  last_verified: 2025-11-27
  package_version: 2.22.241011

SAP HANA ML Python Client (hana-ml)

Related Skills

  • **sap-dependency-security**: Use for secure dependency pinning and upgrade workflows in Python/auxiliary tooling used alongside HANA ML stacks

When to Use This Skill

Use this skill when building machine learning workflows with the `hana-ml` Python client, using PAL/APL algorithms, querying HANA DataFrames, training or scoring models in-database, using AutoML, visualizing model output, or troubleshooting Python-to-HANA ML connections.

Common Issues

| Issue | First check | |-------|-------------| | Connection fails | Verify HANA host, port, TLS/encryption, user privileges, and network allowlists. | | PAL/APL algorithm missing | Confirm the HANA system has the required AFL/PAL/APL libraries installed and licensed. | | DataFrame collection is slow | Push filtering/projection into HANA and avoid collecting large frames into Python. |

**Package Version**: 2.22.241011 **Last Verified**: 2025-11-27

Table of Contents

  • [Installation & Setup](#installation--setup)
  • [Quick Start](#quick-start)
  • [Core Libraries](#core-libraries)
  • [Common Patterns](#common-patterns)
  • [Best Practices](#best-practices)
  • [Bundled Resources](#bundled-resources)

---

Installation & Setup

pip install hana-ml

**Requirements**: Python 3.8+, SAP HANA 2.0 SPS03+ or SAP HANA Cloud

---

Quick Start

Connection & DataFrame

from hana_ml import ConnectionContext

# Connect
conn = ConnectionContext(
    address='<hostname>',
    port=443,
    user='<username>',
    password='<password>',
    encrypt=True
)

# Create DataFrame
df = conn.table('MY_TABLE', schema='MY_SCHEMA')
print(f"Shape: {df.shape}")
df.head(10).collect()

PAL Classification

from hana_ml.algorithms.pal.unified_classification import UnifiedClassification

# Train model
clf = UnifiedClassification(func='RandomDecisionTree')
clf.fit(train_df, features=['F1', 'F2', 'F3'], label='TARGET')

# Predict & evaluate
predictions = clf.predict(test_df, features=['F1', 'F2', 'F3'])
score = clf.score(test_df, features=['F1', 'F2', 'F3'], label='TARGET')

APL AutoML

from hana_ml.algorithms.apl.classification import AutoClassifier

# Automated classification
auto_clf = AutoClassifier()
auto_clf.fit(train_df, label='TARGET')
predictions = auto_clf.predict(test_df)

Model Persistence

from hana_ml.model_storage import ModelStorage

ms = ModelStorage(conn)
clf.name = 'MY_CLASSIFIER'
ms.save_model(model=clf, if_exists='replace')

---

Core Libraries

PAL (Predictive Analysis Library)

  • **100+ algorithms** executed in-database
  • Categories: Classification, Regression, Clustering, Time Series, Preprocessing
  • **Key classes**: `UnifiedClassification`, `UnifiedRegression`, `KMeans`, `ARIMA`
  • See: `references/PAL_ALGORITHMS.md` for complete list

APL (Automated Predictive Library)

  • **AutoML capabilities** with automatic feature engineering
  • **Key classes**: `AutoClassifier`, `AutoRegressor`, `GradientBoostingClassifier`
  • See: `references/APL_ALGORITHMS.md` for details

DataFrames

  • **Lazy evaluation** - builds SQL until `collect()` called
  • **In-database processing** for optimal performance
  • See: `references/DATAFRAME_REFERENCE.md` for complete API

Visualizers

  • **EDA plots**, model explanations, metrics
  • **SHAP integration** for model interpretability
  • See: `references/VISUALIZERS.md` for 14 visualization modules

---

Common Patterns

Train-Test Split

from hana_ml.algorithms.pal.partition import train_test_val_split

train, test, val = train_test_val_split(
    data=df,
    training_percentage=0.7,
    testing_percentage=0.2,
    validation_percentage=0.1
)

Feature Importance

# APL models
importance = auto_clf.get_feature_importances()

# PAL models
from hana_ml.algorithms.pal.preprocessing import FeatureSelection
fs = FeatureSelection()
fs.fit(train_df, features=features, label='TARGET')

Pipeline

from hana_ml.algorithms.pal.pipeline import Pipeline
from hana_ml.algorithms.pal.preprocessing import Imputer, FeatureNormalizer

pipeline = Pipeline([
    ('imputer', Imputer(strategy='mean')),
    ('normalizer', FeatureNormalizer()),
    ('classifier', UnifiedClassification(func='RandomDecisionTree'))
])

---

Best Practices

1. **Use lazy evaluation** - Operations build SQL without execution until `collect()` 2. **Leverage in-database processing** - Keep data in HANA for performance 3. **Use Unified interfaces** - Consistent APIs across algorithms 4. **Save models** - Use `ModelStorage` for persistence 5. **Explain predictions** - Use SHAP explainers for interpretability 6. **Monitor AutoML** - Use `PipelineProgressStatusMonitor` for long-running jobs

---

Bundled Resources

Reference Files

  • **`references/DATAFRAME_REFERENCE.md`** (479 lines)
  • ConnectionContext API, DataFrame operations, SQL generation
  • **`references/PAL_ALGORITHMS.md`** (869 lines)
  • Complete PAL algorithm reference (100+ algorithms)
  • Classification, Regression, Clustering, Time Series, Preprocessing
  • **`references/APL_ALGORITHMS.md`** (534 lines)
  • AutoML capabilities, automated
Read more
@secondsky
Ships withsap-skills

40 SAP development plugins with evidence-tracked verification SAP development plugins for AI coding assistants, with public-source or package-registry verification tracked where available.

48540 skills31 agents8 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
485
Star history of secondsky/sap-skills on GitHub, a chart by star-history.com

Other skills on sap-skills.

sap-abap-cds

sap-abap-cds

Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment. Use when…

sap-abap

sap-abap

Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP…

sap-ai-core

sap-ai-core

Guides development with SAP AI Core and SAP AI Launchpad for enterprise AI/ML workloads on SAP BTP. Use when: deploying…

sap-api-policy

sap-api-policy

Evidence-based assessment of whether an SAP API/interface usage scenario aligns with the SAP API Policy (v.4.2026a). Use whenever…

sap-api-style

sap-api-style

This skill provides comprehensive guidance for documenting SAP APIs following the SAP API Style Guide standards. It should be…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about sap-hana-ml.

Which coding agents can use sap-hana-ml?
sap-hana-ml installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.