Openflow Connector for Salesforce Bulk API: Salesforce 수식 필드¶
참고
이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.
이 항목에서는 지원되는 함수 및 제한 사항을 포함하여 Openflow Connector for Salesforce Bulk API 가 Salesforce 수식 필드를 Snowflake SQL 뷰로 변환하는 방법에 대해 설명합니다.
수식 뷰의 작동 방식¶
:ui:`Enable Views Creation`가 ``true``로 설정된 경우 커넥터는 수식 필드가 있는 각 오브젝트에 대해 다음을 수행합니다.
Describe API를 통해 Salesforce 오브젝트 메타데이터에서 수식 식을 검색합니다.
각 수식을 구문 분석하고 동등한 Snowflake SQL로 변환합니다.
기본 테이블의 수식이 아닌 열과 변환된 수식 식을 계산된 열로 결합하는
CREATE OR REPLACE VIEW문을 생성합니다.Snowflake에 대해 DDL을 실행하여 뷰를 생성하거나 업데이트합니다.
결과 뷰의 이름은 <Object Type>_FORMULA_VW``입니다. 예를 들어, ``Account 오브젝트는 ``ACCOUNT_FORMULA_VW``라는 뷰를 생성합니다. 이 뷰를 쿼리하여 복제된 데이터와 함께 수식 필드 값을 얻을 수 있습니다.
커넥터가 소스 오브젝트에서 스키마 변경 사항을 감지할 때마다 뷰가 자동으로 업데이트되어 수식 정의가 Salesforce와 동기화된 상태를 유지할 수 있습니다.
오브젝트 간 수식 필드¶
Salesforce 수식은 관계 탐색을 사용하여 관련 오브젝트의 필드를 참조할 수 있습니다(예: Account.Owner.Name). 커넥터는 뷰 정의의 LEFT JOIN 절을 생성하여 이러한 오브젝트 간 참조를 지원합니다. 각 관계 탐색은 Snowflake의 해당 관련 테이블에 대한 조인을 생성합니다.
오브젝트 간 수식이 올바르게 작동하려면 커넥터에서 관련 오브젝트도 복제해야 합니다. 커넥터는 변환 시 참조된 테이블이 Snowflake에 있는지 여부를 확인하지 않습니다. 관련 오브젝트가 동기화되지 않은 경우 생성된``CREATE OR REPLACE VIEW`` 문이 Snowflake에 존재하지 않는 테이블을 참조하고 뷰 생성이 실패합니다. 이 문제를 해결하려면 수식 필드에서 참조하는 모든 관련 오브젝트가 Filter 매개 변수에 포함되어 있는지 확인합니다. 참조된 테이블이 존재하면 다음 커넥터 실행 시 뷰가 자동으로 다시 생성됩니다.
수식 뷰 열 설명¶
생성된 뷰의 각 수식 열에는 SQL COMMENT 주석이 포함됩니다.
성공적으로 변환된 수식의 경우 설명에 원래 Salesforce 수식 식이 포함됩니다.
변환할 수 없는 수식의 경우 설명에 실패 이유 코드가 포함됩니다.
Snowflake에서 ``DESCRIBE VIEW <view_name>``를 실행하여 이러한 주석을 검사할 수 있습니다.
지원되는 수식 함수¶
다음 Salesforce 수식 함수는 동등한 Snowflake SQL로 변환됩니다.
카테고리 |
Salesforce 함수 |
Snowflake의 해당 기능 |
|---|---|---|
논리적 |
|
|
논리적 |
|
|
논리적 |
|
|
Null 처리 |
|
|
Null 처리 |
|
|
Null 처리 |
|
|
Null 처리 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
|
텍스트 |
|
줄 바꿈 문자 리터럴 |
변환 |
|
|
변환 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
수학 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
날짜 및 시간 |
|
|
선택 목록 |
|
|
함수 외에도 다음 연산자가 지원됩니다.
지원되지 않는 수식 구문¶
다음 수식 구문은 아직 지원되지 않습니다. 추가 함수 및 구문에 대한 지원은 향후 릴리스에서 추가될 예정입니다. 수식에서 이러한 구문을 사용하는 경우 뷰의 해당 열은 ``NULL``을 반환하고 열 설명은 실패 이유를 나타냅니다.
실패 이유 |
설명 |
|---|---|
|
이 수식은 Snowflake에 동등한 함수가 없는 함수 또는 Salesforce UI에 특화된 함수를 사용합니다. 여기에는 다음이 포함됩니다. |
|
수식이 |
|
수식이 다른 수식 필드를 참조합니다. 연결된 수식 참조(다른 수식 필드에 종속된 수식 필드)는 지원되지 않습니다. |
|
필드가 수식 필드가 아닌 롤업 요약 필드입니다. 롤업 요약은 하위 레코드의 데이터를 집계하며 간단한 SQL 뷰로 표현할 수 없습니다. |
|
수식이 Salesforce 오브젝트 메타데이터에서 확인할 수 없는 관계를 참조합니다. 이는 일반적으로 수식의 관계 이름이 오브젝트의 알려진 관계와 일치하지 않을 때 발생합니다. |
|
수식에 하드코딩된 15자 Salesforce ID가 포함되어 있습니다. Salesforce는 내부적으로 15자 IDs를 사용하지만 대량 API는 18자 IDs를 반환합니다. 하드코딩된 15자 IDs가 있는 수식은 안정적으로 변환할 수 없습니다. |
|
수식이 Snowflake에 단일 열로 저장되지 않는 복합 필드(예: |
|
수식을 구문 분석할 수 없습니다. 이는 커넥터가 아직 인식하지 못하는 구문을 나타낼 수 있습니다. |
|
수식이 인식되지만 번역할 수 없는 구문을 사용합니다(예: 인자가 3개 미만인 |