SAP HANA를 위한 Python Machine-Learning 클라이언트 구성

Objective

After completing this lesson, you will be able to hana-ml 패키지를 설치하고 기계 학습 태스크를 위해 SAP HANA Cloud에 대한 신뢰할 수 있는 연결 컨텍스트를 설정합니다.

SAP HANA의 데이터 액세스 및 탐색

Python의 SAP HANA Predictive Analysis Library(PAL)를 사용하여 시계열 예측 모델을 작성하려면 먼저 필요한 라이브러리로 로컬 Python 환경을 설정하고 SAP HANA Cloud 인스턴스에 대한 보안 연결을 설정해야 합니다. hana-ml 라이브러리를 사용하면 SAP HANA 데이터에 액세스하고 Python 스크립트에서 직접 SAP HANA PAL 알고리즘을 실행할 수 있으므로 이러한 통합이 가능합니다.

기술 선행조건

SAP HANA에서 시계열 모델을 사용하려면 다음이 필요합니다.

  • ScriptServer가 있는 SAP HANA Cloud의 인스턴스(APL, PAL 사용)
  • Python hana-ml 패키지 2.24.25051600, 기타 패키지 및 종속성 설치
  • SQL(Structured Query Language) 관련 기본 지식(매우 바람직한 지식)

환경 설정

SAP HANA에서 시계열 모델을 구현하기 전에 필요한 환경을 반드시 설정해야 합니다. 여기에는 필요한 Python 라이브러리 설치, SAP HANA Cloud에 대한 연결 설정, 인증 설정 구성이 포함됩니다.

다음 셀은 현재 데모에 필요한 다양한 모듈을 로드/임포트합니다. 알고 있듯이 모듈은 코드 라이브러리와 동일한 것으로 간주될 수 있습니다.

Code Snippet
12
import hana_ml print(hana_ml.__version__)

2.24.25051600

Code Snippet
123456789101112131415161718
#importing other packages used import pandas as pd import matplotlib.pyplot as plt import time import numpy as np import os import json from dotenv import load_dotenv load_dotenv() from hana_ml import dataframe from hana_ml.visualizers.unified_report import UnifiedReport from hana_ml.algorithms.pal.tsa.additive_model_forecast import AdditiveModelForecast from hana_ml.algorithms.pal.random import binomial from hana_ml.algorithms.pal.partition import train_test_val_split %matplotlib inline

SAP HANA Cloud 데이터베이스 연결

SAP HANA용 Python 기계 학습 클라이언트(hana-ml)를 사용하면 연결이 항상 SAP HANA DataFrame에 연결됩니다. 또한 SAP HANA Cloud의 경우 암호화된 연결을 사용해야 합니다.

학습자는 클래스 hana_mI.dataframe.ConnectionContext를 인스턴스화하기 위해 제공되어야 하므로 SAP HANA 시스템 주소와 이 주소에 액세스하기 위한 자격 증명이 있어야 합니다. 이는 SAP HANA 데이터베이스 인스턴스 [1]에 대한 연결을 나타냅니다.

Code Snippet
123456789101112131415
hana_address = os.getenv('hana_address', "<your_hana_address>") hana_port = int(os.getenv('hana_port', 443)) hana_user = os.getenv('hana_user', "<your_hana_user>") hana_password = os.getenv('hana_password', "<your_hana_password>") hana_encrypt = os.getenv('hana_encrypt', 'True').lower() == 'true' hana_schema = os.getenv('HANA_SCHEMA', 'My_Schema') conn = dataframe.ConnectionContext(address=hana_address, port=hana_port, user=hana_user, password=hana_password, encrypt=True, sslValidateCertificate=False, current_schema=hana_schema) conn.connection.isconnected()

참조