이 안내에서는 SAP Data Services(DS)를 사용하여 SAP 애플리케이션 또는 기본 데이터베이스에서 BigQuery로 데이터를 내보내는 방법을 보여줍니다.
데이터베이스는 SAP HANA 또는 SAP에서 지원되는 다른 모든 데이터베이스일 수 있습니다.
이 가이드의 예시에서는 SQL Anywhere 데이터베이스 테이블을 내보내지만 이를 사용해서 SAP 애플리케이션과 데이터베이스 레이어 모두의 다른 객체 유형을 BigQuery로 내보내도록 설정할 수 있습니다.
데이터 내보내기를 사용하면 SAP 데이터를 백업하거나 SAP 시스템의 데이터를 BigQuery에 있는 다른 시스템의 소비자 데이터와 통합하여, 머신 러닝으로부터 유용한 정보를 도출하고 페타바이트급 데이터 분석을 수행할 수 있습니다.
이 안내는 SAP Basis, SAP DS, Google Cloud 구성에 대한 기본 경험이 있는 SAP 시스템 관리자를 대상으로 합니다.
아키텍처
SAP Data Services는 SAP 애플리케이션 또는 기본 데이터베이스에서 데이터를 검색하고, 데이터를 BigQuery 형식과 호환되도록 변환하고, 데이터를 BigQuery로 이동하는 로드 작업을 시작합니다. 로드 작업이 완료되면 BigQuery에서 분석용으로 데이터를 사용할 수 있습니다.
내보내기는 내보내기 시점에 소스 시스템에 있는 데이터의 스냅샷입니다. SAP Data Services가 내보내기를 시작하는 시간을 제어합니다. 대상 BigQuery 테이블에 있는 기존 데이터를 내보낸 데이터로 덮어씁니다. 내보내기가 완료되면 BigQuery의 데이터가 소스 시스템의 데이터와 동기화되지 않습니다.
이 시나리오에서 SAP 소스 시스템 및 SAP Data Services는 Google Cloud 내부 또는 외부에서 실행될 수 있습니다.
핵심 솔루션 구성요소
SAP Data Services를 사용하여 SAP 애플리케이션 또는 데이터베이스의 데이터를 BigQuery로 내보내려면 다음 구성요소가 필요합니다.
구성요소 | 필요 버전 | 참고 |
---|---|---|
SAP 애플리케이션 서버 스택 | R/3 4.6C 이상의 모든 ABAP 기반 SAP 시스템 | 이 가이드에서는 애플리케이션 서버와 데이터베이스 서버를 통칭하여 소스 시스템이라 하며, 이는 이들 서버가 서로 다른 머신에서 실행 중인 경우에도 마찬가지입니다. 적절한 승인으로 RFC 사용자 정의 선택사항: 테이블 로깅을 위한 별도의 테이블 공간 정의 |
데이터베이스(DB) 시스템 | SAP Product Availability Matrix(PAM)에서 지원되는 것으로 표시되었고 PAM에 나열된 SAP NetWeaver 스택 제한사항이 적용되는 모든 DB 버전 | |
SAP Data Services | SAP Data Services 4.2 SP1 이상 | |
BigQuery | 해당 사항 없음 |
비용
BigQuery는 청구 가능한 Google Cloud 구성요소입니다.
가격 계산기를 사용하면 예상 사용량을 기준으로 예상 비용을 산출할 수 있습니다.
기본 요건
이 안내에서는 SAP 애플리케이션 시스템, 데이터베이스 서버, SAP Data Services가 이미 설치되었고 정상 작동하도록 구성되었다고 가정합니다.
계획된 구성이 SAP 라이선스 요구사항을 준수하는지 SAP에 확인하세요. 요구사항은 SAP 애플리케이션 시스템 또는 기본 데이터베이스의 데이터를 내보내는지 여부에 따라 달라질 수 있습니다.
Google Cloud에서 Google Cloud 프로젝트 설정
BigQuery를 사용하려면 먼저 Google Cloud 프로젝트가 필요합니다.
Google Cloud 프로젝트 만들기
Google Cloud 콘솔로 이동하고 로그인하여 설정 마법사를 진행합니다.
왼쪽 상단의 Google Cloud 로고 옆에서 드롭다운을 클릭하여 새 프로젝트를 선택합니다.
프로젝트 이름을 지정하고 만들기를 클릭합니다.
프로젝트가 생성되면(오른쪽 상단에 알림 표시) 페이지를 새로고칩니다.
API 사용 설정
BigQuery API를 사용 설정합니다.
서비스 계정 만들기
서비스 계정(특히 키 파일)은 SAP DS를 BigQuery에 인증하는 데 사용됩니다. 키 파일은 나중에 대상 Datastore를 만들 때 사용됩니다.
Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
서비스 계정 만들기를 클릭합니다.
서비스 계정 이름을 입력합니다.
만들고 계속하기를 클릭합니다.
역할 선택 목록에서 BigQuery > BigQuery 데이터 편집자를 선택합니다.
다른 역할 추가를 클릭합니다.
역할 선택 목록에서 BigQuery > BigQuery 작업 사용자를 선택합니다.
계속을 클릭합니다.
필요에 따라 다른 사용자에게 서비스 계정에 대한 액세스 권한을 부여합니다.
완료를 클릭합니다.
Google Cloud 콘솔의 서비스 계정 페이지에서 방금 만든 서비스 계정의 이메일 주소를 클릭합니다.
서비스 계정 이름에서 키 탭을 클릭합니다.
키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 선택합니다.
JSON 키 유형이 지정되었는지 확인합니다.
만들기를 클릭합니다.
자동으로 다운로드된 키 파일을 안전한 위치에 저장합니다.
SAP 시스템에서 BigQuery로 내보내기 구성
이 솔루션 구성에는 다음과 같은 상위 수준 단계가 포함되어 있습니다.
- SAP Data Services 구성
- SAP Data Services와 BigQuery 간의 데이터 흐름 만들기
SAP 데이터 서비스 구성
데이터 서비스 프로젝트 만들기
- SAP Data Services Designer 애플리케이션을 엽니다.
- 파일 > 새로 만들기 > 프로젝트로 이동합니다.
- 프로젝트 이름 필드에 이름을 지정합니다.
- 만들기를 클릭합니다. 프로젝트가 왼쪽의 프로젝트 탐색기에 나타납니다.
소스 Datastore 만들기
SAP 애플리케이션 시스템 또는 기본 데이터베이스를 SAP Data Services의 소스 Datastore로 사용할 수 있습니다. 내보낼 수 있는 데이터 객체 유형은 SAP 애플리케이션 시스템 또는 데이터베이스를 Datastore로 사용 중인지에 따라 달라집니다.
SAP 애플리케이션 시스템을 Datastore로 사용하는 경우 다음 객체를 내보낼 수 있습니다.
- 테이블
- 뷰
- 계층 구조
- ODP
- BAPI(함수)
- IDocs
기본 데이터베이스를 Datastore 연결로 사용할 경우 객체를 다음과 같이 내보낼 수 있습니다.
- 테이블
- 뷰
- 저장 프로시저
- 기타 데이터 객체
SAP 애플리케이션 시스템 및 데이터베이스를 위한 Datastore 구성은 다음 섹션에서 설명합니다. Datastore 연결 또는 데이터 객체 유형에 관계없이 SAP Data Services 데이터 흐름에서 객체를 가져오고 사용하기 위한 절차는 거의 동일합니다.
SAP 애플리케이션 레이어 연결 구성
이 단계에서는 SAP 애플리케이션에 대한 연결을 만들고 Designer 객체 라이브러리에 있는 적용 가능한 Datastore 노드에 데이터 객체를 추가합니다.
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 SAP Data Services 프로젝트를 엽니다.
- 프로젝트 > 새로 만들기 > Datastore로 이동합니다.
- Datastore 이름을 입력합니다. 예를 들면 ECC_DS입니다.
- Datastore type(Datastore 유형) 필드에서 SAP Applications(SAP 애플리케이션)를 선택합니다.
- 애플리케이션 서버 이름 필드에 SAP 애플리케이션 서버의 인스턴스 이름을 제공합니다.
- SAP 애플리케이션 서버 액세스 사용자 인증 정보를 지정합니다.
- 확인을 클릭합니다.
SAP 데이터베이스 레이어 연결 구성
SAP HANA
이 단계에서는 SAP HANA 데이터베이스에 대한 연결을 만들고 Designer 객체 라이브러리에 있는 적용 가능한 Datastore 노드에 데이터 테이블을 추가합니다.
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 SAP Data Services 프로젝트를 엽니다.
- 프로젝트 > 새로 만들기 > Datastore로 이동합니다.
- Datastore 이름을 입력합니다. 예를 들면 HANA_DS입니다.
- Datastore type(Datastore 유형) 필드에서 Database(데이터베이스) 옵션을 선택합니다.
- Database type(데이터베이스 유형) 필드에서 SAP HANA 옵션을 선택합니다.
- 데이터베이스 버전 필드에서 데이터베이스 버전을 선택합니다.
- Database server(데이터베이스 서버) 이름, Port Number(포트 번호), 액세스 사용자 인증 정보를 입력합니다.
- 확인을 클릭합니다.
기타 지원되는 데이터베이스
이 단계에서는 SQL Anywhere에 대한 연결을 만들고 Designer 객체 라이브러리에 있는 적용 가능한 Datastore 노드에 데이터 테이블을 추가합니다.
다른 지원되는 데이터베이스에 대한 연결 만들기 단계는 거의 동일합니다.
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 SAP Data Services 프로젝트를 엽니다.
- 프로젝트 > 새로 만들기 > Datastore로 이동합니다.
- 이름을 입력합니다. 예를 들면 SQL_ANYWHERE_DS입니다.
- Datastore type(Datastore 유형) 필드에서 Database(데이터베이스) 옵션을 선택합니다.
- Database type(데이터베이스 유형) 필드에서 SQL Anywhere 옵션을 선택합니다.
- 데이터베이스 버전 필드에서 데이터베이스 버전을 선택합니다.
- Database server name(데이터베이스 서버 이름), Database name(데이터베이스 이름), 액세스 사용자 인증 정보를 입력합니다.
- 확인을 클릭합니다.
새 Datastore가 Designer에 있는 로컬 객체 라이브러리의 Datastore 탭에 나타납니다.
대상 Datastore 만들기
이 단계에서는 이전 서비스 계정 만들기 섹션에서 만든 서비스 계정을 사용하는 BigQuery 데이터 스토어를 만듭니다. SAP Data Services는 서비스 계정을 통해 BigQuery에 안전하게 액세스할 수 있습니다.
자세한 내용은 SAP 데이터 서비스 문서의 Google 서비스 계정 이메일 가져오기 및 Google 서비스 계정 개인 키 파일 가져오기를 참조하세요.
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 SAP Data Services 프로젝트를 엽니다.
- 프로젝트 > 새로 만들기 > Datastore로 이동합니다.
- 이름 필드를 입력합니다. 예를 들면 BQ_DS입니다.
- Datastore type(Datastore 유형) 필드에서 Google BigQuery를 선택합니다.
- 웹 서비스 URL 옵션이 나타납니다. 옵션은 소프트웨어에서 기본 BigQuery 웹 서비스 URL로 자동 완성됩니다.
- 고급을 선택합니다.
- SAP Data Services 문서의 BigQuery용 데이터 스토어 옵션 설명을 따라 고급 옵션을 완료합니다.
- 확인을 클릭합니다.
새 Datastore가 Designer에 있는 로컬 객체 라이브러리의 Datastore 탭에 나타납니다.
SAP Data Services와 BigQuery 간 데이터 흐름 설정
데이터 흐름을 설정하려면 일괄 작업을 만들고, BigQuery 로더 데이터 흐름을 만들고, 소스 및 BigQuery 테이블을 SAP Data Services에 외부 메타데이터로 가져와야 합니다.
일괄 작업 만들기
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 SAP Data Services 프로젝트를 엽니다.
- 프로젝트 > 새로 만들기 > 일괄 작업으로 이동합니다.
- 이름 필드를 입력합니다. 예를 들면 JOB_SQL_ANYWHERE_BQ입니다.
- 확인을 클릭합니다.
데이터 흐름 로직 만들기
소스 테이블 가져오기
이 단계에서는 소스 Datastore에서 데이터베이스 테이블을 가져오고 SAP Data Services에서 사용할 수 있도록 제공합니다.
- SAP Data Services Designer 애플리케이션을 엽니다.
- 프로젝트 탐색기에서 소스 Datastore를 확장합니다.
- 오른쪽 패널 상단에서 외부 메타데이터 옵션을 선택합니다. 사용 가능한 테이블 또는 다른 객체가 포함된 노드 목록이 표시됩니다.
- 목록에서 가져올 테이블을 선택합니다.
- 마우스 오른쪽 버튼을 클릭하고 가져오기 옵션을 선택합니다.
- 가져온 테이블은 이제 소스 Datastore 노드 아래의 객체 라이브러리에서 사용할 수 있습니다.
데이터 흐름 만들기
- 프로젝트 탐색기에서 일괄 작업을 선택합니다.
- 오른쪽 패널의 빈 작업공간을 마우스 오른쪽 버튼으로 클릭하고 새로 추가 > 데이터 흐름 옵션을 선택합니다.
- 데이터 흐름을 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기를 선택합니다.
- 이름을 DF_SQL_ANYWHERE_BQ로 변경합니다.
데이터 흐름 아이콘을 더블클릭하여 데이터 흐름 작업공간을 엽니다.
데이터 흐름을 가져온 후 소스 Datastore 객체와 연결
- 프로젝트 탐색기에서 소스 Datastore를 확장합니다.
- Datastore에서 소스 테이블을 데이터 흐름 작업공간으로 드래그 앤 드롭합니다(테이블을 작업공간으로 드래그할 때는 소스 만들기 옵션 선택). 이 안내에서 Datastore는 이름이 SQL_ANYWHERE_DS로 지정됩니다. Datastore 이름은 다를 수 있습니다.
- 객체 라이브러리의 Transforms(변환) 탭에 있는 Platform(플랫폼) 노드에서 Query transform(쿼리 변환)을 데이터 흐름으로 드래그합니다.
- 작업 공간에 있는 소스 테이블을 쿼리 변환에 연결합니다.
- 쿼리 변환을 더블클릭합니다.
왼쪽의 Schema In(스키마 입력) 아래에 있는 모든 테이블 필드를 선택하고 오른쪽의 Schema Out(스키마 출력)으로 드래그합니다.
- 오른쪽의 스키마 출력 목록에서 날짜/시간 필드를 선택합니다.
- 스키마 목록 아래에서 매핑 탭을 선택합니다.
필드 이름을 다음 함수로 바꿉니다.
to_date(to_char(FIELDNAME,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
여기서 FIELDNAME은 선택한 필드의 이름입니다.
애플리케이션 툴바에서 뒤로 아이콘을 클릭하여 Dataflow Editor로 돌아갑니다.
객체 라이브러리의 Transforms(변환) 탭에 있는 Platform(플랫폼) 노드에서 XML_Map 변환을 데이터 흐름으로 드래그합니다.
대화상자에서 일괄 처리 모드를 선택합니다.
Query(쿼리) 변환을 XML_Map 변환에 연결합니다.
스키마 파일 만들기
이 단계에서는 소스 테이블의 구조를 나타내는 스키마 파일을 만듭니다. 나중에 이 스키마 파일을 사용하여 BigQuery 테이블을 만들 수 있습니다.
스키마는 BigQuery 로더 데이터 흐름이 새 BigQuery 테이블을 채우도록 합니다.
- XML 맵 변환을 열고 BigQuery 테이블에 포함될 데이터에 따라 입력 및 출력 스키마 섹션을 완료합니다.
- Schema Out(스키마 출력) 열에서 XML_Map 노드를 마우스 오른쪽 버튼으로 클릭하고 드롭다운 메뉴에서 Generate Google BigQuery Schema(Google BigQuery 스키마 생성)를 선택합니다.
- 스키마의 이름과 위치를 입력합니다.
- 저장을 클릭합니다.
SAP Data Services가 파일 확장자가 .json인 스키마 파일을 생성합니다.
BigQuery 테이블 만들기
데이터 로드를 위해 Google Cloud의 BigQuery 데이터 세트에서 테이블을 만들어야 합니다. SAP Data Services에서 만든 스키마를 사용하여 테이블을 만듭니다.
이 표는 이전 단계에서 생성한 스키마를 기준으로 합니다.
- Google Cloud 콘솔에서 Google Cloud 프로젝트에 액세스합니다.
- BigQuery를 선택합니다.
- 해당 데이터 세트를 클릭합니다.
- 테이블 만들기를 클릭합니다.
- 테이블 이름을 입력합니다. 예를 들면
BQ_DATA_LOAD
입니다. - 스키마 아래에서 설정을 전환하여 텍스트로 편집 모드를 사용 설정합니다.
- 스키마 파일 만들기에서 만든 스키마 파일의 콘텐츠를 복사하고 붙여넣어 BigQuery에서 새 테이블의 스키마를 설정합니다.
- 테이블 만들기를 클릭합니다.
BigQuery 테이블 가져오기
이 단계에서는 이전 단계에서 만든 BigQuery 테이블을 가져오고 이를 SAP Data Services에서 사용할 수 있도록 제공합니다.
- SAP Data Services Designer 객체 라이브러리에서 BigQuery Datastore를 마우스 오른쪽 버튼으로 클릭하고 객체 라이브러리 새로고침 옵션을 선택합니다. 그러면 데이터 흐름에서 사용할 수 있는 데이터 소스 테이블 목록이 업데이트됩니다.
- BigQuery Datastore를 엽니다.
- 오른쪽 패널 상단에서 외부 메타데이터를 선택합니다. 생성한 BigQuery 테이블이 표시됩니다.
- 해당 BigQuery 테이블 이름을 마우스 오른쪽 버튼으로 클릭하고 가져오기를 선택합니다.
- 선택한 테이블을 SAP Data Services로 가져오기 시작합니다. 이제 테이블을 객체 라이브러리의 대상 Datastore 노드 아래에서 사용할 수 있습니다.
데이터 흐름을 가져온 후 대상 Datastore 객체와 연결
- 객체 라이브러리의 Datastore에서 가져온 BigQuery 테이블을 데이터 흐름으로 드래그합니다. 이 안내에서 Datastore 이름은
BQ_DS
입니다. Datastore 이름은 다를 수 있습니다. XML_Map 변환을 가져온 BigQuery 테이블에 연결합니다.
XML_Map 변환을 열고 BigQuery 테이블에 포함할 데이터에 따라 입력 및 출력 스키마 섹션을 완료합니다.
작업공간에서 BigQuery 테이블을 더블클릭하여 열고 대상 탭의 옵션을 다음 표와 같이 완료합니다.
옵션 설명 포트 만들기 기본값인 아니요를 지정합니다.
Yes(예)를 지정하면 소스 또는 대상 파일이 삽입된 데이터 흐름 포트가 됩니다.모드 초기 로드에 자르기를 지정합니다. 이렇게 하면 BigQuery 테이블의 기존 레코드가 SAP Data Services에서 로드된 데이터로 바뀝니다. Truncate(자르기)가 기본값입니다. 로더 수 처리에 사용할 로더(스레드)의 수를 설정하는 양의 정수를 지정합니다. 기본값은 4입니다.
각 로더는 BigQuery에서 재개 가능한 로드 작업 한 개를 시작합니다. 로더 수를 제한 없이 지정할 수 있습니다.
적절한 로더 수를 결정하는 데 도움이 필요하면 다음을 포함한 SAP 문서를 참조하세요.
로더당 최대 오류 레코드 수 0 또는 양의 정수를 지정하여 BigQuery가 레코드 로드를 중지하기 전에 로드 작업마다 실패할 수 있는 최대 레코드 수를 설정합니다. 기본값은 0입니다. 상단 툴바에서 검사기 아이콘을 클릭합니다.
애플리케이션 툴바에서 뒤로 아이콘을 클릭하여 Dataflow Editor로 돌아갑니다.
BigQuery에 데이터 로드
이 단계에서는 복제 작업을 시작하고 SAP Data Services에서 소스 시스템의 데이터를 BigQuery로 로드하는 데이터흐름을 실행합니다.
로드를 실행하면 소스 데이터 세트의 모든 데이터가 로드 데이터 흐름에 연결된 대상 BigQuery 테이블에 복제됩니다. 대상 테이블의 모든 데이터를 덮어씁니다.
- SAP Data Services Designer에서 프로젝트 탐색기를 엽니다.
- 복제 작업 이름을 마우스 오른쪽 버튼으로 클릭하고 실행을 선택합니다.
- 확인을 클릭합니다.
- 로드 프로세스가 시작되고 디버그 메시지가 SAP Data Services 로그에 표시되기 시작합니다. 데이터가 BigQuery에서 초기 로드용으로 만든 테이블로 로드됩니다. 이 안내에서 로드 테이블 이름은
BQ_DATA_LOAD
입니다. 테이블 이름은 다를 수 있습니다. - 로드가 완료되었는지 확인하려면 Google Cloud 콘솔로 이동해서 테이블이 포함된 BigQuery 데이터 세트를 엽니다. 데이터가 계속 로드 중이면 테이블 이름 옆에 '로드 중'이 표시됩니다.
로드가 끝나면 데이터를 BigQuery에서 처리할 수 있습니다.
로드 예약
SAP Data Services Management 콘솔을 사용해서 정기 간격으로 실행되도록 로드 작업을 예약할 수 있습니다.
- SAP Data Services Management 콘솔 애플리케이션을 엽니다.
- 관리자를 클릭합니다.
- 왼쪽의 메뉴 트리에서 일괄 처리 노드를 펼칩니다.
- SAP Data Services 저장소 이름을 클릭합니다.
- 일괄 처리 작업 구성 탭을 클릭합니다.
- 일정 추가를 클릭합니다.
- 예약 이름을 입력합니다.
- 활성을 선택합니다.
- Select scheduled time for executing the jobs(작업을 실행할 예약 시간 선택) 섹션에서 델타 로드 실행 빈도를 지정합니다.
- 중요: Google Cloud에서는 하루에 실행할 수 있는 BigQuery 로드 작업 수가 제한됩니다. 일정이 한도를 초과하지 않아야 하며, 한도를 늘릴 수 없습니다. BigQuery 로드 작업 제한에 대한 자세한 내용은 BigQuery 문서의 할당량 및 한도를 참조하세요.
적용을 클릭합니다.
다음 단계
BigQuery에서 복제된 데이터를 쿼리하고 분석합니다. 쿼리에 대한 자세한 내용은 다음을 참조하세요.
- BigQuery 문서의 BigQuery 데이터 쿼리 개요
SAP Landscape Transformation Replication Server 및 SAP Data Services를 사용하여 SAP 애플리케이션에서 BigQuery로 데이터를 거의 실시간으로 복제하기 위한 솔루션을 설정하는 방법에 대한 아이디어를 얻으려면 다음을 참조하세요.
그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.