이 페이지에서는 Cloud Data Fusion을 사용하여 Salesforce sObject에서 Google Cloud로 데이터를 로드하는 방법을 설명합니다. Salesforce 일괄 소스 플러그인은 Salesforce에서 sObject를 읽습니다. sObject는 가져오려는 Salesforce 테이블입니다. sObject의 예시로는 기회, 연락처, 계정, 리드, 커스텀 객체가 있습니다.
Salesforce 일괄 소스 플러그인은 Salesforce 객체 쿼리 언어(SOQL) 쿼리 및 증분 또는 기간 필터로 데이터 읽기를 지원합니다.
시작하기 전에
- Cloud Data Fusion Salesforce 일괄 소스는 Salesforce Bulk API V1을 사용합니다.
- Cloud Data Fusion Salesforce 플러그인을 배포하고 사용하기 전에 Salesforce를 설정합니다. 자세한 내용은 Cloud Data Fusion용 Salesforce 연결된 앱 만들기를 참조하세요.
플러그인 구성
- Cloud Data Fusion 웹 인터페이스로 이동하고 Studio를 클릭하세요.
- 데이터 파이프라인 - 배치가 선택되었는지 확인합니다(실시간 아님).
- 소스 메뉴에서 Salesforce를 클릭합니다. Salesforce 노드가 파이프라인에 표시됩니다. 스튜디오 페이지에 Salesforce 소스가 표시되지 않으면 Cloud Data Fusion 허브에서 Salesforce 플러그인을 배포합니다.
- 소스를 구성하려면 Salesforce 노드로 이동하고 속성을 클릭합니다.
다음 속성을 입력합니다. 전체 목록은 속성을 참조하세요.
- Salesforce 노드의 라벨을 입력합니다(예:
Salesforce tables
). - 계보에 사용할 Salesforce 소스의 참조 이름을 입력합니다(예:
Salesforce tables
). 다음 연결 세부정보를 입력합니다. 새 일회성 연결 또는 재사용 가능한 기존 연결을 설정할 수 있습니다.
새로운 연결
Salesforce에 일회성 연결을 추가하려면 다음 단계를 따르세요.
- 연결 사용을 사용 중지합니다.
연결 섹션의 필드에 Salesforce 계정의 다음 정보를 입력합니다.
- 사용자 이름
- 비밀번호
- 보안 토큰
- 고객 키
- 고객 비밀번호
Salesforce에서 사용자 인증 정보를 가져오려면 Salesforce에서 속성 가져오기를 참고하세요.
재사용 가능한 연결
기존 연결을 재사용하려면 다음 단계를 수행합니다.
- 연결 사용을 사용 설정합니다.
- 연결 찾아보기를 클릭합니다.
연결 이름을 클릭합니다.
선택사항: 연결이 존재하지 않고 재사용 가능한 새 연결을 만들려면 연결 추가를 클릭하고 새 연결 탭의 단계를 참조하세요.
sObject 이름을 입력하여 객체의 모든 열을 로드합니다.
선택사항: sObject 이름을 선택하면 다음 필드를 사용하여 데이터를 필터링할 수 있습니다.
- 다음 날짜 이후에 최종 수정: 지정된 시간 이후에 마지막으로 수정된 레코드만 포함합니다.
- 다음 날짜 이전에 최종 수정: 지정된 시간 이전에 마지막으로 수정된 레코드만 포함합니다.
- 기간: 지정된 크기의 기간 내에 마지막으로 수정된 레코드만 포함합니다.
- 오프셋: 마지막 수정 날짜가 파이프라인의 논리적 시작 시간에서 지정된 오프셋을 뺀 값보다 작은 레코드만 포함합니다.
선택사항: 지원되는 sObject의 경우 파이프라인 성능을 향상시키려면 PK 청킹 사용 설정을 켭니다. 자세한 내용은 PK 청킹으로 성능 개선을 참조하세요.
선택사항: sObject 이름을 지정하는 대신
SELECT LastName from Contact
와 같은 SOQL 쿼리를 입력할 수 있습니다. 자세한 내용은 Salesforce 소스의 SOQL 쿼리를 참고하세요.연결을 테스트하려면 스키마 가져오기를 클릭합니다. Cloud Data Fusion은 Salesforce에 연결하여 나열된 테이블(기술적으로는 sObject)의 스키마를 가져옵니다.
- Salesforce 노드의 라벨을 입력합니다(예:
속성
속성 | 매크로 사용 설정 | 필수 속성 | 설명 |
---|---|---|---|
참조 이름 | 아니요 | 예 | 태스크에 대해 이 소스를 고유하게 식별(예:계보, 주석 메타데이터)하는 데 사용됩니다. |
연결 사용 | 아니요 | No | 기존 연결을 사용합니다. 연결이 사용되면 사용자 인증 정보를 제공할 필요가 없습니다. |
연결 둘러보기 | 예 | No | 사용할 연결의 이름입니다. |
사용자 이름 | 예 | 예 | Salesforce 사용자 이름입니다. |
비밀번호 | 예 | 예 | Salesforce 비밀번호입니다. |
보안 토큰 | 예 | No | Salesforce 보안 토큰입니다. 비밀번호에 보안 토큰이 포함되어 있지 않으면 Cloud Data Fusion이 Salesforce로 인증하기 전에 토큰을 추가합니다. |
고객 키 | 예 | 예 | 애플리케이션 고객 키입니다. OAuth 클라이언트 ID라고도 합니다. 고객 키를 얻으려면 Salesforce 연결 애플리케이션을 만드세요. |
고객 비밀번호 | 예 | 예 | 애플리케이션 고객 비밀번호입니다. OAuth 클라이언트 보안 비밀이라고도 합니다. 클라이언트 보안 비밀을 얻으려면 Salesforce 연결 애플리케이션을 만드세요. |
로그인 URL | 예 | 예 | Salesforce OAuth2 로그인 URL입니다. 기본값은 https://login.salesforce.com/services/oauth2/token 입니다. |
연결 시간 초과 | 예 | No | 연결이 제한 시간으로 설정되기 전에 연결 초기화를 기다리는 최대 시간(밀리초)입니다. 기본값은 30,000밀리초입니다. |
프록시 URL | 예 | No | 프로토콜, 주소, 포트가 포함된 프록시 URL입니다. |
SOQL | 예 | No | 데이터를 소스로 가져오는 SOQL 쿼리입니다. 예:
|
SObject 이름 | 예 | No | 읽을 Salesforce 객체 이름입니다. 값이 제공되면 커넥터는 Salesforce에서 이 객체의 모든 필드를 가져오고 select FIELD_1, FIELD_2 from
${sObjectName} 과 같은 SOQL 쿼리를 생성합니다. SOQL 쿼리가 제공되면 무시됩니다.Salesforce Bulk API에서 지원되지 않는 sObject도 있습니다. 지원되지 않는 객체로 작업을 만들면 Entity is not supported by the Bulk
API 오류가 발생합니다. 이러한 객체는 데이터를 쿼리하는 데 Bulk API를 사용하는 Einstein 애널리틱스에서도 지원되지 않습니다.Bulk API가 사용되지 않는 경우: 쿼리 길이가 일괄 정보 배열을 수신하기 위해 Salesforce에 쿼리를 전송할 때 Bulk API가 사용되지 않는 않습니다. 쿼리가 한도 내에 있으면 원래 쿼리를 실행합니다. 그렇지 않으면 넓은 객체 논리로 전환됩니다. 예를 들어 나중에 SOAP API를 통해 데이터를 가져오는 데 사용될 ID의 일괄 정보만 가져오는 ID 쿼리를 생성합니다. |
다음 날짜 이후에 최종 수정 | 예 | No | 시스템 필드 LastModifiedDate 가 지정된 날짜보다 크거나 같은 레코드만 포함하도록 데이터를 필터링합니다. Salesforce 날짜 형식을 사용합니다(예시 참조). 값이 제공되지 않으면 하한 날짜가 적용되지 않습니다. |
다음 날짜 이전에 최종 수정 | 예 | No | 시스템 필드 LastModifiedDate 가 지정된 날짜보다 작은 레코드만 포함하도록 데이터를 필터링합니다. Salesforce 날짜 형식을 사용합니다(예시 참고). 다음 날짜 이후에 최종 수정 속성을 사용하여 이 값을 지정하면 일정 기간 내에 수정된 데이터를 읽을 수 있습니다. 값이 제공되지 않으면 상한 날짜가 적용되지 않습니다. |
소요 시간 | 예 | No | 지정된 크기의 기간 내에 마지막으로 수정된 레코드만 읽도록 데이터를 필터링합니다. 예를 들어 기간이 6 hours 이고 파이프라인이 오전 9시에 실행되면 마지막 오전 3시(포함)부터 오전 9시(제외)까지 마지막으로 업데이트된 데이터를 읽습니다.
숫자와 다음 시간 단위로 기간을 지정합니다.
2 days, 1 hours, 30 minutes 입니다. 다음 날짜 이후에 최종 수정 또는 다음 날짜 이전에 최종 수정에 값이 이미 지정된 경우 기간이 무시됩니다. |
오프셋 | 예 | No | 시스템 필드 LastModifiedDate 가 파이프라인의 논리적 시작 시간에서 지정된 오프셋을 뺀 값보다 작은 레코드만 읽도록 데이터를 필터링합니다. 예를 들어 기간이 6 hours 이고 오프셋이 1 hours 이며 파이프라인이 오전 9시에 실행되는 경우 오전 2시(포함)부터 오전 8시(제외)까지 마지막으로 수정된 데이터가 표시됩니다.숫자와 다음 시간 단위로 기간을 지정합니다.
2 days, 1 hours, 30 minutes 입니다. 다음 날짜 이후에 최종 수정 또는 다음 날짜 이전에 최종 수정에 값이 이미 지정된 경우 오프셋이 무시됩니다. |
SOQL 작업 유형 | No | No | 표에서 실행할 쿼리 작업을 지정합니다. 쿼리를 선택하면 현재 레코드만 반환됩니다. queryAll 을 선택하면 현재 레코드와 삭제된 레코드가 모두 반환됩니다.기본 작업은 query 입니다. |
PK 청킹 사용 설정 | 예 | No | 기본 키(PK) 청킹은 쿼리된 레코드의 레코드 ID 또는 기본 키를 기반으로 큰 테이블의 쿼리를 조각 또는 청크로 분할합니다. Salesforce에서는 1,000만 개가 넘는 레코드가 있는 테이블을 쿼리하거나 일괄 쿼리가 지속적으로 시간 초과되는 경우 PK 청킹을 사용 설정하는 것이 좋습니다. 자세한 내용은 PK 청킹을 참조하세요. PK 청킹은 SELECT 절을 포함하지 않는 쿼리 또는 WHERE 이외의 조건에서만 작동합니다.
청킹은 커스텀 객체와 표준 객체를 지원하는 모든 공유 및 기록 테이블에서 지원됩니다. |
청크 크기 | 예 | No | 청크 크기를 지정합니다. 최대 크기는 250,000입니다. 기본 크기는 100,000입니다. |
SObject 상위 이름 | 예 | No | Salesforce 객체의 상위 요소입니다. 기록 테이블 또는 공유 객체에 대해 청킹을 사용 설정하는 데 사용됩니다. |
Salesforce 날짜 형식 예
형식 구문 | 예 |
---|---|
YYYY-MM-DDThh:mm:ss+hh:mm |
1999-01-01T23:01:01+01:00 |
YYYY-MM-DDThh:mm:ss-hh:mm |
1999-01-01T23:01:01-08:00 |
YYYY-MM-DDThh:mm:ssZ |
1999-01-01T23:01:01Z |
데이터 유형 매핑
다음 표는 Salesforce 데이터 유형과 이에 해당하는 CDAP 유형의 목록입니다.
Salesforce 데이터 유형 | CDAP 스키마 데이터 유형 |
---|---|
_bool |
boolean |
_int |
int |
_long |
long |
_double , currency , percent , geolocation (위도), geolocation (경도) |
double |
date |
date |
datetime |
timestamp (마이크로초) |
time |
time (마이크로초) |
picklist |
string |
multipicklist |
string |
combobox |
string |
reference |
string |
base64 |
string |
textarea |
string |
phone |
string |
id |
string |
url |
string |
email |
string |
encryptedstring |
string |
datacategorygroupreference |
string |
location |
string |
address |
string |
anyType |
string |
json |
string |
complexvalue |
string |
사용 사례
Salesforce 일괄 소스의 사용 사례는 다음을 참고하세요.
Salesforce 플러그인 버전 1.7.0으로 업그레이드하기 위한 기본 요건
Salesforce 플러그인 버전 1.7.0은 Cloud Data Fusion 버전 6.8.0 이상에서 사용할 수 있습니다. 이 출시에는 Salesforce Bulk API V1 버전이 62.0에서 64.0으로 업그레이드되었습니다.
Salesforce는 API 버전 64.0에서 특정 필드를 지원 중단했습니다. Salesforce 플러그인 버전 1.7.0으로 업그레이드하면 이러한 필드를 사용하는 파이프라인이 실패할 수 있습니다. 파이프라인이 계속 작동하도록 하려면 파이프라인 스키마를 수동으로 업데이트하여 새 스키마를 로드하거나 지원 중단된 필드를 삭제하세요.
Salesforce API 버전 64.0에서 지원 중단된 필드
Salesforce는 API 버전 64.0에서 다음 필드를 지원 중단했습니다.
객체 이름 | 필드 이름 |
---|---|
MobSecurityCertPinConfig | EffectiveDate |
프로필 | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
PermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
PermissionSetLicense | MaximumPermissionsAllowObjectDetectionTraining MaximumPermissionsAllowObjectDetection |
UserPermissionAccess | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
MutingPermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
도메인 | OptionsHstsHeaders |
사용자 | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
UserChangeEvent | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
파이프라인 스키마 업데이트
파이프라인에서 지원 중단된 필드를 사용하는 경우 새 스키마를 로드하거나 지원 중단된 필드를 삭제하여 파이프라인 스키마를 업데이트합니다.
Cloud Data Fusion 웹 인터페이스로 이동하고 목록을 클릭합니다.
배포된 파이프라인을 보려면 배포됨 탭을 클릭합니다.
업데이트할 파이프라인에서 > 수정을 클릭합니다.
스튜디오 뷰에서 Salesforce 소스 플러그인 위에 마우스 포인터를 올려놓고 속성을 클릭합니다.
Salesforce 플러그인 구성 창이 열립니다.
새 스키마를 로드하려면 다음 단계를 따르세요.
출력 스키마 탭에서 > 지우기를 클릭한 다음 유효성 검사를 클릭합니다. 이렇게 하면 Salesforce에서 최신 스키마가 로드됩니다.
스키마가 로드된 후 출력 스키마 탭에서 > 전파를 클릭합니다.
이렇게 하면 파이프라인의 모든 후속 플러그인의 스키마가 자동으로 업데이트되므로 Wrangler와 같은 플러그인의 수동 스키마 변경사항이 덮어쓰여질 수 있습니다.
지원 중단된 필드를 수동으로 삭제하려면 다음 단계를 따르세요.
- 출력 스키마 탭에서 지원 중단된 각 필드에 대해 를 클릭합니다. 이렇게 하면 모든 후속 단계에서 필드가 삭제됩니다.
권장사항
Salesforce 일괄 소스의 성능 개선에 관한 자세한 내용은 권장사항을 참고하세요.
출시 노트
다음 단계
- Salesforce 플러그인 튜토리얼 살펴보기