SAP HANA 데이터베이스
요약
항목 | Description |
---|---|
릴리스 상태 | 일반 공급 |
제품 | Power BI(데이터 세트) Power BI(데이터 흐름) Power Apps(데이터 흐름) Excel Analysis Services |
지원되는 인증 유형 | Basic 데이터베이스 Windows |
함수 참조 설명서 | SapHana.Database |
참고
일부 기능은 한 제품에 있을 수 있지만 배포 일정 및 호스트별 기능으로 인해 다른 기능은 없을 수 있습니다.
필수 구성 요소
웹 사이트에 로그인하고 드라이버를 다운로드하려면 SAP 계정이 필요합니다. 확실하지 않은 경우 조직의 SAP 관리자에게 문의하세요.
Power BI Desktop 또는 Excel에서 SAP HANA를 사용하려면 SAP HANA 데이터 연결이 제대로 작동하려면 로컬 클라이언트 컴퓨터에 SAP HANA ODBC 드라이버가 설치되어 있어야 합니다. 필요한 ODBC 드라이버가 들어 있는 SAP Development Tools에서 SAP HANA 클라이언트 도구를 다운로드할 수 있습니다. 또는 SAP 소프트웨어 다운로드 센터에서 다운로드할 수 있습니다. 소프트웨어 포털에서 Windows 컴퓨터용 SAP HANA CLIENT를 검색해 보세요. SAP 소프트웨어 다운로드 센터는 구조가 자주 변경되기 때문에 더 구체적인 사이트 탐색 지침은 제공할 수 없습니다. SAP HANA ODBC 드라이버 설치에 대한 지침은 Windows 64 비트에 SAP HANA ODBC 드라이버 설치로 이동하세요.
Excel에서 SAP HANA를 사용하려면 로컬 클라이언트 컴퓨터에 32비트 또는 64비트 버전의 Excel을 사용하는지 여부에 따라 32비트 또는 64비트 SAP HANA ODBC 드라이버가 설치되어 있어야 합니다.
이 기능은 Office 2019 또는 Microsoft 365 구독이 있는 경우에만 Windows용 Excel에서 사용할 수 있습니다. Microsoft 365 구독자인 경우 최신 버전의 Office가 있는지 확인합니다.
HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 및 BW/4HANA 2.0이 지원됩니다.
지원되는 기능
- 가져오기
- DirectQuery
- 고급
- SQL 문
Power Query Desktop에서 SAP HANA 데이터베이스에 연결
Power Query Desktop에서 SAP HANA 데이터베이스에 연결하려면 다음을 수행합니다.
Excel의 데이터 > 리본에서 Power BI Desktop 또는 SAP HANA 데이터베이스에서 데이터베이스 > 에서 데이터 가져오기 SAP HANA 데이터베이스 가져오기를 선택합니다.
연결할 SAP HANA 서버의 이름과 포트를 입력합니다. 다음 그림의 예제에서는 포트
30015
에서 를 사용합니다SAPHANATestServer
.기본적으로 포트 번호는 단일 컨테이너 데이터베이스를 지원하도록 설정됩니다. SAP HANA 데이터베이스에 둘 이상의 다중 테넌트 데이터베이스 컨테이너를 포함할 수 있는 경우 다중 컨테이너 시스템 데이터베이스(30013)를 선택합니다. 기본 인스턴스 번호가 아닌 테넌트 데이터베이스 또는 데이터베이스에 연결하려면 포트 드롭다운 메뉴에서 사용자 지정을 선택합니다.
Power BI Desktop SAP HANA 데이터베이스에 연결하는 경우 가져오기 또는 DirectQuery를 선택하는 옵션도 제공됩니다. 이 문서의 예제에서는 기본값인 가져오기(Excel의 유일한 모드)를 사용합니다. Power BI Desktop DirectQuery를 사용하여 데이터베이스에 연결하는 방법에 대한 자세한 내용은 Power BI에서 DirectQuery를 사용하여 SAP HANA 데이터 원본에 연결을 참조하세요.
SQL 문을 입력하거나 고급 옵션에서 열 바인딩을 사용하도록 설정할 수도 있습니다. 자세한 정보, 고급 옵션을 사용하여 연결
모든 옵션을 입력했으면 확인을 선택합니다.
데이터베이스에 처음으로 액세스하는 경우 인증을 위해 자격 증명을 입력하라는 메시지가 표시됩니다. 이 예제에서는 SAP HANA 서버에 데이터베이스 사용자 자격 증명이 필요하므로 데이터베이스 를 선택하고 사용자 이름과 암호를 입력합니다. 필요한 경우 서버 인증서 정보를 입력합니다.
또한 서버 인증서의 유효성을 검사해야 할 수도 있습니다. 서버 인증서 선택 유효성 검사 사용에 대한 자세한 내용은 SAP HANA 암호화 사용을 참조하세요. Power BI Desktop Excel에서 서버 인증서 선택 유효성 검사는 기본적으로 사용하도록 설정됩니다. ODBC 데이터 원본 관리자에서 이러한 선택 항목을 이미 설정한 경우 서버 인증서 유효성 검사 확인란의 선택을 취소합니다. ODBC 데이터 원본 관리자를 사용하여 이러한 선택을 설정하는 방법에 대한 자세한 내용은 SAP HANA에 대한 ODBC 클라이언트 액세스에 대한 SSL 구성으로 이동하세요.
인증에 대한 자세한 내용은 데이터 원본을 사용한 인증으로 이동하세요.
필요한 정보를 모두 입력했으면 연결을 선택합니다.
탐색기 대화 상자에서 데이터 변환을 선택하여 Power Query 편집기에서 데이터를 변환하거나 로드를 선택하여 데이터를 로드할 수 있습니다.
Power Query Online에서 SAP HANA 데이터베이스에 연결
Power Query Online에서 SAP HANA 데이터에 연결하려면 다음을 수행합니다.
데이터 원본 페이지에서 SAP HANA 데이터베이스를 선택합니다.
연결할 SAP HANA 서버의 이름과 포트를 입력합니다. 다음 그림의 예제에서는 포트
30015
에서 를 사용합니다SAPHANATestServer
.필요에 따라 고급 옵션에서 SQL 문을 입력합니다. 자세한 정보, 고급 옵션을 사용하여 연결
데이터베이스 액세스에 사용할 온-프레미스 데이터 게이트웨이의 이름을 선택합니다.
참고
데이터가 로컬인지 온라인인지 여부에 관계없이 이 커넥터에서 온-프레미스 데이터 게이트웨이를 사용해야 합니다.
데이터에 액세스하는 데 사용할 인증 종류를 선택합니다. 또한 사용자 이름과 암호를 입력해야 합니다.
참고
현재 Power Query Online은 기본 인증만 지원합니다.
암호화된 연결을 사용하는 경우 암호화된 연결 사용을 선택한 다음, SSL 암호화 공급자를 선택합니다. 암호화된 연결을 사용하지 않는 경우 암호화된 연결 사용을 취소합니다. 추가 정보: SAP HANA에 암호화 사용
다음을 선택하여 계속합니다.
탐색기 대화 상자에서 데이터 변환을 선택하여 Power Query 편집기에서 데이터를 변환하거나 로드를 선택하여 데이터를 로드할 수 있습니다.
고급 옵션을 사용하여 연결
Power Query 필요한 경우 쿼리에 추가할 수 있는 고급 옵션 집합을 제공합니다.
다음 표에서는 Power Query 설정할 수 있는 모든 고급 옵션에 대해 설명합니다.
고급 옵션 | Description |
---|---|
SQL 문 | 자세한 정보, 네이티브 데이터베이스 쿼리를 사용하여 데이터베이스에서 데이터 가져오기 |
열 바인딩 사용 | 데이터를 가져올 때 SAP HANA 결과 집합의 열에 변수를 바인딩합니다. 메모리 사용률을 약간 더 높이면 성능이 향상될 가능성이 있습니다. 이 옵션은 파워 쿼리 Desktop에서만 사용할 수 있습니다. 추가 정보: 열 바인딩 사용 |
ConnectionTimeout | 서버에 연결하려는 시도를 중단하기 전에 대기할 시간을 제어하는 기간입니다. 기본값은 15초입니다. |
CommandTimeout | 서버 쪽 쿼리가 취소되기 전에 실행할 수 있는 기간을 제어하는 기간입니다. 기본값은 10분입니다. |
SAP HANA에 대해 지원되는 기능
다음 목록에서는 SAP HANA에 대해 지원되는 기능을 보여줍니다. 여기에 나열된 모든 기능이 SAP HANA 데이터베이스 커넥터의 모든 구현에서 지원되는 것은 아닙니다.
SAP HANA 데이터베이스에 대한 Power BI Desktop 및 Excel 커넥터는 모두 SAP ODBC 드라이버를 사용하여 최상의 사용자 환경을 제공합니다.
Power BI Desktop SAP HANA는 DirectQuery 및 가져오기 옵션을 모두 지원합니다.
Power BI Desktop 분석 및 계산 뷰와 같은 HANA 정보 모델을 지원하며 탐색이 최적화되어 있습니다.
SAP HANA를 사용하면 네이티브 데이터베이스 쿼리 SQL 문에서 SQL 명령을 사용하여 탐색기 환경에서 제공하는 분석/계산 뷰에 포함되지 않은 HANA 카탈로그 테이블의 행 및 열 테이블에 연결할 수도 있습니다. ODBC 커넥터를 사용하여 이러한 테이블을 쿼리할 수도 있습니다.
Power BI Desktop HANA 모델에 최적화된 탐색이 포함되어 있습니다.
Power BI Desktop SAP HANA 변수 및 입력 매개 변수를 지원합니다.
Power BI Desktop HDI 컨테이너 기반 계산 뷰를 지원합니다.
이제 SapHana.Database 함수는 연결 및 명령 시간 제한을 지원합니다. 추가 정보: 고급 옵션을 사용하여 연결
Power BI에서 HDI-컨테이너 기반 계산 보기에 액세스하려면 Power BI로 사용하는 HANA 데이터베이스 사용자에게 액세스하려는 보기를 저장하는 HDI 런타임 컨테이너에 액세스할 수 있는 권한이 있는지 확인합니다. 이 액세스 권한을 부여하려면 HDI 컨테이너에 액세스할 수 있는 역할을 만듭니다. 그런 다음 Power BI에 사용할 HANA 데이터베이스 사용자에게 역할을 할당합니다. (이 사용자는 평소와 같이 _SYS_BI 스키마의 시스템 테이블에서 읽을 수 있는 권한이 있어야 합니다.) 데이터베이스 역할을 만들고 할당하는 방법에 대한 자세한 지침은 공식 SAP 설명서를 참조하세요. 이 SAP 블로그 게시물 은 시작하기에 좋은 장소일 수 있습니다.
현재 HDI 기반 계산 보기에 연결된 HANA 변수에 대해서는 몇 가지 제한 사항이 있습니다. 해당 제한 사항은 HANA 쪽의 오류 때문에 발생합니다. 첫째, HDI-컨테이너 기반 계산 보기의 공유 열에 HANA 변수를 적용할 수 없습니다. 이 제한을 해결하려면 HANA 2 버전 37.02 이상으로 업그레이드하거나 HANA 2 버전 42 이상으로 업그레이드하세요. 둘째, 변수 및 매개 변수의 다중 항목 기본값은 현재 Power BI UI에 표시되지 않습니다. SAP HANA의 오류 때문에 이러한 제한이 발생하지만 SAP에서 아직 수정을 발표하지 않았습니다.
열 바인딩 사용
데이터 원본에서 가져온 데이터는 애플리케이션이 이 목적을 위해 할당한 변수로 애플리케이션에 반환됩니다. 이 작업을 수행하기 전에 애플리케이션은 이러한 변수를 결과 집합의 열에 연결하거나 바인딩해야 합니다. 개념적으로 이 프로세스는 문 매개 변수에 애플리케이션 변수를 바인딩하는 것과 동일합니다. 애플리케이션이 결과 집합 열에 변수를 바인딩하는 경우 해당 변수(주소, 데이터 형식 등)를 드라이버에 설명합니다. 드라이버는 이 정보를 해당 문에 대해 유지 관리하는 구조에 저장하고, 이 정보를 사용하여 행을 가져올 때 열에서 값을 반환합니다.
현재 Power Query Desktop을 사용하여 SAP HANA 데이터베이스에 연결하는 경우 열 바인딩 사용 고급 옵션을 선택하여 열 바인딩을 사용하도록 설정할 수 있습니다.
Power Query 수식 입력줄 또는 고급 편집기에서 연결에 옵션을 수동으로 추가하여 EnableColumnBinding
기존 쿼리 또는 Power Query Online에서 사용되는 쿼리에서 열 바인딩을 사용하도록 설정할 수도 있습니다. 예:
SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),
옵션을 수동으로 추가하는 것과 관련된 제한 사항이 있습니다.EnableColumnBinding
- 열 바인딩 사용은 가져오기 및 DirectQuery 모드 모두에서 작동합니다. 그러나 이 고급 옵션을 사용하도록 기존 DirectQuery 쿼리를 개조할 수는 없습니다. 대신 이 기능이 제대로 작동하려면 새 쿼리를 만들어야 합니다.
- SAP HANA Server 버전 2.0 이상에서는 열 바인딩이 전부 또는 전혀 없습니다. 일부 열을 바인딩할 수 없는 경우 바인딩되지 않으며 사용자는 예외(예
DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)
: )를 받게 됩니다. - SAP HANA 버전 1.0 서버가 항상 올바른 열 길이를 보고하는 것은 아닙니다. 이 컨텍스트
EnableColumnBinding
에서 는 부분 열 바인딩을 허용합니다. 일부 쿼리의 경우 열이 바인딩되지 않음을 의미할 수 있습니다. 열이 바인딩되지 않으면 성능상의 이점을 얻을 수 없습니다.
SAP HANA 데이터베이스 커넥터의 네이티브 쿼리 지원
Power Query SAP HANA 데이터베이스 커넥터는 네이티브 쿼리를 지원합니다. Power Query 네이티브 쿼리를 사용하는 방법에 대한 자세한 내용은 네이티브 데이터베이스 쿼리를 사용하여 데이터베이스에서 데이터 가져오기로 이동하세요.
네이티브 쿼리에 대한 쿼리 폴딩
Power Query SAP HANA 데이터베이스 커넥터는 이제 네이티브 쿼리에 대한 쿼리 폴딩을 지원합니다. 추가 정보: 네이티브 쿼리에 대한 쿼리 폴딩
참고
Power Query SAP HANA 데이터베이스 커넥터에서 네이티브 쿼리는 가 true로 설정된 경우 EnableFolding
중복 열 이름을 지원하지 않습니다.
네이티브 쿼리의 매개 변수
Power Query SAP HANA 데이터베이스 커넥터는 이제 네이티브 쿼리에서 매개 변수를 지원합니다. Value.NativeQuery 구문을 사용하여 네이티브 쿼리에서 매개 변수를 지정할 수 있습니다.
다른 커넥터와 달리 SAP HANA 데이터베이스 커넥터는 동시에 매개 변수를 EnableFolding = True
지원하고 지정합니다.
쿼리에서 매개 변수를 사용하려면 코드에 물음표(?)를 자리 표시자로 배치합니다. 매개 변수를 지정하려면 의 텍스트 값과 해당 SqlType
Value
값을 사용합니다SqlType
. Value
는 M 값일 수 있지만 지정된 SqlType
의 값에 할당되어야 합니다.
매개 변수를 지정하는 방법에는 여러 가지가 있습니다.
값만 목록으로 제공:
{ “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
값 및 형식을 목록으로 제공:
{ [ SqlType = "CHAR", Value = "M" ], [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
다음 두 가지를 혼합하고 일치합니다.
{ “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
SqlType
는 SAP HANA에서 정의한 표준 형식 이름을 따릅니다. 예를 들어 다음 목록에는 사용되는 가장 일반적인 형식이 포함되어 있습니다.
- bigint
- BINARY
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- DOUBLE
- INTEGER
- NVARCHAR
- SECONDDATE
- SHORTTEXT
- SMALLDECIMAL
- SMALLINT
- TIME
- timestamp
- VARBINARY
- VARCHAR
다음 예제에서는 매개 변수 값 목록을 제공하는 방법을 보여 줍니다.
let
Source = Value.NativeQuery(
SapHana.Database(
"myhanaserver:30015",
[Implementation = "2.0"]
),
"select ""VARCHAR_VAL"" as ""VARCHAR_VAL""
from ""_SYS_BIC"".""DEMO/CV_ALL_TYPES""
where ""VARCHAR_VAL"" = ? and ""DATE_VAL"" = ?
group by ""VARCHAR_VAL""
",
{"Seattle", #date(1957, 6, 13)},
[EnableFolding = true]
)
in
Source
다음 예제에서는 레코드 목록을 제공하거나 값과 레코드를 혼합하는 방법을 보여 줍니다.
let
Source = Value.NativeQuery(
SapHana.Database(Server, [Implementation="2.0"]),
"select
""COL_VARCHAR"" as ""COL_VARCHAR"",
""ID"" as ""ID"",
sum(""DECIMAL_MEASURE"") as ""DECIMAL_MEASURE""
from ""_SYS_BIC"".""DEMO/CV_ALLTYPES""
where
""COL_ALPHANUM"" = ? or
""COL_BIGINT"" = ? or
""COL_BINARY"" = ? or
""COL_BOOLEAN"" = ? or
""COL_DATE"" = ?
group by
""COL_ALPHANUM"",
""COL_BIGINT"",
""COL_BINARY"",
""COL_BOOLEAN"",
""COL_DATE"",
{
[ SqlType = "CHAR", Value = "M" ], // COL_ALPHANUM - CHAR
[ SqlType = "BIGINT", Value = 4 ], // COL_BIGINT - BIGINT
[ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], // COL_BINARY - BINARY
[ SqlType = "BOOLEAN", Value = true ], // COL_BOOLEAN - BOOLEAN
[ SqlType = "DATE", Value = #date(2022, 5, 27) ], // COL_DATE - TYPE_DATE
} ,
[EnableFolding=false]
)
in
Source
동적 특성 지원
SAP HANA 데이터베이스 커넥터가 계산 열을 처리하는 방식이 개선되었습니다. SAP HANA 데이터베이스 커넥터는 "큐브" 커넥터이며 "큐브" 공간에서 발생하는 몇 가지 작업 집합(항목 추가, 열 축소 등)이 있습니다. 이 큐브 공간은 더 일반적인 "테이블" 아이콘을 대체하는 "큐브" 아이콘으로 Power Query Desktop 및 Power Query Online 사용자 인터페이스에 표시됩니다.
이전에는 테이블 열(또는 내부적으로 열을 추가하는 다른 변환)을 추가하면 쿼리가 "큐브 공간 중에서 삭제"되고 모든 작업이 테이블 수준에서 수행됩니다. 어떤 시점에서 이 드롭아웃으로 인해 쿼리가 폴딩을 중지할 수 있습니다. 열을 추가한 후 큐브 작업을 수행할 수 없습니다.
이 변경으로 추가된 열은 큐브 내에서 동적 특성 으로 처리됩니다. 이 작업을 위해 쿼리를 큐브 공간에 유지하면 열을 추가한 후에도 큐브 작업을 계속 사용할 수 있다는 이점이 있습니다.
참고
이 새로운 기능은 SAP HANA Server 버전 2.0 이상에서 계산 뷰에 연결하는 경우에만 사용할 수 있습니다.
다음 샘플 쿼리는 이 새로운 기능을 활용합니다. 이전에는 Cube.CollapseAndRemoveColumns를 적용할 때 "값이 큐브가 아닙니다" 예외가 발생합니다.
let
Source = SapHana.Database(“someserver:someport”, [Implementation="2.0"]),
Contents = Source{[Name="Contents"]}[Data],
SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models = Contents{[Name="SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models"]}[Data],
PURCHASE_ORDERS1 = SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models{[Name="PURCHASE_ORDERS"]}[Data],
#"Added Items" = Cube.Transform(PURCHASE_ORDERS1,
{
{Cube.AddAndExpandDimensionColumn, "[PURCHASE_ORDERS]", {"[HISTORY_CREATEDAT].[HISTORY_CREATEDAT].Attribute", "[Product_TypeCode].[Product_TypeCode].Attribute", "[Supplier_Country].[Supplier_Country].Attribute"}, {"HISTORY_CREATEDAT", "Product_TypeCode", "Supplier_Country"}},
{Cube.AddMeasureColumn, "Product_Price", "[Measures].[Product_Price]"}
}),
#"Inserted Year" = Table.AddColumn(#"Added Items", "Year", each Date.Year([HISTORY_CREATEDAT]), Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Inserted Year", each ([Product_TypeCode] = "PR")),
#"Added Conditional Column" = Table.AddColumn(#"Filtered Rows", "Region", each if [Supplier_Country] = "US" then "North America" else if [Supplier_Country] = "CA" then "North America" else if [Supplier_Country] = "MX" then "North America" else "Rest of world"),
#"Filtered Rows1" = Table.SelectRows(#"Added Conditional Column", each ([Region] = "North America")),
#"Collapsed and Removed Columns" = Cube.CollapseAndRemoveColumns(#"Filtered Rows1", {"HISTORY_CREATEDAT", "Product_TypeCode"})
in
#"Collapsed and Removed Columns"
다음 단계
다음 문서에는 SAP HANA debase에 연결할 때 유용할 수 있는 자세한 정보가 포함되어 있습니다.