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 our OOTB Freshness and Volume Monitors and 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:
- Enable network connectivity between the database and Monte Carlo's data collector.
- Create a read-only database user with the appropriate permissions on your database.
- 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.M_DATABASE TO <username>;
GRANT SELECT ON SYS.SCHEMAS TO <username>;
GRANT SELECT ON SYS.M_TABLES TO <username>;
GRANT SELECT ON SYS.M_TABLE_STATISTICS 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
- Please follow this guide to install and configure the CLI.
- Please use the command
montecarlo integrations add-sap-hana-database
to connect.
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.
Category | Monitor Type | Support |
---|---|---|
Automated Anomaly Detection | Freshness | |
Automated Anomaly Detection | Volume | |
Automated Monitoring | Schema Changes | |
Opt-in Monitor | SQL Rule | |
Opt-in Monitor | Comparison Rule | |
Opt-in Monitor | Field Quality Rule | |
Opt-in Monitor | Freshness Rule | |
Opt-in Monitor | Volume Rule | |
Opt-in Monitor | Volume Anomaly Detection | |
Opt-in Monitor | Field Health Monitor | |
Opt-in Monitor | Dimension Tracking | |
Opt-in Monitor | JSON 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'));
Updated 6 days ago