

# Microsoft Dynamics 365 CRM 엔터티에서 읽기
<a name="microsoft-dynamics-365-reading-from-entities"></a>

 **사전 조건** 
+  읽으려는 Microsoft Dynamics 365 CRM 객체입니다. 객체 이름(예: 연락처 또는 계정)이 필요합니다. 다음 표에는 지원되는 엔터티가 나와 있습니다.

 **지원되는 엔터티** 


| 개체 | 필터링 가능 | 제한 지원 | 정렬 기준 지원 | Select \* 지원 | 분할 지원 | 
| --- | --- | --- | --- | --- | --- | 
| 동적 엔터티 | 예 | 예 | 예 | 예 | 예 | 

 **예제** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "INSTANCE_URL": "https://{tenantID}.api.crm.dynamics.com"
    }
```

## Microsoft Dynamics 365 CRM 엔터티 및 필드 세부 정보
<a name="microsoft-dynamics-365-entity-and-field-details"></a>

 **동적 메타데이터를 포함하는 엔터티**: 

Microsoft Dynamics 365 CRM은 메타데이터를 동적으로 가져올 수 있는 엔드포인트를 제공합니다. 그에 따라 동적 엔터티의 경우 운영자 지원은 데이터 유형 수준에서 캡처됩니다.

<a name="microsoft-dynamics-365-metadata-table"></a>

- **동적 엔터티**
  - **데이터 형식:** DateTime / **지원되는 연산자:**  =, >, >=, <, <=, BETWEEN
  - **데이터 형식:** 날짜 / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** String / **지원되는 연산자:**  =, \!=
  - **데이터 형식:** 배정밀도 실수 / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** Integer / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** 10진수 / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** Long / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** BigInteger / **지원되는 연산자:**  =, <, <=, >, >=
  - **데이터 형식:** 나열 / **지원되는 연산자:** NA
  - **데이터 형식:** Struct / **지원되는 연산자:** NA
  - **데이터 형식:** 맵 / **지원되는 연산자:** NA



 **분할 쿼리** 

Microsoft Dynamics 365 CRM은 필드 기반 파티셔닝만 지원합니다.

 Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(`PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND`, `NUM_PARTITIONS`)을 제공할 수 있습니다. 이러한 파라미터를 사용하면 Spark 태스크에서 동시에 실행할 수 있는 `NUM_PARTITIONS`개의 하위 쿼리로 원본 쿼리가 분할됩니다.
+  `PARTITION_FIELD`: 쿼리 분할에 사용할 필드의 이름입니다.
+  `LOWER_BOUND`: 선택한 파티션 필드의 하한 값(경계 포함).

   Datetime의 경우 Spark SQL 쿼리에 사용된 Spark 타임스탬프 형식을 허용합니다. 유효한 값의 예제: `"2024-01-30T06:47:51.000Z"`.
+  `UPPER_BOUND`: 선택한 파티션 필드의 상한 값(경계 제외).
+  `NUM_PARTITIONS`: 파티션 수.

 엔터티 수준 분할 필드 지원 세부 정보는 아래 표에 나와 있습니다.


| Entity Name | Partitioning Fields | 데이터 유형 | 
| --- | --- | --- | 
| 동적 엔터티(표준 엔터티) | 쿼리 가능한 동적 DateTime 필드 | createdon, modifiedon | 
| 동적 엔터티(사용자 지정 엔터티) | createdon, modifiedon | createdon, modifiedon | 

 **예제** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "instanceUrl": "https://{tenantID}.api.crm.dynamics.com"
        "PARTITION_FIELD": "createdon"
        "LOWER_BOUND": "2024-01-30T06:47:51.000Z"
        "UPPER_BOUND": "2024-06-30T06:47:51.000Z"
        "NUM_PARTITIONS": "10"
    }
```