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에 대한 연결 설정, 인증 설정 구성이 포함됩니다.
다음 셀은 현재 데모에 필요한 다양한 모듈을 로드/임포트합니다. 알고 있듯이 모듈은 코드 라이브러리와 동일한 것으로 간주될 수 있습니다.
12import hana_ml
print(hana_ml.__version__)2.24.25051600
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]에 대한 연결을 나타냅니다.
123456789101112131415hana_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()
참