Oracle NetSuite SuiteAnalytics 연결
SuiteAnalytics Connect로 NetSuite ERP 데이터를 Foundry에 수집합니다. 원천 탐색, 배치 동기화와 증분 수집을 일반 제공(GA)합니다. 시작하기 전에 NetSuite 인스턴스에서 SuiteAnalytics Connect 기능을 활성화해야 합니다.
Data Connection의 +New Source에서는 JDBC를 선택합니다. NetSuite가 제공하는 JDBC 드라이버와 연결 사용자의 이름 및 비밀번호를 구성합니다. 개인 계정보다 서비스 사용자 인증 정보를 사용하는 방식이 권장됩니다.
NetSuite 역할 준비
- Setup의 Users/Roles, Manage Roles에서 New를 선택해 전용 역할을 만듭니다.
foundry-role은 예시 이름입니다. - 역할의 Permissions, Setup에서 SuiteAnalytics Connect를 추가하고 저장합니다.
- Permissions의 Lists에서 Foundry가 질의할 테이블 권한을 추가하고 저장합니다.
- Setup의 Users/Roles, Manage Users에서 연결할 사용자를 열고 Edit를 선택합니다.
- Access에서 Give Access를 켜고 Roles에 새 역할을 추가한 뒤 저장합니다.
- 그 사용자로 로그인해 필요한 데이터가 보이는지 확인합니다.
SuiteAnalytics Connect: Read All 권한은 NetSuite2.com 데이터소스에 효과가 없습니다. 필요한 테이블 권한을 역할에 직접 구성합니다.
Data Warehouse Integrator 역할은 토큰 기반 인증을 요구합니다. Foundry의 이 SuiteAnalytics 연결은 토큰 기반 인증을 제공하지 않으므로 사용자 이름과 비밀번호에 맞는 전용 역할을 사용합니다.
서비스 호스트와 네트워크
NetSuite 홈 화면 왼쪽 아래 Settings에서 Set Up SuiteAnalytics Connect를 열면 서비스 호스트, 포트와 JDBC 드라이버를 확인할 수 있습니다. 계정 ID를 알면 다음 형식의 구성 페이지에 접근할 수도 있습니다.
https://<YOUR_ACCOUNT_ID>.app.netsuite.com/app/external/odbc/suiteAnalyticsConnectDownload.nl
호스트는 보통 <ACCOUNT_ID>.connect.api.netsuite.com, 포트는 1708입니다. 실제 구성 페이지의 값을 사용합니다.
Foundry 워커에서는 이 프로토콜이 HTTPS가 아니므로 두 종류의 외부 통신 정책이 필요합니다.
- 서비스 호스트 이름에 대한 DNS 정책을 추가합니다.
- 실제 IP 범위를 명시한 CIDR 정책도 추가합니다.
서비스 호스트에 nslookup을 수행하면 현재 IP를 확인할 수 있습니다. NetSuite 서비스 IP는 사전 통지 없이 바뀔 수 있으므로 한 번 확인한 주소가 영구적으로 유지된다고 가정하지 않습니다. 필요한 정책이 없으면 생성을 요청한 뒤 소스에 연결합니다.
JDBC 연결 속성
| 항목 | 필수 여부 | 설정 |
|---|---|---|
URL | 필수 | jdbc:ns://<SERVICE_HOST>:<SERVICE_PORT> 형식입니다. 보통 jdbc:ns://<ACCOUNT_ID>.connect.api.netsuite.com:1708입니다. |
Driver class | 필수 | com.netsuite.jdbc.openaccess.OpenAccessDriver |
Drivers | 필수 | NetSuite 구성 페이지에서 받은 JDBC 드라이버를 업로드합니다. |
Credentials | 필수 | NetSuite 연결 사용자의 사용자 이름과 비밀번호 |
JDBC properties | 필수 | 아래 속성을 모두 지정합니다. |
신규 연결에는 Foundry 워커가 권장됩니다. 기존 에이전트 워커(Legacy)에서는 같은 JDBC 드라이버에 적절한 서명이 있어야 에이전트에 업로드할 수 있으므로 Palantir 지원을 통해 서명을 준비합니다.
| JDBC 속성 | 값 |
|---|---|
CustomProperties | (AccountID=<ACCOUNT_ID>;RoleID=<ROLE_ID>) |
NegotiateSSLClose | false |
ServerDataSource | NetSuite2.com |
encrypted | 1 |
ROLE_ID는 사용자에게 부여한 역할의 Internal ID입니다. Setup의 Users/Roles, Manage Roles에서 역할 이름 옆의 값을 확인합니다. Internal ID가 보이지 않으면 NetSuite의 Internal ID 표시 기본 설정을 활성화합니다.
2021년 11월 8일 이후의 새 Connect 사용자는 NetSuite2.com 데이터소스로만 Connect Service에 접근할 수 있습니다. 계정 ID와 역할 ID의 자리표시자는 실제 값으로 바꾸고 괄호와 세미콜론 형식을 유지합니다.
동기화 생성
소스를 저장한 뒤 원천 탐색에서 테이블을 찾아 동기화를 생성합니다. 소스 개요에서 수동으로 동기화를 만들 수도 있습니다. 선택한 역할이 볼 수 있는 테이블과 열의 범위 안에서 질의를 작성합니다.