SAP HANA (beta)

Connection overview. Requires: CLI v0.70.6 and Data Collector v16397 or newer

Integrating Monte Carlo with SAP HANA allows you to monitor your data assets through custom SQL monitors, which can be created in either the UI wizard and/or programmatically via monitors as code (API/SDK too). These monitors can be used to generate notifications (incidents) to relevant stakeholders and circuit break pipelines.

Integration Setup

To connect Monte Carlo to a SAP HANA database, follow these steps:

  1. Enable network connectivity between the database and Monte Carlo's data collector.
  2. Create a read-only database user with the appropriate permissions on your database.
  3. Provide service account credentials to Monte Carlo (requires Using the CLI).

1. Enable network connectivity

Follow the Network Connectivity guide to IP Allowlist or VPC peer to provide access to SAP HANA.

2. Create a read-only database user

πŸ“˜

Prerequisites

To create a database user, you will need to have USER ADMIN privileges.

Please run the SQL snippets below on your SAP HANA tenant database to create a read-only database user for Monte Carlo.

-- Creates a restricted user. Turns off requirement that this user change their password.
CREATE RESTRICTED USER <username> PASSWORD <password> NO FORCE_FIRST_PASSWORD_CHANGE;

-- Allows user to connect to the database through a client.
ALTER USER <username> ENABLE CLIENT CONNECT;

-- Grants user SELECT access on system views needed for metadata collection.
GRANT CATALOG READ TO <username>;
GRANT SELECT ON SYS.TABLES TO <username>;
GRANT SELECT ON SYS.VIEWS TO <username>;

-- For custom monitors, user needs SELECT access on the individual tables.
-- To give the user SELECT privileges on every table in a schema, run:
GRANT SELECT ON SCHEMA <schema_name> TO <username>;

-- To give the user SELECT privileges on a specific table only, run:
GRANT SELECT ON <schema_name>.<table_name> TO <username>;

3. Provide service account credentials to Monte Carlo

  1. Please follow this guide to install and configure the CLI.
  2. Please use the command montecarlo integrations add-sap-hana-database to connect.
    1. The CLI reference can be found here.
    2. For help on multi-tenant deployments or how to find the port number to use, see the FAQ.
montecarlo integrations add-sap-hana-database \
--host example.fake.com \
--port 39015 \
--user montecarlo \
--password -1 \
--database <name of database in SAP HANA>
--name <friendly name for the connection in Monte Carlo>

Monitor Support

Below are the supported monitors for the SAP HANA integration today. Please reach out to your Monte Carlo representative if you have requirements for additional Monitors.

CategoryMonitor TypeSupport
Automated Anomaly DetectionFreshness
Automated Anomaly DetectionVolume
Automated MonitoringSchema Changes
Opt-in MonitorSQL Rule:white-check-mark:
Opt-in MonitorComparison Rule:white-check-mark:
Opt-in MonitorField Quality Rule
Opt-in MonitorFreshness Rule
Opt-in MonitorVolume Rule
Opt-in MonitorVolume Anomaly Detection:white-check-mark:
Opt-in MonitorField Health Monitor
Opt-in MonitorDimension Tracking
Opt-in MonitorJSON Schema Changes

FAQs

What hosting solutions are supported?
This integration supports any instance that is reachable from the AWS cloud (e.g. AWS hosted, site-to-site VPN with AWS, publicly accessible, etc). Please see the networking docs for more detail.

Do you support multi-tenant deployments?
If your SAP HANA deployment has multiple tenant databases that you would like Monte Carlo to monitor, you will need to complete steps Create a read-only database user and Provide service account credentials for each tenant database. Monte Carlo will create a connection for each tenant database and collect metadata on them separately.

How can I find the port number of my tenant databases?
Monte Carlo needs the SQL_port number of each tenant database you want to monitor. The easiest way to find this port is by running this query in the systemDB:

SELECT DATABASE_NAME, SQL_PORT
FROM SYS_DATABASES.M_SERVICES
WHERE ((SERVICE_NAME='indexserver' and COORDINATOR_TYPE= 'MASTER')
or (SERVICE_NAME='xsengine'));